From 69aec6dc80fd147ad5912d717919f9a4a301ee44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Lamercerie?= <aurelien.lamercerie@laposte.net> Date: Wed, 17 Nov 2021 18:41:55 +0100 Subject: [PATCH] CTS update: structural revision of sys:Property --- config/semantic-net.ttl | 27 +- config/transduction-schemes.ttl | 1027 ++++++++++++++++++++----------- frame/system-ontology.ttl | 71 +-- prepare_work_data.py | 35 +- 4 files changed, 747 insertions(+), 413 deletions(-) diff --git a/config/semantic-net.ttl b/config/semantic-net.ttl index a141868d..accde622 100644 --- a/config/semantic-net.ttl +++ b/config/semantic-net.ttl @@ -95,11 +95,6 @@ net:featureClass rdfs:label "feature class" ; rdfs:subPropertyOf net:objectValue ; . -net:has_actor - rdf:type rdf:Property ; - rdfs:label "has actor" ; - rdfs:subPropertyOf net:has_atom ; -. net:has_atom rdf:type rdf:Property ; rdfs:label "has atom" ; @@ -190,6 +185,21 @@ net:has_possible_range rdfs:label "has possible range" ; rdfs:subPropertyOf net:has_object ; . +net:has_relation + rdf:type rdf:Property ; + rdfs:label "has relation" ; + rdfs:subPropertyOf net:has_relation_value ; +. +net:has_relation_value + rdf:type rdf:Property ; + rdfs:label "has relation value" ; + rdfs:subPropertyOf net:has_object ; +. +net:has_source + rdf:type rdf:Property ; + rdfs:label "has source" ; + rdfs:subPropertyOf net:has_relation_value ; +. net:has_structure rdf:type rdf:Property ; rdfs:label "Linguistic Structure (in UNL Document)" ; @@ -198,12 +208,7 @@ net:has_structure net:has_target rdf:type rdf:Property ; rdfs:label "has target" ; - rdfs:subPropertyOf net:has_atom ; -. -net:has_verb - rdf:type rdf:Property ; - rdfs:label "has verb" ; - rdfs:subPropertyOf net:has_atom ; + rdfs:subPropertyOf net:has_relation_value ; . net:list rdf:type owl:Class ; diff --git a/config/transduction-schemes.ttl b/config/transduction-schemes.ttl index b4694ce2..de74c6e4 100644 --- a/config/transduction-schemes.ttl +++ b/config/transduction-schemes.ttl @@ -146,9 +146,8 @@ WHERE { }""" ; sh:order 3.23 ; . -cts:add-event +cts:append-domain-to-relation-net rdf:type sh:SPARQLRule ; - rdfs:label "add-event" ; sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> @@ -160,60 +159,36 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> -# -- Add Verb class / instance in System Ontology -CONSTRUCT { - # Classification - ?newEventUri rdfs:subClassOf ?eventClassUri. - ?newEventUri rdfs:label ?eventLabel. - ?newEventUri sys:from_structure ?req. - # Object Property - ?newEventObjectPropertyUri a owl:ObjectProperty. - ?newEventObjectPropertyUri rdfs:subPropertyOf ?eventObjectPropertyUri. - ?newEventObjectPropertyUri rdfs:label ?verbConcept. - ?newEventObjectPropertyUri sys:from_structure ?req. - ?actorInstanceUri ?newEventObjectPropertyUri ?targetInstanceUri. +# -- Append possible domain, actor to relation nets +CONSTRUCT { + # update: Relation Net (net1) + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_source ?sourceObject. + ?net1 net:has_possible_domain ?domainClass. } WHERE { - # net1: entity + # Relation Net (net1) ?net1 a net:Instance. - ?net1 net:type net:atom. - ?net1 net:atomOf sys:Event. + ?net1 net:type net:relation. ?net1 net:has_structure ?req. - ?net1 net:has_verb ?verbObject1. - ?verbObject1 net:has_parent_class ?verbClass. - ?verbObject1 net:has_concept ?verbConcept. - ?net1 net:has_actor ?actorObject1. - ?actorObject1 net:has_parent_class ?actorClass. - ?actorObject1 net:has_concept ?actorConcept. - ?actorObject1 net:has_instance ?actorInstance. - ?actorObject1 net:has_instance_uri ?actorInstanceUri. - ?net1 net:has_target ?targetObject1. - ?targetObject1 net:has_parent_class ?targetClass. - ?targetObject1 net:has_concept ?targetConcept. - ?targetObject1 net:has_instance ?targetInstance. - ?targetObject1 net:has_instance_uri ?targetInstanceUri. - # Label: event - BIND (concat(?actorConcept, '-', ?verbConcept) AS ?e1). - BIND (concat(?e1, '-', ?targetConcept) AS ?eventLabel). - # URI (for classes) - sys:Structure sys:has_frame_uri ?frameURI. - sys:Event sys:is_class ?eventClass. - BIND (concat( ?frameURI, ?eventClass) AS ?c1). - BIND (concat(?c1, '_', ?eventLabel) AS ?c2). - BIND (uri( ?c1) AS ?eventClassUri). - BIND (uri(?c2) AS ?newEventUri). - # URI (for object property) - sys:Event sys:has_object_property ?eventObjectProperty. - BIND (concat( ?frameURI, ?eventObjectProperty) AS ?o1). - BIND (concat(?o1, '#', ?verbConcept) AS ?o2). - BIND (uri( ?o1) AS ?eventObjectPropertyUri). - BIND (uri( ?o2) AS ?newEventObjectPropertyUri). + ?net1 net:has_node ?uw1. + # Atom Net (net2): actor of net1 + ?net2 a net:Instance. + ?net2 net:type net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?sourceObject. + # condition: agt(net1, net2) + ?uw1 unl:agt ?uw2. + # Possible Domain + ?sourceObject net:has_instance ?sourceInstance. + ?anySourceObject net:has_instance ?sourceInstance. + ?anySourceObject net:has_concept ?domainClass. }""" ; - sh:order 3.31 ; + sh:order 2.42 ; . -cts:add-state-property +cts:append-range-to-relation-net rdf:type sh:SPARQLRule ; - rdfs:label "add-event" ; sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> @@ -225,56 +200,33 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> -# -- Add Verb class / instance in System Ontology -CONSTRUCT { - # Classification - ?newStatePropertyUri rdfs:subClassOf ?statePropertyClassUri. - ?newStatePropertyUri rdfs:label ?statePropertyLabel. - ?newStatePropertyUri sys:from_structure ?req. - # Object Property - ?newStatePropertyObjectPropertyUri a owl:ObjectProperty. - ?newStatePropertyObjectPropertyUri rdfs:subPropertyOf ?statePropertyObjectPropertyUri. - ?newStatePropertyObjectPropertyUri rdfs:label ?verbConcept. - ?newStatePropertyObjectPropertyUri sys:from_structure ?req. - ?actorInstanceUri ?newStatePropertyObjectPropertyUri ?targetInstanceUri. +# -- Append possible range, target to relation nets +CONSTRUCT { + # update: Relation Net (net1) + ?net1 net:has_node ?uw1, ?uw2. + ?net1 net:has_target ?targetObject. + ?net1 net:has_possible_range ?rangeClass. } WHERE { - # net1: state property + # Relation Net (net1) ?net1 a net:Instance. - ?net1 net:type net:atom. - ?net1 net:atomOf sys:State_Property. + ?net1 net:type net:relation. ?net1 net:has_structure ?req. - ?net1 net:has_verb ?verbObject1. - ?verbObject1 net:has_parent_class ?verbClass. - ?verbObject1 net:has_concept ?verbConcept. - ?net1 net:has_actor ?actorObject1. - ?actorObject1 net:has_parent_class ?actorClass. - ?actorObject1 net:has_concept ?actorConcept. - ?actorObject1 net:has_instance ?actorInstance. - ?actorObject1 net:has_instance_uri ?actorInstanceUri. - ?net1 net:has_target ?targetObject1. - ?targetObject1 net:has_parent_class ?targetClass. - ?targetObject1 net:has_concept ?targetConcept. - ?targetObject1 net:has_instance ?targetInstance. - ?targetObject1 net:has_instance_uri ?targetInstanceUri. - # Label: event - BIND (concat(?actorConcept, '-', ?verbConcept) AS ?e1). - BIND (concat(?e1, '-', ?targetConcept) AS ?statePropertyLabel). - # URI (for classes) - sys:Structure sys:has_frame_uri ?frameURI. - sys:State_Property sys:is_class ?statePropertyClass. - BIND (concat( ?frameURI, ?statePropertyClass) AS ?c1). - BIND (concat(?c1, '_', ?statePropertyLabel) AS ?c2). - BIND (uri( ?c1) AS ?statePropertyClassUri). - BIND (uri(?c2) AS ?newStatePropertyUri). - # URI (for object property) - sys:State_Property sys:has_object_property ?statePropertyObjectProperty. - BIND (concat( ?frameURI, ?statePropertyObjectProperty) AS ?o1). - BIND (concat(?o1, '#', ?verbConcept) AS ?o2). - BIND (uri( ?o1) AS ?statePropertyObjectPropertyUri). - BIND (uri( ?o2) AS ?newStatePropertyObjectPropertyUri). + ?net1 net:has_node ?uw1. + # Atom Net (net2): target of net1 + ?net2 a net:Instance. + ?net2 net:type net:atom. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?targetObject. + # condition: agt(net1, net2) + ?uw1 (unl:obj|unl:res) ?uw2. + # Possible Domain + ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. }""" ; - sh:order 3.31 ; + sh:order 2.42 ; . cts:batch_execution rdf:type owl:Class ; @@ -283,18 +235,16 @@ cts:batch_execution rdfs:subClassOf cts:Transduction_Schemes ; sh:rule cts:add-conjunctive-classes-from-list-net ; sh:rule cts:add-disjunctive-classes-from-list-net ; - sh:rule cts:add-event ; - sh:rule cts:add-state-property ; + sh:rule cts:append-domain-to-relation-net ; + sh:rule cts:append-range-to-relation-net ; sh:rule cts:bypass-reification ; sh:rule cts:complement-composite-class ; - sh:rule cts:compose-agt-verb-obj-as-simple-event ; - sh:rule cts:compose-aoj-verb-obj-as-simple-state-property ; sh:rule cts:compose-atom-with-list-by-mod-1 ; sh:rule cts:compose-atom-with-list-by-mod-2 ; sh:rule cts:compute-class-uri-of-net-object ; - sh:rule cts:compute-domain-range-of-event-object-properties ; - sh:rule cts:compute-domain-range-of-state-property-object-properties ; + sh:rule cts:compute-domain-of-relation-property ; sh:rule cts:compute-instance-uri-of-net-object ; + sh:rule cts:compute-range-of-relation-property ; sh:rule cts:create-atom-net ; sh:rule cts:create-relation-net ; sh:rule cts:create-unary-atom-list-net ; @@ -303,11 +253,14 @@ cts:batch_execution sh:rule cts:generate-atom-class ; sh:rule cts:generate-atom-instance ; sh:rule cts:generate-composite-class-from-list-net ; + sh:rule cts:generate-event-class ; + sh:rule cts:generate-relation-property ; sh:rule cts:init-conjunctive-atom-list-net ; sh:rule cts:init-disjunctive-atom-list-net ; sh:rule cts:instantiate-atom-net ; sh:rule cts:instantiate-composite-in-list-by-extension-1 ; sh:rule cts:instantiate-composite-in-list-by-extension-2 ; + sh:rule cts:link-classes-by-relation-property ; sh:rule cts:link-to-scope-entry ; sh:rule cts:specify-axis-of-atom-list-net ; . @@ -372,150 +325,6 @@ WHERE { }""" ; sh:order 3.22 ; . -cts:compose-agt-verb-obj-as-simple-event - rdf:type sh:SPARQLRule ; - sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> -PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> -PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> -PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> -PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> -PREFIX net: <https://unsel.tetras-libre.fr/tenet/semantic-net#> -PREFIX cprm: <https://unsel.tetras-libre.fr/tenet/config/parameters#> -PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> -PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> -PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> - -# -- Compose a subject (agt), an action Verb and an object (obj) to obtain an event -CONSTRUCT { - # Net: Event - ?newNet a net:Instance. - ?newNet net:type net:atom. - ?newNet net:atomOf sys:Event. - ?newNet net:has_structure ?req. - ?newNet net:has_node ?uw1, ?uw2, ?uw3. - ?newNet net:has_actor ?actorObject. - ?newNet net:has_verb ?verbObject. - ?newNet net:has_target ?targetObject. - ?newNet net:has_possible_domain ?domainClass. - ?newNet net:has_possible_range ?rangeClass. -} -WHERE { - # net1: verb - ?net1 a net:Instance. - ?net1 net:type net:atom. - ?net1 net:atomOf sys:action_verb. - ?net1 net:has_structure ?req. - ?net1 net:has_node ?uw1. - ?net1 net:has_atom ?verbObject. - # net2: entity (actor) - ?net2 a net:Instance. - ?net2 net:type net:atom. - # -- old --- ?net2 net:atomOf sys:Entity. - ?net2 net:has_structure ?req. - ?net2 net:has_node ?uw2. - ?net2 net:has_atom ?actorObject. - # net3: entity (target) - ?net3 a net:Instance. - ?net3 net:type net:atom. - # -- old --- ?net3 net:atomOf sys:Entity. - ?net3 net:has_structure ?req. - ?net3 net:has_node ?uw3. - ?net3 net:has_atom ?targetObject. - # condition: agt(net1, net2) et obj(net1, net3) - ?uw1 unl:agt ?uw2. - ?uw1 (unl:obj|unl:res) ?uw3. - # Label: Id - ?uw1 unl:has_id ?uw1Id. - ?uw2 unl:has_id ?uw2Id. - ?uw3 unl:has_id ?uw3Id. - # Possible domain/range - ?actorObject net:has_instance ?actorObjectInstance. - ?allActorObject net:has_instance ?actorObjectInstance. - ?allActorObject net:has_concept ?domainClass. - ?targetObject net:has_instance ?targetObjectInstance. - ?allTargetObject net:has_instance ?targetObjectInstance. - ?allTargetObject net:has_concept ?rangeClass. - # URI (for Event Net) - cprm:Config_Parameters cprm:netURI ?netURI. - net:event rdfs:label ?eventLabel. - BIND (concat( ?netURI, ?eventLabel, '_') AS ?n1). - BIND (concat(?n1, ?uw1Id, '-', ?uw2Id, '-', ?uw3Id) AS ?n2). - BIND (uri(?n2) AS ?newNet). -}""" ; - sh:order 2.41 ; -. -cts:compose-aoj-verb-obj-as-simple-state-property - rdf:type sh:SPARQLRule ; - sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> -PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> -PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> -PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> -PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> -PREFIX net: <https://unsel.tetras-libre.fr/tenet/semantic-net#> -PREFIX cprm: <https://unsel.tetras-libre.fr/tenet/config/parameters#> -PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> -PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> -PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> - -# -- Compose a subject (aoj), an attributibe Verb and an object (obj) / result (res) to obtain a state property -CONSTRUCT { - # Net: State Property - ?newNet a net:Instance. - ?newNet net:type net:atom. - ?newNet net:atomOf sys:State_Property. - ?newNet net:has_structure ?req. - ?newNet net:has_node ?uw1, ?uw2, ?uw3. - ?newNet net:has_actor ?actorObject. - ?newNet net:has_verb ?verbObject. - ?newNet net:has_target ?targetObject. - ?newNet net:has_possible_domain ?domainClass. - ?newNet net:has_possible_range ?rangeClass. -} -WHERE { - # net1: verb - ?net1 a net:Instance. - ?net1 net:type net:atom. - ?net1 net:atomOf sys:attributive_verb. - ?net1 net:has_structure ?req. - ?net1 net:has_node ?uw1. - ?net1 net:has_atom ?verbObject. - # net2: entity (actor) - ?net2 a net:Instance. - ?net2 net:type net:atom. - # -- old --- ?net2 net:atomOf sys:Entity. - ?net2 net:has_structure ?req. - ?net2 net:has_node ?uw2. - ?net2 net:has_atom ?actorObject. - # net3: entity (target) - ?net3 a net:Instance. - ?net3 net:type net:atom. - # -- old --- ?net3 net:atomOf sys:Entity. - ?net3 net:has_structure ?req. - ?net3 net:has_node ?uw3. - ?net3 net:has_atom ?targetObject. - # condition: aoj(net1, net2) et obj(net1, net3) - ?uw1 unl:aoj ?uw2. - ?uw1 (unl:obj|unl:res) ?uw3. - # Label: Id - ?uw1 unl:has_id ?uw1Id. - ?uw2 unl:has_id ?uw2Id. - ?uw3 unl:has_id ?uw3Id. - # Possible domain/range - ?actorObject net:has_instance ?actorObjectInstance. - ?allActorObject net:has_instance ?actorObjectInstance. - ?allActorObject net:has_concept ?domainClass. - ?targetObject net:has_instance ?targetObjectInstance. - ?allTargetObject net:has_instance ?targetObjectInstance. - ?allTargetObject net:has_concept ?rangeClass. - # URI (for State Property Net) - cprm:Config_Parameters cprm:netURI ?netURI. - net:state_property rdfs:label ?statePropertyLabel. - BIND (concat( ?netURI, ?statePropertyLabel, '_') AS ?n1). - BIND (concat(?n1, ?uw1Id, '-', ?uw2Id, '-', ?uw3Id) AS ?n2). - BIND (uri(?n2) AS ?newNet). -}""" ; - sh:order 2.41 ; -. cts:compose-atom-with-list-by-mod-1 rdf:type sh:SPARQLRule ; sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> @@ -586,7 +395,8 @@ WHERE { # URI (for Object) cprm:Config_Parameters cprm:netURI ?netURI. cprm:Config_Parameters cprm:objectRef ?objectRef. - BIND (concat( ?netURI, ?objectRef) AS ?o1). + net:composite rdfs:label ?compositeLabel. + BIND (concat( ?netURI, ?objectRef, ?compositeLabel, '_') AS ?o1). BIND (concat(?o1, ?uw1Id, '-', ?uw3Id) AS ?o2). BIND (uri(?o2) AS ?newObject). # URI (for List Net) @@ -701,9 +511,9 @@ WHERE { }""" ; sh:order 3.01 ; . -cts:compute-domain-range-of-event-object-properties +cts:compute-domain-of-relation-property rdf:type sh:SPARQLRule ; - rdfs:label "compute-domain-range-of-object-properties" ; + rdfs:label "compute-domain-of-relation-property" ; sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> @@ -715,24 +525,21 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> -# -- Compute domain/range of object properties +# -- Compute Domain of Relation Property CONSTRUCT { - # Object Property: domain, range and relation between domain/range classes - ?newEventObjectPropertyUri rdfs:domain ?domainClass. - ?newEventObjectPropertyUri rdfs:range ?rangeClass. - ?domainClass ?newEventObjectPropertyUri ?rangeClass. # relation between domain/range classes + # update Relation Property: add domain + ?newPropertyUri rdfs:domain ?domainClass. } WHERE { - # net1: event + # Relation Net (net1) ?net1 a net:Instance. - ?net1 net:type net:atom. - ?net1 net:atomOf sys:Event. - ?net1 net:has_structure ?req. - ?net1 net:has_verb ?verbObject1. - ?verbObject1 net:has_concept ?verbConcept. - # domain + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_concept ?relationConcept. + # -- Domain ?net1 net:has_possible_domain ?possibleDomainLabel1. - ?domainClass rdfs:label ?possibleDomainLabel1 . + ?domainClass rdfs:label ?possibleDomainLabel1. FILTER ( NOT EXISTS { ?net1 net:has_possible_domain ?possibleDomainLabel2 . @@ -740,28 +547,18 @@ WHERE { ?anotherDomainClass rdfs:subClassOf ?domainClass. } ) - # range - ?net1 net:has_possible_range ?possibleRangeLabel1. - ?rangeClass rdfs:label ?possibleRangeLabel1 . - FILTER ( - NOT EXISTS { - ?net1 net:has_possible_domain ?possibleRangeLabel2 . - ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . - ?anotherRangeClass rdfs:subClassOf ?rangeClass. - } - ) # URI (for object property) - sys:Structure sys:has_frame_uri ?frameURI. - sys:Event sys:has_object_property ?eventObjectProperty. - BIND (concat( ?frameURI, ?eventObjectProperty) AS ?o1). - BIND (concat(?o1, '#', ?verbConcept) AS ?o2). - BIND (uri( ?o2) AS ?newEventObjectPropertyUri). + sys:Relation sys:has_frame_uri ?frameURI. + ?relationMother sys:has_reference ?relationReference. + BIND (concat( ?frameURI, ?relationReference) AS ?o1). + BIND (concat(?o1, '_', ?relationConcept) AS ?o2). + BIND (uri( ?o2) AS ?newPropertyUri). }""" ; sh:order 3.32 ; . -cts:compute-domain-range-of-state-property-object-properties +cts:compute-instance-uri-of-net-object rdf:type sh:SPARQLRule ; - rdfs:label "compute-domain-range-of-object-properties" ; + rdfs:label "compute-instance-uri-of-net-object" ; sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> @@ -773,53 +570,27 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> -# -- Compute domain/range of object properties +# -- Compute useful URI CONSTRUCT { - # Object Property: domain, range and relation between domain/range classes - ?objectPropertyUri rdfs:domain ?domainClass. - ?objectPropertyUri rdfs:range ?rangeClass. - ?domainClass ?objectPropertyUri ?rangeClass. # relation between domain/range classes + # Net Object URI + ?object net:has_instance_uri ?objectInstanceUri. } WHERE { - # net1: event - ?net1 a net:Instance. - ?net1 net:type net:atom. - ?net1 net:atomOf sys:State_Property. - ?net1 net:has_structure ?req. - ?net1 net:has_verb ?verbObject1. - ?verbObject1 net:has_concept ?verbConcept. - # domain - ?net1 net:has_possible_domain ?possibleDomainLabel1. - ?domainClass rdfs:label ?possibleDomainLabel1 . - FILTER ( - NOT EXISTS { - ?net1 net:has_possible_domain ?possibleDomainLabel2 . - ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . - ?anotherDomainClass rdfs:subClassOf ?domainClass. - } - ) - # range - ?net1 net:has_possible_range ?possibleRangeLabel1. - ?rangeClass rdfs:label ?possibleRangeLabel1 . - FILTER ( - NOT EXISTS { - ?net1 net:has_possible_domain ?possibleRangeLabel2 . - ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . - ?anotherRangeClass rdfs:subClassOf ?rangeClass. - } - ) - # URI (for object property) + # object + ?object a net:Object. + ?object net:has_parent_class ?parentClass. + ?object net:has_instance ?objectInstance. + # URI (for classes and instance) sys:Structure sys:has_frame_uri ?frameURI. - sys:State_Property sys:has_object_property ?objectPropertyRef. - BIND (concat( ?frameURI, ?objectPropertyRef) AS ?o1). - BIND (concat(?o1, '#', ?verbConcept) AS ?o2). - BIND (uri( ?o2) AS ?objectPropertyUri). + BIND (concat( ?frameURI, ?parentClass) AS ?s1). + BIND (concat(?s1, '#', ?objectInstance) AS ?s2). + BIND (uri(?s2) AS ?objectInstanceUri). }""" ; - sh:order 3.32 ; + sh:order 3.02 ; . -cts:compute-instance-uri-of-net-object +cts:compute-range-of-relation-property rdf:type sh:SPARQLRule ; - rdfs:label "compute-instance-uri-of-net-object" ; + rdfs:label "compute-range-of-relation-property" ; sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> @@ -831,23 +602,36 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> -# -- Compute useful URI +# -- Compute Range of Relation Property CONSTRUCT { - # Net Object URI - ?object net:has_instance_uri ?objectInstanceUri. + # update Relation Property: add range + ?newPropertyUri rdfs:range ?rangeClass. } WHERE { - # object - ?object a net:Object. - ?object net:has_parent_class ?parentClass. - ?object net:has_instance ?objectInstance. - # URI (for classes and instance) - sys:Structure sys:has_frame_uri ?frameURI. - BIND (concat( ?frameURI, ?parentClass) AS ?s1). - BIND (concat(?s1, '#', ?objectInstance) AS ?s2). - BIND (uri(?s2) AS ?objectInstanceUri). + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_concept ?relationConcept. + # -- Range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + # URI (for object property) + sys:Relation sys:has_frame_uri ?frameURI. + ?relationMother sys:has_reference ?relationReference. + BIND (concat( ?frameURI, ?relationReference) AS ?o1). + BIND (concat(?o1, '_', ?relationConcept) AS ?o2). + BIND (uri( ?o2) AS ?newPropertyUri). }""" ; - sh:order 3.02 ; + sh:order 3.32 ; . cts:create-atom-net rdf:type sh:SPARQLRule ; @@ -899,12 +683,14 @@ WHERE { # URI (for Atom Object) cprm:Config_Parameters cprm:netURI ?netURI. cprm:Config_Parameters cprm:objectRef ?objectRef. - BIND (concat( ?netURI, ?objectRef) AS ?o1). + net:atom rdfs:label ?atomLabel. + BIND (concat( ?netURI, ?objectRef, ?atomLabel, '_') AS ?o1). BIND (concat(?o1, ?uw1Id) AS ?o2). BIND (uri(?o2) AS ?newObject). # URI (for Atom Net) cprm:Config_Parameters cprm:netURI ?netURI. - BIND (concat( ?netURI, ?atomClass, '_') AS ?n1). + sys:Structure sys:has_reference ?classReference. + BIND (concat( ?netURI, ?classReference, '-', ?atomClass, '_') AS ?n1). BIND (concat(?n1, ?uw1Id) AS ?n2). BIND (uri(?n2) AS ?newNet). }""" ; @@ -925,15 +711,21 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> # -- Create relation net CONSTRUCT { - # Net: Relation + # Object + ?newObject a net:Object. + ?newObject net:objectType net:relation. + ?newObject net:has_node ?uw1. + ?newObject net:has_mother_class ?verbMother. + ?newObject net:has_parent_class ?verbParentClass. + ?newObject net:has_class ?verbConcept. + ?newObject net:has_concept ?verbConcept. + # create: Relation Net ?newNet a net:Instance. ?newNet net:type net:relation. ?newNet net:relationOf ?relationMother. ?newNet net:has_structure ?req. ?newNet net:has_node ?uw1. - ?newNet net:has_verb ?verbObject. - # -- todo? --- ?newNet net:has_possible_domain ?domainClass. - # -- todo? --- ?newNet net:has_possible_range ?rangeClass. + ?newNet net:has_relation ?newObject. } WHERE { # Relation Description (from System Ontology) @@ -941,20 +733,30 @@ WHERE { ?targetProperty sys:has_mother_property ?relationMother. ?targetProperty sys:has_reference ?relationReference. ?targetProperty sys:has_restriction_on_class ?classRestriction. - # net1: atom of relation + # Atom Net (net1): restricted net according to its atom category (atomOf) ?net1 a net:Instance. ?net1 net:type net:atom. - ?net1 net:atomOf ?atomCategory. - ?atomCategory rdfs:subClassOf* ?classRestriction. + ?net1 net:atomOf ?classRestriction. ?net1 net:has_structure ?req. ?net1 net:has_node ?uw1. + # -- Verb Actor ?net1 net:has_atom ?verbObject. - ?verbObject net:has_parent_class ?classRestriction. + ?verbObject net:has_mother_class ?verbMother. + ?verbObject net:has_parent_class ?verbParentClass. + ?verbObject net:has_concept ?verbConcept. # Label: Id ?uw1 unl:has_id ?uw1Id. + # URI (for Atom Object) + cprm:Config_Parameters cprm:netURI ?netURI. + cprm:Config_Parameters cprm:objectRef ?objectRef. + net:relation rdfs:label ?relationLabel. + BIND (concat( ?netURI, ?objectRef, ?relationLabel, '_') AS ?o1). + BIND (concat(?o1, ?uw1Id) AS ?o2). + BIND (uri(?o2) AS ?newObject). # URI (for Event Net) cprm:Config_Parameters cprm:netURI ?netURI. - BIND (concat( ?netURI, ?relationReference, '_') AS ?n1). + sys:Property sys:has_reference ?propertyReference. + BIND (concat( ?netURI, ?propertyReference, '-', ?relationReference, '_') AS ?n1). BIND (concat(?n1, ?uw1Id) AS ?n2). BIND (uri(?n2) AS ?newNet). }""" ; @@ -1003,9 +805,10 @@ WHERE { ?uw1 rdfs:label ?uw1Label. ?uw1 unl:has_id ?uw1Id. cprm:Config_Parameters cprm:netURI ?netURI. + sys:Structure sys:has_reference ?classReference. net:list rdfs:label ?listLabel. net:atom rdfs:label ?atomLabel. - BIND (concat( ?netURI, ?listLabel, '_', ?atomLabel, '_') AS ?s1). + BIND (concat( ?netURI, ?classReference, '-', ?listLabel, '-', ?atomLabel, '_') AS ?s1). BIND (concat(?s1, ?uw1Id) AS ?s2). BIND (uri(?s2) AS ?newNet). }""" ; @@ -1046,6 +849,12 @@ cts:dev_schemes rdf:type sh:NodeShape ; rdfs:label "dev schemes" ; rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:old_add-event ; + sh:rule cts:old_add-state-property ; + sh:rule cts:old_compose-agt-verb-obj-as-simple-event ; + sh:rule cts:old_compose-aoj-verb-obj-as-simple-state-property ; + sh:rule cts:old_compute-domain-range-of-event-object-properties ; + sh:rule cts:old_compute-domain-range-of-state-property-object-properties ; . cts:entity_extraction rdf:type owl:Class ; @@ -1065,7 +874,7 @@ cts:event_extraction rdf:type sh:NodeShape ; rdfs:label "event extraction" ; rdfs:subClassOf cts:net_extension ; - sh:rule cts:compose-agt-verb-obj-as-simple-event ; + sh:rule cts:old_compose-agt-verb-obj-as-simple-event ; . cts:extend-atom-list-net rdf:type sh:SPARQLRule ; @@ -1124,7 +933,7 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> -# -- Generate atom class in System Ontology +# -- Generate Atom Class in Target Ontology CONSTRUCT { # Classification ?newClassUri rdfs:subClassOf ?parentUri. @@ -1222,6 +1031,110 @@ WHERE { }""" ; sh:order 3.21 ; . +cts:generate-event-class + rdf:type sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://unsel.tetras-libre.fr/tenet/semantic-net#> +PREFIX cprm: <https://unsel.tetras-libre.fr/tenet/config/parameters#> +PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> +PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> +PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> + +# -- Add Event Class in Target Ontology +CONSTRUCT { + # Classification + ?newEventUri rdfs:subClassOf ?eventClassUri. + ?newEventUri rdfs:label ?eventLabel. + ?newEventUri sys:from_structure ?req. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_concept ?relationConcept. + # -- old --- ?relationObject net:has_parent_class ?relationParentClass. + # -- Source Object + ?net1 net:has_source ?sourceObject. + ?sourceObject net:has_concept ?sourceConcept. + # -- old --- ?sourceObject net:has_instance ?sourceInstance. + # -- old --- ?sourceObject net:has_instance_uri ?sourceInstanceUri. + # -- old --- ?sourceObject net:has_parent_class ?sourceParentClass. + # -- Target Object + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_concept ?targetConcept. + # -- old --- ?targetObject1 net:has_instance ?targetInstance. + # -- old --- ?targetObject1 net:has_instance_uri ?targetInstanceUri. + # -- old --- ?targetObject1 net:has_parent_class ?targetParentClass. + # Label: event + BIND (concat(?sourceConcept, '-', ?relationConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?eventLabel). + # URI (for classes) + sys:Structure sys:has_frame_uri ?frameURI. + sys:Event sys:is_class ?eventClass. + BIND (concat( ?frameURI, ?eventClass) AS ?c1). + BIND (concat(?c1, '_', ?eventLabel) AS ?c2). + BIND (uri( ?c1) AS ?eventClassUri). + BIND (uri(?c2) AS ?newEventUri). +}""" ; + sh:order 3.31 ; +. +cts:generate-relation-property + rdf:type sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://unsel.tetras-libre.fr/tenet/semantic-net#> +PREFIX cprm: <https://unsel.tetras-libre.fr/tenet/config/parameters#> +PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> +PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> +PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> + +# -- Generate Relation Property in Target Ontology +CONSTRUCT { + # update: Relation Property + ?newPropertyUri a owl:ObjectProperty. + ?newPropertyUri rdfs:subPropertyOf ?relationMother. + ?newPropertyUri rdfs:label ?relationConcept. + ?newPropertyUri sys:from_structure ?req. + ?sourceInstanceUri ?newPropertyUri ?targetInstanceUri. +} +WHERE { + # Relation Net (net1) + ?net1 a net:Instance. + ?net1 net:type net:relation. + ?net1 net:relationOf ?relationMother. + ?net1 net:has_structure ?req. + # -- Relation Object + ?net1 net:has_relation ?relationObject. + ?relationObject net:has_concept ?relationConcept. + # -- Source Object + ?net1 net:has_source ?sourceObject. + ?sourceObject net:has_instance_uri ?sourceInstanceUri. + # -- Target Object + ?net1 net:has_target ?targetObject. + ?targetObject net:has_instance_uri ?targetInstanceUri. + # URI (for object property) + sys:Relation sys:has_frame_uri ?frameURI. + ?relationMother sys:has_reference ?relationReference. + BIND (concat( ?frameURI, ?relationReference) AS ?o1). + BIND (concat(?o1, '_', ?relationConcept) AS ?o2). + BIND (uri( ?o2) AS ?newPropertyUri). +}""" ; + sh:order 3.31 ; +. cts:generation rdf:type owl:Class ; rdf:type sh:NodeShape ; @@ -1229,14 +1142,14 @@ cts:generation rdfs:subClassOf cts:Transduction_Schemes ; sh:rule cts:add-conjunctive-classes-from-list-net ; sh:rule cts:add-disjunctive-classes-from-list-net ; - sh:rule cts:add-event ; - sh:rule cts:add-state-property ; sh:rule cts:complement-composite-class ; - sh:rule cts:compute-domain-range-of-event-object-properties ; - sh:rule cts:compute-domain-range-of-state-property-object-properties ; sh:rule cts:generate-atom-class ; sh:rule cts:generate-atom-instance ; sh:rule cts:generate-composite-class-from-list-net ; + sh:rule cts:old_add-event ; + sh:rule cts:old_add-state-property ; + sh:rule cts:old_compute-domain-range-of-event-object-properties ; + sh:rule cts:old_compute-domain-range-of-state-property-object-properties ; . cts:init-conjunctive-atom-list-net rdf:type sh:SPARQLRule ; @@ -1444,6 +1357,32 @@ WHERE { }""" ; sh:order 2.342 ; . +cts:link-classes-by-relation-property + rdf:type sh:SPARQLRule ; + rdfs:label "link-classes-by-relation-property" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://unsel.tetras-libre.fr/tenet/semantic-net#> +PREFIX cprm: <https://unsel.tetras-libre.fr/tenet/config/parameters#> +PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> +PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> +PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> + +# -- Link two classes by relation property (according existence of domain and range) +CONSTRUCT { + # relation between domain/range classes + ?domainClass ?propertyUri ?rangeClass. +} +WHERE { + # Relation Net (net1) + ?propertyUri rdfs:domain ?domainClass. + ?propertyUri rdfs:range ?rangeClass. +}""" ; + sh:order 3.33 ; +. cts:link-to-scope-entry rdf:type sh:SPARQLRule ; sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> @@ -1479,6 +1418,396 @@ cts:net_extension rdfs:label "net extension" ; rdfs:subClassOf cts:Transduction_Schemes ; . +cts:old_add-event + rdf:type sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://unsel.tetras-libre.fr/tenet/semantic-net#> +PREFIX cprm: <https://unsel.tetras-libre.fr/tenet/config/parameters#> +PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> +PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> +PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> + +# -- Add Verb class / instance in System Ontology +CONSTRUCT { + # Classification + ?newEventUri rdfs:subClassOf ?eventClassUri. + ?newEventUri rdfs:label ?eventLabel. + ?newEventUri sys:from_structure ?req. + # Object Property + ?newEventObjectPropertyUri a owl:ObjectProperty. + ?newEventObjectPropertyUri rdfs:subPropertyOf ?eventObjectPropertyUri. + ?newEventObjectPropertyUri rdfs:label ?verbConcept. + ?newEventObjectPropertyUri sys:from_structure ?req. + ?actorInstanceUri ?newEventObjectPropertyUri ?targetInstanceUri. +} +WHERE { + # net1: entity + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:Event. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_parent_class ?verbClass. + ?verbObject1 net:has_concept ?verbConcept. + ?net1 net:has_actor ?actorObject1. + ?actorObject1 net:has_parent_class ?actorClass. + ?actorObject1 net:has_concept ?actorConcept. + ?actorObject1 net:has_instance ?actorInstance. + ?actorObject1 net:has_instance_uri ?actorInstanceUri. + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_parent_class ?targetClass. + ?targetObject1 net:has_concept ?targetConcept. + ?targetObject1 net:has_instance ?targetInstance. + ?targetObject1 net:has_instance_uri ?targetInstanceUri. + # Label: event + BIND (concat(?actorConcept, '-', ?verbConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?eventLabel). + # URI (for classes) + sys:Structure sys:has_frame_uri ?frameURI. + sys:Event sys:is_class ?eventClass. + BIND (concat( ?frameURI, ?eventClass) AS ?c1). + BIND (concat(?c1, '_', ?eventLabel) AS ?c2). + BIND (uri( ?c1) AS ?eventClassUri). + BIND (uri(?c2) AS ?newEventUri). + # URI (for object property) + sys:Event sys:has_object_property ?eventObjectProperty. + BIND (concat( ?frameURI, ?eventObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o1) AS ?eventObjectPropertyUri). + BIND (uri( ?o2) AS ?newEventObjectPropertyUri). +}""" ; + sh:order 0.331 ; +. +cts:old_add-state-property + rdf:type sh:SPARQLRule ; + rdfs:label "add-event" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://unsel.tetras-libre.fr/tenet/semantic-net#> +PREFIX cprm: <https://unsel.tetras-libre.fr/tenet/config/parameters#> +PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> +PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> +PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> + +# -- Add Verb class / instance in System Ontology +CONSTRUCT { + # Classification + ?newStatePropertyUri rdfs:subClassOf ?statePropertyClassUri. + ?newStatePropertyUri rdfs:label ?statePropertyLabel. + ?newStatePropertyUri sys:from_structure ?req. + # Object Property + ?newStatePropertyObjectPropertyUri a owl:ObjectProperty. + ?newStatePropertyObjectPropertyUri rdfs:subPropertyOf ?statePropertyObjectPropertyUri. + ?newStatePropertyObjectPropertyUri rdfs:label ?verbConcept. + ?newStatePropertyObjectPropertyUri sys:from_structure ?req. + ?actorInstanceUri ?newStatePropertyObjectPropertyUri ?targetInstanceUri. +} +WHERE { + # net1: state property + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:State_Property. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_parent_class ?verbClass. + ?verbObject1 net:has_concept ?verbConcept. + ?net1 net:has_actor ?actorObject1. + ?actorObject1 net:has_parent_class ?actorClass. + ?actorObject1 net:has_concept ?actorConcept. + ?actorObject1 net:has_instance ?actorInstance. + ?actorObject1 net:has_instance_uri ?actorInstanceUri. + ?net1 net:has_target ?targetObject1. + ?targetObject1 net:has_parent_class ?targetClass. + ?targetObject1 net:has_concept ?targetConcept. + ?targetObject1 net:has_instance ?targetInstance. + ?targetObject1 net:has_instance_uri ?targetInstanceUri. + # Label: event + BIND (concat(?actorConcept, '-', ?verbConcept) AS ?e1). + BIND (concat(?e1, '-', ?targetConcept) AS ?statePropertyLabel). + # URI (for classes) + sys:Structure sys:has_frame_uri ?frameURI. + sys:State_Property sys:is_class ?statePropertyClass. + BIND (concat( ?frameURI, ?statePropertyClass) AS ?c1). + BIND (concat(?c1, '_', ?statePropertyLabel) AS ?c2). + BIND (uri( ?c1) AS ?statePropertyClassUri). + BIND (uri(?c2) AS ?newStatePropertyUri). + # URI (for object property) + sys:State_Property sys:has_object_property ?statePropertyObjectProperty. + BIND (concat( ?frameURI, ?statePropertyObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o1) AS ?statePropertyObjectPropertyUri). + BIND (uri( ?o2) AS ?newStatePropertyObjectPropertyUri). +}""" ; + sh:order 0.331 ; +. +cts:old_compose-agt-verb-obj-as-simple-event + rdf:type sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://unsel.tetras-libre.fr/tenet/semantic-net#> +PREFIX cprm: <https://unsel.tetras-libre.fr/tenet/config/parameters#> +PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> +PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> +PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> + +# -- Compose a subject (agt), an action Verb and an object (obj) to obtain an event +CONSTRUCT { + # Net: Event + ?newNet a net:Instance. + ?newNet net:type net:atom. + ?newNet net:atomOf sys:Event. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:has_actor ?actorObject. + ?newNet net:has_verb ?verbObject. + ?newNet net:has_target ?targetObject. + ?newNet net:has_possible_domain ?domainClass. + ?newNet net:has_possible_range ?rangeClass. +} +WHERE { + # net1: verb + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:action_verb. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?verbObject. + # net2: entity (actor) + ?net2 a net:Instance. + ?net2 net:type net:atom. + # -- old --- ?net2 net:atomOf sys:Entity. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?actorObject. + # net3: entity (target) + ?net3 a net:Instance. + ?net3 net:type net:atom. + # -- old --- ?net3 net:atomOf sys:Entity. + ?net3 net:has_structure ?req. + ?net3 net:has_node ?uw3. + ?net3 net:has_atom ?targetObject. + # condition: agt(net1, net2) et obj(net1, net3) + ?uw1 unl:agt ?uw2. + ?uw1 (unl:obj|unl:res) ?uw3. + # Label: Id + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + # Possible domain/range + ?actorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_concept ?domainClass. + ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. + # URI (for Event Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:event rdfs:label ?eventLabel. + BIND (concat( ?netURI, ?eventLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id, '-', ?uw3Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 0.241 ; +. +cts:old_compose-aoj-verb-obj-as-simple-state-property + rdf:type sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://unsel.tetras-libre.fr/tenet/semantic-net#> +PREFIX cprm: <https://unsel.tetras-libre.fr/tenet/config/parameters#> +PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> +PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> +PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> + +# -- Compose a subject (aoj), an attributibe Verb and an object (obj) / result (res) to obtain a state property +CONSTRUCT { + # Net: State Property + ?newNet a net:Instance. + ?newNet net:type net:atom. + ?newNet net:atomOf sys:State_Property. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. + ?newNet net:has_actor ?actorObject. + ?newNet net:has_verb ?verbObject. + ?newNet net:has_target ?targetObject. + ?newNet net:has_possible_domain ?domainClass. + ?newNet net:has_possible_range ?rangeClass. +} +WHERE { + # net1: verb + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:attributive_verb. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. + ?net1 net:has_atom ?verbObject. + # net2: entity (actor) + ?net2 a net:Instance. + ?net2 net:type net:atom. + # -- old --- ?net2 net:atomOf sys:Entity. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2. + ?net2 net:has_atom ?actorObject. + # net3: entity (target) + ?net3 a net:Instance. + ?net3 net:type net:atom. + # -- old --- ?net3 net:atomOf sys:Entity. + ?net3 net:has_structure ?req. + ?net3 net:has_node ?uw3. + ?net3 net:has_atom ?targetObject. + # condition: aoj(net1, net2) et obj(net1, net3) + ?uw1 unl:aoj ?uw2. + ?uw1 (unl:obj|unl:res) ?uw3. + # Label: Id + ?uw1 unl:has_id ?uw1Id. + ?uw2 unl:has_id ?uw2Id. + ?uw3 unl:has_id ?uw3Id. + # Possible domain/range + ?actorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_instance ?actorObjectInstance. + ?allActorObject net:has_concept ?domainClass. + ?targetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_instance ?targetObjectInstance. + ?allTargetObject net:has_concept ?rangeClass. + # URI (for State Property Net) + cprm:Config_Parameters cprm:netURI ?netURI. + net:state_property rdfs:label ?statePropertyLabel. + BIND (concat( ?netURI, ?statePropertyLabel, '_') AS ?n1). + BIND (concat(?n1, ?uw1Id, '-', ?uw2Id, '-', ?uw3Id) AS ?n2). + BIND (uri(?n2) AS ?newNet). +}""" ; + sh:order 0.241 ; +. +cts:old_compute-domain-range-of-event-object-properties + rdf:type sh:SPARQLRule ; + rdfs:label "compute-domain-range-of-object-properties" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://unsel.tetras-libre.fr/tenet/semantic-net#> +PREFIX cprm: <https://unsel.tetras-libre.fr/tenet/config/parameters#> +PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> +PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> +PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> + +# -- Compute domain/range of object properties +CONSTRUCT { + # Object Property: domain, range and relation between domain/range classes + ?newEventObjectPropertyUri rdfs:domain ?domainClass. + ?newEventObjectPropertyUri rdfs:range ?rangeClass. + ?domainClass ?newEventObjectPropertyUri ?rangeClass. # relation between domain/range classes +} +WHERE { + # net1: event + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:Event. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_concept ?verbConcept. + # domain + ?net1 net:has_possible_domain ?possibleDomainLabel1. + ?domainClass rdfs:label ?possibleDomainLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:subClassOf ?domainClass. + } + ) + # range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + # URI (for object property) + sys:Structure sys:has_frame_uri ?frameURI. + sys:Event sys:has_object_property ?eventObjectProperty. + BIND (concat( ?frameURI, ?eventObjectProperty) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o2) AS ?newEventObjectPropertyUri). +}""" ; + sh:order 0.332 ; +. +cts:old_compute-domain-range-of-state-property-object-properties + rdf:type sh:SPARQLRule ; + rdfs:label "compute-domain-range-of-object-properties" ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#> +PREFIX net: <https://unsel.tetras-libre.fr/tenet/semantic-net#> +PREFIX cprm: <https://unsel.tetras-libre.fr/tenet/config/parameters#> +PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> +PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> +PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> + +# -- Compute domain/range of object properties +CONSTRUCT { + # Object Property: domain, range and relation between domain/range classes + ?objectPropertyUri rdfs:domain ?domainClass. + ?objectPropertyUri rdfs:range ?rangeClass. + ?domainClass ?objectPropertyUri ?rangeClass. # relation between domain/range classes +} +WHERE { + # net1: event + ?net1 a net:Instance. + ?net1 net:type net:atom. + ?net1 net:atomOf sys:State_Property. + ?net1 net:has_structure ?req. + ?net1 net:has_verb ?verbObject1. + ?verbObject1 net:has_concept ?verbConcept. + # domain + ?net1 net:has_possible_domain ?possibleDomainLabel1. + ?domainClass rdfs:label ?possibleDomainLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:label ?possibleDomainLabel2 . + ?anotherDomainClass rdfs:subClassOf ?domainClass. + } + ) + # range + ?net1 net:has_possible_range ?possibleRangeLabel1. + ?rangeClass rdfs:label ?possibleRangeLabel1 . + FILTER ( + NOT EXISTS { + ?net1 net:has_possible_domain ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:label ?possibleRangeLabel2 . + ?anotherRangeClass rdfs:subClassOf ?rangeClass. + } + ) + # URI (for object property) + sys:Structure sys:has_frame_uri ?frameURI. + sys:State_Property sys:has_object_property ?objectPropertyRef. + BIND (concat( ?frameURI, ?objectPropertyRef) AS ?o1). + BIND (concat(?o1, '#', ?verbConcept) AS ?o2). + BIND (uri( ?o2) AS ?objectPropertyUri). +}""" ; + sh:order 0.332 ; +. cts:postprocessing rdf:type owl:Class ; rdf:type sh:NodeShape ; @@ -1531,7 +1860,7 @@ cts:state_property_extraction rdf:type sh:NodeShape ; rdfs:label "state property extraction" ; rdfs:subClassOf cts:net_extension ; - sh:rule cts:compose-aoj-verb-obj-as-simple-state-property ; + sh:rule cts:old_compose-aoj-verb-obj-as-simple-state-property ; . cts:verb_extraction rdf:type owl:Class ; diff --git a/frame/system-ontology.ttl b/frame/system-ontology.ttl index 0e498b68..bb7664ac 100644 --- a/frame/system-ontology.ttl +++ b/frame/system-ontology.ttl @@ -13,6 +13,7 @@ @prefix sys-component: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/component#> . @prefix sys-message: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/message#> . @prefix sys-place: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/place#> . +@prefix sys-relation: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/relation/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <https://unsel.tetras-libre.fr/tenet/frame/system-ontology> @@ -25,6 +26,11 @@ sys:Abstraction rdfs:subClassOf sys:Structure ; sys:is_class "Abstraction" ; . +sys:Annotation + rdf:type rdf:Property ; + rdfs:label "structure property" ; + rdfs:subPropertyOf sys:Property ; +. sys:Entity rdf:type owl:Class ; rdfs:label "entity"@en ; @@ -47,13 +53,26 @@ sys:Feature rdfs:subClassOf sys:Structure ; sys:is_class "Feature" ; . +sys:ObjectProperty + rdf:type rdf:Property ; + rdfs:label "Object Property" ; + rdfs:subPropertyOf sys:Property ; +. +sys:Property + rdf:type rdf:Property ; + rdfs:label "Property" ; + sys:has_reference "property" ; +. sys:Relation rdf:type rdf:Property ; rdfs:label "system property" ; + rdfs:subPropertyOf sys:Property ; + sys:has_frame_uri "https://unsel.tetras-libre.fr/tenet/frame/system-ontology/relation/" ; . sys:Seed rdf:type rdf:Property ; rdfs:label "seed property" ; + rdfs:subPropertyOf sys:Property ; . sys:State_Property rdf:type owl:Class ; @@ -67,6 +86,7 @@ sys:Structure rdf:type owl:Class ; rdfs:label "System Ontology Structure" ; sys:has_frame_uri "https://unsel.tetras-libre.fr/tenet/frame/system-ontology/" ; + sys:has_reference "class" ; . sys:Verb rdf:type owl:Class ; @@ -87,9 +107,9 @@ sys:action rdf:type rdf:Property ; rdfs:label "action" ; rdfs:subPropertyOf sys:Relation ; - sys:has_mother_property "sys:action" ; - sys:has_reference "relation_action" ; - sys:has_restriction_on_class "action_verb" ; + sys:has_mother_property sys:action ; + sys:has_reference "action" ; + sys:has_restriction_on_class sys:action_verb ; . sys:action_verb rdf:type owl:Class ; @@ -118,10 +138,6 @@ sys:attributive_verb sys:has_restriction "icl>be" ; sys:is_class "attributive_verb" ; . -sys:classProperty - rdf:type rdf:Property ; - rdfs:label "System Property" ; -. sys:component rdf:type owl:Class ; rdfs:label "component"@en ; @@ -139,22 +155,17 @@ sys:component sys:entityClassProperty rdf:type rdf:Property ; rdfs:label "entity property" ; - rdfs:subPropertyOf sys:classProperty ; + rdfs:subPropertyOf sys:ObjectProperty ; . sys:eventClassProperty rdf:type rdf:Property ; rdfs:label "event property" ; - rdfs:subPropertyOf sys:classProperty ; -. -sys:eventObjectProperty - rdf:type rdf:Property ; - rdfs:label "event object property" ; - rdfs:subPropertyOf sys:objectProperty ; + rdfs:subPropertyOf sys:ObjectProperty ; . sys:from_structure rdf:type rdf:Property ; rdfs:label "from structure" ; - rdfs:subPropertyOf sys:classProperty ; + rdfs:subPropertyOf sys:ObjectProperty ; . sys:has_actor rdf:type rdf:Property ; @@ -175,22 +186,18 @@ sys:has_frame_base_uri sys:has_frame_uri rdf:type rdf:Property ; rdfs:label "has frame uri" ; - rdfs:subPropertyOf sys:structureProperty ; + rdfs:subPropertyOf sys:Annotation ; . sys:has_mother_class rdf:type rdf:Property ; rdfs:label "has mother class" ; rdfs:range owl:Thing ; rdfs:subPropertyOf sys:Seed ; - sys:has_mother_class "Entity" ; - sys:has_restriction "icl>administrator" ; - sys:has_restriction "icl>operator" ; - sys:has_restriction "icl>person" ; - sys:is_class "agent" ; . sys:has_mother_property rdf:type rdf:Property ; rdfs:label "has mother property" ; + rdfs:range rdf:Property ; rdfs:subPropertyOf sys:Seed ; . sys:has_object_property @@ -213,6 +220,7 @@ sys:has_restriction sys:has_restriction_on_class rdf:type rdf:Property ; rdfs:label "has restriction on class" ; + rdfs:range owl:Thing ; rdfs:subPropertyOf sys:Seed ; . sys:has_restriction_on_unl_relation_source @@ -252,10 +260,6 @@ sys:message sys:has_restriction "icl>communication" ; sys:is_class "message" ; . -sys:objectProperty - rdf:type rdf:Property ; - rdfs:label "object property" ; -. sys:place rdf:type owl:Class ; rdfs:label "lieu"@fr ; @@ -270,23 +274,14 @@ sys:stateProperty rdf:type rdf:Property ; rdfs:label "state property" ; rdfs:subPropertyOf sys:Relation ; - sys:has_mother_property "sys:stateProperty" ; - sys:has_reference "relation_stateProperty" ; - sys:has_restriction_on_class "attributive_verb" ; -. -sys:statePropertyObjectProperty - rdf:type rdf:Property ; - rdfs:label "state property object property" ; - rdfs:subPropertyOf sys:objectProperty ; -. -sys:structureProperty - rdf:type rdf:Property ; - rdfs:label "structure property" ; + sys:has_mother_property sys:stateProperty ; + sys:has_reference "stateProperty" ; + sys:has_restriction_on_class sys:attributive_verb ; . sys:verbClassProperty rdf:type rdf:Property ; rdfs:label "verb property" ; - rdfs:subPropertyOf sys:classProperty ; + rdfs:subPropertyOf sys:ObjectProperty ; . sys:verbType rdf:type rdf:Property ; diff --git a/prepare_work_data.py b/prepare_work_data.py index 95ec501c..3e914c96 100644 --- a/prepare_work_data.py +++ b/prepare_work_data.py @@ -152,18 +152,23 @@ def finalize_export_file(export_file): with open(export_file, "wt") as file: x = x.replace( "@prefix sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> .", - """@prefix sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> . -@prefix sys-Event: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/Event#> . -@prefix sys-event: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/eventObjectProperty#> . -@prefix sys-State_Property: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/State_Property#> . -@prefix sys-stateProperty: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/statePropertyObjectProperty#> . -@prefix sys-abstract_thing: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/abstract_thing#> . -@prefix sys-action_verb: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/action_verb#> . -@prefix sys-agent: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/agent#> . -@prefix sys-attributive_verb: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/attributive_verb#> . -@prefix sys-component: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/component#> . -@prefix sys-message: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/message#> . -@prefix sys-place: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/place#> .""") + """ + @prefix sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> . + @prefix sys-class: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/class/> . + @prefix sys-property: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/property/> . + @prefix sys-relation: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/relation/> . + @prefix sys-Event: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/Event#> . + @prefix sys-event: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/eventObjectProperty#> . + @prefix sys-State_Property: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/State_Property#> . + @prefix sys-stateProperty: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/statePropertyObjectProperty#> . + @prefix sys-abstract_thing: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/abstract_thing#> . + @prefix sys-action_verb: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/action_verb#> . + @prefix sys-agent: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/agent#> . + @prefix sys-attributive_verb: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/attributive_verb#> . + @prefix sys-component: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/component#> . + @prefix sys-message: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/message#> . + @prefix sys-place: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/place#> . + """) file.write(x) #============================================================================== @@ -204,9 +209,9 @@ def run(corpus, source_ref, target_ref): if __name__ == '__main__': target_ref = "system" #target_ref = "environment" - run(req_100, 'R100e', target_ref) - run(req_200, 'R200e', target_ref) - run(req_300, 'R300e', target_ref) + run(req_100, 'R100f', target_ref) + run(req_200, 'R200f', target_ref) + run(req_300, 'R300f', target_ref) #run(corpus_40, 'Corpus-CCTP-40e', target_ref) #run(corpus_ERTMS, 'Corpus-ERTMS', target_ref) #run(corpus_PEV, 'Corpus-PEV', target_ref) -- GitLab