diff --git a/.gitignore b/.gitignore index 4f20399b64dfb8ff5400aa713f3c420443384b1c..fbb09710f37f602680fd154a081131b32ab184f6 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,4 @@ devtemp*.py corpus/CCTP-SRSA-IP* .project *.ttl.tbc -output.ttl +output*.ttl diff --git a/config/semantic-net.ttl b/config/semantic-net.ttl index 1b3b04e3000e96c28cdf6f3b3f7dae531e18c18a..1aba98fa04ab448ff342876d0f2e2a7607986608 100644 --- a/config/semantic-net.ttl +++ b/config/semantic-net.ttl @@ -53,7 +53,7 @@ net:complement_mod_list net:concept rdf:type rdf:Property ; rdfs:label "concept "@fr ; - rdfs:subPropertyOf net:value ; + rdfs:subPropertyOf net:objectValue ; . net:entity rdf:type owl:Class ; @@ -63,12 +63,12 @@ net:entity net:entityClass rdf:type rdf:Property ; rdfs:label "entity class" ; - rdfs:subPropertyOf net:value ; + rdfs:subPropertyOf net:objectValue ; . net:entityInstance rdf:type rdf:Property ; rdfs:label "entity instance" ; - rdfs:subPropertyOf net:value ; + rdfs:subPropertyOf net:objectValue ; . net:entity_class_list rdf:type owl:Class ; @@ -83,63 +83,63 @@ net:entity_mod_list net:featureClass rdf:type rdf:Property ; rdfs:label "feature class" ; - rdfs:subPropertyOf net:value ; + rdfs:subPropertyOf net:objectValue ; . net:has_entity rdf:type rdf:Property ; rdfs:label "has entity" ; - rdfs:subPropertyOf net:relation ; + rdfs:subPropertyOf net:has_object ; . net:has_feature rdf:type rdf:Property ; rdfs:label "has feature" ; - rdfs:subPropertyOf net:relation ; + rdfs:subPropertyOf net:has_object ; . net:has_mainClass rdf:type rdf:Property ; rdfs:label "has main class" ; - rdfs:subPropertyOf net:relation ; + rdfs:subPropertyOf net:has_object ; +. +net:has_node + rdf:type rdf:Property ; + rdfs:label "UNL Node" ; + rdfs:subPropertyOf net:property ; +. +net:has_object + rdf:type rdf:Property ; + rdfs:label "relation" ; + rdfs:subPropertyOf net:property ; +. +net:has_structure + rdf:type rdf:Property ; + rdfs:label "Linguistic Structure (in UNL Document)" ; + rdfs:subPropertyOf net:property ; . net:has_subClass rdf:type rdf:Property ; rdfs:label "has sub class" ; - rdfs:subPropertyOf net:relation ; + rdfs:subPropertyOf net:has_object ; . net:listGuiding rdf:type rdf:Property ; rdfs:label "Guiding connector of a list (or, and)" ; - rdfs:subPropertyOf net:value ; + rdfs:subPropertyOf net:objectValue ; . net:modCat1 rdf:type rdf:Property ; rdfs:label "Modality Category (level 1)" ; - rdfs:subPropertyOf net:value ; + rdfs:subPropertyOf net:objectValue ; . net:modCat2 rdf:type rdf:Property ; rdfs:label "Modality Category (level 2)" ; - rdfs:subPropertyOf net:value ; + rdfs:subPropertyOf net:objectValue ; . net:mod_list rdf:type owl:Class ; rdfs:label "modList" ; rdfs:subClassOf net:Type ; . -net:node - rdf:type rdf:Property ; - rdfs:label "UNL Node" ; - rdfs:subPropertyOf net:property ; -. -net:objLS - rdf:type rdf:Property ; - rdfs:label "Object Linguistic Structure" ; - rdfs:subPropertyOf net:objectAttribute ; -. -net:objUW - rdf:type rdf:Property ; - rdfs:label "Object Universal Word" ; - rdfs:subPropertyOf net:objectAttribute ; -. net:objectAttribute rdf:type rdf:Property ; rdfs:label "object attribute" ; @@ -147,29 +147,19 @@ net:objectAttribute net:objectType rdf:type rdf:Property ; rdfs:label "object type" ; - rdfs:subPropertyOf net:property ; -. -net:property - rdf:type rdf:Property ; - rdfs:label "netProperty" ; + rdfs:subPropertyOf net:objectAttribute ; . -net:relation +net:objectValue rdf:type rdf:Property ; - rdfs:label "relation" ; - rdfs:subPropertyOf net:property ; + rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:objectAttribute ; . -net:structure +net:property rdf:type rdf:Property ; - rdfs:label "Linguistic Structure (in UNL Document)" ; - rdfs:subPropertyOf net:property ; + rdfs:label "netProperty" ; . net:type rdf:type rdf:Property ; rdfs:label "type "@fr ; rdfs:subPropertyOf net:property ; . -net:value - rdf:type rdf:Property ; - rdfs:label "valuations"@fr ; - rdfs:subPropertyOf net:property ; -. diff --git a/config/transduction-schemes.ttl b/config/transduction-schemes.ttl index 83676980e3591b90e59408de7543ee1befc1798e..75a476c46bd5f236f8a2c5cceb6147ff9601a846 100644 --- a/config/transduction-schemes.ttl +++ b/config/transduction-schemes.ttl @@ -54,12 +54,15 @@ WHERE { ?net1 a net:Instance. ?net1 net:type net:entity_class_list. ?net1 net:entityClass ?entityClass. - ?net1 net:node ?uw2. - ?net1 net:node ?uw3. - ?net1 net:has_mainClass ?mainEntity. - ?net1 net:has_subClass ?subEntity2. - ?net1 net:has_subClass ?subEntity3. - ?net1 net:entityInstance ?mainInstance. + ?net1 net:has_node ?uw2, ?uw3. + ?net1 net:has_mainClass ?mainEntityObject. + ?mainEntityObject net:concept ?mainEntity. + ?net1 net:has_subClass ?subEntityObject2, ?subEntityObject3. + ?subEntityObject2 net:concept ?subEntity2. + ?subEntityObject2 net:has_node ?uw2. + ?subEntityObject3 net:concept ?subEntity3. + ?subEntityObject3 net:has_node ?uw3. + ?subEntityObject3 net:entityInstance ?mainInstance. # extension: disjunction of UW ?uw2 unl:and ?uw3. # --old --- FILTER NOT EXISTS { ?net2 net:has_subClass ?mainEntity }. @@ -70,8 +73,8 @@ WHERE { BIND (strbefore(?uw2Label, '(') AS ?concept2) BIND (strbefore(?uw3Label, '(') AS ?concept3) BIND (concat(?concept2, '-or-', ?concept3) AS ?concept23) - FILTER ( STRSTARTS(?subEntity2, ?concept2) ). - FILTER ( STRSTARTS(?subEntity3, ?concept3) ). + # --old --- FILTER ( STRSTARTS(?subEntity2, ?concept2) ). + # --old --- FILTER ( STRSTARTS(?subEntity3, ?concept3) ). # -- old --- BIND (concat(?concept2, '_', ?mainEntity) AS ?subEntity2). # -- old --- BIND (concat(?concept3, '_', ?mainEntity) AS ?subEntity3). BIND (concat(?concept23, '_', ?mainEntity) AS ?subEntity23). @@ -123,12 +126,15 @@ WHERE { ?net1 a net:Instance. ?net1 net:type net:entity_class_list. ?net1 net:entityClass ?entityClass. - ?net1 net:node ?uw2. - ?net1 net:node ?uw3. - ?net1 net:has_mainClass ?mainEntity. - ?net1 net:has_subClass ?subEntity2. - ?net1 net:has_subClass ?subEntity3. - ?net1 net:entityInstance ?mainInstance. + ?net1 net:has_node ?uw2, ?uw3. + ?net1 net:has_mainClass ?mainEntityObject. + ?mainEntityObject net:concept ?mainEntity. + ?net1 net:has_subClass ?subEntityObject2, ?subEntityObject3. + ?subEntityObject2 net:concept ?subEntity2. + ?subEntityObject2 net:has_node ?uw2. + ?subEntityObject3 net:concept ?subEntity3. + ?subEntityObject3 net:has_node ?uw3. + ?subEntityObject3 net:entityInstance ?mainInstance. # extension: disjunction of UW ?uw2 unl:or ?uw3. # --old --- FILTER NOT EXISTS { ?net2 net:has_subClass ?mainEntity }. @@ -139,8 +145,8 @@ WHERE { BIND (strbefore(?uw2Label, '(') AS ?concept2) BIND (strbefore(?uw3Label, '(') AS ?concept3) BIND (concat(?concept2, '-or-', ?concept3) AS ?concept23) - FILTER ( STRSTARTS(?subEntity2, ?concept2) ). - FILTER ( STRSTARTS(?subEntity3, ?concept3) ). + # --old --- FILTER ( STRSTARTS(?subEntity2, ?concept2) ). + # --old --- FILTER ( STRSTARTS(?subEntity3, ?concept3) ). # -- old --- BIND (concat(?concept2, '_', ?mainEntity) AS ?subEntity2). # -- old --- BIND (concat(?concept3, '_', ?mainEntity) AS ?subEntity3). BIND (concat(?concept23, '_', ?mainEntity) AS ?subEntity23). @@ -276,9 +282,11 @@ WHERE { ?net1 a net:Instance. ?net1 net:type net:entity_class_list. ?net1 net:entityClass ?entityClass. - ?net1 net:has_mainClass ?mainEntity. - ?net1 net:has_subClass ?subEntity. - ?net1 net:entityInstance ?mainInstance. + ?net1 net:has_mainClass ?mainEntityObject. + ?mainEntityObject net:concept ?mainEntity. + ?net1 net:has_subClass ?subEntityObject. + ?subEntityObject net:concept ?subEntity. + ?subEntityObject net:entityInstance ?mainInstance. # Filter -- old --- FILTER NOT EXISTS { ?net2 net:has_subClass ?mainEntity} # URI (for classes) # -- old --- BIND (concat(?concept2, '_', ?mainEntity) AS ?subEntity). @@ -297,6 +305,37 @@ WHERE { }""" ; sh:order 512.1 ; . +cts:batch_execution + rdf:type owl:Class ; + rdf:type sh:NodeShape ; + rdfs:label "batch execution" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-entity-classes ; + sh:rule cts:add-disjunctive-entity-classes ; + sh:rule cts:add-entity-classes ; + sh:rule cts:add-feature-classes ; + sh:rule cts:add-list-of-entity-classes ; + sh:rule cts:bypass-reification ; + sh:rule cts:complement-list-of-entity-classes ; + sh:rule cts:compose-entity-modlist-1 ; + sh:rule cts:compose-entity-modlist-2 ; + sh:rule cts:compose-entity-modlist-3 ; + sh:rule cts:create-entity-net ; + sh:rule cts:create-feature-net ; + sh:rule cts:define-uw-id ; + sh:rule cts:extend-mod-list ; + sh:rule cts:init-mod-list ; + sh:rule cts:instantiate-classlist-by-extension-1 ; + sh:rule cts:instantiate-classlist-by-extension-2 ; + sh:rule cts:instantiate-entity-net ; + sh:rule cts:link-to-scope-entry ; + sh:rule cts:typify-modlist-entity ; + sh:rule cts:typify-modlist-feature ; +. +cts:batch_execution_1 + rdf:type cts:batch_execution ; + rdfs:label "batch execution 1" ; +. cts:bypass-reification rdf:type sh:SPARQLRule ; sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> @@ -344,12 +383,13 @@ WHERE { ?net1 a net:Instance. ?net1 net:type net:entity_class_list. ?net1 net:entityClass ?entityClass. - ?net1 net:has_subClass ?subEntity. - ?net1 net:has_feature ?featureObject. + ?net1 net:has_subClass ?subEntityObject. + ?subEntityObject net:concept ?subEntity. + ?subEntityObject net:has_feature ?featureObject. # object: feature ?featureObject a net:Object. ?featureObject net:objectType sys:Feature. - ?featureObject net:node ?FeatureUW. + ?featureObject net:has_node ?FeatureUW. ?featureObject net:featureClass ?featureClass. ?featureObject net:concept ?featureConcept. # URI: entity class @@ -380,38 +420,48 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> # -- Compose an Entity net and a Complement ModList net CONSTRUCT { - # Net Object: feature + # Object: feature 2 ?newFeature2 a net:Object. ?newFeature2 net:objectType sys:Feature. - ?newFeature2 net:node ?uw2. + ?newFeature2 net:has_node ?uw2. ?newFeature2 net:featureClass ?featureClass. ?newFeature2 net:concept ?concept2. + # Object: feature 3 ?newFeature3 a net:Object. ?newFeature3 net:objectType sys:Feature. - ?newFeature3 net:node ?uw3. + ?newFeature3 net:has_node ?uw3. ?newFeature3 net:featureClass ?featureClass. ?newFeature3 net:concept ?concept3. + # Object: entity 2 + ?newEntity2 a net:Object. + ?newEntity2 net:objectType sys:Entity. + ?newEntity2 net:has_node ?uw2. + ?newEntity2 net:entityClass ?entityClass. + ?newEntity2 net:concept ?subEntity2. + ?newEntity2 net:has_feature ?newFeature2. + # Object: entity 3 + ?newEntity3 a net:Object. + ?newEntity3 net:objectType sys:Entity. + ?newEntity3 net:has_node ?uw3. + ?newEntity3 net:entityClass ?entityClass. + ?newEntity3 net:concept ?subEntity3. + ?newEntity3 net:has_feature ?newFeature3. # Net: Entity ClassList ?newNet a net:Instance. ?newNet net:type net:entity_class_list. - ?newNet net:structure ?req. - ?newNet net:node ?uw1. - ?newNet net:node ?uw2. - ?newNet net:node ?uw3. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. ?newNet net:entityClass ?entityClass. - # -- old --- ?newNet net:featureClass ?featureClass. - ?newNet net:has_mainClass ?mainEntity. - ?newNet net:has_subClass ?subEntity2. - ?newNet net:has_subClass ?subEntity3. - ?newNet net:has_feature ?newFeature2. - ?newNet net:has_feature ?newFeature3. + ?newNet net:has_mainClass ?entityObject1. + ?newNet net:has_subClass ?newEntity2, ?newEntity3. + ?newNet net:has_feature ?newFeature2, ?newFeature3. } WHERE { # net1: entity ?net1 a net:Instance. ?net1 net:type net:entity. - ?net1 net:structure ?req. - ?net1 net:node ?uw1. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. ?net1 net:has_entity ?entityObject1. ?entityObject1 net:entityClass ?entityClass. ?entityObject1 net:concept ?mainEntity. @@ -420,9 +470,8 @@ WHERE { # net2: complement modList ?net2 a net:Instance. ?net2 net:type net:complement_mod_list. - ?net2 net:structure ?req. - ?net2 net:node ?uw2. - ?net2 net:node ?uw3. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2, ?uw3. ?net2 net:modCat2 ?featureClass. # --old --- ?net2 net:concept ?subConcept. # Filter @@ -447,11 +496,16 @@ WHERE { # URI (for Feature Object) cprm:Config_Parameters cprm:netURI ?netURI. cprm:Config_Parameters cprm:objectRef ?objectRef. - BIND (concat( ?netURI, ?objectRef) AS ?f1). - BIND (concat(?f1, ?uw2Id) AS ?f2). - BIND (concat(?f1, ?uw3Id) AS ?f3). + BIND (concat( ?netURI, ?objectRef) AS ?o1). + BIND (concat(?o1, ?uw2Id) AS ?f2). + BIND (concat(?o1, ?uw3Id) AS ?f3). BIND (uri(?f2) AS ?newFeature2). BIND (uri(?f3) AS ?newFeature3). + # URI (for Entity Object) + BIND (concat(?f2, '_', ?subEntity2) AS ?e2). + BIND (concat(?f3, '_', ?subEntity3) AS ?e3). + BIND (uri(?e2) AS ?newEntity2). + BIND (uri(?e3) AS ?newEntity3). # URI (for ClassList Net) cprm:Config_Parameters cprm:netURI ?netURI. net:class_list rdfs:label ?classListLabel. @@ -476,38 +530,48 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> # -- Compose an Entity net and an Entity ModList net (with distinct entity classes) CONSTRUCT { - # Net Object: feature + # Object: feature 2 ?newFeature2 a net:Object. ?newFeature2 net:objectType sys:Feature. - ?newFeature2 net:node ?uw2. + ?newFeature2 net:has_node ?uw2. ?newFeature2 net:featureClass ?entityClass2. ?newFeature2 net:concept ?concept2. + # Object: feature 3 ?newFeature3 a net:Object. ?newFeature3 net:objectType sys:Feature. - ?newFeature3 net:node ?uw3. + ?newFeature3 net:has_node ?uw3. ?newFeature3 net:featureClass ?entityClass2. ?newFeature3 net:concept ?concept3. + # Object: entity 2 + ?newEntity2 a net:Object. + ?newEntity2 net:objectType sys:Entity. + ?newEntity2 net:has_node ?uw2. + ?newEntity2 net:entityClass ?entityClass2. + ?newEntity2 net:concept ?subEntity2. + ?newEntity2 net:has_feature ?newFeature2. + # Object: entity 3 + ?newEntity3 a net:Object. + ?newEntity3 net:objectType sys:Entity. + ?newEntity3 net:has_node ?uw3. + ?newEntity3 net:entityClass ?entityClass2. + ?newEntity3 net:concept ?subEntity3. + ?newEntity3 net:has_feature ?newFeature3. # Net: Entity ClassList ?newNet a net:Instance. ?newNet net:type net:entity_class_list. - ?newNet net:structure ?req. - ?newNet net:node ?uw1. - ?newNet net:node ?uw2. - ?newNet net:node ?uw3. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. ?newNet net:entityClass ?entityClass1. - # -- old --- ?newNet net:featureClass ?entityClass2. - ?newNet net:has_mainClass ?mainEntity. - ?newNet net:has_subClass ?subEntity2. - ?newNet net:has_subClass ?subEntity3. - ?newNet net:has_feature ?newFeature2. - ?newNet net:has_feature ?newFeature3. + ?newNet net:has_mainClass ?entityObject1. + ?newNet net:has_subClass ?newEntity2, ?newEntity3. + ?newNet net:has_feature ?newFeature2, ?newFeature3. } WHERE { # net1: agent ?net1 a net:Instance. ?net1 net:type net:entity. - ?net1 net:structure ?req. - ?net1 net:node ?uw1. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. ?net1 net:has_entity ?entityObject1. ?entityObject1 net:entityClass ?entityClass1. ?entityObject1 net:concept ?mainEntity. @@ -518,11 +582,8 @@ WHERE { ?net2 net:type net:entity_mod_list. ?net2 net:modCat1 fprm:System_Entity. ?net2 net:modCat2 ?entityClass2. - ?net2 net:structure ?req. - ?net2 net:node ?uw2. - ?net2 net:node ?uw3. - # --old --- ?net2 net:concept ?subConcept. - # -- old --- ?net2 net:entityClass ?entityClass2. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2, ?uw3. # Filter FILTER ( ?uw1 != ?uw3 ). FILTER ( ?entityClass1 != ?entityClass2 ). @@ -546,11 +607,16 @@ WHERE { # URI (for Feature Object) cprm:Config_Parameters cprm:netURI ?netURI. cprm:Config_Parameters cprm:objectRef ?objectRef. - BIND (concat( ?netURI, ?objectRef) AS ?f1). - BIND (concat(?f1, ?uw2Id) AS ?f2). - BIND (concat(?f1, ?uw3Id) AS ?f3). + BIND (concat( ?netURI, ?objectRef) AS ?o1). + BIND (concat(?o1, ?uw2Id) AS ?f2). + BIND (concat(?o1, ?uw3Id) AS ?f3). BIND (uri(?f2) AS ?newFeature2). BIND (uri(?f3) AS ?newFeature3). + # URI (for Entity Object) + BIND (concat(?f2, '_', ?subEntity2) AS ?e2). + BIND (concat(?f3, '_', ?subEntity3) AS ?e3). + BIND (uri(?e2) AS ?newEntity2). + BIND (uri(?e3) AS ?newEntity3). # URI (for ClassList Net) cprm:Config_Parameters cprm:netURI ?netURI. net:class_list rdfs:label ?classListLabel. @@ -575,25 +641,33 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> # -- Compose an Entity net and an Entity ModList net (with same entity classes) CONSTRUCT { + # Object: entity 2 + ?newEntity2 a net:Object. + ?newEntity2 net:objectType sys:Entity. + ?newEntity2 net:has_node ?uw2. + ?newEntity2 net:entityClass ?entityClass2. + ?newEntity2 net:concept ?subEntity2. + # Object: entity 3 + ?newEntity3 a net:Object. + ?newEntity3 net:objectType sys:Entity. + ?newEntity3 net:has_node ?uw3. + ?newEntity3 net:entityClass ?entityClass2. + ?newEntity3 net:concept ?subEntity3. # Net: Entity ClassList ?newNet a net:Instance. ?newNet net:type net:entity_class_list. - ?newNet net:structure ?req. - ?newNet net:node ?uw1. - ?newNet net:node ?uw2. - ?newNet net:node ?uw3. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1, ?uw2, ?uw3. ?newNet net:entityClass ?entityClass1. - # -- old --- ?newNet net:featureClass \"None\". - ?newNet net:has_mainClass ?mainEntity. - ?newNet net:has_subClass ?subEntity2. - ?newNet net:has_subClass ?subEntity3. + ?newNet net:has_mainClass ?entityObject1. + ?newNet net:has_subClass ?newEntity2, ?newEntity3. } WHERE { # net1: agent ?net1 a net:Instance. ?net1 net:type net:entity. - ?net1 net:structure ?req. - ?net1 net:node ?uw1. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. ?net1 net:has_entity ?entityObject1. ?entityObject1 net:entityClass ?entityClass1. ?entityObject1 net:concept ?mainEntity. @@ -604,10 +678,8 @@ WHERE { ?net2 net:type net:entity_mod_list. ?net2 net:modCat1 fprm:System_Entity. ?net2 net:modCat2 ?entityClass2. - ?net2 net:structure ?req. - ?net2 net:node ?uw2. - ?net2 net:node ?uw3. - # --old --- ?net2 net:concept ?subConcept. + ?net2 net:has_structure ?req. + ?net2 net:has_node ?uw2, ?uw3. # Filter FILTER ( ?uw1 != ?uw3 ). FILTER ( ?entityClass1 = ?entityClass2 ). @@ -621,11 +693,21 @@ WHERE { # Label: Id, subEntity ?uw1 unl:has_id ?uw1Id. ?uw2 unl:has_id ?uw2Id. - # -- old --- ?uw3 unl:has_id ?uw3Id. + ?uw3 unl:has_id ?uw3Id. ?uw2 rdfs:label ?uw2Label. ?uw3 rdfs:label ?uw3Label. BIND (strbefore(?uw2Label, '(') AS ?subEntity2) BIND (strbefore(?uw3Label, '(') AS ?subEntity3) + # URI (for Entity Object) + cprm:Config_Parameters cprm:netURI ?netURI. + cprm:Config_Parameters cprm:objectRef ?objectRef. + BIND (concat( ?netURI, ?objectRef) AS ?e1). + BIND (concat(?e1, ?uw2Id) AS ?e2a). + BIND (concat(?e1, ?uw3Id) AS ?e3a). + BIND (concat(?e2a, '_', ?subEntity2) AS ?e2b). + BIND (concat(?e3a, '_', ?subEntity3) AS ?e3b). + BIND (uri(?e2b) AS ?newEntity2). + BIND (uri(?e3b) AS ?newEntity3). # URI (for ClassList Net) cprm:Config_Parameters cprm:netURI ?netURI. net:class_list rdfs:label ?classListLabel. @@ -659,8 +741,8 @@ CONSTRUCT { # Net: Entity ?newNet a net:Instance. ?newNet net:type net:entity. - ?newNet net:structure ?req. - ?newNet net:node ?uw1. + ?newNet net:has_structure ?req. + ?newNet net:has_node ?uw1. ?newNet net:has_entity ?newEntity. } WHERE { @@ -709,8 +791,8 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> CONSTRUCT { ?semNet a net:Instance. ?semNet net:type net:feature. - ?semNet net:structure ?req. - ?semNet net:node ?uw1. + ?semNet net:has_structure ?req. + ?semNet net:has_node ?uw1. ?semNet net:featureClass ?featureClass. ?semNet net:concept ?concept1. } @@ -789,10 +871,6 @@ cts:entity_extraction sh:rule cts:typify-modlist-entity ; sh:rule cts:typify-modlist-feature ; . -cts:entity_extraction_1 - rdf:type cts:entity_extraction ; - rdfs:label "entity extraction 1" ; -. cts:extend-mod-list rdf:type sh:SPARQLRule ; sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> @@ -808,14 +886,14 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> # -- Extend a ModList net CONSTRUCT { - ?semNet net:node ?uw2. + ?semNet net:has_node ?uw2. ?semNet net:concept ?concept2. } WHERE { # selection: modList net ?semNet a net:Instance. ?semNet net:type net:mod_list. - ?semNet net:node ?uw1. + ?semNet net:has_node ?uw1. # extension: disjunction of UW ?uw1 (unl:or|unl:and) ?uw2. # UW: type UW-Occurrence and substructure of req sentence @@ -838,10 +916,6 @@ cts:feature_extraction rdfs:subClassOf cts:net_extension ; sh:rule cts:create-feature-net ; . -cts:feature_extraction_1 - rdf:type cts:feature_extraction ; - rdfs:label "feature extraction 1" ; -. cts:generation rdf:type owl:Class ; rdf:type sh:NodeShape ; @@ -854,10 +928,6 @@ cts:generation sh:rule cts:add-list-of-entity-classes ; sh:rule cts:complement-list-of-entity-classes ; . -cts:generation_1 - rdf:type cts:generation ; - rdfs:label "generation 1" ; -. cts:init-mod-list rdf:type sh:SPARQLRule ; sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> @@ -875,8 +945,8 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> CONSTRUCT { ?semNet a net:Instance. ?semNet net:type net:mod_list. - ?semNet net:structure ?req. - ?semNet net:node ?uw1. + ?semNet net:has_structure ?req. + ?semNet net:has_node ?uw1. ?semNet net:concept ?concept1. } WHERE { @@ -914,27 +984,29 @@ 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 an Entity net and an Entity ModList net (with same entity classes) +# -- Instantiate entities in class list by extension of instances (2) CONSTRUCT { - ?net2 net:entityInstance ?instanceName1. + ?subObject2 net:entityInstance ?instanceName1. } WHERE { # net1: entity with instance ?net1 a net:Instance. ?net1 net:type net:entity. - ?net1 net:structure ?sameReq. - ?net1 net:has_entity ?entityObject1. - ?entityObject1 net:entityClass ?sameClass. - ?entityObject1 net:concept ?sameEntity. - ?entityObject1 net:entityInstance ?instanceName1. + ?net1 net:has_structure ?sameReq. + ?net1 net:has_entity ?sameObject1. + # -- old --- ?entityObject1 net:entityClass ?sameClass. + # -- old --- ?entityObject1 net:concept ?sameEntity. + ?sameObject1 net:entityInstance ?instanceName1. # net2: entity classList ?net2 a net:Instance. ?net2 net:type net:entity_class_list. ?net2 net:entityClass ?sameClass. - ?net2 net:structure ?sameReq. - ?net2 net:has_mainClass ?sameEntity. + ?net2 net:has_structure ?sameReq. + ?net2 net:has_mainClass ?sameObject1. + # -- old --- ?net2 net:has_mainClass ?sameEntity. + ?net2 net:has_subClass ?subObject2. # Filter - FILTER NOT EXISTS { ?net2 net:entityInstance ?instanceName2 } . + FILTER NOT EXISTS { ?subObject2 net:entityInstance ?instanceName2 } . }""" ; sh:order "224"^^xsd:decimal ; . @@ -951,26 +1023,29 @@ 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 an Entity net and an Entity ModList net (with same entity classes) +# -- Instantiate entities in class list by extension of instances (2) CONSTRUCT { - ?net2 net:entityInstance ?instanceName1. + ?subObject2 net:entityInstance ?instanceName1. } WHERE { # net2: entity classList with instance ?net1 a net:Instance. ?net1 net:type net:entity_class_list. ?net1 net:entityClass ?sameClass. - ?net1 net:structure ?sameReq. - ?net1 net:has_subClass ?sameEntity. - ?net1 net:entityInstance ?instanceName1. + ?net1 net:has_structure ?sameReq. + ?net1 net:has_subClass ?entityObject1. + ?entityObject1 net:concept ?sameEntity. + ?entityObject1 net:entityInstance ?instanceName1. # net2: another entity classList ?net2 a net:Instance. ?net2 net:type net:entity_class_list. ?net2 net:entityClass ?sameClass. - ?net2 net:structure ?sameReq. - ?net2 net:has_mainClass ?sameEntity. + ?net2 net:has_structure ?sameReq. + ?net2 net:has_mainClass ?entityObject2. + ?entityObject2 net:concept ?sameEntity. + ?net2 net:has_subClass ?subObject2. # Filter - FILTER NOT EXISTS { ?net2 net:entityInstance ?instanceName2 } . + FILTER NOT EXISTS { ?subObject2 net:entityInstance ?instanceName2 } . }""" ; sh:order "225"^^xsd:decimal ; . @@ -996,7 +1071,8 @@ WHERE { # net1: entity (with entity object) ?net1 a net:Instance. ?net1 net:type net:entity. - ?net1 net:node ?uw1. + ?net1 net:has_structure ?req. + ?net1 net:has_node ?uw1. ?net1 net:has_entity ?entityObject1. # condition: agt/obj(uw0, uw1) ?uw0 (unl:agt | unl:obj) ?uw1. @@ -1056,10 +1132,6 @@ cts:preprocessing sh:rule cts:define-uw-id ; sh:rule cts:link-to-scope-entry ; . -cts:preprocessing_1 - rdf:type cts:preprocessing ; - rdfs:label "preprocessing 1" ; -. cts:property_extraction rdf:type owl:Class ; rdf:type sh:NodeShape ; @@ -1093,7 +1165,7 @@ WHERE { # net: modList ?semNet a net:Instance. ?semNet net:type net:mod_list. - ?semNet net:node ?uw1. + ?semNet net:has_node ?uw1. # UW: type UW-Occurrence and substructure of req sentence ?uw1 rdf:type unl:UW_Occurrence. ?uw1 unl:is_substructure_of ?req. @@ -1131,7 +1203,7 @@ WHERE { # net: modList ?semNet a net:Instance. ?semNet net:type net:mod_list. - ?semNet net:node ?uw1. + ?semNet net:has_node ?uw1. # UW: type UW-Occurrence and substructure of req sentence ?uw1 rdf:type unl:UW_Occurrence. ?uw1 unl:is_substructure_of ?req. diff --git a/prepare_work_data.py b/prepare_work_data.py index 093837cd6f7d388478bb4495366461532d70ee69..c0120d90743b336959616054745fc7efc042e05d 100644 --- a/prepare_work_data.py +++ b/prepare_work_data.py @@ -118,10 +118,12 @@ def load_cts(work_graph): # Result (export) #============================================================================== -def export_result(work_graph): - export_file = 'output.ttl' +def export_result(work_graph, export_ref, export_file): print("-- Export result as turtle: " + export_file) - work_graph.serialize(destination=export_file, base=base_uri, format='turtle') + + work_graph.serialize(destination=export_file, + base=base_uri + '/' + export_ref, + format='turtle') @@ -129,9 +131,9 @@ def export_result(work_graph): # Main Function #============================================================================== -def run(): +def run(corpus, output_ref, output_file): try: - print("Tenet Processing") + print("[Tenet] Prepare work data from corpus " + corpus) print("\n" + "- Graph Initialization") work_graph = Graph() @@ -142,10 +144,12 @@ def run(): load_cts(work_graph) print("\n" + "- Data Source Imports") - load_sentences(work_graph, corpus_1) + load_sentences(work_graph, corpus) print("\n" + "- Result") - export_result(work_graph) + export_result(work_graph, output_ref, output_file) + + print() except: print("!!! An exception occurred !!!") @@ -156,8 +160,8 @@ def run(): #============================================================================== if __name__ == '__main__': - run() - + run(corpus_1, 'CCTP1', 'output1.ttl') + run(corpus_40, 'CCTP40', 'output40.ttl')