diff --git a/data/SSC-02/SSC-02-01/SSC-02-01.al.owl.ttl b/data/SSC-02/SSC-02-01/SSC-02-01.al.owl.ttl index 0d2cffceca96c2ace320730f46d26200c473ac90..5ed5f3585fdc7c90870bffe1debd72870a130698 100644 --- a/data/SSC-02/SSC-02-01/SSC-02-01.al.owl.ttl +++ b/data/SSC-02/SSC-02-01/SSC-02-01.al.owl.ttl @@ -1,4 +1,4 @@ -# ::id SSC-01-01 +# ::id SSC-02-01 # ::snt Of the objects that orbit the Sun directly, the largest are the eight planets, with the remainder being smaller objects, the dwarf planets and small Solar System bodies. @base <https://tetras-libre.fr/mars/ssc> . @@ -93,9 +93,9 @@ a owl:individual ; a :system . -body a rdfs:Class . +:body a rdfs:Class . -small-body +:small-body a rdfs:Class ; rdfs:subClassOf :body . diff --git a/data/SSC-02/SSC-02-02/SSC-02-02.al.owl.ttl b/data/SSC-02/SSC-02-02/SSC-02-02.al.owl.ttl index cf02959418a506d58a2534acf137974645e2b800..698c0d33dd30b48d2119fe6d668f39154406c681 100644 --- a/data/SSC-02/SSC-02-02/SSC-02-02.al.owl.ttl +++ b/data/SSC-02/SSC-02-02/SSC-02-02.al.owl.ttl @@ -1,4 +1,4 @@ -# ::id SSC-01-01 +# ::id SSC-02-01 # ::snt The celestial objects that orbit the Sun directly include the eight planets and the dwarf planets. @base <https://tetras-libre.fr/mars/ssc> . diff --git a/data/SSC-02/SSC-02-03/SSC-02-03.al.owl.ttl b/data/SSC-02/SSC-02-03/SSC-02-03.al.owl.ttl new file mode 100644 index 0000000000000000000000000000000000000000..30a61b8cd56e632cfd1b209914b4bced8b4309f5 --- /dev/null +++ b/data/SSC-02/SSC-02-03/SSC-02-03.al.owl.ttl @@ -0,0 +1,87 @@ +# ::id SSC-02-03 +# ::snt The objects that orbit the Sun directly are the eight planets, the dwarf planets and some other small celestial bodies. + +@base <https://tetras-libre.fr/mars/ssc> . + +@prefix : <https://tetras-libre.fr/mars/ssc#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . + + +# ::predefined-property :has-part :part-of :manner + +:part-of a owl:ObjectProperty . + +:has-part + a owl:ObjectProperty ; + owl:inverseOf :part-of . + +:manner a owl:DatatypeProperty . + + +# ::comment "the objects that orbit the Sun directly ..." + +:object a rdfs:Class . + +:orbit a owl:ObjectProperty . + +:sun a owl:individual . + +:object-orbit-sun a rdfs:Class ; + rdfs:subClassOf :object ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:onProperty :orbit ; + owl:hasValue :sun + ] . + +:object-orbit-sun-directly a rdfs:Class ; + rdfs:subClassOf :celestial-object-orbit-sun ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:onProperty :direct-orbit ; + owl:hasValue :sun + ] . + +:direct-orbit a owl:ObjectProperty ; + rdfs:subPropertyOf :orbit ; + :manner "direct" . + + +# ::comment "... the eight planets ..." + +:planet a rdfs:Class . + +:eight-planet + a rdfs:Class ; + rdfs:subClassOf :planet ; + owl:cardinality 8 . + + +# ::comment "... the dwarf planets ..." + +:dwarf-planet + a rdfs:Class ; + rdfs:subClassOf :planet . + + +# ::comment "... and some other small celestial bodies" + +:body a rdfs:Class . + +:some-other-small-body + a rdfs:Class ; + rdfs:subClassOf :body . + + +# ::comment "objects that orbit ... are X, Y and Z" + +:object-orbit-sun-directly + rdfs:equivalentClassOf [ + a rdfs:Class ; + owl:unionOf (:eight-planet + :dwarf-planet + :some-other-small-body ) + ] . + + diff --git a/data/SSC-02/SSC-02-03/SSC-02-03.cts.txt b/data/SSC-02/SSC-02-03/SSC-02-03.cts.txt new file mode 100644 index 0000000000000000000000000000000000000000..57a4e93fa5cc93b4fe76c11acf6d06af00b29b3b --- /dev/null +++ b/data/SSC-02/SSC-02-03/SSC-02-03.cts.txt @@ -0,0 +1,195 @@ +# ----------------------------------------------------------------------------- +# Schémas de Transduction Compositionnel (STC) +# ----------------------------------------------------------------------------- +# +# Pré-traitement = chaque noeud du graphe est associé à un filet de type ATOM +# +# TYPE = { atom, commonConcept, predicate, dataValue, class, objectProperty } +# + +# ----------------------------------- +# Fonctions +# ----------------------------------- + +# ::function is-common-concept (x) +retourne VRAI si x est un concept AMR commun, c'est à +dire si x n'est pas un prédicat ou un phénomène linguistique +exemple de concepts communs : boy, car, ... + +# ::function is-predicate (x) +retourne VRAI si x est un prédicat AMR + +# ::function is-linguistic-phenomena (x) +retourne VRAI si x est un phénomène linguistique + +# ::function get-value (x) +retourne la chaine de caractère x sans guillemet + +# ::function get-value (x, y) +retourne la concaténation de get-value(x), '-' et get-value(y) + +# ::function define-id (x, y ...) +retourne un identifiant sous une forme standard (':x-y-...') + +# ::function define-inverse-id (x) +retourne un identifiant inverse pour la propriété d'id "x" sous une forme +standard (':x-of' ou ':x-by') + +# ::function define-OWL-restriction (C1, P, C2) +retourne la définition d'une restriction OWL sur la classe c1 sous la forme +suivante : + {C1} rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty {p} ; + owl:hasValue {C2} + ] . + +# ::function define-OWL-conjonction (CC, c1, c2, ...) +retourne la définition d'une conjonction OWL des classes c1, c2, etc, sous +la forme suivante : + {CC} owl:unionOf ( {c1} {c2} {c3} ) + +# ::function define-OWL-equivalence (c1, c2) +retourne la définition OWL d'une équivalence entre deux classes, sous la forme : +{c1} rdfs:equivalentClassOf [ + a rdfs:Class ; + {c2} + ] . + + +# -------------------------------------------------------- +# STC niveau 0 : analyse des concepts atomiques +# -------------------------------------------------------- + +STC-01 (x) : + atom(x) & isCommonConcept(x.concept) + => nodes = { x.nodes } + type = commonConcept + concept = get-value(x.value) + values = { concept } + newNet(nodes, type, values) + + +STC-02 (x) : + atom(x) & isDataValue(x) + => nodes = { x.nodes } + type = dataValue + value = get-value(x.value) + values = { value } + newNet(nodes, type, values) + + +STC-03 (x) : + atom(x) & is-predicate(x) + => nodes = { x.nodes } + type = predicate + predicate = get-value(x.value) + values = { predicate } + newNet(nodes, type, values) + + +# -------------------------------------------------------- +# STC niveau 1 : extraction des entités nommées +# -------------------------------------------------------- + +# -- + + +# -------------------------------------------------------- +# STC niveau 2 : extraction de classes +# -------------------------------------------------------- + +STC-21 (x) : + commonConcept(x) + => nodes = { x.nodes } + type = class + id = define-id(x.concept) + owl = string(id, ' a ', 'rdfs:Class') + values = { id, owl } + newNet(nodes, type, values) + +STC-22 (c1, v1) : + class(c1) & dataValue(v1) & quant(c1, v1) + => nodes = { x.nodes } + type = class + cardinality = v1.value + owl = string(c1.id, ' owl:cardinality ', cardinality) + x.values = { cardinality, owl } + +STC-23 (x, c1, c2): + and(x) & class(c1) & class(c2) & opi(x, c1) & opi(x, c2) + => nodes = { x.nodes, c1.nodes, c2.nodes } + type = class + id = define-id('union--', c1.id, c2.id) + owl = define-OWL-conjonction(id, c1.id, c2.id) + values = { id, owl } + newNet(nodes, type, values) + + +# -------------------------------------------------------- +# STC niveau 3 : extraction des individus +# -------------------------------------------------------- + +# -- + + +# -------------------------------------------------------- +# STC niveau 4 : extraction de propriétés +# -------------------------------------------------------- + +STC-31 (x, y) : + predicate(x) & ARGi(x, y) + => nodes = { x.nodes } + type = objectProperty + property_id = define-id(x.predicate) + owl = string(property_id, ' a ', 'owl:objectProperty') + values = { property_id, owl } + newNet(nodes, type, values) + +STC-32 (x, y) : + predicate(x) & ARGi-of(x, y) + => nodes = { x.nodes } + type = objectProperty + property_id = define-id(x.predicate) + owl = string(property_id, ' a ', 'owl:objectProperty') + values = { property_id, owl } + newNet(nodes, type, values) + +STC-33 (x, y) : + objectProperty(x) & :ARGi-of(x, y) + => inverse_property_id = define-inverse-id(x.property_id) + owl = string(x.property_id, ' owl:inverseOf ', inverse_property_id) + x.values = x.values + { owl } + + +# -------------------------------------------------------- +# STC niveau 5 : extraction de relations taxonomiques +# -------------------------------------------------------- + +STC-41 (c1, c2) : + :domain(c1, c2) & class(c1) & class(c2) + => nodes = { c1.nodes, c2.nodes } + type = relation + owl = define-OWL-equivalence (c1.id, c2.id) + values = { owl } + newNet(nodes, type, values) + + +# -------------------------------------------------------- +# STC niveau 6 : extraction de relations non taxonomiques +# -------------------------------------------------------- +# question sur restriction : voir ticket 1 + +STC-51 (p1, c1, c2) : + :objectProperty(p1) & class(c1) & class(c2) & ARG1(p1,c1) & ARG2(p1,c2) + => nodes = { p1.nodes, c1.nodes, c2.nodes } + type = relation + owl = define-OWL-restriction (c2.id, p1.id, c1.id) + values = { owl } + newNet(nodes, type, values) + + +# -------------------------------------------------------- +# STC niveau 7 : extraction d'axiomes complexes +# -------------------------------------------------------- + +# -- diff --git a/data/SSC-02/SSC-02-03/SSC-02-03.amr.graph b/data/SSC-02/SSC-02-03/SSC-02-03.stog.amr.graph similarity index 100% rename from data/SSC-02/SSC-02-03/SSC-02-03.amr.graph rename to data/SSC-02/SSC-02-03/SSC-02-03.stog.amr.graph