From 378652cf289f27cc6683cdb7180a7ceaee71fc91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Lamercerie?= <aurelien.lamercerie@laposte.net> Date: Thu, 18 Nov 2021 22:37:47 +0100 Subject: [PATCH] CTS update: decomposition of generation in two steps (class and relation) --- config/transduction-schemes.ttl | 64 +++++++++++++++++++++++++++++++++ prepare_work_data.py | 2 +- 2 files changed, 65 insertions(+), 1 deletion(-) diff --git a/config/transduction-schemes.ttl b/config/transduction-schemes.ttl index e525383a..28b9275f 100644 --- a/config/transduction-schemes.ttl +++ b/config/transduction-schemes.ttl @@ -268,6 +268,8 @@ cts:batch_execution sh:rule cts:link-to-scope-entry ; sh:rule cts:specify-axis-of-atom-list-net ; sh:rule cts:update-batch-execution-rules ; + sh:rule cts:update-generation-class-rules ; + sh:rule cts:update-generation-relation-rules ; sh:rule cts:update-generation-rules ; sh:rule cts:update-net-extension-rules ; sh:rule cts:update-preprocessing-rules ; @@ -296,6 +298,18 @@ WHERE { } """ ; sh:order 1.1 ; . +cts:class_generation + rdf:type owl:Class ; + rdf:type sh:NodeShape ; + rdfs:label "class generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:add-conjunctive-classes-from-list-net ; + sh:rule cts:add-disjunctive-classes-from-list-net ; + sh:rule cts:complement-composite-class ; + sh:rule cts:generate-atom-class ; + sh:rule cts:generate-atom-instance ; + sh:rule cts:generate-composite-class-from-list-net ; +. cts:complement-composite-class rdf:type sh:SPARQLRule ; sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> @@ -1866,10 +1880,24 @@ cts:preprocessing sh:rule cts:define-uw-id ; sh:rule cts:link-to-scope-entry ; sh:rule cts:update-batch-execution-rules ; + sh:rule cts:update-generation-class-rules ; + sh:rule cts:update-generation-relation-rules ; sh:rule cts:update-generation-rules ; sh:rule cts:update-net-extension-rules ; sh:rule cts:update-preprocessing-rules ; . +cts:relation_generation + rdf:type owl:Class ; + rdf:type sh:NodeShape ; + rdfs:label "relation generation" ; + rdfs:subClassOf cts:Transduction_Schemes ; + sh:rule cts:compute-domain-of-relation-property ; + sh:rule cts:compute-range-of-relation-property ; + sh:rule cts:generate-event-class ; + sh:rule cts:generate-relation-property ; + sh:rule cts:link-classes-by-relation-property ; + sh:rule cts:link-instances-by-relation-property ; +. cts:specify-axis-of-atom-list-net rdf:type sh:SPARQLRule ; sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> @@ -1922,6 +1950,42 @@ VALUES ?nodeShapes { }""" ; sh:order 1.09 ; . +cts:update-generation-class-rules + rdf:type sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://unsel.tetras-libre.fr/tenet/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:class_generation sh:rule ?rule. +} +WHERE { + { ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),\"3.1\") ). } + UNION + { ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),\"3.2\") ). } +}""" ; + sh:order 1.031 ; +. +cts:update-generation-relation-rules + rdf:type sh:SPARQLRule ; + sh:construct """PREFIX cts: <https://unsel.tetras-libre.fr/tenet/transduction-schemes#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX sh: <http://www.w3.org/ns/shacl#> + +CONSTRUCT { + cts:relation_generation sh:rule ?rule. +} +WHERE { + ?rule rdf:type sh:SPARQLRule. + ?rule sh:order ?order. + FILTER ( strStarts(str(?order),\"3.3\") ). +}""" ; + sh:order 1.032 ; +. cts:update-generation-rules rdf:type sh:SPARQLRule ; sh:construct """PREFIX cts: <https://unsel.tetras-libre.fr/tenet/transduction-schemes#> diff --git a/prepare_work_data.py b/prepare_work_data.py index ef9fd076..6b546ed4 100644 --- a/prepare_work_data.py +++ b/prepare_work_data.py @@ -214,7 +214,7 @@ if __name__ == '__main__': run(req_200, 'R200f', target_ref) run(req_300, 'R300f', target_ref) run(req_1100, 'R1100f', target_ref) - #run(corpus_40, 'Corpus-CCTP-40e', target_ref) + run(corpus_40, 'Corpus-CCTP-40f', target_ref) #run(corpus_ERTMS, 'Corpus-ERTMS', target_ref) #run(corpus_PEV, 'Corpus-PEV', target_ref) -- GitLab