diff --git a/config/transduction-schemes.ttl b/config/transduction-schemes.ttl index 8e189bca203c3dc7bd8850a1ee57d3fa11f58bbe..334cb8cf21bbfafefd4d7c8bcee37c45375497f2 100644 --- a/config/transduction-schemes.ttl +++ b/config/transduction-schemes.ttl @@ -30,7 +30,7 @@ cts:abstraction_extraction rdfs:label "abstraction extension" ; rdfs:subClassOf cts:net_extension ; . -cts:add-conjunctive-entity-classes +cts:add-conjunctive-classes-from-list-net rdf:type sh:SPARQLRule ; rdfs:label "add-conjunctive-entity-classes" ; sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> @@ -44,63 +44,51 @@ 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 Disjunctive Entity classes in System Ontology +# -- Add disjunctive classes in Ontology CONSTRUCT { # Classification - ?subEntity23Uri rdfs:subClassOf ?mainEntityUri. - ?subEntity23Uri rdfs:label ?subEntity23. - ?subEntity23Uri sys:from_structure ?req. - ?subEntity23Uri + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?newClassLabel. + ?newClassUri sys:from_structure ?req. + ?newClassUri owl:equivalentClass [ a owl:Class ; - owl:intersectionOf ( ?subEntity2Uri ?subEntity3Uri ) ] . + owl:intersectionOf ( ?item1Uri ?item2Uri ) ] . # Instantiation (extension) - ?mainInstanceUri rdf:type ?subEntity23Uri. + ?instanceUri rdf:type ?newClassUri. } WHERE { # net1: Composite List ?net1 a net:Instance. ?net1 net:type net:list. ?net1 net:listOf net:composite. - # -- old --- ?net1 net:type net:entity_class_list. ?net1 net:has_structure ?req. - # -- old --- ?net1 net:entityClass ?entityClass. - ?net1 net:has_node ?uw2, ?uw3. + ?net1 net:has_node ?uw1, ?uw2. ?net1 net:has_parent ?parentObject. - ?parentObject net:has_parent_class ?parentClass. # -- old --- ?entityClass - ?parentObject net:has_concept ?mainEntity. - ?net1 net:has_item ?subEntityObject2, ?subEntityObject3. - ?subEntityObject2 net:concept ?subEntity2. - ?subEntityObject2 net:has_node ?uw2. - ?subEntityObject3 net:has_concept ?subEntity3. - ?subEntityObject3 net:has_node ?uw3. - ?subEntityObject3 net:has_instance ?mainInstance. + ?parentObject net:has_class_uri ?parentUri. + ?parentObject net:has_instance_uri ?instanceUri. + ?parentObject net:has_concept ?parentConcept. + ?net1 net:has_item ?itemObject1, ?itemObject2. + ?itemObject1 net:has_class_uri ?item1Uri. + ?itemObject1 net:has_node ?uw1. + ?itemObject2 net:has_class_uri ?item2Uri. + ?itemObject2 net:has_node ?uw2. # extension: disjunction of UW - ?uw2 unl:and ?uw3. + ?uw1 unl:and ?uw2. # Label(s) / URI (for classes) + ?uw1 rdfs:label ?uw1Label. ?uw2 rdfs:label ?uw2Label. - ?uw3 rdfs:label ?uw3Label. + BIND (strbefore(?uw1Label, '(') AS ?concept1) BIND (strbefore(?uw2Label, '(') AS ?concept2) - BIND (strbefore(?uw3Label, '(') AS ?concept3) - BIND (concat(?concept2, '-or-', ?concept3) AS ?concept23) - BIND (concat(?concept23, '_', ?mainEntity) AS ?subEntity23). + BIND (concat(?concept1, '-or-', ?concept2) AS ?disjunctiveConcept) + BIND (concat(?disjunctiveConcept, '_', ?parentConcept) AS ?newClassLabel). # URI (for classes) sys:Structure sys:has_frame_uri ?frameURI. - BIND (concat( ?frameURI, ?parentClass) AS ?s1). # -- old --- BIND (concat( ?frameURI, ?parentClass) AS ?s1). - BIND (concat(?frameURI, ?mainEntity) AS ?s2). # -- old --- BIND (concat(?s1, '#', ?mainEntity) AS ?s2). - BIND (concat(?frameURI, ?subEntity2) AS ?s3). # -- old --- BIND (concat(?s1, '#', ?subEntity2) AS ?s3). - BIND (concat(?frameURI, ?subEntity3) AS ?s4). # -- old --- BIND (concat(?s1, '#', ?subEntity3) AS ?s4). - BIND (concat(?frameURI, ?subEntity23) AS ?s5). # -- old --- BIND (concat(?s1, '#', ?subEntity23) AS ?s5). - BIND (uri(?s2) AS ?mainEntityUri). - BIND (uri(?s3) AS ?subEntity2Uri). - BIND (uri(?s4) AS ?subEntity3Uri). - BIND (uri(?s5) AS ?subEntity23Uri). - # URI (for instance) - BIND (concat(?s1, '#', ?mainInstance) AS ?s6). - BIND (uri(?s6) AS ?mainInstanceUri). + BIND (concat(?frameURI, ?newClassLabel) AS ?s5). + BIND (uri(?s5) AS ?newClassUri). }""" ; - sh:order 3.4 ; + sh:order 3.23 ; . -cts:add-disjunctive-entity-classes +cts:add-disjunctive-classes-from-list-net rdf:type sh:SPARQLRule ; rdfs:label "add-disjunctive-entity-classes" ; sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> @@ -114,61 +102,49 @@ 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 Disjunctive Entity classes in System Ontology +# -- Add disjunctive classes in Ontology CONSTRUCT { # Classification - ?subEntity23Uri rdfs:subClassOf ?mainEntityUri. - ?subEntity23Uri rdfs:label ?subEntity23. - ?subEntity23Uri sys:from_structure ?req. - ?subEntity23Uri + ?newClassUri rdfs:subClassOf ?parentUri. + ?newClassUri rdfs:label ?newClassLabel. + ?newClassUri sys:from_structure ?req. + ?newClassUri owl:equivalentClass [ a owl:Class ; - owl:unionOf ( ?subEntity2Uri ?subEntity3Uri ) ] . + owl:unionOf ( ?item1Uri ?item2Uri ) ] . # Instantiation (extension) - ?mainInstanceUri rdf:type ?subEntity23Uri. + ?instanceUri rdf:type ?newClassUri. } WHERE { # net1: Composite List ?net1 a net:Instance. ?net1 net:type net:list. ?net1 net:listOf net:composite. - # -- old --- ?net1 net:type net:entity_class_list. ?net1 net:has_structure ?req. - # -- old --- ?net1 net:entityClass ?entityClass. - ?net1 net:has_node ?uw2, ?uw3. + ?net1 net:has_node ?uw1, ?uw2. ?net1 net:has_parent ?parentObject. - ?parentObject net:has_parent_class ?parentClass. # -- old --- ?entityClass - ?parentObject net:has_concept ?mainEntity. - ?net1 net:has_item ?subEntityObject2, ?subEntityObject3. - ?subEntityObject2 net:has_concept ?subEntity2. - ?subEntityObject2 net:has_node ?uw2. - ?subEntityObject3 net:has_concept ?subEntity3. - ?subEntityObject3 net:has_node ?uw3. - ?subEntityObject3 net:has_instance ?mainInstance. + ?parentObject net:has_class_uri ?parentUri. + ?parentObject net:has_instance_uri ?instanceUri. + ?parentObject net:has_concept ?parentConcept. + ?net1 net:has_item ?itemObject1, ?itemObject2. + ?itemObject1 net:has_class_uri ?item1Uri. + ?itemObject1 net:has_node ?uw1. + ?itemObject2 net:has_class_uri ?item2Uri. + ?itemObject2 net:has_node ?uw2. # extension: disjunction of UW - ?uw2 unl:or ?uw3. + ?uw1 unl:or ?uw2. # Label(s) / URI (for classes) + ?uw1 rdfs:label ?uw1Label. ?uw2 rdfs:label ?uw2Label. - ?uw3 rdfs:label ?uw3Label. + BIND (strbefore(?uw1Label, '(') AS ?concept1) BIND (strbefore(?uw2Label, '(') AS ?concept2) - BIND (strbefore(?uw3Label, '(') AS ?concept3) - BIND (concat(?concept2, '-or-', ?concept3) AS ?concept23) - BIND (concat(?concept23, '_', ?mainEntity) AS ?subEntity23). + BIND (concat(?concept1, '-or-', ?concept2) AS ?disjunctiveConcept) + BIND (concat(?disjunctiveConcept, '_', ?parentConcept) AS ?newClassLabel). # URI (for classes) sys:Structure sys:has_frame_uri ?frameURI. - BIND (concat( ?frameURI, ?parentClass) AS ?s1). # -- old --- BIND (concat( ?frameURI, ?parentClass) AS ?s1). - BIND (concat(?frameURI, ?mainEntity) AS ?s2). # -- old --- BIND (concat(?s1, '#', ?mainEntity) AS ?s2). - BIND (concat(?frameURI, ?subEntity2) AS ?s3). # -- old --- BIND (concat(?s1, '#', ?subEntity2) AS ?s3). - BIND (concat(?frameURI, ?subEntity3) AS ?s4). # -- old --- BIND (concat(?s1, '#', ?subEntity3) AS ?s4). - BIND (concat(?frameURI, ?subEntity23) AS ?s5). # -- old --- BIND (concat(?s1, '#', ?subEntity23) AS ?s5). - BIND (uri(?s2) AS ?mainEntityUri). - BIND (uri(?s3) AS ?subEntity2Uri). - BIND (uri(?s4) AS ?subEntity3Uri). - BIND (uri(?s5) AS ?subEntity23Uri). - # URI (for instance) - BIND (concat(?s1, '#', ?mainInstance) AS ?s6). - BIND (uri(?s6) AS ?mainInstanceUri). + BIND (concat(?frameURI, ?newClassLabel) AS ?s5). + BIND (uri(?s5) AS ?newClassUri). }""" ; - sh:order 3.4 ; + sh:order 3.23 ; . cts:add-event rdf:type sh:SPARQLRule ; @@ -317,8 +293,8 @@ cts:batch_execution 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-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:bypass-reification ; @@ -387,25 +363,26 @@ 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#> -# -- Complement Entity classes with feature relation +# -- Complement composite classes with feature relation CONSTRUCT { # Complement with feature relation - ?subEntityUri sys:has_feature ?featureUri. + ?compositeClassUri sys:has_feature ?featureUri. } WHERE { - # net1: entity class list + # net1: Composite List ?net1 a net:Instance. ?net1 net:type net:list. ?net1 net:listOf net:composite. - # -- old --- ?net1 net:has_parent ?parentObject. - # -- old --- ?parentObject net:has_parent_class ?parentClass. # -- old --- ?entityClass + # -- Item ?net1 net:has_item ?itemObject. - ?itemObject net:has_class_uri ?subEntityUri. - # -- old --- ?itemObject net:has_concept ?subEntity. + ?itemObject net:has_class_uri ?compositeClassUri. ?itemObject net:has_feature ?featureObject. - # object: feature + # -- Feature ?featureObject a net:Object. ?featureObject net:has_class_uri ?featureUri. + # -- old --- ?itemObject net:has_concept ?subEntity. + # -- old --- ?net1 net:has_parent ?parentObject. + # -- old --- ?parentObject net:has_parent_class ?parentClass. # -- old --- ?entityClass # -- old --- ?featureObject net:objectType sys:Feature. # -- old --- ?featureObject net:has_node ?featureUW. # -- old --- ?featureObject net:has_parent_class ?featureClass. @@ -420,7 +397,7 @@ WHERE { # -- old --- BIND (concat(?frameURI, ?featureConcept) AS ?f2). # -- old --- BIND (uri(?f2) AS ?featureUri). }""" ; - sh:order 3.3 ; + sh:order 3.22 ; . cts:compose-agt-verb-obj-as-simple-event rdf:type sh:SPARQLRule ; @@ -807,7 +784,7 @@ WHERE { BIND (concat(?o1, '#', ?verbConcept) AS ?o2). BIND (uri( ?o2) AS ?newEventObjectPropertyUri). }""" ; - sh:order 3.5 ; + sh:order 3.3 ; . cts:compute-domain-range-of-state-property-object-properties rdf:type sh:SPARQLRule ; @@ -865,7 +842,7 @@ WHERE { BIND (concat(?o1, '#', ?verbConcept) AS ?o2). BIND (uri( ?o2) AS ?objectPropertyUri). }""" ; - sh:order 3.5 ; + sh:order 3.3 ; . cts:compute-instance-uri-of-net-object rdf:type sh:SPARQLRule ; @@ -1215,9 +1192,9 @@ WHERE { ?net1 net:has_structure ?req. ?net1 net:has_parent ?parentObject. ?parentObject net:has_class_uri ?parentUri. + ?parentObject net:has_instance_uri ?instanceUri. ?net1 net:has_item ?compositeObject. ?compositeObject net:has_class_uri ?newClassUri. - ?compositeObject net:has_instance_uri ?instanceUri. ?compositeObject net:has_concept ?compositeConcept. # -- old --- ?parentObject net:has_mother_class ?motherClass. # -- old --- ?parentObject net:has_parent_class ?parentClass. @@ -1235,15 +1212,15 @@ WHERE { # -- old --- BIND (concat(?s1, '#', ?compositeInstance) AS ?s4). # -- old --- BIND (uri(?s4) AS ?instanceUri). }""" ; - sh:order 3.2 ; + sh:order 3.21 ; . cts:generation rdf:type owl:Class ; rdf:type sh:NodeShape ; rdfs:label "generation" ; rdfs:subClassOf cts:Transduction_Schemes ; - sh:rule cts:add-conjunctive-entity-classes ; - sh:rule cts:add-disjunctive-entity-classes ; + 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 ; diff --git a/prepare_work_data.py b/prepare_work_data.py index accfa610b9c6c55229f830946d340d9c645c4b84..6067b28897458ccdf8f23787f05198e036b48f47 100644 --- a/prepare_work_data.py +++ b/prepare_work_data.py @@ -206,7 +206,7 @@ if __name__ == '__main__': #target_ref = "environment" #run(req_100, 'R100b', target_ref) #run(req_200, 'R200b', target_ref) - run(req_300, 'R300b', target_ref) + run(req_300, 'R300c', target_ref) run(corpus_40, 'Corpus-CCTP-40a', target_ref) #run(corpus_ERTMS, 'Corpus-ERTMS', target_ref) #run(corpus_PEV, 'Corpus-PEV', target_ref)