diff --git a/config/transduction-schemes.ttl b/config/transduction-schemes.ttl index faa0e2bbf1634244535513bd84a770ca01d54e78..5249022d64fc93086de11905f681194d80f4fb97 100644 --- a/config/transduction-schemes.ttl +++ b/config/transduction-schemes.ttl @@ -621,6 +621,7 @@ cts:batch_execution sh:rule cts:instantiate-classlist-by-extension-2 ; sh:rule cts:instantiate-entity-net ; sh:rule cts:link-to-scope-entry ; + sh:rule cts:specify-objectProperty-domain-or-range ; sh:rule cts:typify-modlist-entity ; sh:rule cts:typify-modlist-feature ; . @@ -1663,6 +1664,12 @@ cts:net_extension rdfs:label "net extension" ; rdfs:subClassOf cts:Transduction_Schemes ; . +cts:postprocessing + rdf:type owl:Class ; + rdf:type sh:NodeShape ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:specify-objectProperty-domain-or-range ; +. cts:preprocessing rdf:type owl:Class ; rdf:type sh:NodeShape ; @@ -1672,6 +1679,40 @@ cts:preprocessing sh:rule cts:define-uw-id ; sh:rule cts:link-to-scope-entry ; . +cts:specify-objectProperty-domain-or-range + 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#> + +CONSTRUCT{ + ?prop ?domainOrRange ?classNew . + ?prop sys:from_structure ?sentence . + ?prop ?keepDomainOrRange ?classNew . + ?prop ?delDomainOrRange ?classInit . +} +WHERE { +{BIND(rdfs:domain AS ?domainOrRange)} +UNION +{BIND(rdfs:range AS ?domainOrRange)} +?domainOrRange rdfs:label ?domainOrRangeLabel . +BIND (URI(CONCAT('keep_',?domainOrRangeLabel)) AS ?keepDomainOrRange) +BIND (URI(CONCAT('del_',?domainOrRangeLabel)) AS ?delDomainOrRange) +?prop rdfs:subPropertyOf+ sys:eventObjectProperty ; + ?domainOrRange ?classInit . +?inst a ?classInit , ?classNew ; sys:from_structure ?sentence . +?classNew rdfs:subClassOf* ?classInit . +FILTER ((NOT EXISTS {?classUnder rdfs:subClassOf ?classNew}) || (NOT EXISTS {?classUnder rdfs:subClassOf ?classNew. ?inst a ?classUnder})) +}""" ; + sh:order 999.1 ; +. cts:state_property_extraction rdf:type owl:Class ; rdf:type sh:NodeShape ;