diff --git a/config/transduction-schemes.ttl b/config/transduction-schemes.ttl index 49ca3a048f742e8365cc764d8641af4d40fb878a..357a3d82936b51e39f4c114b957aa32a0a0cddc2 100644 --- a/config/transduction-schemes.ttl +++ b/config/transduction-schemes.ttl @@ -381,7 +381,6 @@ CONSTRUCT { ?newNet net:class1 ?mainEntity. ?newNet net:class2 ?subEntity2. ?newNet net:class2 ?subEntity3. - ?newNet net:entityInstance ?instanceName. } WHERE { # net1: entity @@ -391,7 +390,6 @@ WHERE { ?net1 net:node ?uw1. ?net1 net:entityClass ?entityClass. ?net1 net:concept ?mainEntity. - ?net1 net:entityInstance ?instanceName. # net2: complement modList ?net2 a net:Instance. ?net2 net:type net:complement_mod_list. @@ -452,7 +450,6 @@ CONSTRUCT { ?newNet net:class1 ?mainEntity. ?newNet net:class2 ?subEntity2. ?newNet net:class2 ?subEntity3. - ?newNet net:entityInstance ?instanceName. } WHERE { # net1: agent @@ -462,7 +459,6 @@ WHERE { ?net1 net:node ?uw1. ?net1 net:entityClass ?entityClass1. ?net1 net:concept ?mainEntity. - ?net1 net:entityInstance ?instanceName. # net2: entity modList ?net2 a net:Instance. ?net2 net:type net:entity_mod_list. @@ -526,7 +522,6 @@ CONSTRUCT { ?newNet net:class1 ?mainEntity. ?newNet net:class2 ?subEntity2. ?newNet net:class2 ?subEntity3. - ?newNet net:entityInstance ?instanceName. } WHERE { # net1: agent @@ -536,7 +531,6 @@ WHERE { ?net1 net:node ?uw1. ?net1 net:entityClass ?entityClass1. ?net1 net:concept ?mainEntity. - ?net1 net:entityInstance ?instanceName. # net2: entity modList ?net2 a net:Instance. ?net2 net:type net:entity_mod_list. @@ -631,6 +625,8 @@ cts:entity_extraction sh:rule cts:create-entity-net ; 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:typify-modlist-entity ; sh:rule cts:typify-modlist-feature ; @@ -814,6 +810,78 @@ WHERE { }""" ; sh:order "111"^^xsd:decimal ; . +cts:instantiate-classlist-by-extension-1 + 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 an Entity net and an Entity ModList net (with same entity classes) +CONSTRUCT { + ?net2 net:entityInstance ?instanceName1. +} +WHERE { + # net2: entity with instance + ?net1 a net:Instance. + ?net1 net:type net:entity. + ?net1 net:entityClass ?sameClass. + ?net1 net:structure ?sameReq. + ?net1 net:concept ?sameEntity. + ?net1 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:class1 ?sameEntity. + # Filter + FILTER NOT EXISTS { ?net2 net:entityInstance ?instanceName2 } . +}""" ; + sh:order "124"^^xsd:decimal ; +. +cts:instantiate-classlist-by-extension-2 + 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 an Entity net and an Entity ModList net (with same entity classes) +CONSTRUCT { + ?net2 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:class2 ?sameEntity. + ?net1 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:class1 ?sameEntity. + # Filter + FILTER NOT EXISTS { ?net2 net:entityInstance ?instanceName2 } . +}""" ; + sh:order "125"^^xsd:decimal ; +. cts:instantiate-entity-classes rdf:type sh:SPARQLRule ; rdfs:label "Instantiate Entity Classes" ;