From 860023ed43d1710a1defd9bedfc5b5d2ed602dc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Lamercerie?= <aurelien.lamercerie@tetras-libre.fr> Date: Mon, 19 Dec 2022 19:11:13 +0100 Subject: [PATCH] Update and valid Atomic-extraction CTR with QB --- structure/cts/amr_ctr/generation.py | 29 +-- .../amr_ctr/transduction/atomic_extraction.py | 31 +-- .../transduction/query_builder/builders.py | 57 +---- .../query_builder/element/atom_class_net.py | 73 +----- .../element/atom_property_net.py | 77 ++---- .../query_builder/element/individual_net.py | 85 +------ .../transduction/query_builder/element/net.py | 39 +-- .../query_builder/element/old_net.py | 235 ------------------ .../query_builder/element/phenomena_net.py | 72 +----- .../query_builder/element/structure.py | 123 --------- structure/cts/amr_scheme_1.py | 2 +- tenet.log | 196 +++++++-------- 12 files changed, 160 insertions(+), 859 deletions(-) delete mode 100644 structure/cts/amr_ctr/transduction/query_builder/element/old_net.py delete mode 100644 structure/cts/amr_ctr/transduction/query_builder/element/structure.py diff --git a/structure/cts/amr_ctr/generation.py b/structure/cts/amr_ctr/generation.py index f11eea5e..ff1d9263 100644 --- a/structure/cts/amr_ctr/generation.py +++ b/structure/cts/amr_ctr/generation.py @@ -58,27 +58,8 @@ rule_set['compute-uri-for-owl-declaration-2'] = { """ } -rule_set['compute-uri-for-owl-declaration-3----old'] = { +rule_set['compute-uri-for-owl-declaration-3'] = { 'label': "compute-uri-for-owl-declaration-3", - 'comment': ("Compute URI for OWL declaration: ", - " mother class URI of individuals ", - " (case with an extracted mother class) "), - 'construction': """ - ?net1 net:hasMotherClassURI ?newMotherClassUri. - """, - 'clause': """ - ?net1 a net:Individual_Net ; - net:hasMotherClassNet ?motherClassName. - FILTER NOT EXISTS { ?net1 net:deprecated true. } - """, - 'binding': """ - BIND (CONCAT(str(ext-out:), str(?motherClassName)) AS ?c1). - BIND (uri(?c1) AS ?newMotherClassUri). - """ -} - -rule_set['compute-uri-for-owl-declaration-4'] = { - 'label': "compute-uri-for-owl-declaration-4", 'comment': ("Compute URI for OWL declaration: ", " mother class URI of individuals ", " (case with a base ontology class) "), @@ -96,8 +77,8 @@ rule_set['compute-uri-for-owl-declaration-4'] = { """ } -rule_set['compute-uri-for-owl-declaration-5'] = { - 'label': "compute-uri-for-owl-declaration-5", +rule_set['compute-uri-for-owl-declaration-4'] = { + 'label': "compute-uri-for-owl-declaration-4", 'comment': ("Compute URI for OWL declaration: ", " URI of properties "), 'construction': """ @@ -114,8 +95,8 @@ rule_set['compute-uri-for-owl-declaration-5'] = { """ } -rule_set['compute-uri-for-owl-declaration-6'] = { - 'label': "compute-uri-for-owl-declaration-6", +rule_set['compute-uri-for-owl-declaration-5'] = { + 'label': "compute-uri-for-owl-declaration-5", 'comment': ("Compute URI for OWL declaration: ", " URI of properties (variant 12) "), 'construction': """ diff --git a/structure/cts/amr_ctr/transduction/atomic_extraction.py b/structure/cts/amr_ctr/transduction/atomic_extraction.py index df62dca6..9f89a26d 100644 --- a/structure/cts/amr_ctr/transduction/atomic_extraction.py +++ b/structure/cts/amr_ctr/transduction/atomic_extraction.py @@ -62,11 +62,8 @@ rule_set['create-individual-net-1'] = { " (2) without link to domain edge"), 'construction': f""" {individual_net.construct(base_node='?baseLeaf', - structure=structure.sentence_ref, mother_class_net='?classNet', individual_label='?valueLabel')} - - {individual_net.propagate_relations()} """, 'clause': f""" # -- Identify name relation between a leaf and a value @@ -81,10 +78,8 @@ rule_set['create-individual-net-1'] = { ?classNet a [rdfs:subClassOf* net:Class_Net] ; net:coverBaseNode ?baseLeaf ; net:hasClassName ?conceptName. - - {structure.identify()} - {individual_net.identify_relations_for_propagation('?baseLeaf')} + {individual_net.complete_clauses_for_construction('?baseLeaf')} """, 'binding': f""" {individual_net.bind_uri('?conceptName', '?valueLabel')} @@ -102,7 +97,6 @@ rule_set['create-atom-property-net-1'] = { " (1) from AMR Predicat Concept"), 'construction': f""" {atom_property_net.construct(base_node='?baseLeaf', - structure=structure.sentence_ref, core_role='true', target_argument_node='?argLeaf', property_type='owl:ObjectProperty', @@ -110,8 +104,6 @@ rule_set['create-atom-property-net-1'] = { property_name01='?propertyName01', property_name10='?propertyName10', property_name12='?propertyName12')} - - {atom_property_net.propagate_relations()} """, 'clause': f""" # -- Identify property covering single leaf @@ -125,10 +117,8 @@ rule_set['create-atom-property-net-1'] = { ?baseLeaf ?relation ?argLeaf. ?relation amr:hasAmrRole ?someArgRole. }} - - {structure.identify()} - {atom_property_net.identify_relations_for_propagation('?baseLeaf')} + {atom_property_net.complete_clauses_for_construction('?baseLeaf')} """, 'binding': f""" BIND (STRBEFORE(?predicateLabel, '-') AS ?pName1). @@ -286,13 +276,8 @@ rule_set['create-phenomena-net-1'] = { 'comment': ("Create Phenomena Net from AMR Relation Concept"), 'construction': f""" {phenomena_net.construct(base_node='?baseLeaf', - structure=structure.sentence_ref, - core_role='true', - target_argument_node='?argLeaf', phenomena_type='?relationConceptPhenomena', phenomena_ref='?relationConceptLabel')} - - {phenomena_net.propagate_relations()} """, 'clause': f""" # Identify relation concept (phenomena) covering a single leaf @@ -306,10 +291,8 @@ rule_set['create-phenomena-net-1'] = { ?relationConceptPhenomena amr:label ?phenomenaLabel. ?baseLeaf ?relation ?argLeaf. ?relation amr:hasAmrRole ?someArgRole. - - {structure.identify()} - {phenomena_net.identify_relations_for_propagation('?baseLeaf')} + {phenomena_net.complete_clauses_for_construction('?baseLeaf')} """, 'binding': f""" {phenomena_net.bind_uri('?phenomenaLabel', '?varLabel')} @@ -332,7 +315,6 @@ if __name__ == '__main__': test_query_1 = f"""[...] CONSTRUCT {{ {atom_property_net.construct(base_node='?baseLeaf', - structure=structure.sentence_ref, core_role='true', target_argument_node='?argLeaf', property_type='owl:ObjectProperty', @@ -341,8 +323,6 @@ if __name__ == '__main__': property_name10='?propertyName10', property_name12='?propertyName12')} - {atom_property_net.propagate_relations()} - }} WHERE {{ @@ -351,9 +331,7 @@ if __name__ == '__main__': {{node1.concept}} amr:label ?conceptName. {{node1.variable}} amr:label ?varLabel. - {structure.identify()} - - {atom_property_net.identify_relations_for_propagation('?baseLeaf')} + {atom_property_net.complete_clauses_for_construction('?baseLeaf')} {atom_property_net.bind_uri('{{node1.concept_label}}', '{{node1.variable_label}}')} @@ -366,7 +344,6 @@ if __name__ == '__main__': test_query_2 = f"""[...] CONSTRUCT {{ {individual_net.construct(base_node='?baseLeaf', - structure=structure.sentence_ref, mother_class_net='?classNet', individual_label='?valueLabel')} diff --git a/structure/cts/amr_ctr/transduction/query_builder/builders.py b/structure/cts/amr_ctr/transduction/query_builder/builders.py index 39fb12a7..53616de8 100644 --- a/structure/cts/amr_ctr/transduction/query_builder/builders.py +++ b/structure/cts/amr_ctr/transduction/query_builder/builders.py @@ -12,17 +12,11 @@ # Importing required modules #============================================================================== -from .element.old_net import OldNet from .element.net import Net from .element.atom_class_net import AtomClassNet -from .element.structure import Structure - - -#============================================================================== -# AMR Structure Builder(s) -#============================================================================== - -structure = Structure() +from .element.individual_net import IndividualNet +from .element.atom_property_net import AtomPropertyNet +from .element.phenomena_net import PhenomenaNet #============================================================================== @@ -35,52 +29,17 @@ atom_class_net_1 = AtomClassNet(1) atom_class_net_2 = AtomClassNet(2) # -- Individual Net -individual_net = OldNet('individual') +individual_net = IndividualNet() # -- Atom Property Net -atom_property_net = OldNet('atomProperty') +atom_property_net = AtomPropertyNet() # -- Phenomena Net -phenomena_net = OldNet('phenomena') +phenomena_net = PhenomenaNet() #============================================================================== -# Node Builder(s) +# AMR Structure Builder(s) #============================================================================== -# TODO - - - - -#============================================================================== -# Development Test -#============================================================================== - -if __name__ == '__main__': - - print('\n' + ' *** Development Test ***') - - print('\n' + ' -- test: Atom Class Net') - print(atom_class_net) - - print('\n' + ' -- test: update a test query') - test_query= f"""[...] - CONSTRUCT {{ - {atom_class_net.construct('?node1', - structure='?structureRef', - class_name='?leaf1ConceptLabel')} - - {atom_class_net.propagate_relations()} - - }} - WHERE {{ - clause_1 - clause_2 - [...] - binding - }} - """ - print(test_query) - - print('\n' + ' *** - ***') \ No newline at end of file +# TODO \ No newline at end of file diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/atom_class_net.py b/structure/cts/amr_ctr/transduction/query_builder/element/atom_class_net.py index 5eee5f23..bd1113bb 100644 --- a/structure/cts/amr_ctr/transduction/query_builder/element/atom_class_net.py +++ b/structure/cts/amr_ctr/transduction/query_builder/element/atom_class_net.py @@ -2,7 +2,7 @@ # -*-coding:Utf-8 -* #============================================================================== -# TENET: Net Query Builder +# TENET: Atom Class Net Query Builder #------------------------------------------------------------------------------ # Class to generate SPARQL query parts related to semantic nets #============================================================================== @@ -14,51 +14,6 @@ from .net import Net -#============================================================================== -# Data Repository -#============================================================================== - -# -- Reference Table - -# NET_TYPE_TABLE = { # *** [type_name: type_id] *** -# 'default': 'Net', -# 'atomClass': 'Atom_Class_Net', -# 'individual': 'Individual_Net', -# 'atomProperty': 'Atom_Property_Net', -# 'phenomena': 'Phenomena_Net' -# } - -# PREDICATE_TABLE = { # *** [attribute_reference: attribute_predicate] *** -# 'structure': 'hasStructure', - -# 'class_name': 'hasClassName', - -# 'mother_class_net': 'hasMotherClassNet', -# 'individual_label': 'hasIndividualLabel', - -# 'core_role': 'isCoreRoleLinked', -# 'target_argument_node': 'targetArgumentNode', -# 'property_type': 'hasPropertyType', -# 'property_name': 'hasPropertyName', -# 'property_name01': 'hasPropertyName01', -# 'property_name10': 'hasPropertyName10', -# 'property_name12': 'hasPropertyName12', - -# 'phenomena_type': 'hasPhenomenaType', -# 'phenomena_ref': 'hasPhenomenaRef' -# } - -# -- Default Value(s) - -DEFAULT_ATTRIBUTE_VALUE = f'\"NA\"' - - -# -- Useful Constant(s) - -TRIPLE_ENDING_STR = '\n ' - - - #============================================================================== # Net Class #============================================================================== @@ -116,35 +71,25 @@ if __name__ == '__main__': print('\n' + ' *** Development Test ***') - print('\n' + ' -- test: Atom Class Net') - atom_class_net = AtomClassNet() - print(atom_class_net) - - - print('\n' + ' -- test: construct') - construct_ctr = atom_class_net.construct(base_node='?node1', - structure='?structureRef', - class_name='?leaf1ConceptLabel') - print(construct_ctr) + print('\n' + ' -- test: Net') + net = AtomClassNet() + print(net) print('\n' + ' -- test: update a test query') test_query= f"""[...] CONSTRUCT {{ - {atom_class_net.construct(base_node='?node1', - structure='?structureRef', - class_name='?leaf1ConceptLabel')} - - {atom_class_net.propagate_relations()} + {net.construct(base_node='?node1', + class_name='system')} }} WHERE {{ clause_1 clause_2 - {atom_class_net.identify_relations_for_propagation('?node1')} + {net.complete_clauses_for_construction('?node1')} - {atom_class_net.bind_uri('{{node1.concept_label}}', - '{{node1.variable_label}}')} + {net.bind_uri('{{node1.concept_label}}', + '{{node1.variable_label}}')} }} """ print(test_query) diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/atom_property_net.py b/structure/cts/amr_ctr/transduction/query_builder/element/atom_property_net.py index c8cb2bd7..e3c6795c 100644 --- a/structure/cts/amr_ctr/transduction/query_builder/element/atom_property_net.py +++ b/structure/cts/amr_ctr/transduction/query_builder/element/atom_property_net.py @@ -2,7 +2,7 @@ # -*-coding:Utf-8 -* #============================================================================== -# TENET: Net Query Builder +# TENET: Atom Property Net Query Builder #------------------------------------------------------------------------------ # Class to generate SPARQL query parts related to semantic nets #============================================================================== @@ -11,65 +11,26 @@ # Importing required modules #============================================================================== -from net import Net - - -#============================================================================== -# Data Repository -#============================================================================== - -# -- Reference Table - -# NET_TYPE_TABLE = { # *** [type_name: type_id] *** -# 'default': 'Net', -# 'atomClass': 'Atom_Class_Net', -# 'individual': 'Individual_Net', -# 'atomProperty': 'Atom_Property_Net', -# 'phenomena': 'Phenomena_Net' -# } - -# PREDICATE_TABLE = { # *** [attribute_reference: attribute_predicate] *** -# 'structure': 'hasStructure', - -# 'class_name': 'hasClassName', - -# 'mother_class_net': 'hasMotherClassNet', -# 'individual_label': 'hasIndividualLabel', - -# 'core_role': 'isCoreRoleLinked', -# 'target_argument_node': 'targetArgumentNode', -# 'property_type': 'hasPropertyType', -# 'property_name': 'hasPropertyName', -# 'property_name01': 'hasPropertyName01', -# 'property_name10': 'hasPropertyName10', -# 'property_name12': 'hasPropertyName12', - -# 'phenomena_type': 'hasPhenomenaType', -# 'phenomena_ref': 'hasPhenomenaRef' -# } - -# -- Default Value(s) - -DEFAULT_ATTRIBUTE_VALUE = f'\"NA\"' - - -# -- Useful Constant(s) - -TRIPLE_ENDING_STR = '\n ' - +from .net import Net #============================================================================== # Net Class #============================================================================== -class AtomClassNet(Net): +class AtomPropertyNet(Net): """ Class to generate SPARQL query parts related to semantic nets. """ predicate_table = Net.predicate_table predicate_table.update({ - 'class_name': 'hasClassName' + 'core_role': 'isCoreRoleLinked', + 'target_argument_node': 'targetArgumentNode', + 'property_type': 'hasPropertyType', + 'property_name': 'hasPropertyName', + 'property_name01': 'hasPropertyName01', + 'property_name10': 'hasPropertyName10', + 'property_name12': 'hasPropertyName12' }) #-------------------------------------------------------------------------- @@ -81,8 +42,8 @@ class AtomClassNet(Net): super().__init__(num) # -- Net Signature - self.type_name = 'atomClass' - self.type_id = 'Atom_Class_Net' + self.type_name = 'atomProperty' + self.type_id = 'Atom_Property_Net' self.id = f'?{self.type_name}Net{num}' self.type_uri = f'net:{self.type_id}' @@ -92,15 +53,6 @@ class AtomClassNet(Net): self.individual_label = f'{self.id}IndividualLabel' - #-------------------------------------------------------------------------- - # Private data accessor(s) - #-------------------------------------------------------------------------- - - # def __get_predicate(self, data_ref): - # property_name = PREDICATE_TABLE[f'{data_ref}'] - # return f'net:{property_name}' - - #-------------------------------------------------------------------------- # Method(s) to build 'Construct' parts #-------------------------------------------------------------------------- @@ -114,9 +66,8 @@ class AtomClassNet(Net): # Method(s) to build 'Clause' parts #-------------------------------------------------------------------------- - - - + # -- + #-------------------------------------------------------------------------- # Method(s) to build 'Binding' parts diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/individual_net.py b/structure/cts/amr_ctr/transduction/query_builder/element/individual_net.py index a66696b5..01f51ea7 100644 --- a/structure/cts/amr_ctr/transduction/query_builder/element/individual_net.py +++ b/structure/cts/amr_ctr/transduction/query_builder/element/individual_net.py @@ -2,7 +2,7 @@ # -*-coding:Utf-8 -* #============================================================================== -# TENET: Net Query Builder +# TENET: Individual Net Query Builder #------------------------------------------------------------------------------ # Class to generate SPARQL query parts related to semantic nets #============================================================================== @@ -11,52 +11,7 @@ # Importing required modules #============================================================================== -from net import Net - - -#============================================================================== -# Data Repository -#============================================================================== - -# -- Reference Table - -# NET_TYPE_TABLE = { # *** [type_name: type_id] *** -# 'default': 'Net', -# 'atomClass': 'Atom_Class_Net', -# 'individual': 'Individual_Net', -# 'atomProperty': 'Atom_Property_Net', -# 'phenomena': 'Phenomena_Net' -# } - -# PREDICATE_TABLE = { # *** [attribute_reference: attribute_predicate] *** -# 'structure': 'hasStructure', - -# 'class_name': 'hasClassName', - -# 'mother_class_net': 'hasMotherClassNet', -# 'individual_label': 'hasIndividualLabel', - -# 'core_role': 'isCoreRoleLinked', -# 'target_argument_node': 'targetArgumentNode', -# 'property_type': 'hasPropertyType', -# 'property_name': 'hasPropertyName', -# 'property_name01': 'hasPropertyName01', -# 'property_name10': 'hasPropertyName10', -# 'property_name12': 'hasPropertyName12', - -# 'phenomena_type': 'hasPhenomenaType', -# 'phenomena_ref': 'hasPhenomenaRef' -# } - -# -- Default Value(s) - -DEFAULT_ATTRIBUTE_VALUE = f'\"NA\"' - - -# -- Useful Constant(s) - -TRIPLE_ENDING_STR = '\n ' - +from .net import Net #============================================================================== @@ -69,8 +24,7 @@ class IndividualNet(Net): predicate_table = Net.predicate_table predicate_table.update({ - 'class_name': 'hasClassName', - 'mother_class_net': 'hasMotherClassNet', + 'mother_class_net': 'hasMotherClassName', 'individual_label': 'hasIndividualLabel' }) @@ -83,8 +37,8 @@ class IndividualNet(Net): super().__init__(num) # -- Net Signature - self.type_name = 'atomClass' - self.type_id = 'Atom_Class_Net' + self.type_name = 'individual' + self.type_id = 'Individual_Net' self.id = f'?{self.type_name}Net{num}' self.type_uri = f'net:{self.type_id}' @@ -93,16 +47,7 @@ class IndividualNet(Net): self.mother_class_net = f'{self.id}MotherClassNet' self.individual_label = f'{self.id}IndividualLabel' - - #-------------------------------------------------------------------------- - # Private data accessor(s) - #-------------------------------------------------------------------------- - # def __get_predicate(self, data_ref): - # property_name = PREDICATE_TABLE[f'{data_ref}'] - # return f'net:{property_name}' - - #-------------------------------------------------------------------------- # Method(s) to build 'Construct' parts #-------------------------------------------------------------------------- @@ -116,9 +61,8 @@ class IndividualNet(Net): # Method(s) to build 'Clause' parts #-------------------------------------------------------------------------- - - - + # -- + #-------------------------------------------------------------------------- # Method(s) to build 'Binding' parts @@ -140,29 +84,20 @@ if __name__ == '__main__': print('\n' + ' -- test: Atom Class Net') net = IndividualNet() print(net) - - - print('\n' + ' -- test: construct') - construct_ctr = net.construct(base_node='?node1', - structure='?structureRef', - class_name='?leaf1ConceptLabel') - print(construct_ctr) print('\n' + ' -- test: update a test query') test_query= f"""[...] CONSTRUCT {{ {net.construct(base_node='?node1', - structure='?structureRef', - class_name='?leaf1ConceptLabel')} - - {net.propagate_relations()} + mother_class_net='?classNet', + individual_label='?valueLabel')} }} WHERE {{ clause_1 clause_2 - {net.identify_relations_for_propagation('?node1')} + {net.complete_clauses_for_construction('?node1')} {net.bind_uri('{{node1.concept_label}}', '{{node1.variable_label}}')} diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/net.py b/structure/cts/amr_ctr/transduction/query_builder/element/net.py index 144773af..d3cfb760 100644 --- a/structure/cts/amr_ctr/transduction/query_builder/element/net.py +++ b/structure/cts/amr_ctr/transduction/query_builder/element/net.py @@ -18,47 +18,12 @@ # Data Repository #============================================================================== -# -- Reference Table - -# NET_TYPE_TABLE = { # *** [type_name: type_id] *** -# 'default': 'Net', -# 'atomClass': 'Atom_Class_Net', -# 'individual': 'Individual_Net', -# 'atomProperty': 'Atom_Property_Net', -# 'phenomena': 'Phenomena_Net' -# } - -# PREDICATE_TABLE = { # *** [attribute_reference: attribute_predicate] *** -# 'structure': 'hasStructure', - -# 'class_name': 'hasClassName', - -# 'mother_class_net': 'hasMotherClassNet', -# 'individual_label': 'hasIndividualLabel', - -# 'core_role': 'isCoreRoleLinked', -# 'target_argument_node': 'targetArgumentNode', -# 'property_type': 'hasPropertyType', -# 'property_name': 'hasPropertyName', -# 'property_name01': 'hasPropertyName01', -# 'property_name10': 'hasPropertyName10', -# 'property_name12': 'hasPropertyName12', - -# 'phenomena_type': 'hasPhenomenaType', -# 'phenomena_ref': 'hasPhenomenaRef' -# } - -# -- Default Value(s) - -DEFAULT_ATTRIBUTE_VALUE = f'\"NA\"' - - # -- Useful Constant(s) +DEFAULT_ATTRIBUTE_VALUE = f'\"NA\"' INDENT_STR = ' ' - #============================================================================== # Net Class #============================================================================== @@ -220,7 +185,7 @@ if __name__ == '__main__': print('\n' + ' *** Development Test ***') - print('\n' + ' -- test: Atom Class Net') + print('\n' + ' -- test: Net') net = Net() print(net) diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/old_net.py b/structure/cts/amr_ctr/transduction/query_builder/element/old_net.py deleted file mode 100644 index c1b09f6d..00000000 --- a/structure/cts/amr_ctr/transduction/query_builder/element/old_net.py +++ /dev/null @@ -1,235 +0,0 @@ -#!/usr/bin/python3.10 -# -*-coding:Utf-8 -* - -#============================================================================== -# TENET: Net Query Builder -#------------------------------------------------------------------------------ -# Class to generate SPARQL query parts related to semantic nets -#============================================================================== - -#============================================================================== -# Importing required modules -#============================================================================== - -# -- - - -#============================================================================== -# Data Repository -#============================================================================== - -# -- Reference Table - -NET_TYPE_TABLE = { # *** [type_name: type_id] *** - 'default': 'Net', - 'atomClass': 'Atom_Class_Net', - 'individual': 'Individual_Net', - 'atomProperty': 'Atom_Property_Net', - 'phenomena': 'Phenomena_Net' - } - -PREDICATE_TABLE = { # *** [attribute_reference: attribute_predicate] *** - 'structure': 'hasStructure', - - 'class_name': 'hasClassName', - - 'mother_class_net': 'hasMotherClassNet', - 'individual_label': 'hasIndividualLabel', - - 'core_role': 'isCoreRoleLinked', - 'target_argument_node': 'targetArgumentNode', - 'property_type': 'hasPropertyType', - 'property_name': 'hasPropertyName', - 'property_name01': 'hasPropertyName01', - 'property_name10': 'hasPropertyName10', - 'property_name12': 'hasPropertyName12', - - 'phenomena_type': 'hasPhenomenaType', - 'phenomena_ref': 'hasPhenomenaRef' - } - -# -- Default Value(s) - -DEFAULT_ATTRIBUTE_VALUE = f'\"NA\"' - - -# -- Useful Constant(s) - -TRIPLE_ENDING_STR = '\n ' - - - -#============================================================================== -# Net Class -#============================================================================== - -class OldNet: - """ Class to generate SPARQL query parts related to semantic nets. - """ - - #-------------------------------------------------------------------------- - # Constructor(s) - #-------------------------------------------------------------------------- - - def __init__(self, type_name='default', num=''): - - # -- Net Signature - self.id = f'?{type_name}Net{num}' - self.type_name = type_name - self.type_uri = f'net:{NET_TYPE_TABLE[type_name]}' - - # -- Net Attributes - self.base_node = f'{self.id}BaseNode' - self.structure = f'{self.id}Structure' - self.class_name = f'{self.id}ClassName' - self.mother_class_net = f'{self.id}MotherClassNet' - self.individual_label = f'{self.id}IndividualLabel' - - # -- Private elements (for relation propagation) - self._in_relation_role = f'{self.id}InRelationRole' - self._in_net = f'{self.id}InNet' - self._out_relation_role = f'{self.id}OutRelationRole' - self._out_net = f'{self.id}OutNet' - - - #-------------------------------------------------------------------------- - # Private data accessor(s) - #-------------------------------------------------------------------------- - - def __get_predicate(self, data_ref): - property_name = PREDICATE_TABLE[f'{data_ref}'] - return f'net:{property_name}' - - - #-------------------------------------------------------------------------- - # Method(s) to build 'Construct' parts - #-------------------------------------------------------------------------- - - def __construct_attribute_triples(self, **net_attribute): - - result_triples = "" - - # -- construct triples with declared attributes - for attr_ref, attr_value in net_attribute.items(): - predicate = self.__get_predicate(attr_ref) - result_triples += f"{self.id} {predicate} {attr_value}." - result_triples += f"{TRIPLE_ENDING_STR}" - - # -- construct triples with default object for non-declared attributes - result_triples += f"# *** default values for attribute useless *** " - result_triples += f"{TRIPLE_ENDING_STR}" - for attr_ref in PREDICATE_TABLE.keys(): - if attr_ref not in net_attribute.keys(): - predicate = self.__get_predicate(attr_ref) - result_triples += f"{self.id} {predicate} {DEFAULT_ATTRIBUTE_VALUE}." - result_triples += f"{TRIPLE_ENDING_STR}" - - return result_triples - - - def construct(self, base_node, **net_attribute): - return f""" - # -- New Net - {self.id} a {self.type_uri}. - {self.id} net:coverBaseNode {base_node}. - {self.__construct_attribute_triples(**net_attribute)}""" - - - def propagate_relations(self): - return f""" - # -- Propagation of relations (from nodes to nets) - {self._in_relation_role} a net:Relation. - {self._in_net} {self._in_relation_role} {self.id}. - {self._out_relation_role} a net:Relation. - {self.id} {self._out_relation_role} {self._out_net}.""" - - - - #-------------------------------------------------------------------------- - # Method(s) to build 'Clause' parts - #-------------------------------------------------------------------------- - - def identify_relations_for_propagation(self, base_node): - return f""" - # -- Identify inbound relations linked to the base leaf (for propagation) - OPTIONAL {{ - {self._in_net} a [rdfs:subClassOf* net:Net] ; - net:coverBaseNode ?inLeaf. - ?inLeaf ?inRelationEdge {base_node}. - ?inRelationEdge amr:hasAmrRole {self._in_relation_role}. - }} - - # -- Identify outgoing relations linked to the base leaf (for propagation) - OPTIONAL {{ - {self._out_net} a [rdfs:subClassOf* net:Net] ; - net:coverBaseNode ?outLeaf. - {base_node} ?outRelationEdge ?outLeaf. - ?outRelationEdge amr:hasAmrRole {self._out_relation_role}. - }} - """ - - - - #-------------------------------------------------------------------------- - # Method(s) to build 'Binding' parts - #-------------------------------------------------------------------------- - - def bind_uri(self, net_name='nameless', node_reference='00'): - ref1 = f"{self.id}Ref1" - ref2 = f"{self.id}Ref2" - ref3 = f"{self.id}Ref3" - refNet = f"{net_name}RefNet" - refNode = f"{node_reference}RefNode" - return f""" - # -- New Net - BIND (REPLACE({net_name}, ' ', "") AS {refNet}). - BIND (REPLACE({node_reference}, ' ', "") AS {refNode}). - BIND (CONCAT(str(net:), '{self.type_name}') AS {ref1}). - BIND (CONCAT({ref1}, '_', {refNet}) AS {ref2}). - BIND (CONCAT({ref2}, '_', {refNode}) AS {ref3}). - BIND (uri({ref3}) AS {self.id}).""" - - - -#============================================================================== -# Development Test -#============================================================================== - -if __name__ == '__main__': - - print('\n' + ' *** Development Test ***') - - print('\n' + ' -- test: Atom Class Net') - atom_class_net = Net('atomClass') - print(atom_class_net) - - - print('\n' + ' -- test: construct') - construct_ctr = atom_class_net.construct('?node1', - structure='?structureRef', - class_name='?leaf1ConceptLabel') - print(construct_ctr) - - print('\n' + ' -- test: update a test query') - test_query= f"""[...] - CONSTRUCT {{ - {atom_class_net.construct('?node1', - structure='?structureRef', - class_name='?leaf1ConceptLabel')} - - {atom_class_net.propagate_relations()} - - }} - WHERE {{ - clause_1 - clause_2 - - {atom_class_net.identify_relations_for_propagation('?node1')} - - {atom_class_net.bind_uri('{{node1.concept_label}}', - '{{node1.variable_label}}')} - }} - """ - print(test_query) - - print('\n' + ' *** - ***') diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/phenomena_net.py b/structure/cts/amr_ctr/transduction/query_builder/element/phenomena_net.py index c8cb2bd7..7ea05cb7 100644 --- a/structure/cts/amr_ctr/transduction/query_builder/element/phenomena_net.py +++ b/structure/cts/amr_ctr/transduction/query_builder/element/phenomena_net.py @@ -2,7 +2,7 @@ # -*-coding:Utf-8 -* #============================================================================== -# TENET: Net Query Builder +# TENET: Phenomena Net Query Builder #------------------------------------------------------------------------------ # Class to generate SPARQL query parts related to semantic nets #============================================================================== @@ -11,65 +11,21 @@ # Importing required modules #============================================================================== -from net import Net - - -#============================================================================== -# Data Repository -#============================================================================== - -# -- Reference Table - -# NET_TYPE_TABLE = { # *** [type_name: type_id] *** -# 'default': 'Net', -# 'atomClass': 'Atom_Class_Net', -# 'individual': 'Individual_Net', -# 'atomProperty': 'Atom_Property_Net', -# 'phenomena': 'Phenomena_Net' -# } - -# PREDICATE_TABLE = { # *** [attribute_reference: attribute_predicate] *** -# 'structure': 'hasStructure', - -# 'class_name': 'hasClassName', - -# 'mother_class_net': 'hasMotherClassNet', -# 'individual_label': 'hasIndividualLabel', - -# 'core_role': 'isCoreRoleLinked', -# 'target_argument_node': 'targetArgumentNode', -# 'property_type': 'hasPropertyType', -# 'property_name': 'hasPropertyName', -# 'property_name01': 'hasPropertyName01', -# 'property_name10': 'hasPropertyName10', -# 'property_name12': 'hasPropertyName12', - -# 'phenomena_type': 'hasPhenomenaType', -# 'phenomena_ref': 'hasPhenomenaRef' -# } - -# -- Default Value(s) - -DEFAULT_ATTRIBUTE_VALUE = f'\"NA\"' - - -# -- Useful Constant(s) - -TRIPLE_ENDING_STR = '\n ' - +from .net import Net #============================================================================== # Net Class #============================================================================== -class AtomClassNet(Net): +class PhenomenaNet(Net): """ Class to generate SPARQL query parts related to semantic nets. """ predicate_table = Net.predicate_table predicate_table.update({ - 'class_name': 'hasClassName' + 'phenomena_type': 'hasPhenomenaType', + 'phenomena_ref': 'hasPhenomenaRef' }) #-------------------------------------------------------------------------- @@ -81,8 +37,8 @@ class AtomClassNet(Net): super().__init__(num) # -- Net Signature - self.type_name = 'atomClass' - self.type_id = 'Atom_Class_Net' + self.type_name = 'phenomena' + self.type_id = 'Phenomena_Net' self.id = f'?{self.type_name}Net{num}' self.type_uri = f'net:{self.type_id}' @@ -92,15 +48,6 @@ class AtomClassNet(Net): self.individual_label = f'{self.id}IndividualLabel' - #-------------------------------------------------------------------------- - # Private data accessor(s) - #-------------------------------------------------------------------------- - - # def __get_predicate(self, data_ref): - # property_name = PREDICATE_TABLE[f'{data_ref}'] - # return f'net:{property_name}' - - #-------------------------------------------------------------------------- # Method(s) to build 'Construct' parts #-------------------------------------------------------------------------- @@ -114,9 +61,8 @@ class AtomClassNet(Net): # Method(s) to build 'Clause' parts #-------------------------------------------------------------------------- - - - + # -- + #-------------------------------------------------------------------------- # Method(s) to build 'Binding' parts diff --git a/structure/cts/amr_ctr/transduction/query_builder/element/structure.py b/structure/cts/amr_ctr/transduction/query_builder/element/structure.py deleted file mode 100644 index eb0505ed..00000000 --- a/structure/cts/amr_ctr/transduction/query_builder/element/structure.py +++ /dev/null @@ -1,123 +0,0 @@ -#!/usr/bin/python3.10 -# -*-coding:Utf-8 -* - -#============================================================================== -# TENET: Structure Query Builder -#------------------------------------------------------------------------------ -# Class to generate SPARQL query parts related to structure -#============================================================================== - -#============================================================================== -# Importing required modules -#============================================================================== - -# -- - - -#============================================================================== -# Data Repository -#============================================================================== - -# -- Reference Table - -NET_TYPE_TABLE = { # *** [type_name: type_id] *** - 'default': 'Net', - 'atomClass': 'Atom_Class_Net', - 'individual': 'Individual_Net', - 'atomProperty': 'Atom_Property_Net', - 'phenomena': 'Phenomena_Net' - } - -PREDICATE_TABLE = { # *** [attribute_reference: attribute_predicate] *** - 'structure': 'hasStructure', - - 'class_name': 'hasClassName', - - 'mother_class_net': 'hasMotherClassNet', - 'individual_label': 'hasIndividualLabel', - - 'core_role': 'isCoreRoleLinked', - 'target_argument_node': 'targetArgumentNode', - 'property_type': 'hasPropertyType', - 'property_name': 'hasPropertyName', - 'property_name01': 'hasPropertyName01', - 'property_name10': 'hasPropertyName10', - 'property_name12': 'hasPropertyName12', - - 'phenomena_type': 'hasPhenomenaType', - 'phenomena_ref': 'hasPhenomenaRef' - } - -# -- Default Value(s) - -DEFAULT_ATTRIBUTE_VALUE = f'\"NA\"' - - -# -- Useful Constant(s) - -TRIPLE_ENDING_STR = '\n ' - - - -#============================================================================== -# Net Class -#============================================================================== - -class Structure: - """ Class to generate SPARQL query parts related to structure. - """ - - #-------------------------------------------------------------------------- - # Constructor(s) - #-------------------------------------------------------------------------- - - def __init__(self): - - # -- Structure Attribute(s) - self.sentence_ref = f'?sentenceRef' - - - - #-------------------------------------------------------------------------- - # Method(s) to build 'Clause' parts - #-------------------------------------------------------------------------- - - def identify(self): - return f""" - # -- Identify structure - ?root a amr:AMR_Root. - ?root amr:hasSentenceID ?sentenceRef. - """ - - - -#============================================================================== -# Development Test -#============================================================================== - -if __name__ == '__main__': - - print('\n' + ' *** Development Test ***') - - print('\n' + ' -- test: Atom Class Net') - structure = Structure() - print(structure) - - print('\n' + ' -- test: update a test query') - test_query= f"""[...] - CONSTRUCT {{ - [{{atom_class_net.construct('?node1', - structure={structure.sentence_ref}, - class_name='?leaf1ConceptLabel')}} - - }} - WHERE {{ - clause_1 - clause_2 - - {structure.identify()} - }} - """ - print(test_query) - - print('\n' + ' *** - ***') \ No newline at end of file diff --git a/structure/cts/amr_scheme_1.py b/structure/cts/amr_scheme_1.py index 961fb6be..6f974c70 100644 --- a/structure/cts/amr_scheme_1.py +++ b/structure/cts/amr_scheme_1.py @@ -187,9 +187,9 @@ main_generation_sequence = { 'comment': 'Main generation sequence', 'rule_key_list': ['compute-uri-for-owl-declaration-1', 'compute-uri-for-owl-declaration-2', + 'compute-uri-for-owl-declaration-3', 'compute-uri-for-owl-declaration-4', 'compute-uri-for-owl-declaration-5', - 'compute-uri-for-owl-declaration-6', 'generate-atom-class', 'classify-atom-class-1', 'classify-atom-class-2', diff --git a/tenet.log b/tenet.log index d5c463ce..6d9b9049 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-20221216/ - ----- sentence output directory: ./output/SolarSystemDev1-20221216/ + ----- output directory: ./output/SolarSystemDev1-20221219/ + ----- sentence output directory: ./output/SolarSystemDev1-20221219/ ----- 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-20221216/SolarSystemDev1.ttl + ----- output file: ./output/SolarSystemDev1-20221219/SolarSystemDev1.ttl *** - *** -- INFO - -- Creating output target directory: ./output/SolarSystemDev1-20221216/ +- INFO - -- Creating output target directory: ./output/SolarSystemDev1-20221219/ - DEBUG - -- Counting number of graph files (sentences) - DEBUG - ----- Graph count: 1 - INFO - === Extraction Processing using New TENET Engine === @@ -64,13 +64,13 @@ - DEBUG - ----- Sentence Loading - 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-20221216/SolarSystemDev1-1/SolarSystemDev1.ttl +- DEBUG - ----- Work graph file: ./output/SolarSystemDev1-20221219/SolarSystemDev1-1/SolarSystemDev1.ttl - DEBUG - --- Ending Structure Preparation -- DEBUG - ----- Total Execution Time = 0:00:00.101997 +- DEBUG - ----- Total Execution Time = 0:00:00.111868 - INFO - -- Loading Extraction Scheme (amr_scheme_1) - DEBUG - ----- Step number: 3 - INFO - -- Loading Extraction Rules (amr_ctr/*) -- DEBUG - ----- Total rule number: 88 +- DEBUG - ----- Total rule number: 87 - INFO - -- Applying extraction step: preprocessing - INFO - --- Sequence: amrld-correcting-sequence - INFO - ----- fix-amr-bug-about-system-solar-planet: 5/5 new triples (619) @@ -95,133 +95,133 @@ - DEBUG - --- Serializing graph to SolarSystemDev1_preprocessing - DEBUG - ----- step: preprocessing - DEBUG - ----- id: SolarSystemDev1 -- DEBUG - ----- work_file: ./output/SolarSystemDev1-20221216/SolarSystemDev1-1/SolarSystemDev1_preprocessing.ttl +- DEBUG - ----- work_file: ./output/SolarSystemDev1-20221219/SolarSystemDev1-1/SolarSystemDev1_preprocessing.ttl - DEBUG - ----- base: http://SolarSystemDev1/preprocessing - 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 (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: 17/17 new triples (873) -- DEBUG - ----- (refinement) refine-cover-node-1: 1 new triples (874) -- INFO - ----- create-atom-property-net-1: 99/99 new triples (973) -- DEBUG - ----- (refinement) refine-cover-node-1: 6 new triples (979) -- INFO - ----- create-phenomena-net-1: 40/41 new triples (1019) -- DEBUG - ----- (refinement) refine-cover-node-1: 2 new triples (1021) +- INFO - ----- create-atom-class-net: 75/75 new triples (901) +- DEBUG - ----- (refinement) refine-cover-node-1: 5 new triples (906) +- DEBUG - ----- (refinement) refine-cover-node-2: 5 new triples (911) +- INFO - ----- create-individual-net-1: 17/17 new triples (928) +- DEBUG - ----- (refinement) refine-cover-node-1: 1 new triples (929) +- INFO - ----- create-atom-property-net-1: 99/99 new triples (1028) +- DEBUG - ----- (refinement) refine-cover-node-1: 6 new triples (1034) +- INFO - ----- create-phenomena-net-1: 38/39 new triples (1072) +- DEBUG - ----- (refinement) refine-cover-node-1: 2 new triples (1074) - INFO - --- Sequence: atomic-extraction-sequence -- INFO - ----- create-atom-class-net: 1/34 new triples (1022) -- DEBUG - ----- create-individual-net-1: 0/17 new triples (1022) -- INFO - ----- create-atom-property-net-1: 1/106 new triples (1023) -- DEBUG - ----- create-phenomena-net-1: 0/41 new triples (1023) +- INFO - ----- create-atom-class-net: 1/89 new triples (1075) +- DEBUG - ----- create-individual-net-1: 0/17 new triples (1075) +- INFO - ----- create-atom-property-net-1: 1/106 new triples (1076) +- DEBUG - ----- create-phenomena-net-1: 0/39 new triples (1076) - INFO - --- Sequence: phenomena-checking-sequence -- INFO - ----- expand-and-conjunction-phenomena-net: 4/4 new triples (1027) -- DEBUG - ----- expand-degree-phenomena-net-1: 0/0 new triples (1027) -- DEBUG - ----- expand-degree-phenomena-net-2: 0/0 new triples (1027) -- DEBUG - ----- expand-degree-phenomena-net-3: 0/0 new triples (1027) -- DEBUG - ----- expand-degree-phenomena-net-4: 0/0 new triples (1027) -- DEBUG - ----- expand-degree-phenomena-net-5: 0/0 new triples (1027) -- DEBUG - ----- expand-degree-phenomena-net-6: 0/0 new triples (1027) +- INFO - ----- expand-and-conjunction-phenomena-net: 4/4 new triples (1080) +- DEBUG - ----- expand-degree-phenomena-net-1: 0/0 new triples (1080) +- DEBUG - ----- expand-degree-phenomena-net-2: 0/0 new triples (1080) +- DEBUG - ----- expand-degree-phenomena-net-3: 0/0 new triples (1080) +- DEBUG - ----- expand-degree-phenomena-net-4: 0/0 new triples (1080) +- DEBUG - ----- expand-degree-phenomena-net-5: 0/0 new triples (1080) +- DEBUG - ----- expand-degree-phenomena-net-6: 0/0 new triples (1080) - INFO - --- Sequence: composite-property-extraction-sequence -- DEBUG - ----- create-composite-class-net-from-property-1: 0/0 new triples (1027) -- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triples (1027) +- DEBUG - ----- create-composite-class-net-from-property-1: 0/0 new triples (1080) +- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triples (1080) - INFO - --- Sequence: composite-class-extraction-sequence-1 -- INFO - ----- create-composite-class-net-from-property-1: 75/79 new triples (1102) -- DEBUG - ----- (refinement) refine-cover-node-1: 12 new triples (1114) -- DEBUG - ----- (refinement) refine-cover-node-2: 4 new triples (1118) -- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triples (1118) -- DEBUG - ----- create-composite-class-net-from-property-3: 0/0 new triples (1118) +- INFO - ----- create-composite-class-net-from-property-1: 75/79 new triples (1155) +- DEBUG - ----- (refinement) refine-cover-node-1: 12 new triples (1167) +- DEBUG - ----- (refinement) refine-cover-node-2: 4 new triples (1171) +- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triples (1171) +- DEBUG - ----- create-composite-class-net-from-property-3: 0/0 new triples (1171) - INFO - --- Sequence: composite-class-extraction-sequence-2 -- DEBUG - ----- create-composite-class-net-from-phenomena-1: 0/0 new triples (1118) -- DEBUG - ----- create-composite-class-net-from-phenomena-2: 0/0 new triples (1118) -- DEBUG - ----- create-composite-class-net-from-phenomena-3: 0/0 new triples (1118) -- DEBUG - ----- create-composite-class-net-from-phenomena-4: 0/0 new triples (1118) +- DEBUG - ----- create-composite-class-net-from-phenomena-1: 0/0 new triples (1171) +- DEBUG - ----- create-composite-class-net-from-phenomena-2: 0/0 new triples (1171) +- DEBUG - ----- create-composite-class-net-from-phenomena-3: 0/0 new triples (1171) +- DEBUG - ----- create-composite-class-net-from-phenomena-4: 0/0 new triples (1171) - INFO - --- Sequence: phenomena-checking-sequence -- INFO - ----- expand-and-conjunction-phenomena-net: 1/5 new triples (1119) -- DEBUG - ----- expand-degree-phenomena-net-1: 0/0 new triples (1119) -- DEBUG - ----- expand-degree-phenomena-net-2: 0/0 new triples (1119) -- DEBUG - ----- expand-degree-phenomena-net-3: 0/0 new triples (1119) -- DEBUG - ----- expand-degree-phenomena-net-4: 0/0 new triples (1119) -- DEBUG - ----- expand-degree-phenomena-net-5: 0/0 new triples (1119) -- DEBUG - ----- expand-degree-phenomena-net-6: 0/0 new triples (1119) +- INFO - ----- expand-and-conjunction-phenomena-net: 1/5 new triples (1172) +- DEBUG - ----- expand-degree-phenomena-net-1: 0/0 new triples (1172) +- DEBUG - ----- expand-degree-phenomena-net-2: 0/0 new triples (1172) +- DEBUG - ----- expand-degree-phenomena-net-3: 0/0 new triples (1172) +- DEBUG - ----- expand-degree-phenomena-net-4: 0/0 new triples (1172) +- DEBUG - ----- expand-degree-phenomena-net-5: 0/0 new triples (1172) +- DEBUG - ----- expand-degree-phenomena-net-6: 0/0 new triples (1172) - INFO - --- Sequence: composite-property-extraction-sequence -- DEBUG - ----- create-composite-class-net-from-property-1: 0/0 new triples (1119) -- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triples (1119) +- DEBUG - ----- create-composite-class-net-from-property-1: 0/0 new triples (1172) +- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triples (1172) - INFO - --- Sequence: composite-class-extraction-sequence-1 -- INFO - ----- create-composite-class-net-from-property-1: 94/173 new triples (1213) -- DEBUG - ----- (refinement) refine-cover-node-1: 15 new triples (1228) -- DEBUG - ----- (refinement) refine-cover-node-2: 5 new triples (1233) -- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triples (1233) -- DEBUG - ----- create-composite-class-net-from-property-3: 0/0 new triples (1233) +- INFO - ----- create-composite-class-net-from-property-1: 94/173 new triples (1266) +- DEBUG - ----- (refinement) refine-cover-node-1: 15 new triples (1281) +- DEBUG - ----- (refinement) refine-cover-node-2: 5 new triples (1286) +- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triples (1286) +- DEBUG - ----- create-composite-class-net-from-property-3: 0/0 new triples (1286) - INFO - --- Sequence: composite-class-extraction-sequence-2 -- DEBUG - ----- create-composite-class-net-from-phenomena-1: 0/0 new triples (1233) -- DEBUG - ----- create-composite-class-net-from-phenomena-2: 0/0 new triples (1233) -- DEBUG - ----- create-composite-class-net-from-phenomena-3: 0/0 new triples (1233) -- DEBUG - ----- create-composite-class-net-from-phenomena-4: 0/0 new triples (1233) +- DEBUG - ----- create-composite-class-net-from-phenomena-1: 0/0 new triples (1286) +- DEBUG - ----- create-composite-class-net-from-phenomena-2: 0/0 new triples (1286) +- DEBUG - ----- create-composite-class-net-from-phenomena-3: 0/0 new triples (1286) +- DEBUG - ----- create-composite-class-net-from-phenomena-4: 0/0 new triples (1286) - INFO - --- Sequence: restriction-adding-sequence -- DEBUG - ----- add-restriction-to-class-net-from-property-1: 0/0 new triples (1233) +- DEBUG - ----- add-restriction-to-class-net-from-property-1: 0/0 new triples (1286) - INFO - --- Sequence: classification-sequence -- INFO - ----- classify-net-from-core-1: 12/12 new triples (1245) -- INFO - ----- classify-net-from-core-2: 1/9 new triples (1246) -- DEBUG - ----- classify-net-from-core-3: 0/0 new triples (1246) -- DEBUG - ----- classify-net-from-mod: 0/0 new triples (1246) -- DEBUG - ----- classify-net-from-part: 0/0 new triples (1246) -- INFO - ----- classify-net-from-domain: 6/6 new triples (1252) -- DEBUG - ----- classify-net-from-degree-phenomena-1: 0/0 new triples (1252) -- DEBUG - ----- classify-net-from-degree-phenomena-2: 0/0 new triples (1252) -- DEBUG - ----- classify-net-from-degree-phenomena-3: 0/0 new triples (1252) -- DEBUG - ----- propagate-individual-1: 0/1 new triples (1252) -- INFO - ----- propagate-individual-2: 6/6 new triples (1258) -- DEBUG - ----- reclassify-deprecated-net: 0/0 new triples (1258) +- INFO - ----- classify-net-from-core-1: 12/12 new triples (1298) +- INFO - ----- classify-net-from-core-2: 1/9 new triples (1299) +- DEBUG - ----- classify-net-from-core-3: 0/0 new triples (1299) +- DEBUG - ----- classify-net-from-mod: 0/0 new triples (1299) +- DEBUG - ----- classify-net-from-part: 0/0 new triples (1299) +- INFO - ----- classify-net-from-domain: 6/6 new triples (1305) +- DEBUG - ----- classify-net-from-degree-phenomena-1: 0/0 new triples (1305) +- DEBUG - ----- classify-net-from-degree-phenomena-2: 0/0 new triples (1305) +- DEBUG - ----- classify-net-from-degree-phenomena-3: 0/0 new triples (1305) +- INFO - ----- propagate-individual-1: 1/1 new triples (1306) +- INFO - ----- propagate-individual-2: 6/6 new triples (1312) +- DEBUG - ----- reclassify-deprecated-net: 0/0 new triples (1312) - DEBUG - --- Serializing graph to SolarSystemDev1_transduction - DEBUG - ----- step: transduction - DEBUG - ----- id: SolarSystemDev1 -- DEBUG - ----- work_file: ./output/SolarSystemDev1-20221216/SolarSystemDev1-1/SolarSystemDev1_transduction.ttl +- DEBUG - ----- work_file: ./output/SolarSystemDev1-20221219/SolarSystemDev1-1/SolarSystemDev1_transduction.ttl - DEBUG - ----- base: http://SolarSystemDev1/transduction -- INFO - ----- 432 triples extracted during transduction step +- INFO - ----- 486 triples extracted during transduction step - INFO - -- Applying extraction step: generation - INFO - --- Sequence: main-generation-sequence -- INFO - ----- compute-uri-for-owl-declaration-1: 14/14 new triples (1272) -- INFO - ----- compute-uri-for-owl-declaration-2: 1/1 new triples (1273) -- DEBUG - ----- compute-uri-for-owl-declaration-4: 0/0 new triples (1273) -- INFO - ----- compute-uri-for-owl-declaration-5: 6/6 new triples (1279) -- INFO - ----- compute-uri-for-owl-declaration-6: 6/6 new triples (1285) -- INFO - ----- generate-atom-class: 12/12 new triples (1297) -- INFO - ----- classify-atom-class-1: 4/4 new triples (1301) -- INFO - ----- classify-atom-class-2: 1/1 new triples (1302) -- INFO - ----- generate-individual: 3/3 new triples (1305) -- INFO - ----- classify-individual: 6/6 new triples (1311) -- INFO - ----- generate-atom-property-1: 20/20 new triples (1331) -- INFO - ----- generate-atom-property-12: 12/20 new triples (1343) -- DEBUG - ----- generate-inverse-relation: 0/0 new triples (1343) -- INFO - ----- generate-composite-class: 38/38 new triples (1381) -- DEBUG - ----- add-restriction-to-class-1: 0/0 new triples (1381) -- DEBUG - ----- add-restriction-to-class-2: 0/0 new triples (1381) -- INFO - ----- add-restriction-to-class-3: 36/45 new triples (1417) -- DEBUG - ----- add-restriction-to-class-4: 0/0 new triples (1417) -- DEBUG - ----- add-restriction-to-class-5: 0/0 new triples (1417) -- DEBUG - ----- add-restriction-to-class-6: 0/0 new triples (1417) -- DEBUG - ----- generate-composite-property: 0/0 new triples (1417) +- INFO - ----- compute-uri-for-owl-declaration-1: 14/14 new triples (1326) +- INFO - ----- compute-uri-for-owl-declaration-2: 1/1 new triples (1327) +- DEBUG - ----- compute-uri-for-owl-declaration-3: 0/0 new triples (1327) +- INFO - ----- compute-uri-for-owl-declaration-4: 6/6 new triples (1333) +- INFO - ----- compute-uri-for-owl-declaration-5: 6/6 new triples (1339) +- INFO - ----- generate-atom-class: 12/12 new triples (1351) +- INFO - ----- classify-atom-class-1: 4/4 new triples (1355) +- INFO - ----- classify-atom-class-2: 1/1 new triples (1356) +- INFO - ----- generate-individual: 3/3 new triples (1359) +- INFO - ----- classify-individual: 6/6 new triples (1365) +- INFO - ----- generate-atom-property-1: 20/20 new triples (1385) +- INFO - ----- generate-atom-property-12: 12/20 new triples (1397) +- DEBUG - ----- generate-inverse-relation: 0/0 new triples (1397) +- INFO - ----- generate-composite-class: 38/38 new triples (1435) +- DEBUG - ----- add-restriction-to-class-1: 0/0 new triples (1435) +- DEBUG - ----- add-restriction-to-class-2: 0/0 new triples (1435) +- INFO - ----- add-restriction-to-class-3: 36/45 new triples (1471) +- DEBUG - ----- add-restriction-to-class-4: 0/0 new triples (1471) +- DEBUG - ----- add-restriction-to-class-5: 0/0 new triples (1471) +- DEBUG - ----- add-restriction-to-class-6: 0/0 new triples (1471) +- DEBUG - ----- generate-composite-property: 0/0 new triples (1471) - DEBUG - --- Serializing graph to SolarSystemDev1_generation - DEBUG - ----- step: generation - DEBUG - ----- id: SolarSystemDev1 -- DEBUG - ----- work_file: ./output/SolarSystemDev1-20221216/SolarSystemDev1-1/SolarSystemDev1_generation.ttl +- DEBUG - ----- work_file: ./output/SolarSystemDev1-20221219/SolarSystemDev1-1/SolarSystemDev1_generation.ttl - DEBUG - ----- base: http://SolarSystemDev1/generation - 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: 176 - DEBUG - ----- Graph base: http://SolarSystemDev1/factoid -- DEBUG - --- Serializing graph to factoid file (./output/SolarSystemDev1-20221216/SolarSystemDev1-1/SolarSystemDev1_factoid.ttl) +- DEBUG - --- Serializing graph to factoid file (./output/SolarSystemDev1-20221219/SolarSystemDev1-1/SolarSystemDev1_factoid.ttl) - INFO - *** Execution Time *** ----- Function: apply (lib.tenet_extraction) ------ Total Time: 0:00:06.370078 ------ Process Time: 0:00:06.357116 +----- Total Time: 0:00:06.931846 +----- Process Time: 0:00:06.907409 *** - *** - INFO - === Final Ontology Generation === - INFO - -- Making complete factoid graph by merging sentence factoid graphs - INFO - ----- Total factoid number: 176 - INFO - ----- Graph base: http://SolarSystemDev1/factoid -- INFO - -- Serializing graph to factoid file (./output/SolarSystemDev1-20221216/SolarSystemDev1_factoid.ttl) +- INFO - -- Serializing graph to factoid file (./output/SolarSystemDev1-20221219/SolarSystemDev1_factoid.ttl) - INFO - === Done === -- GitLab