Skip to content
Snippets Groups Projects
Commit 477b33c7 authored by Aurélien Lamercerie's avatar Aurélien Lamercerie
Browse files

Update CTS to improve instantiation of composite list

parent 04790189
No related branches found
No related tags found
No related merge requests found
...@@ -403,8 +403,8 @@ cts:batch_execution ...@@ -403,8 +403,8 @@ cts:batch_execution
sh:rule cts:init-conjunctive-list-net ; sh:rule cts:init-conjunctive-list-net ;
sh:rule cts:init-disjunctive-list-net ; sh:rule cts:init-disjunctive-list-net ;
sh:rule cts:instantiate-atom-net ; sh:rule cts:instantiate-atom-net ;
sh:rule cts:instantiate-classlist-by-extension-1 ; sh:rule cts:instantiate-composite-in-list-by-extension-1 ;
sh:rule cts:instantiate-classlist-by-extension-2 ; sh:rule cts:instantiate-composite-in-list-by-extension-2 ;
sh:rule cts:link-to-scope-entry ; sh:rule cts:link-to-scope-entry ;
sh:rule cts:specify-axis-of-list-net ; sh:rule cts:specify-axis-of-list-net ;
. .
...@@ -639,7 +639,7 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> ...@@ -639,7 +639,7 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
# -- Compose an atom net and a list net (with distinct item classes) # -- Compose an atom net and a list net (with distinct item classes)
CONSTRUCT { CONSTRUCT {
# Object: entity 2 # Object: composite (A)
?newObject12 a net:Object. ?newObject12 a net:Object.
?newObject12 net:objectType net:composite. ?newObject12 net:objectType net:composite.
?newObject12 net:has_node ?uw1, ?uw2. ?newObject12 net:has_node ?uw1, ?uw2.
...@@ -647,7 +647,7 @@ CONSTRUCT { ...@@ -647,7 +647,7 @@ CONSTRUCT {
# -- TODO --- ?newObject12 net:has_parent_class ?net1Class. # -- TODO --- ?newObject12 net:has_parent_class ?net1Class.
?newObject12 net:has_concept ?subConceptA. ?newObject12 net:has_concept ?subConceptA.
?newObject12 net:has_feature ?net2ItemA. ?newObject12 net:has_feature ?net2ItemA.
# Object: entity 3 # Object: composite (B)
?newObject13 a net:Object. ?newObject13 a net:Object.
?newObject13 net:objectType net:composite. ?newObject13 net:objectType net:composite.
?newObject13 net:has_node ?uw1, ?uw3. ?newObject13 net:has_node ?uw1, ?uw3.
...@@ -1112,8 +1112,7 @@ cts:entity_extraction ...@@ -1112,8 +1112,7 @@ cts:entity_extraction
sh:rule cts:extend-list-net ; sh:rule cts:extend-list-net ;
sh:rule cts:init-conjunctive-list-net ; sh:rule cts:init-conjunctive-list-net ;
sh:rule cts:instantiate-atom-net ; sh:rule cts:instantiate-atom-net ;
sh:rule cts:instantiate-classlist-by-extension-1 ; sh:rule cts:instantiate-composite-in-list-by-extension-2 ;
sh:rule cts:instantiate-classlist-by-extension-2 ;
. .
cts:event_extraction cts:event_extraction
rdf:type owl:Class ; rdf:type owl:Class ;
...@@ -1193,7 +1192,7 @@ WHERE { ...@@ -1193,7 +1192,7 @@ WHERE {
?atomObject1 net:has_parent_class ?atomParentClass. ?atomObject1 net:has_parent_class ?atomParentClass.
?atomObject1 net:has_concept ?atomConcept. ?atomObject1 net:has_concept ?atomConcept.
# Filter: entity not present in a class list # Filter: entity not present in a class list
FILTER NOT EXISTS { ?net2 net:class2 ?atomConcept} FILTER NOT EXISTS { ?net2 net:has_subClass ?atomObject1}
# URI: class # URI: class
sys:Structure sys:has_frame_uri ?frameURI. sys:Structure sys:has_frame_uri ?frameURI.
BIND (concat( ?frameURI, ?atomParentClass) AS ?s1). BIND (concat( ?frameURI, ?atomParentClass) AS ?s1).
...@@ -1402,7 +1401,7 @@ WHERE { ...@@ -1402,7 +1401,7 @@ WHERE {
}""" ; }""" ;
sh:order 2.12 ; sh:order 2.12 ;
. .
cts:instantiate-classlist-by-extension-1 cts:instantiate-composite-in-list-by-extension-1
rdf:type sh:SPARQLRule ; rdf:type sh:SPARQLRule ;
sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
...@@ -1415,30 +1414,23 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> ...@@ -1415,30 +1414,23 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#>
PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/> PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/>
PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
# -- Instantiate entities in class list by extension of instances (2) # -- Instantiate composite in list by extension of instances from parent element
CONSTRUCT { CONSTRUCT {
?subObject2 net:has_instance ?instanceName1. ?subObject2 net:has_instance ?parentInstance.
} }
WHERE { WHERE {
# net1: atom with instance # net2: list of composite items
?net1 a net:Instance.
?net1 net:type net:atom.
?net1 net:has_structure ?sameReq.
?net1 net:has_atom ?sameObject1.
?sameObject1 net:has_instance ?instanceName1.
# net2: entity classList
?net2 a net:Instance. ?net2 a net:Instance.
?net2 net:type net:entity_class_list. ?net2 net:type net:entity_class_list.
?net2 net:entityClass ?sameClass. ?net2 net:has_mainClass ?parentObject.
?net2 net:has_structure ?sameReq. ?parentObject net:has_instance ?parentInstance.
?net2 net:has_mainClass ?sameObject1.
?net2 net:has_subClass ?subObject2. ?net2 net:has_subClass ?subObject2.
# Filter # Filter
FILTER NOT EXISTS { ?subObject2 net:has_instance ?instanceName2 } . FILTER NOT EXISTS { ?subObject2 net:has_instance ?anyInstance } .
}""" ; }""" ;
sh:order 2.34 ; sh:order 2.341 ;
. .
cts:instantiate-classlist-by-extension-2 cts:instantiate-composite-in-list-by-extension-2
rdf:type sh:SPARQLRule ; rdf:type sh:SPARQLRule ;
sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
...@@ -1453,29 +1445,28 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> ...@@ -1453,29 +1445,28 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
# -- Instantiate entities in class list by extension of instances (2) # -- Instantiate entities in class list by extension of instances (2)
CONSTRUCT { CONSTRUCT {
?subObject2 net:has_instance ?instanceName1. ?net2SubObject net:has_instance ?parentInstance.
} }
WHERE { WHERE {
# net2: entity classList with instance # net1: list of composite items
?net1 a net:Instance. ?net1 a net:Instance.
?net1 net:type net:entity_class_list. ?net1 net:type net:entity_class_list.
?net1 net:entityClass ?sameClass.
?net1 net:has_structure ?sameReq. ?net1 net:has_structure ?sameReq.
?net1 net:has_subClass ?entityObject1. ?net1 net:has_mainClass ?parentObject.
?entityObject1 net:has_concept ?sameEntity. ?parentObject net:has_instance ?parentInstance.
?entityObject1 net:has_instance ?instanceName1. ?net1 net:has_subClass ?net1SubObject.
# net2: another entity classList ?net1SubObject net:has_concept ?sameEntity.
# net2: another list
?net2 a net:Instance. ?net2 a net:Instance.
?net2 net:type net:entity_class_list. ?net2 net:type net:entity_class_list.
?net2 net:entityClass ?sameClass.
?net2 net:has_structure ?sameReq. ?net2 net:has_structure ?sameReq.
?net2 net:has_mainClass ?entityObject2. ?net2 net:has_mainClass ?net2MainObject.
?entityObject2 net:has_concept ?sameEntity. ?net2MainObject net:has_concept ?sameEntity.
?net2 net:has_subClass ?subObject2. ?net2 net:has_subClass ?net2SubObject.
# Filter # Filter
FILTER NOT EXISTS { ?subObject2 net:has_instance ?instanceName2 } . FILTER NOT EXISTS { ?net2SubObject net:has_instance ?anyInstance } .
}""" ; }""" ;
sh:order 2.35 ; sh:order 2.342 ;
. .
cts:link-to-scope-entry cts:link-to-scope-entry
rdf:type sh:SPARQLRule ; rdf:type sh:SPARQLRule ;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment