From 1f0393eea66d12a0a8d74a36d708bb003b0f42dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Lamercerie?= <aurelien.lamercerie@tetras-libre.fr> Date: Fri, 9 Dec 2022 15:40:12 +0100 Subject: [PATCH] Update CTR to deal with reification concept --- structure/amr-rdf-schema.ttl | 102 +++++- .../amr_ctr/preprocessing/amr_reification.py | 309 ++++++++++++------ structure/cts/amr_scheme_1.py | 7 +- tenet.log | 244 +++++++------- 4 files changed, 418 insertions(+), 244 deletions(-) diff --git a/structure/amr-rdf-schema.ttl b/structure/amr-rdf-schema.ttl index 00a15652..49df33db 100644 --- a/structure/amr-rdf-schema.ttl +++ b/structure/amr-rdf-schema.ttl @@ -428,13 +428,74 @@ ns1:Role rdf:type owl:Class ; :hasRelationName "quant" . +### https://amr.tetras-libre.fr/rdf/schema#role_ARG0 +:role_ARG0 rdf:type owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG0" . + + +### https://amr.tetras-libre.fr/rdf/schema#role_ARG1 +:role_ARG1 rdf:type owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG1" . + + +### https://amr.tetras-libre.fr/rdf/schema#role_ARG2 +:role_ARG2 rdf:type owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG2" . + + +### https://amr.tetras-libre.fr/rdf/schema#role_ARG3 +:role_ARG3 rdf:type owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG3" . + + +### https://amr.tetras-libre.fr/rdf/schema#role_ARG4 +:role_ARG4 rdf:type owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG4" . + + +### https://amr.tetras-libre.fr/rdf/schema#role_ARG5 +:role_ARG5 rdf:type owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG5" . + + +### https://amr.tetras-libre.fr/rdf/schema#role_ARG6 +:role_ARG6 rdf:type owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG6" . + + +### https://amr.tetras-libre.fr/rdf/schema#role_ARG7 +:role_ARG7 rdf:type owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG7" . + + +### https://amr.tetras-libre.fr/rdf/schema#role_ARG8 +:role_ARG8 rdf:type owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG8" . + + +### https://amr.tetras-libre.fr/rdf/schema#role_ARG9 +:role_ARG9 rdf:type owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG9" . + + ### https://amr.tetras-libre.fr/rdf/schema#role_domain :role_domain rdf:type owl:Class ; rdfs:subClassOf :AMR_NonCore_Role ; :hasRelationName "domain" ; :toReifyAsConcept "domain" ; :toReifyWithBaseEdge "ARG0" ; - :toReifyWithHeadEdge "ARG1" . + :toReifyWithHeadEdge "ARG1" ; + :label "domain" . ### https://amr.tetras-libre.fr/rdf/schema#role_have-degree-91 @@ -450,7 +511,8 @@ ns1:Role rdf:type owl:Class ; :getPropertyType owl:DataProperty ; :toReifyAsConcept "manner" ; :toReifyWithBaseEdge "ARG0" ; - :toReifyWithHeadEdge "ARG1" . + :toReifyWithHeadEdge "ARG1" ; + :label "manner" . ### https://amr.tetras-libre.fr/rdf/schema#role_mod @@ -461,57 +523,68 @@ ns1:Role rdf:type owl:Class ; owl:ObjectProperty ; :toReifyAsConcept "mod" ; :toReifyWithBaseEdge "ARG0" ; - :toReifyWithHeadEdge "ARG1" . + :toReifyWithHeadEdge "ARG1" ; + :label "mod" . ### https://amr.tetras-libre.fr/rdf/schema#role_name :role_name rdf:type owl:Class ; - rdfs:subClassOf :AMR_NonCore_Role . + rdfs:subClassOf :AMR_NonCore_Role ; + :label "name" . ### https://amr.tetras-libre.fr/rdf/schema#role_op1 :role_op1 rdf:type owl:Class ; - rdfs:subClassOf :AMR_Op_Role . + rdfs:subClassOf :AMR_Op_Role ; + :label "op1" . ### https://amr.tetras-libre.fr/rdf/schema#role_op2 :role_op2 rdf:type owl:Class ; - rdfs:subClassOf :AMR_Op_Role . + rdfs:subClassOf :AMR_Op_Role ; + :label "op2" . ### https://amr.tetras-libre.fr/rdf/schema#role_op3 :role_op3 rdf:type owl:Class ; - rdfs:subClassOf :AMR_Op_Role . + rdfs:subClassOf :AMR_Op_Role ; + :label "op3" . ### https://amr.tetras-libre.fr/rdf/schema#role_op4 :role_op4 rdf:type owl:Class ; - rdfs:subClassOf :AMR_Op_Role . + rdfs:subClassOf :AMR_Op_Role ; + :label "op4" . ### https://amr.tetras-libre.fr/rdf/schema#role_op5 :role_op5 rdf:type owl:Class ; - rdfs:subClassOf :AMR_Op_Role . + rdfs:subClassOf :AMR_Op_Role ; + :label "op5" . ### https://amr.tetras-libre.fr/rdf/schema#role_op6 :role_op6 rdf:type owl:Class ; - rdfs:subClassOf :AMR_Op_Role . + rdfs:subClassOf :AMR_Op_Role ; + :label "op6" . ### https://amr.tetras-libre.fr/rdf/schema#role_op7 :role_op7 rdf:type owl:Class ; - rdfs:subClassOf :AMR_Op_Role . + rdfs:subClassOf :AMR_Op_Role ; + :label "op7" . ### https://amr.tetras-libre.fr/rdf/schema#role_op8 :role_op8 rdf:type owl:Class ; - rdfs:subClassOf :AMR_Op_Role . + rdfs:subClassOf :AMR_Op_Role ; + :label "op8" . ### https://amr.tetras-libre.fr/rdf/schema#role_op9 :role_op9 rdf:type owl:Class ; - rdfs:subClassOf :AMR_Op_Role . + rdfs:subClassOf :AMR_Op_Role ; + :label "op9" . ### https://amr.tetras-libre.fr/rdf/schema#role_part @@ -527,7 +600,8 @@ ns1:Role rdf:type owl:Class ; ### https://amr.tetras-libre.fr/rdf/schema#role_quant :role_quant rdf:type owl:Class ; - rdfs:subClassOf :AMR_Specific_Role . + rdfs:subClassOf :AMR_Specific_Role ; + :label "quant" . ################################################################# diff --git a/structure/cts/amr_ctr/preprocessing/amr_reification.py b/structure/cts/amr_ctr/preprocessing/amr_reification.py index 22fbc085..a800a3e5 100644 --- a/structure/cts/amr_ctr/preprocessing/amr_reification.py +++ b/structure/cts/amr_ctr/preprocessing/amr_reification.py @@ -226,69 +226,69 @@ rule_set['reclassify-concept-5'] = { # --------------------------------------------- -# Reclassification of roles +# Reclassification of roles *** OLD *** # --------------------------------------------- -rule_set['reclassify-role-1'] = { - 'label': "reclassify-role-1", - 'comment': "Reclassify role to AMR core role", - 'construction': """ - # -- New AMR core role - ?newRole rdfs:subClassOf amr:AMR_Core_Role ; - amr:label ?roleId ; - amr:fromAmrLk ?r. - """, - 'clause': """ - # -- Identify core role - ?r a ns1:FrameRole. - """, - 'binding':""" - # -- Label - BIND (strafter(str(?r), '#') AS ?rLabel1) - BIND (strafter(str(?r), str(ns1:)) AS ?rLabel2) - BIND (IF (STRLEN(?rLabel1) > 0, ?rLabel1, ?rLabel2) AS ?rLabel) - - # -- Id - BIND (strbefore(?rLabel, '.') AS ?rolesetId) - BIND (strafter(?rLabel, '.') AS ?roleId) - - # -- New role - BIND (CONCAT(str(amr:), 'role') AS ?n1). - BIND (CONCAT(?n1, '_', ?roleId) AS ?n2). - BIND (uri(?n2) AS ?newRole). - """ - } +# rule_set['reclassify-role-1'] = { +# 'label': "reclassify-role-1", +# 'comment': "Reclassify role to AMR core role", +# 'construction': """ +# # -- New AMR core role +# ?newRole rdfs:subClassOf amr:AMR_Core_Role ; +# amr:label ?roleId ; +# amr:fromAmrLk ?r. +# """, +# 'clause': """ +# # -- Identify core role +# ?r a ns1:FrameRole. +# """, +# 'binding':""" +# # -- Label +# BIND (strafter(str(?r), '#') AS ?rLabel1) +# BIND (strafter(str(?r), str(ns1:)) AS ?rLabel2) +# BIND (IF (STRLEN(?rLabel1) > 0, ?rLabel1, ?rLabel2) AS ?rLabel) + +# # -- Id +# BIND (strbefore(?rLabel, '.') AS ?rolesetId) +# BIND (strafter(?rLabel, '.') AS ?roleId) + +# # -- New role +# BIND (CONCAT(str(amr:), 'role') AS ?n1). +# BIND (CONCAT(?n1, '_', ?roleId) AS ?n2). +# BIND (uri(?n2) AS ?newRole). +# """ +# } -rule_set['reclassify-role-2'] = { - 'label': "reclassify-rolet-2", - 'comment': "Reclassify role to AMR non-core role", - 'construction': """ - # -- New AMR non core role - ?newRole rdfs:subClassOf amr:AMR_NonCore_Role ; - amr:label ?rLabel ; - amr:fromAmrLk ?r. - """, - 'clause': """ - # -- Identify non core role - ?r a ns3:Role. - FILTER ( ?r != ns1:FrameRole ). - - # -- Filter core role - FILTER NOT EXISTS {?newRole rdfs:subClassOf* amr:AMR_Role ; - amr:fromAmrLk ?r.} - """, - 'binding':""" - # -- Label - BIND (strafter(str(?r), '#') AS ?rLabel1) - BIND (strafter(str(?r), str(ns1:)) AS ?rLabel2) - BIND (IF (STRLEN(?rLabel1) > 0, ?rLabel1, ?rLabel2) AS ?rLabel) +# rule_set['reclassify-role-2'] = { +# 'label': "reclassify-rolet-2", +# 'comment': "Reclassify role to AMR non-core role", +# 'construction': """ +# # -- New AMR non core role +# ?newRole rdfs:subClassOf amr:AMR_NonCore_Role ; +# amr:label ?rLabel ; +# amr:fromAmrLk ?r. +# """, +# 'clause': """ +# # -- Identify non core role +# ?r a ns3:Role. +# FILTER ( ?r != ns1:FrameRole ). - # -- New role - BIND (CONCAT(str(amr:), 'role') AS ?n1). - BIND (CONCAT(?n1, '_', ?rLabel) AS ?n2). - BIND (uri(?n2) AS ?newRole). - """ - } +# # -- Filter core role +# FILTER NOT EXISTS {?newRole rdfs:subClassOf* amr:AMR_Role ; +# amr:fromAmrLk ?r.} +# """, +# 'binding':""" +# # -- Label +# BIND (strafter(str(?r), '#') AS ?rLabel1) +# BIND (strafter(str(?r), str(ns1:)) AS ?rLabel2) +# BIND (IF (STRLEN(?rLabel1) > 0, ?rLabel1, ?rLabel2) AS ?rLabel) + +# # -- New role +# BIND (CONCAT(str(amr:), 'role') AS ?n1). +# BIND (CONCAT(?n1, '_', ?rLabel) AS ?n2). +# BIND (uri(?n2) AS ?newRole). +# """ +# } # --------------------------------------------- @@ -417,6 +417,7 @@ rule_set['add-new-variable-for-reified-concept'] = { 'construction': """ # -- New variable ?newVariable a amr:AMR_Variable ; + amr:isReifiedVariable true ; amr:label ?vLabel. # -- Linking new variable to LK role (for tracing) @@ -499,21 +500,24 @@ rule_set['add-amr-leaf-for-reified-concept'] = { 'construction': """ # -- New leaf ?newLeaf a amr:AMR_Leaf ; - amr:hasVariable ?newV ; + amr:isReifiedLeaf true ; + amr:hasVariable ?v ; amr:hasConcept ?c. """, 'clause': """ - # -- Identify (concept, variable) tuples + # -- Identify reified concept ?c rdfs:subClassOf* amr:AMR_Concept ; + amr:isReifiedConcept true ; amr:label ?cLabel ; amr:fromAmrLk ?linkedC. - # -- Identify new variable - ?newV a amr:AMR_Variable ; + # -- Identify reified variable + ?v a amr:AMR_Variable ; + amr:isReifiedVariable true ; amr:label ?vLabel. - # -- identify matching between concept and (new) variable - ?newV a ?linkedC. + # -- Identify matching between reified concept and variable + ?v a ?linkedC. """, 'binding':""" # -- New labels @@ -535,7 +539,6 @@ rule_set['add-amr-leaf-for-reified-concept'] = { # Addition of edges # --------------------------------------------- - rule_set['add-amr-edge-for-core-relation'] = { 'label': "add-amr-edge-for-core-relation", 'comment': ("Add AMR edge corresponding to: ", @@ -543,9 +546,10 @@ rule_set['add-amr-edge-for-core-relation'] = { 'construction': """ # -- New edge ?newEdge a amr:AMR_Edge ; - amr:hasRolesetID ?rolesetId ; - amr:hasRoleID ?roleId ; - amr:hasRoleTag ?roleTag. + amr:hasRoleID ?roleId. + # -- old --- amr:hasRolesetID ?rolesetId ; + # -- old --- amr:hasRoleID ?roleId ; + # -- old --- amr:hasRoleTag ?roleTag. # -- New relation between leafs ?leaf1 ?newEdge ?leaf2. @@ -555,6 +559,13 @@ rule_set['add-amr-edge-for-core-relation'] = { ?r a ?amrLkRelation. VALUES ?amrLkRelation {ns1:FrameRole ns3:Role} + # -- Filter reified role + FILTER NOT EXISTS { + ?newConcept rdfs:subClassOf amr:AMR_Predicat_Concept ; + amr:isReifiedConcept true ; + amr:fromAmrLk ?r. + } + # -- identify leafs and variables ?leaf1 amr:hasVariable ?v1. ?leaf2 amr:hasVariable ?v2. @@ -574,14 +585,13 @@ rule_set['add-amr-edge-for-core-relation'] = { BIND (strafter(str(?r), str(ns1:)) AS ?rLabel2) BIND (IF (STRLEN(?rLabel1) > 0, ?rLabel1, ?rLabel2) AS ?rLabel) BIND (IF (CONTAINS(?rLabel, "."), - ?rLabel, - CONCAT("amr.", ?rLabel)) AS ?roleTag) - BIND (strbefore(?roleTag, '.') AS ?rolesetId) - BIND (strafter(?roleTag, '.') AS ?roleId) - BIND (IF (STRLEN(?roleId) > 0, ?roleId, ?rLabel) AS ?rLabel) - # -- old --- BIND (?rLabel AS ?roleTag) - # -- old --- BIND (strafter(str(?v1), '#') AS ?v1Label) - # -- old --- BIND (strafter(str(?v2), '#') AS ?v2Label) + strafter(?rLabel, '.'), + ?rLabel) AS ?roleId) + # -- old --- BIND (IF (STRLEN(?rLabel1) > 0, ?rLabel1, ?rLabel2) AS ?rLabel3) + # -- old --- BIND (IF (CONTAINS(?rLabel3, "."), ?rLabel3, CONCAT("amr.", ?rLabel3)) AS ?roleTag) + # -- old --- BIND (strbefore(?roleTag, '.') AS ?rolesetId) + # -- old --- BIND (strafter(?roleTag, '.') AS ?roleId) + # -- old --- BIND (IF (STRLEN(?roleId) > 0, ?roleId, ?rLabel3) AS ?rLabel) # -- New edge BIND (CONCAT(str(amr:), 'edge') AS ?n1). @@ -592,6 +602,94 @@ rule_set['add-amr-edge-for-core-relation'] = { """ } +rule_set['add-amr-edge-for-reified-concept'] = { + 'label': "add-amr-edge-for-reified-concept", + 'comment': ("Add AMR edge corresponding to: ", + " (x) reification of LK non-core relation to concept"), + 'construction': """ + # -- New edge (ARG0) + ?newEdge0 a amr:AMR_Edge ; + amr:hasRoleID ?roleId0. + # -- old --- amr:hasRolesetID ?rolesetId0 ; + # -- old --- amr:hasRoleID ?roleId0 ; + # -- old --- amr:hasRoleTag ?roleTag0. + + # -- New edge (ARG1) + ?newEdge1 a amr:AMR_Edge ; + amr:hasRoleID ?roleId1. + # -- old --- amr:hasRolesetID ?rolesetId1 ; + # -- old --- amr:hasRoleID ?roleId1 ; + # -- old --- amr:hasRoleTag ?roleTag1. + + # -- New relations between leafs + ?reifiedLeaf ?newEdge0 ?leaf1. + ?reifiedLeaf ?newEdge1 ?leaf2. + """, + 'clause': """ + # -- Identify reified leaf + ?reifiedLeaf a amr:AMR_Leaf ; + amr:isReifiedLeaf true ; + amr:hasVariable ?reifiedVariable ; + amr:hasConcept ?reifiedConcept. + ?reifiedVariable amr:label ?rvLabel. + + # -- Identify LK relation corresponding to the reified concept + ?reifiedConcept amr:fromAmrLk ?r. + + # -- Identify leafs and variables + ?leaf1 amr:hasVariable ?v1. + ?leaf2 amr:hasVariable ?v2. + ?v1 a amr:AMR_Variable ; + amr:label ?v1Label ; + amr:fromAmrLk ?v1Link. + ?v2 a amr:AMR_Variable ; + amr:label ?v2Label ; + amr:fromAmrLk ?v2Link. + + # -- Identify matching + ?v1Link ?r ?v2Link. + """, + 'binding':""" + # -- New labels + # -- old --- BIND (strafter(str(?r), '#') AS ?rLabel1) + # -- old --- BIND (strafter(str(?r), str(ns1:)) AS ?rLabel2) + # -- old --- BIND (IF (STRLEN(?rLabel1) > 0, ?rLabel1, ?rLabel2) AS ?rLabel3) + # -- old --- BIND (IF (CONTAINS(?rLabel3, "."), + # -- old --- ?rLabel3, + # -- old --- CONCAT("amr.", ?rLabel3)) AS ?roleTag) + # -- old --- BIND (strbefore(?roleTag, '.') AS ?rolesetId) + # -- old --- BIND (strafter(?roleTag, '.') AS ?roleId) + # -- old --- BIND (IF (STRLEN(?roleId) > 0, ?roleId, ?rLabel3) AS ?rLabel) + + # -- New labels for ARG0 edge + # -- old --- BIND ("amr.ARG0" AS ?roleTag0) + # -- old --- BIND (strbefore(?roleTag0, '.') AS ?rolesetId0) + # -- old --- BIND (strafter(?roleTag0, '.') AS ?roleId0) + + # -- New labels for ARG1 edge + # -- old --- BIND ("amr.ARG1" AS ?roleTag1) + # -- old --- BIND (strbefore(?roleTag1, '.') AS ?rolesetId1) + # -- old --- BIND (strafter(?roleTag1, '.') AS ?roleId1) + + # -- New labels + BIND ("ARG0" AS ?roleId0) + BIND ("ARG1" AS ?roleId1) + + # -- New edge (ARG0) + BIND (CONCAT(str(amr:), 'edge') AS ?n01). + BIND (CONCAT(?n01, '_', ?v1Label) AS ?n02). + BIND (CONCAT(?n02, '_', ?roleId0) AS ?n03). + BIND (CONCAT(?n03, '_', ?rvLabel) AS ?n04). + BIND (uri(?n04) AS ?newEdge0). + + # -- New edge (ARG1) + BIND (CONCAT(str(amr:), 'edge') AS ?n11). + BIND (CONCAT(?n11, '_', ?rvLabel) AS ?n12). + BIND (CONCAT(?n12, '_', ?roleId1) AS ?n13). + BIND (CONCAT(?n13, '_', ?v2Label) AS ?n14). + BIND (uri(?n14) AS ?newEdge1). + """ + } rule_set['add-amr-edge-for-name-relation'] = { 'label': "add-amr-edge-for-name-relation", @@ -604,9 +702,10 @@ rule_set['add-amr-edge-for-name-relation'] = { # -- New edge ?newEdge a amr:AMR_Edge ; - amr:hasRolesetID ?rolesetId ; - amr:hasRoleID ?roleId ; - amr:hasRoleTag ?roleTag. + amr:hasRoleID ?roleId. + # -- old --- amr:hasRolesetID ?rolesetId ; + # -- old --- amr:hasRoleID ?roleId ; + # -- old --- amr:hasRoleTag ?roleTag. # -- New relation between leaf and value ?leaf ?newEdge ?newValue. @@ -656,9 +755,10 @@ rule_set['add-amr-edge-for-quant-relation'] = { # -- New edge ?newEdge a amr:AMR_Edge ; - amr:hasRolesetID ?rolesetId ; - amr:hasRoleID ?roleId ; - amr:hasRoleTag ?roleTag. + amr:hasRoleID ?roleId. + # -- old --- amr:hasRolesetID ?rolesetId ; + # -- old --- amr:hasRoleID ?roleId ; + # -- old --- amr:hasRoleTag ?roleTag. # -- New relation between leaf and value ?leaf ?newEdge ?newValue. @@ -706,9 +806,10 @@ rule_set['add-amr-edge-for-polarity-relation'] = { # -- New edge ?newEdge a amr:AMR_Edge ; - amr:hasRolesetID ?rolesetId ; - amr:hasRoleID ?roleId ; - amr:hasRoleTag ?roleTag. + amr:hasRoleID ?roleId. + # -- old --- amr:hasRolesetID ?rolesetId ; + # -- old --- amr:hasRoleID ?roleId ; + # -- old --- amr:hasRoleTag ?roleTag. # -- New relation between leaf and value ?leaf ?newEdge ?newValue. @@ -749,7 +850,7 @@ rule_set['add-amr-edge-for-polarity-relation'] = { # --------------------------------------------- -# Update leafs and edges +# Update leafs and edges *** TODO *** # --------------------------------------------- rule_set['update-amr-edge-role-1'] = { @@ -770,23 +871,23 @@ rule_set['update-amr-edge-role-1'] = { 'binding': '' } -rule_set['update-amr-edge-role-2'] = { - 'label': "update-amr-edge-role-2", - 'comment': ("Update AMR edge by adding relation with AMR_Role", - "(using comparison between label and role tag)"), - 'construction': """ - ?edge amr:hasAmrRole ?role. - """, - 'clause': """ - ?edge a amr:AMR_Edge ; - amr:hasRoleTag ?edgeRoleId. - ?role rdfs:subClassOf* amr:AMR_Role ; - amr:label ?roleLabel. - FILTER ( ?roleLabel != '' ). - FILTER ( ?edgeRoleId = ?roleLabel ). - """, - 'binding': '' - } +# rule_set['update-amr-edge-role-2'] = { +# 'label': "update-amr-edge-role-2", +# 'comment': ("Update AMR edge by adding relation with AMR_Role", +# "(using comparison between label and role tag)"), +# 'construction': """ +# ?edge amr:hasAmrRole ?role. +# """, +# 'clause': """ +# ?edge a amr:AMR_Edge ; +# amr:hasRoleTag ?edgeRoleId. +# ?role rdfs:subClassOf* amr:AMR_Role ; +# amr:label ?roleLabel. +# FILTER ( ?roleLabel != '' ). +# FILTER ( ?edgeRoleId = ?roleLabel ). +# """, +# 'binding': '' +# } # --------------------------------------------- diff --git a/structure/cts/amr_scheme_1.py b/structure/cts/amr_scheme_1.py index 890d2bc2..ef3edfa9 100644 --- a/structure/cts/amr_scheme_1.py +++ b/structure/cts/amr_scheme_1.py @@ -76,21 +76,22 @@ amr_reification_sequence = { 'reclassify-concept-3', 'reclassify-concept-4', 'reclassify-concept-5', - 'reclassify-role-1', - 'reclassify-role-2', + # --old --- 'reclassify-role-1', + # --old --- 'reclassify-role-2', 'reify-roles-as-concept', 'reclassify-existing-variable', 'add-new-variable-for-reified-concept', 'add-amr-leaf-for-reclassified-concept', 'add-amr-leaf-for-reified-concept', 'add-amr-edge-for-core-relation', + 'add-amr-edge-for-reified-concept', 'add-amr-edge-for-name-relation', 'add-amr-edge-for-quant-relation', 'add-amr-edge-for-polarity-relation', # --old --- 'set-amr-label-for-variables', # --old --- 'set-amr-label-for-roles', 'update-amr-edge-role-1', - 'update-amr-edge-role-2', + # --old --- 'update-amr-edge-role-2', 'add-amr-root'] } diff --git a/tenet.log b/tenet.log index ca3030fe..870a6368 100644 --- a/tenet.log +++ b/tenet.log @@ -23,8 +23,8 @@ ----- CTS directory: ./structure/cts/ ----- target frame directory: ./input/targetFrameStructure/ ----- input document directory: ./input/amrDocuments/ - ----- output directory: ./output/SolarSystemDev1-20221208/ - ----- sentence output directory: ./output/SolarSystemDev1-20221208/ + ----- output directory: ./output/SolarSystemDev1-20221209/ + ----- sentence output directory: ./output/SolarSystemDev1-20221209/ ----- SHACL binary directory: ./lib/shacl-1.3.2/bin -- Config File Definition ----- schema file: ./structure/amr-rdf-schema.ttl @@ -44,9 +44,9 @@ ----- frame ontology seed file: ./input/targetFrameStructure/base-ontology-seed.ttl -- Output ----- ontology namespace: https://tenet.tetras-libre.fr/base-ontology/ - ----- output file: ./output/SolarSystemDev1-20221208/SolarSystemDev1.ttl + ----- output file: ./output/SolarSystemDev1-20221209/SolarSystemDev1.ttl *** - *** -- INFO - -- Creating output target directory: ./output/SolarSystemDev1-20221208/ +- INFO - -- Creating output target directory: ./output/SolarSystemDev1-20221209/ - DEBUG - -- Counting number of graph files (sentences) - DEBUG - ----- Graph count: 1 - INFO - === Extraction Processing using New TENET Engine === @@ -55,170 +55,168 @@ - INFO - -- Work Structure Preparation - DEBUG - --- Graph Initialization - DEBUG - ----- Configuration Loading -- DEBUG - -------- RDF Schema (255) -- DEBUG - -------- Semantic Net Definition (458) -- DEBUG - -------- Config Parameter Definition (492) +- DEBUG - -------- RDF Schema (299) +- DEBUG - -------- Semantic Net Definition (502) +- DEBUG - -------- Config Parameter Definition (536) - DEBUG - ----- Frame Ontology Loading -- DEBUG - -------- Base Ontology produced as output (522) +- DEBUG - -------- Base Ontology produced as output (566) - DEBUG - --- Source Data Import - DEBUG - ----- Sentence Loading -- DEBUG - -------- ./input/amrDocuments/dev/solar-system-1/SSC-01-01.stog.amr.ttl (570) +- DEBUG - -------- ./input/amrDocuments/dev/solar-system-1/SSC-01-01.stog.amr.ttl (614) - DEBUG - --- Export work graph as turtle -- DEBUG - ----- Work graph file: ./output/SolarSystemDev1-20221208/SolarSystemDev1-1/SolarSystemDev1.ttl +- DEBUG - ----- Work graph file: ./output/SolarSystemDev1-20221209/SolarSystemDev1-1/SolarSystemDev1.ttl - DEBUG - --- Ending Structure Preparation -- DEBUG - ----- Total Execution Time = 0:00:00.122036 +- DEBUG - ----- Total Execution Time = 0:00:00.126792 - INFO - -- Loading Extraction Scheme (amr_scheme_1) - DEBUG - ----- Step number: 3 - INFO - -- Loading Extraction Rules (amr_ctr/*) -- DEBUG - ----- Total rule number: 87 +- DEBUG - ----- Total rule number: 88 - INFO - -- Applying extraction step: preprocessing - INFO - --- Sequence: amrld-correcting-sequence -- INFO - ----- fix-amr-bug-about-system-solar-planet: 5/5 new triples (575) +- INFO - ----- fix-amr-bug-about-system-solar-planet: 5/5 new triples (619) - INFO - --- Sequence: amr-reification-sequence -- INFO - ----- reclassify-concept-1: 10/10 new triples (585) -- DEBUG - ----- reclassify-concept-2: 0/0 new triples (585) -- INFO - ----- reclassify-concept-3: 12/12 new triples (597) -- INFO - ----- reclassify-concept-4: 16/16 new triples (613) -- INFO - ----- reclassify-concept-5: 2/4 new triples (615) -- INFO - ----- reclassify-role-1: 8/8 new triples (623) -- INFO - ----- reclassify-rolet-2: 12/15 new triples (635) -- INFO - ----- reify-roles-as-concept: 10/10 new triples (645) -- INFO - ----- reclassify-existing-variable: 45/45 new triples (690) -- INFO - ----- add-new-variable-for-reified-concept: 6/6 new triples (696) -- INFO - ----- add-amr-leaf-for-reclassified-concept: 33/33 new triples (729) -- INFO - ----- add-amr-leaf-for-reified-concept: 6/6 new triples (735) -- INFO - ----- add-amr-edge-for-core-relation: 55/55 new triples (790) -- INFO - ----- add-amr-edge-for-name-relation: 7/7 new triples (797) -- DEBUG - ----- add-value-for-quant-relation: 0/0 new triples (797) -- DEBUG - ----- add-value-for-polarity-relation: 0/0 new triples (797) -- INFO - ----- update-amr-edge-role-1: 11/11 new triples (808) -- DEBUG - ----- update-amr-edge-role-2: 0/0 new triples (808) -- INFO - ----- add-amr-root: 5/5 new triples (813) +- INFO - ----- reclassify-concept-1: 10/10 new triples (629) +- DEBUG - ----- reclassify-concept-2: 0/0 new triples (629) +- INFO - ----- reclassify-concept-3: 12/12 new triples (641) +- INFO - ----- reclassify-concept-4: 16/16 new triples (657) +- INFO - ----- reclassify-concept-5: 2/4 new triples (659) +- INFO - ----- reify-roles-as-concept: 10/10 new triples (669) +- INFO - ----- reclassify-existing-variable: 45/45 new triples (714) +- INFO - ----- add-new-variable-for-reified-concept: 8/8 new triples (722) +- INFO - ----- add-amr-leaf-for-reclassified-concept: 33/33 new triples (755) +- INFO - ----- add-amr-leaf-for-reified-concept: 8/8 new triples (763) +- INFO - ----- add-amr-edge-for-core-relation: 27/27 new triples (790) +- INFO - ----- add-amr-edge-for-reified-concept: 12/12 new triples (802) +- INFO - ----- add-amr-edge-for-name-relation: 5/5 new triples (807) +- DEBUG - ----- add-value-for-quant-relation: 0/0 new triples (807) +- DEBUG - ----- add-value-for-polarity-relation: 0/0 new triples (807) +- INFO - ----- update-amr-edge-role-1: 14/14 new triples (821) +- INFO - ----- add-amr-root: 5/5 new triples (826) - DEBUG - --- Serializing graph to SolarSystemDev1_preprocessing - DEBUG - ----- step: preprocessing - DEBUG - ----- id: SolarSystemDev1 -- DEBUG - ----- work_file: ./output/SolarSystemDev1-20221208/SolarSystemDev1-1/SolarSystemDev1_preprocessing.ttl +- DEBUG - ----- work_file: ./output/SolarSystemDev1-20221209/SolarSystemDev1-1/SolarSystemDev1_preprocessing.ttl - DEBUG - ----- base: http://SolarSystemDev1/preprocessing -- INFO - ----- 243 triples extracted during preprocessing step +- INFO - ----- 212 triples extracted during preprocessing step - INFO - -- Applying extraction step: transduction - INFO - --- Sequence: atomic-extraction-sequence -- INFO - ----- create-atom-class-net: 20/20 new triples (833) -- DEBUG - ----- (refinement) refine-cover-node-1: 5 new triples (838) -- DEBUG - ----- (refinement) refine-cover-node-2: 5 new triples (843) -- INFO - ----- create-individual-net-1: 7/7 new triples (850) -- DEBUG - ----- (refinement) refine-cover-node-1: 1 new triples (851) -- INFO - ----- create-atom-property-net-1: 65/65 new triples (916) -- DEBUG - ----- (refinement) refine-cover-node-1: 6 new triples (922) -- INFO - ----- create-phenomena-net-1: 26/26 new triples (948) -- DEBUG - ----- (refinement) refine-cover-node-1: 2 new triples (950) +- INFO - ----- create-atom-class-net: 20/20 new triples (846) +- DEBUG - ----- (refinement) refine-cover-node-1: 5 new triples (851) +- DEBUG - ----- (refinement) refine-cover-node-2: 5 new triples (856) +- INFO - ----- create-individual-net-1: 7/7 new triples (863) +- DEBUG - ----- (refinement) refine-cover-node-1: 1 new triples (864) +- INFO - ----- create-atom-property-net-1: 69/69 new triples (933) +- DEBUG - ----- (refinement) refine-cover-node-1: 6 new triples (939) +- INFO - ----- create-phenomena-net-1: 24/25 new triples (963) +- DEBUG - ----- (refinement) refine-cover-node-1: 2 new triples (965) - INFO - --- Sequence: phenomena-checking-sequence -- INFO - ----- expand-and-conjunction-phenomena-net: 4/4 new triples (954) -- DEBUG - ----- expand-degree-phenomena-net-1: 0/0 new triples (954) -- DEBUG - ----- expand-degree-phenomena-net-2: 0/0 new triples (954) -- DEBUG - ----- expand-degree-phenomena-net-3: 0/0 new triples (954) -- DEBUG - ----- expand-degree-phenomena-net-4: 0/0 new triples (954) -- DEBUG - ----- expand-degree-phenomena-net-5: 0/0 new triples (954) -- DEBUG - ----- expand-degree-phenomena-net-6: 0/0 new triples (954) +- INFO - ----- expand-and-conjunction-phenomena-net: 4/4 new triples (969) +- DEBUG - ----- expand-degree-phenomena-net-1: 0/0 new triples (969) +- DEBUG - ----- expand-degree-phenomena-net-2: 0/0 new triples (969) +- DEBUG - ----- expand-degree-phenomena-net-3: 0/0 new triples (969) +- DEBUG - ----- expand-degree-phenomena-net-4: 0/0 new triples (969) +- DEBUG - ----- expand-degree-phenomena-net-5: 0/0 new triples (969) +- DEBUG - ----- expand-degree-phenomena-net-6: 0/0 new triples (969) - INFO - --- Sequence: composite-property-extraction-sequence -- DEBUG - ----- create-composite-class-net-from-property-1: 0/0 new triples (954) -- INFO - ----- create-composite-class-net-from-property-2: 12/15 new triples (966) -- DEBUG - ----- (refinement) refine-cover-node-1: 3 new triples (969) +- DEBUG - ----- create-composite-class-net-from-property-1: 0/0 new triples (969) +- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triples (969) - INFO - --- Sequence: composite-class-extraction-sequence-1 -- INFO - ----- create-composite-class-net-from-property-1: 36/38 new triples (1005) -- DEBUG - ----- (refinement) refine-cover-node-1: 6 new triples (1011) -- DEBUG - ----- (refinement) refine-cover-node-2: 2 new triples (1013) -- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triples (1013) -- DEBUG - ----- create-composite-class-net-from-property-3: 0/0 new triples (1013) +- INFO - ----- create-composite-class-net-from-property-1: 75/79 new triples (1044) +- DEBUG - ----- (refinement) refine-cover-node-1: 12 new triples (1056) +- DEBUG - ----- (refinement) refine-cover-node-2: 4 new triples (1060) +- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triples (1060) +- DEBUG - ----- create-composite-class-net-from-property-3: 0/0 new triples (1060) - INFO - --- Sequence: composite-class-extraction-sequence-2 -- DEBUG - ----- create-composite-class-net-from-phenomena-1: 0/0 new triples (1013) -- DEBUG - ----- create-composite-class-net-from-phenomena-2: 0/0 new triples (1013) -- DEBUG - ----- create-composite-class-net-from-phenomena-3: 0/0 new triples (1013) -- DEBUG - ----- create-composite-class-net-from-phenomena-4: 0/0 new triples (1013) +- DEBUG - ----- create-composite-class-net-from-phenomena-1: 0/0 new triples (1060) +- DEBUG - ----- create-composite-class-net-from-phenomena-2: 0/0 new triples (1060) +- DEBUG - ----- create-composite-class-net-from-phenomena-3: 0/0 new triples (1060) +- DEBUG - ----- create-composite-class-net-from-phenomena-4: 0/0 new triples (1060) - INFO - --- Sequence: phenomena-checking-sequence -- INFO - ----- expand-and-conjunction-phenomena-net: 3/7 new triples (1016) -- DEBUG - ----- expand-degree-phenomena-net-1: 0/0 new triples (1016) -- DEBUG - ----- expand-degree-phenomena-net-2: 0/0 new triples (1016) -- DEBUG - ----- expand-degree-phenomena-net-3: 0/0 new triples (1016) -- DEBUG - ----- expand-degree-phenomena-net-4: 0/0 new triples (1016) -- DEBUG - ----- expand-degree-phenomena-net-5: 0/0 new triples (1016) -- DEBUG - ----- expand-degree-phenomena-net-6: 0/0 new triples (1016) +- INFO - ----- expand-and-conjunction-phenomena-net: 1/5 new triples (1061) +- DEBUG - ----- expand-degree-phenomena-net-1: 0/0 new triples (1061) +- DEBUG - ----- expand-degree-phenomena-net-2: 0/0 new triples (1061) +- DEBUG - ----- expand-degree-phenomena-net-3: 0/0 new triples (1061) +- DEBUG - ----- expand-degree-phenomena-net-4: 0/0 new triples (1061) +- DEBUG - ----- expand-degree-phenomena-net-5: 0/0 new triples (1061) +- DEBUG - ----- expand-degree-phenomena-net-6: 0/0 new triples (1061) - INFO - --- Sequence: composite-property-extraction-sequence -- DEBUG - ----- create-composite-class-net-from-property-1: 0/0 new triples (1016) -- INFO - ----- create-composite-class-net-from-property-2: 15/31 new triples (1031) -- DEBUG - ----- (refinement) refine-cover-node-1: 3 new triples (1034) +- DEBUG - ----- create-composite-class-net-from-property-1: 0/0 new triples (1061) +- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triples (1061) - INFO - --- Sequence: composite-class-extraction-sequence-1 -- DEBUG - ----- create-composite-class-net-from-property-1: 0/39 new triples (1034) -- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triples (1034) -- DEBUG - ----- create-composite-class-net-from-property-3: 0/0 new triples (1034) +- INFO - ----- create-composite-class-net-from-property-1: 94/173 new triples (1155) +- DEBUG - ----- (refinement) refine-cover-node-1: 15 new triples (1170) +- DEBUG - ----- (refinement) refine-cover-node-2: 5 new triples (1175) +- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triples (1175) +- DEBUG - ----- create-composite-class-net-from-property-3: 0/0 new triples (1175) - INFO - --- Sequence: composite-class-extraction-sequence-2 -- DEBUG - ----- create-composite-class-net-from-phenomena-1: 0/0 new triples (1034) -- DEBUG - ----- create-composite-class-net-from-phenomena-2: 0/0 new triples (1034) -- DEBUG - ----- create-composite-class-net-from-phenomena-3: 0/0 new triples (1034) -- DEBUG - ----- create-composite-class-net-from-phenomena-4: 0/0 new triples (1034) +- DEBUG - ----- create-composite-class-net-from-phenomena-1: 0/0 new triples (1175) +- DEBUG - ----- create-composite-class-net-from-phenomena-2: 0/0 new triples (1175) +- DEBUG - ----- create-composite-class-net-from-phenomena-3: 0/0 new triples (1175) +- DEBUG - ----- create-composite-class-net-from-phenomena-4: 0/0 new triples (1175) - INFO - --- Sequence: restriction-adding-sequence -- DEBUG - ----- add-restriction-to-class-net-from-property-1: 0/0 new triples (1034) +- DEBUG - ----- add-restriction-to-class-net-from-property-1: 0/0 new triples (1175) - INFO - --- Sequence: classification-sequence -- INFO - ----- classify-net-from-core-1: 4/4 new triples (1038) -- INFO - ----- classify-net-from-core-2: 2/2 new triples (1040) -- DEBUG - ----- classify-net-from-core-3: 0/0 new triples (1040) -- DEBUG - ----- classify-net-from-mod: 0/0 new triples (1040) -- DEBUG - ----- classify-net-from-part: 0/4 new triples (1040) -- DEBUG - ----- classify-net-from-domain: 0/0 new triples (1040) -- DEBUG - ----- classify-net-from-degree-phenomena-1: 0/0 new triples (1040) -- DEBUG - ----- classify-net-from-degree-phenomena-2: 0/0 new triples (1040) -- DEBUG - ----- classify-net-from-degree-phenomena-3: 0/0 new triples (1040) -- DEBUG - ----- propagate-individual-1: 0/1 new triples (1040) -- INFO - ----- propagate-individual-2: 1/1 new triples (1041) -- DEBUG - ----- reclassify-deprecated-net: 0/0 new triples (1041) +- INFO - ----- classify-net-from-core-1: 12/12 new triples (1187) +- INFO - ----- classify-net-from-core-2: 1/9 new triples (1188) +- DEBUG - ----- classify-net-from-core-3: 0/0 new triples (1188) +- DEBUG - ----- classify-net-from-mod: 0/0 new triples (1188) +- DEBUG - ----- classify-net-from-part: 0/0 new triples (1188) +- INFO - ----- classify-net-from-domain: 5/5 new triples (1193) +- DEBUG - ----- classify-net-from-degree-phenomena-1: 0/0 new triples (1193) +- DEBUG - ----- classify-net-from-degree-phenomena-2: 0/0 new triples (1193) +- DEBUG - ----- classify-net-from-degree-phenomena-3: 0/0 new triples (1193) +- DEBUG - ----- propagate-individual-1: 0/1 new triples (1193) +- INFO - ----- propagate-individual-2: 6/6 new triples (1199) +- DEBUG - ----- reclassify-deprecated-net: 0/0 new triples (1199) - DEBUG - --- Serializing graph to SolarSystemDev1_transduction - DEBUG - ----- step: transduction - DEBUG - ----- id: SolarSystemDev1 -- DEBUG - ----- work_file: ./output/SolarSystemDev1-20221208/SolarSystemDev1-1/SolarSystemDev1_transduction.ttl +- DEBUG - ----- work_file: ./output/SolarSystemDev1-20221209/SolarSystemDev1-1/SolarSystemDev1_transduction.ttl - DEBUG - ----- base: http://SolarSystemDev1/transduction -- INFO - ----- 228 triples extracted during transduction step +- INFO - ----- 373 triples extracted during transduction step - INFO - -- Applying extraction step: generation - INFO - --- Sequence: main-generation-sequence -- INFO - ----- compute-uri-for-owl-declaration-1: 7/7 new triples (1048) -- INFO - ----- compute-uri-for-owl-declaration-2: 1/1 new triples (1049) -- DEBUG - ----- compute-uri-for-owl-declaration-4: 0/0 new triples (1049) -- INFO - ----- compute-uri-for-owl-declaration-5: 8/8 new triples (1057) -- INFO - ----- compute-uri-for-owl-declaration-6: 6/6 new triples (1063) -- INFO - ----- generate-atom-class: 12/12 new triples (1075) -- INFO - ----- classify-atom-class-1: 4/4 new triples (1079) -- INFO - ----- classify-atom-class-2: 1/1 new triples (1080) -- INFO - ----- generate-individual: 3/3 new triples (1083) -- INFO - ----- classify-individual: 1/1 new triples (1084) -- INFO - ----- generate-atom-property-1: 20/20 new triples (1104) -- INFO - ----- generate-atom-property-12: 12/20 new triples (1116) -- DEBUG - ----- generate-inverse-relation: 0/0 new triples (1116) -- INFO - ----- generate-composite-class: 8/8 new triples (1124) -- DEBUG - ----- add-restriction-to-class-1: 0/0 new triples (1124) -- DEBUG - ----- add-restriction-to-class-2: 0/0 new triples (1124) -- INFO - ----- add-restriction-to-class-3: 8/10 new triples (1132) -- DEBUG - ----- add-restriction-to-class-4: 0/0 new triples (1132) -- DEBUG - ----- add-restriction-to-class-5: 0/0 new triples (1132) -- DEBUG - ----- add-restriction-to-class-6: 0/0 new triples (1132) -- INFO - ----- generate-composite-property: 8/8 new triples (1140) +- INFO - ----- compute-uri-for-owl-declaration-1: 14/14 new triples (1213) +- INFO - ----- compute-uri-for-owl-declaration-2: 1/1 new triples (1214) +- DEBUG - ----- compute-uri-for-owl-declaration-4: 0/0 new triples (1214) +- INFO - ----- compute-uri-for-owl-declaration-5: 6/6 new triples (1220) +- INFO - ----- compute-uri-for-owl-declaration-6: 6/6 new triples (1226) +- INFO - ----- generate-atom-class: 12/12 new triples (1238) +- INFO - ----- classify-atom-class-1: 4/4 new triples (1242) +- INFO - ----- classify-atom-class-2: 1/1 new triples (1243) +- INFO - ----- generate-individual: 3/3 new triples (1246) +- INFO - ----- classify-individual: 6/6 new triples (1252) +- INFO - ----- generate-atom-property-1: 20/20 new triples (1272) +- INFO - ----- generate-atom-property-12: 12/20 new triples (1284) +- DEBUG - ----- generate-inverse-relation: 0/0 new triples (1284) +- INFO - ----- generate-composite-class: 38/38 new triples (1322) +- DEBUG - ----- add-restriction-to-class-1: 0/0 new triples (1322) +- DEBUG - ----- add-restriction-to-class-2: 0/0 new triples (1322) +- INFO - ----- add-restriction-to-class-3: 36/45 new triples (1358) +- DEBUG - ----- add-restriction-to-class-4: 0/0 new triples (1358) +- DEBUG - ----- add-restriction-to-class-5: 0/0 new triples (1358) +- DEBUG - ----- add-restriction-to-class-6: 0/0 new triples (1358) +- DEBUG - ----- generate-composite-property: 0/0 new triples (1358) - DEBUG - --- Serializing graph to SolarSystemDev1_generation - DEBUG - ----- step: generation - DEBUG - ----- id: SolarSystemDev1 -- DEBUG - ----- work_file: ./output/SolarSystemDev1-20221208/SolarSystemDev1-1/SolarSystemDev1_generation.ttl +- DEBUG - ----- work_file: ./output/SolarSystemDev1-20221209/SolarSystemDev1-1/SolarSystemDev1_generation.ttl - DEBUG - ----- base: http://SolarSystemDev1/generation -- INFO - ----- 99 triples extracted during generation step +- INFO - ----- 159 triples extracted during generation step - INFO - -- Result: file containing only the factoids - DEBUG - --- Making factoid graph with the last step result -- DEBUG - ----- Number of factoids: 109 +- DEBUG - ----- Number of factoids: 176 - DEBUG - ----- Graph base: http://SolarSystemDev1/factoid -- DEBUG - --- Serializing graph to factoid file (./output/SolarSystemDev1-20221208/SolarSystemDev1-1/SolarSystemDev1_factoid.ttl) +- DEBUG - --- Serializing graph to factoid file (./output/SolarSystemDev1-20221209/SolarSystemDev1-1/SolarSystemDev1_factoid.ttl) - INFO - *** Execution Time *** ----- Function: apply (lib.tenet_extraction) ------ Total Time: 0:00:07.452790 ------ Process Time: 0:00:07.406061 +----- Total Time: 0:00:07.336335 +----- Process Time: 0:00:07.319472 *** - *** - INFO - === Final Ontology Generation === - INFO - -- Making complete factoid graph by merging sentence factoid graphs -- INFO - ----- Total factoid number: 109 +- INFO - ----- Total factoid number: 176 - INFO - ----- Graph base: http://SolarSystemDev1/factoid -- INFO - -- Serializing graph to factoid file (./output/SolarSystemDev1-20221208/SolarSystemDev1_factoid.ttl) +- INFO - -- Serializing graph to factoid file (./output/SolarSystemDev1-20221209/SolarSystemDev1_factoid.ttl) - INFO - === Done === -- GitLab