Skip to content
Snippets Groups Projects
Commit 87d711ea authored by Aurélien Lamercerie's avatar Aurélien Lamercerie
Browse files

Process with old and new rule application

parent 4a7cd0e0
No related branches found
No related tags found
No related merge requests found
Showing
with 6134 additions and 157 deletions
...@@ -23,7 +23,7 @@ from importlib.machinery import SourceFileLoader ...@@ -23,7 +23,7 @@ from importlib.machinery import SourceFileLoader
import importlib.util import importlib.util
import importlib import importlib
from utility.timer import timed from utility.timer import timed, timer_return
from extraction.old_rule import OldRule from extraction.old_rule import OldRule
from extraction.old_sequence import OldSequence from extraction.old_sequence import OldSequence
...@@ -209,6 +209,58 @@ def _apply_sequence(graph, sequence, refinement_rule_list): ...@@ -209,6 +209,58 @@ def _apply_sequence(graph, sequence, refinement_rule_list):
logger.debug(" ----- new_triple_count: {0} ".format(new_triple_count)) logger.debug(" ----- new_triple_count: {0} ".format(new_triple_count))
@timer_return
def _apply_sparql_query(graph, sparql_query):
extracted_triple_set = graph.query(sparql_query)
for triple in extracted_triple_set:
graph.add(triple)
return graph, extracted_triple_set
def _apply_new_rule_sequence(graph, rule_function):
""" Apply the (new) rule on the working graph <graph> """
try:
rule = rule_function()
logger.info(f"--- *** New *** Rule: {rule.label}")
all_new_triple_set = []
for (query_label, sparql_query) in rule.query_list:
graph_length_before = len(graph)
# -- apply rule
(graph, extracted_triple_set), exec_time_date = _apply_sparql_query(graph, sparql_query)
all_new_triple_set.extend(extracted_triple_set)
new_triple_count = len(graph) - graph_length_before
str = f"----- {query_label}: "
str += f"{new_triple_count}/{len(extracted_triple_set)} new triple"
if new_triple_count > 1: str += f"s"
str += f" ({len(graph)}, {exec_time_date})"
if (new_triple_count > 0):
logger.info(str)
else:
logger.debug(str)
# -- apply refinement
graph, extracted_triple_set = _apply_refinement(graph, refinement_rule_list)
all_new_triple_set.extend(extracted_triple_set)
return graph, all_new_triple_set
except AssertionError as e:
logger.error(f' *** *** **** Assertion Error *** *** *** \n ')
except:
logger.error(" *** Error while processing extraction (_apply_new_rule_sequence) ***")
logger.debug(f" ----- len(sequence): {len(rule.query_list)} ")
logger.debug(f" ----- last rule: {query_label} ")
logger.debug(f" ----- last SPARQL query: \n{sparql_query} ")
logger.debug(f" ----- len(extracted_triple_set): {len(extracted_triple_set)} ")
logger.debug(f" ----- new_triple_count: {new_triple_count} ")
def _serialize_graph(config, graph, step_name): def _serialize_graph(config, graph, step_name):
""" Serialize <graph> to a file """ """ Serialize <graph> to a file """
...@@ -236,7 +288,7 @@ def apply_step(config, graph, rule_set, step_name, step_sequence_def): ...@@ -236,7 +288,7 @@ def apply_step(config, graph, rule_set, step_name, step_sequence_def):
""" Apply extraction step on the working graph """ """ Apply extraction step on the working graph """
try: try:
logger.info("-- Applying extraction step: {0}".format(step_name)) logger.info(f"-- Applying extraction step: {step_name}")
# -- Initialize # -- Initialize
step_triple_list = [] step_triple_list = []
...@@ -248,11 +300,14 @@ def apply_step(config, graph, rule_set, step_name, step_sequence_def): ...@@ -248,11 +300,14 @@ def apply_step(config, graph, rule_set, step_name, step_sequence_def):
# -- Apply the sequences of the step # -- Apply the sequences of the step
for sequence_def in step_sequence_def[1:]: for sequence_def in step_sequence_def[1:]:
if (isinstance(sequence_def, dict)): # Old Rule Application
sequence = _prepare_sequence(sequence_def, rule_set) sequence = _prepare_sequence(sequence_def, rule_set)
graph, triple_list = _apply_sequence(graph, graph, triple_list = _apply_sequence(graph, sequence, refinement_rule_list)
sequence,
refinement_rule_list)
step_triple_list.extend(triple_list) step_triple_list.extend(triple_list)
else: # New Rule Application
logger.info(f"******* New Rule: {sequence_def} ********")
_apply_new_rule_sequence(graph, sequence_def)
# -- Serialize the working graph updated during the step # -- Serialize the working graph updated during the step
_serialize_graph(config, graph, step_name) _serialize_graph(config, graph, step_name)
...@@ -265,13 +320,15 @@ def apply_step(config, graph, rule_set, step_name, step_sequence_def): ...@@ -265,13 +320,15 @@ def apply_step(config, graph, rule_set, step_name, step_sequence_def):
return graph, step_triple_list return graph, step_triple_list
except AssertionError:
logger.error(f' *** *** **** Assertion Error *** *** *** \n')
except: except:
logger.error(" *** Error while processing extraction (apply_step) ***") logger.error(" *** Error while processing extraction (apply_step) ***")
logger.debug(' ----- step_name = {0}'.format(step_name)) logger.debug(f' ----- step_name = {step_name}')
logger.debug(' ----- len(step_sequence_def) = {0}'.format(len(step_sequence_def))) logger.debug(f' ----- len(step_sequence_def) = {len(step_sequence_def)}')
logger.debug(' ----- step_sequence_def[0] = {0}'.format(step_sequence_def[0])) logger.debug(f' ----- last sequence def = {sequence_def}')
logger.debug(' ----- last sequence def = {0}'.format(sequence_def)) logger.debug(f' ----- last sequence label = {sequence.label}')
logger.debug(' ----- last sequence label = {0}'.format(sequence.label))
#============================================================================== #==============================================================================
...@@ -320,6 +377,7 @@ def apply(config, graph): ...@@ -320,6 +377,7 @@ def apply(config, graph):
except: except:
logger.error(' *** Error while processing extraction (apply) ***') logger.error(' *** Error while processing extraction (apply) ***')
logger.debug(' ----- config.cts_ref = {0}'.format(config.cts_ref)) logger.debug(f' ----- config.cts_ref = {config.cts_ref}')
logger.debug(' ----- rule_dir = {0}'.format(rule_dir)) logger.debug(f' ----- rule_dir = {rule_dir}')
logger.debug(' ----- scheme = {0}'.format(scheme)) logger.debug(f' ----- scheme = {scheme}')
\ No newline at end of file logger.debug(f' ----- step = {step_name}, {step_sequence_def}')
\ No newline at end of file
from scheme.amr_rule.preprocessing.amr_reification import *
from scheme.amr_rule.preprocessing.amrld_correcting import *
from scheme.amr_rule.transduction.phenomena_application_or import *
from scheme.amr_rule import *
...@@ -31,7 +31,9 @@ or_composite_class_net = net.OrCompositeClassNet() ...@@ -31,7 +31,9 @@ or_composite_class_net = net.OrCompositeClassNet()
def analyze_phenomena_or(): def analyze_phenomena_or():
rule = transduction.Rule(or_composite_class_net) rule = transduction.Rule('"or" phenomena analysis', or_composite_class_net)
rule.add_identification_pattern(phenomena_net, phenomena_type='amr:phenomena_conjunction_or')
rule.add_composition_pattern(property_net, 'amr:role_ARG0', class_net_0) rule.add_composition_pattern(property_net, 'amr:role_ARG0', class_net_0)
rule.add_composition_pattern(property_net, 'amr:role_ARG1', phenomena_net) rule.add_composition_pattern(property_net, 'amr:role_ARG1', phenomena_net)
rule.compose(class_net_0, property_net, phenomena_net) rule.compose(class_net_0, property_net, phenomena_net)
...@@ -53,7 +55,7 @@ if __name__ == '__main__': ...@@ -53,7 +55,7 @@ if __name__ == '__main__':
rule = analyze_phenomena_or() rule = analyze_phenomena_or()
num = 0 num = 0
for query in rule.query_list: for query_label, query in rule.query_list:
num += 1 num += 1
print(f'*** query {num} ***\n{query}\n') print(f'*** query {num} - {query_label} ***\n{query}\n')
\ No newline at end of file
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
# structure. # structure.
#============================================================================== #==============================================================================
import scheme.amr_rule as rule
#============================================================================== #==============================================================================
# Rule Directory # Rule Directory
#============================================================================== #==============================================================================
...@@ -141,22 +143,22 @@ phenomena_application_and_sequence = { ...@@ -141,22 +143,22 @@ phenomena_application_and_sequence = {
] ]
} }
InProgressDev_phenomena_application_sequence = { # InProgressDev_phenomena_application_sequence = {
'label': 'phenomena-application-sequence', # 'label': 'phenomena-application-sequence',
'comment': 'Application of phenomena', # 'comment': 'Application of phenomena',
'rule_key_list': ['polarity-phenomena-application', # 'rule_key_list': ['polarity-phenomena-application',
'and-conjunction-phenomena-application-1-1', # 'and-conjunction-phenomena-application-1-1',
'and-conjunction-phenomena-application-1-2', # 'and-conjunction-phenomena-application-1-2',
'and-conjunction-phenomena-application-2', # 'and-conjunction-phenomena-application-2',
'and-conjunction-phenomena-application-3-1', # 'and-conjunction-phenomena-application-3-1',
'and-conjunction-phenomena-application-3-2', # 'and-conjunction-phenomena-application-3-2',
'and-conjunction-phenomena-application-3-3', # 'and-conjunction-phenomena-application-3-3',
'and-conjunction-phenomena-application-3-4', # 'and-conjunction-phenomena-application-3-4',
'and-conjunction-phenomena-application-4', # 'and-conjunction-phenomena-application-4',
'and-conjunction-phenomena-application-5', # 'and-conjunction-phenomena-application-5',
'and-conjunction-phenomena-application-6' # 'and-conjunction-phenomena-application-6'
] # ]
} # }
composite_class_extraction_sequence_1 = { composite_class_extraction_sequence_1 = {
...@@ -275,6 +277,7 @@ scheme = { ...@@ -275,6 +277,7 @@ scheme = {
phenomena_application_polarity_sequence, phenomena_application_polarity_sequence,
phenomena_application_mod_sequence, phenomena_application_mod_sequence,
phenomena_application_and_sequence, phenomena_application_and_sequence,
rule.analyze_phenomena_or,
phenomena_checking_sequence, phenomena_checking_sequence,
composite_property_extraction_sequence, composite_property_extraction_sequence,
composite_class_extraction_sequence_1, composite_class_extraction_sequence_1,
......
This diff is collapsed.
...@@ -418,10 +418,17 @@ class Net: ...@@ -418,10 +418,17 @@ class Net:
{self.__select_node()}""" {self.__select_node()}"""
def identify_attribute(self, **net_attribute):
query_code = ''
for attr_ref in net_attribute.keys():
predicate = self.__get_predicate(attr_ref)
attr_value = net_attribute.get(attr_ref)
query_code += f'\n{INDENT_STR}{self.id} {predicate} {attr_value}.'
return query_code
def identify_relation(self, relation_role, target_id): def identify_relation(self, relation_role, target_id):
return f""" return f'{self.id} {relation_role} {target_id}.'
# -- Identify relation of {self.id}
{self.id} {relation_role} {target_id}."""
def identify_composante(self, target_id): def identify_composante(self, target_id):
......
...@@ -16,6 +16,8 @@ if __name__ == '__main__': ...@@ -16,6 +16,8 @@ if __name__ == '__main__':
sys.path.insert(0, os.path.abspath(LIB_PATH)) sys.path.insert(0, os.path.abspath(LIB_PATH))
print(sys.path[0]) print(sys.path[0])
import logging
import transduction.query_builder as query_builder import transduction.query_builder as query_builder
import transduction.net as net import transduction.net as net
...@@ -88,14 +90,16 @@ class Rule: ...@@ -88,14 +90,16 @@ class Rule:
# Constructor # Constructor
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
def __init__(self, net): def __init__(self, label, net):
# -- Base # -- Base
self.label = label
self.new_net = net self.new_net = net
# -- Pattern # -- Pattern
self._composition_pattern = [] self._identification_pattern_dict = {}
self._restriction_pattern = [] self._composition_pattern_list = []
self._restriction_pattern_list = []
# -- SPARQL Query # -- SPARQL Query
self.query_list = [] self.query_list = []
...@@ -112,11 +116,16 @@ class Rule: ...@@ -112,11 +116,16 @@ class Rule:
# Method(s) to add pattern # Method(s) to add pattern
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
def add_identification_pattern(self, net, **net_attribute):
self._identification_pattern_dict[net] = net.identify_attribute(**net_attribute)
def add_composition_pattern(self, net_1, relation, net_2): def add_composition_pattern(self, net_1, relation, net_2):
self._composition_pattern.append((net_1, relation, net_2)) self._composition_pattern_list.append((net_1, relation, net_2))
def add_restriction_pattern(self, net_1, relation, net_2): def add_restriction_pattern(self, net_1, relation, net_2):
self._restriction_pattern.append((net_1, relation, net_2)) self._restriction_pattern_list.append((net_1, relation, net_2))
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
...@@ -129,13 +138,15 @@ class Rule: ...@@ -129,13 +138,15 @@ class Rule:
for net in nets: for net in nets:
clause_part += f"\n{INDENT_STR}" clause_part += f"\n{INDENT_STR}"
clause_part += net.identify() clause_part += net.identify()
if net in self._identification_pattern_dict:
clause_part += self._identification_pattern_dict[net]
return clause_part return clause_part
def __define_pattern_clause(self): def __define_pattern_clause(self):
clause_part = f"\n{INDENT_STR}" clause_part = f"\n{INDENT_STR}"
clause_part += f"# -- Identify Pattern " clause_part += f"# -- Identify Pattern "
for (net_1, relation, net_2) in self._composition_pattern: for (net_1, relation, net_2) in self._composition_pattern_list:
clause_part += f"\n{INDENT_STR}" clause_part += f"\n{INDENT_STR}"
clause_part += f'{net_1.id} {relation} {net_2.id}.' clause_part += f'{net_1.id} {relation} {net_2.id}.'
return clause_part return clause_part
...@@ -155,7 +166,7 @@ class Rule: ...@@ -155,7 +166,7 @@ class Rule:
clause_part += f"# -- New Net Binding " clause_part += f"# -- New Net Binding "
# * TODO * for net in nets: # * TODO * for net in nets:
# * TODO * clause_part += f'BIND (CONCAT({class_net_0.class_name}, '-', {logical_set_net.naming}) AS ?newClassName).' # * TODO * clause_part += f'BIND (CONCAT({class_net_0.class_name}, '-', {logical_set_net.naming}) AS ?newClassName).'
clause_part += self.new_net.bind_uri('?newNetName-TODO', '?newNetMainNode-TODO') clause_part += self.new_net.bind_uri('?newNetName', '?newNetMainNode') # -- TODO
return clause_part return clause_part
...@@ -186,7 +197,7 @@ class Rule: ...@@ -186,7 +197,7 @@ class Rule:
def compose(self, *nets): def compose(self, *nets):
assert len(nets) > 0, "a net composition must be made from one or more nets" query_label = 'new net construction'
# -- Clause Part # -- Clause Part
clause_part = '' clause_part = ''
...@@ -205,7 +216,7 @@ class Rule: ...@@ -205,7 +216,7 @@ class Rule:
construct_part += self.__define_deprecate_net(*nets) construct_part += self.__define_deprecate_net(*nets)
compose_query = query_builder.generate_construct_query(construct_part, clause_part) compose_query = query_builder.generate_construct_query(construct_part, clause_part)
self.query_list.append(compose_query) self.query_list.append((query_label, compose_query))
...@@ -218,20 +229,22 @@ if __name__ == '__main__': ...@@ -218,20 +229,22 @@ if __name__ == '__main__':
print('\n' + ' *** Development Test ***') print('\n' + ' *** Development Test ***')
# print('\n' + ' -- Net Definition') # print('\n' + ' -- Net Definition')
property_net = net.Net() property_net = net.PropertyNet()
class_net_0 = net.ClassNet(0) class_net_0 = net.ClassNet(0)
class_net_1 = net.ClassNet(1) class_net_1 = net.ClassNet(1)
and_composite_class_net = net.Net() phenomena_net = net.PhenomenaNet()
or_composite_class_net = net.OrCompositeClassNet()
# print('\n' + ' -- Test Rule 1') # print('\n' + ' -- Test Rule 1')
rule = Rule(and_composite_class_net) rule = Rule('Test Rule', or_composite_class_net)
rule.add_identification_pattern(phenomena_net, phenomena_type='amr:phenomena_conjunction_or')
rule.add_composition_pattern(property_net, 'amr:role_ARG0', class_net_0) rule.add_composition_pattern(property_net, 'amr:role_ARG0', class_net_0)
rule.add_composition_pattern(property_net, 'amr:role_ARG1', class_net_1) rule.add_composition_pattern(property_net, 'amr:role_ARG1', phenomena_net)
rule.compose(class_net_0, property_net, class_net_1) rule.compose(class_net_0, property_net, class_net_1)
num = 0 num = 0
for query in rule.query_list: for query_label, query in rule.query_list:
num += 1 num += 1
print(f'*** query {num} ***\n{query}\n') print(f'*** query {num} - {query_label} ***\n{query}\n')
# print('\n' + ' -- load a rule definition from a dictionary') # print('\n' + ' -- load a rule definition from a dictionary')
# rule.load_dict(rule_def_1) # rule.load_dict(rule_def_1)
......
@base <http://SolarSystemDev1/factoid> .
@prefix ns1: <https://tenet.tetras-libre.fr/semantic-net#> .
@prefix ns2: <https://tenet.tetras-libre.fr/base-ontology#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
ns1:atomClass_gravitation_g ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#gravitation> .
ns1:atomClass_object_o ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#object> .
ns1:atomClass_sun_s2 ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#sun> .
ns1:atomClass_system_p ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system> .
ns1:atomClass_system_s ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system> .
ns1:atomProperty_bind_b ns1:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#bind-of> ;
ns1:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#bind> .
ns1:atomProperty_direct_d ns1:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#direct-of> ;
ns1:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#direct> .
ns1:atomProperty_direct_d2 ns1:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#direct-of> ;
ns1:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#direct> .
ns1:atomProperty_hasManner_m9 ns1:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#hasManner> ;
ns1:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#hasManner> .
ns1:atomProperty_hasPart_p9 ns1:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#hasPart> ;
ns1:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#hasPart> .
ns1:atomProperty_orbit_o2 ns1:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#orbit-of> ;
ns1:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#orbit> .
ns1:compositeClass_gravitation-binding-system-hasPart-sun-and-object_g ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#gravitation-binding-system-hasPart-sun-and-object> .
ns1:compositeClass_object-orbiting-sun_o ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#object-orbiting-sun> .
ns1:compositeClass_system-hasPart-sun-and-object-hasPart-object_s ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object-hasPart-object> .
ns1:compositeClass_system-hasPart-sun-and-object-hasPart-sun_s ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object-hasPart-sun> .
ns1:compositeClass_system-hasPart-sun-and-object_s ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object> .
ns1:compositeProperty_not-direct_d2 ns1:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#not-direct> .
ns1:individual_system_SolarSystem ns1:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#solar-system> .
<https://tenet.tetras-libre.fr/extract-result#bind> a owl:ObjectProperty ;
rdfs:label "bind" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#gravitation-binding-system-hasPart-sun-and-object> a owl:Class ;
rdfs:label "gravitation-binding-system-hasPart-sun-and-object" ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty <https://tenet.tetras-libre.fr/extract-result#bind-of> ;
owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object> ],
<https://tenet.tetras-libre.fr/extract-result#gravitation> ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#object-orbiting-sun> a owl:Class ;
rdfs:label "object-orbiting-sun" ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty <https://tenet.tetras-libre.fr/extract-result#orbit-of> ;
owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#sun> ],
<https://tenet.tetras-libre.fr/extract-result#object> ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#orbit> a owl:ObjectProperty ;
rdfs:label "orbit" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#solar-system> a owl:individual,
<https://tenet.tetras-libre.fr/extract-result#system>,
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object>,
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object-hasPart-object>,
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object-hasPart-sun> ;
rdfs:label "Solar System" ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#bind-of> a owl:ObjectProperty ;
rdfs:label "bind-of" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#direct> a owl:ObjectProperty ;
rdfs:label "direct" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#direct-of> a owl:ObjectProperty ;
rdfs:label "direct-of" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#gravitation> a owl:Class ;
rdfs:label "gravitation" ;
rdfs:subClassOf ns2:Entity ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#hasManner> a owl:ObjectProperty ;
rdfs:label "hasManner" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#orbit-of> a owl:ObjectProperty ;
rdfs:label "orbit-of" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object-hasPart-object> a owl:Class ;
rdfs:label "system-hasPart-sun-and-object-hasPart-object" ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty <https://tenet.tetras-libre.fr/extract-result#hasPart> ;
owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#object> ],
<https://tenet.tetras-libre.fr/extract-result#system>,
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object> ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object-hasPart-sun> a owl:Class ;
rdfs:label "system-hasPart-sun-and-object-hasPart-sun" ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty <https://tenet.tetras-libre.fr/extract-result#hasPart> ;
owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#sun> ],
<https://tenet.tetras-libre.fr/extract-result#system>,
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object> ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#object> a owl:Class ;
rdfs:label "object" ;
rdfs:subClassOf ns2:Entity ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#sun> a owl:Class ;
rdfs:label "sun" ;
rdfs:subClassOf ns2:Entity ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object> a owl:Class ;
rdfs:label "system-hasPart-sun-and-object" ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty <https://tenet.tetras-libre.fr/extract-result#hasPart> ;
owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#sun> ],
[ a owl:Restriction ;
owl:onProperty <https://tenet.tetras-libre.fr/extract-result#hasPart> ;
owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#object> ],
<https://tenet.tetras-libre.fr/extract-result#system> ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#hasPart> a owl:ObjectProperty ;
rdfs:label "hasPart" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#system> a owl:Class ;
rdfs:label "system" ;
rdfs:subClassOf ns2:Entity ;
ns2:fromStructure "SSC-01-01" .
@base <http://SolarSystemDev1/factoid> .
@prefix ns1: <https://tenet.tetras-libre.fr/semantic-net#> .
@prefix ns2: <https://tenet.tetras-libre.fr/base-ontology#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
ns1:atomClass_gravitation_g ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#gravitation> .
ns1:atomClass_object_o ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#object> .
ns1:atomClass_sun_s2 ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#sun> .
ns1:atomClass_system_p ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system> .
ns1:atomClass_system_s ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system> .
ns1:atomProperty_bind_b ns1:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#bind-of> ;
ns1:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#bind> .
ns1:atomProperty_direct_d ns1:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#direct-of> ;
ns1:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#direct> .
ns1:atomProperty_direct_d2 ns1:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#direct-of> ;
ns1:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#direct> .
ns1:atomProperty_hasManner_m9 ns1:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#hasManner> ;
ns1:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#hasManner> .
ns1:atomProperty_hasPart_p9 ns1:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#hasPart> ;
ns1:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#hasPart> .
ns1:atomProperty_orbit_o2 ns1:hasProperty12URI <https://tenet.tetras-libre.fr/extract-result#orbit-of> ;
ns1:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#orbit> .
ns1:compositeClass_gravitation-binding-system-hasPart-sun-and-object_g ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#gravitation-binding-system-hasPart-sun-and-object> .
ns1:compositeClass_object-orbiting-sun_o ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#object-orbiting-sun> .
ns1:compositeClass_system-hasPart-sun-and-object-hasPart-object_s ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object-hasPart-object> .
ns1:compositeClass_system-hasPart-sun-and-object-hasPart-sun_s ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object-hasPart-sun> .
ns1:compositeClass_system-hasPart-sun-and-object_s ns1:hasClassURI <https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object> .
ns1:compositeProperty_not-direct_d2 ns1:hasPropertyURI <https://tenet.tetras-libre.fr/extract-result#not-direct> .
ns1:individual_system_SolarSystem ns1:hasIndividualURI <https://tenet.tetras-libre.fr/extract-result#solar-system> .
<https://tenet.tetras-libre.fr/extract-result#bind> a owl:ObjectProperty ;
rdfs:label "bind" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#gravitation-binding-system-hasPart-sun-and-object> a owl:Class ;
rdfs:label "gravitation-binding-system-hasPart-sun-and-object" ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty <https://tenet.tetras-libre.fr/extract-result#bind-of> ;
owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object> ],
<https://tenet.tetras-libre.fr/extract-result#gravitation> ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#object-orbiting-sun> a owl:Class ;
rdfs:label "object-orbiting-sun" ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty <https://tenet.tetras-libre.fr/extract-result#orbit-of> ;
owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#sun> ],
<https://tenet.tetras-libre.fr/extract-result#object> ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#orbit> a owl:ObjectProperty ;
rdfs:label "orbit" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#solar-system> a owl:individual,
<https://tenet.tetras-libre.fr/extract-result#system>,
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object>,
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object-hasPart-object>,
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object-hasPart-sun> ;
rdfs:label "Solar System" ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#bind-of> a owl:ObjectProperty ;
rdfs:label "bind-of" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#direct> a owl:ObjectProperty ;
rdfs:label "direct" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#direct-of> a owl:ObjectProperty ;
rdfs:label "direct-of" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#gravitation> a owl:Class ;
rdfs:label "gravitation" ;
rdfs:subClassOf ns2:Entity ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#hasManner> a owl:ObjectProperty ;
rdfs:label "hasManner" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#orbit-of> a owl:ObjectProperty ;
rdfs:label "orbit-of" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object-hasPart-object> a owl:Class ;
rdfs:label "system-hasPart-sun-and-object-hasPart-object" ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty <https://tenet.tetras-libre.fr/extract-result#hasPart> ;
owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#object> ],
<https://tenet.tetras-libre.fr/extract-result#system>,
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object> ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object-hasPart-sun> a owl:Class ;
rdfs:label "system-hasPart-sun-and-object-hasPart-sun" ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty <https://tenet.tetras-libre.fr/extract-result#hasPart> ;
owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#sun> ],
<https://tenet.tetras-libre.fr/extract-result#system>,
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object> ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#object> a owl:Class ;
rdfs:label "object" ;
rdfs:subClassOf ns2:Entity ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#sun> a owl:Class ;
rdfs:label "sun" ;
rdfs:subClassOf ns2:Entity ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#system-hasPart-sun-and-object> a owl:Class ;
rdfs:label "system-hasPart-sun-and-object" ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty <https://tenet.tetras-libre.fr/extract-result#hasPart> ;
owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#sun> ],
[ a owl:Restriction ;
owl:onProperty <https://tenet.tetras-libre.fr/extract-result#hasPart> ;
owl:someValuesFrom <https://tenet.tetras-libre.fr/extract-result#object> ],
<https://tenet.tetras-libre.fr/extract-result#system> ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#hasPart> a owl:ObjectProperty ;
rdfs:label "hasPart" ;
rdfs:subPropertyOf ns2:Out_ObjectProperty ;
ns2:fromStructure "SSC-01-01" .
<https://tenet.tetras-libre.fr/extract-result#system> a owl:Class ;
rdfs:label "system" ;
rdfs:subClassOf ns2:Entity ;
ns2:fromStructure "SSC-01-01" .
- INFO - [TENET] Extraction Processing
- INFO -
=== Process Initialization ===
- INFO - -- Process Setting
- INFO - ----- Corpus source: /home/lamenji/Workspace/Tetras/tenet/tests/input/amrDocuments/dev/solar-system-1/ (amr)
- INFO - ----- Base output dir: /home/lamenji/Workspace/Tetras/tenet/tests/output/SolarSystemDev1-20230130/SolarSystemDev1_factoid.ttl
- INFO - ----- technical dir path: /home/lamenji/Workspace/Tetras/tenet/tests/output/SolarSystemDev1-20230130/technical-data/
- INFO - ----- Ontology target (id): SolarSystemDev1
- INFO - ----- Current path: /home/lamenji/Workspace/Tetras/tenet/tenet
- DEBUG - ----- Config file: /home/lamenji/Workspace/Tetras/tenet/tenet/config.xml
- DEBUG -
*** Config (Full Parameters) ***
-- Base Parameters
----- config file: /home/lamenji/Workspace/Tetras/tenet/tenet/config.xml
----- uuid: SolarSystemDev1
----- source corpus: /home/lamenji/Workspace/Tetras/tenet/tests/input/amrDocuments/dev/solar-system-1/
----- target reference: base
----- process level: sentence
----- source type: amr
-- Compositional Transduction Scheme (CTS)
----- CTS reference: amr_scheme_1
-- Directories
----- base directory: ./
----- structure directory: ./structure/
----- CTS directory: ./scheme/
----- target frame directory: ./../input/targetFrameStructure/
----- input document directory:
----- base output dir: /home/lamenji/Workspace/Tetras/tenet/tests/output/SolarSystemDev1-20230130/SolarSystemDev1_factoid.ttl
----- output directory: /home/lamenji/Workspace/Tetras/tenet/tests/output/SolarSystemDev1-20230130/SolarSystemDev1_factoid.ttlSolarSystemDev1-20230130/
----- sentence output directory: /home/lamenji/Workspace/Tetras/tenet/tests/output/SolarSystemDev1-20230130/technical-data/
----- technical dir path: /home/lamenji/Workspace/Tetras/tenet/tests/output/SolarSystemDev1-20230130/technical-data/
-- Config File Definition
----- schema file: ./structure/amr-rdf-schema.ttl
----- semantic net file: ./structure/semantic-net.ttl
----- config param file: ./structure/config-parameters.ttl
----- base ontology file: ./structure/base-ontology.ttl
----- CTS file: ./scheme/amr_scheme_1.py
-- Useful References for Ontology
----- base URI: https://tenet.tetras-libre.fr/working
----- ontology suffix: -ontology.ttl
----- ontology seed suffix: -ontology-seed.ttl
-- Source File Definition
----- source sentence file: /home/lamenji/Workspace/Tetras/tenet/tests/input/amrDocuments/dev/solar-system-1/**/*.ttl
-- Target File Definition
----- frame ontology file: ./../input/targetFrameStructure/base-ontology.ttl
----- frame ontology seed file: ./../input/targetFrameStructure/base-ontology-seed.ttl
-- Output
----- ontology namespace: https://tenet.tetras-libre.fr/base-ontology/
----- output file: /home/lamenji/Workspace/Tetras/tenet/tests/output/SolarSystemDev1-20230130/technical-data/SolarSystemDev1.ttl
*** - ***
- DEBUG - -- Counting number of graph files (sentences)
- DEBUG - ----- Graph count: 1
- INFO -
=== Extraction Processing ===
- INFO - *** sentence 1 ***
- INFO - -- Work Structure Preparation
- DEBUG - --- Graph Initialization
- DEBUG - ----- Configuration Loading
- DEBUG - -------- RDF Schema (302)
- DEBUG - -------- Semantic Net Definition (509)
- DEBUG - -------- Config Parameter Definition (543)
- DEBUG - ----- Frame Ontology Loading
- DEBUG - -------- Base Ontology produced as output (573)
- DEBUG - --- Source Data Import
- DEBUG - ----- Sentence Loading
- DEBUG - -------- /home/lamenji/Workspace/Tetras/tenet/tests/input/amrDocuments/dev/solar-system-1/SSC-01-01.stog.amr.ttl (621)
- DEBUG - --- Export work graph as turtle
- DEBUG - ----- Work graph file: /home/lamenji/Workspace/Tetras/tenet/tests/output/SolarSystemDev1-20230130/technical-data/SolarSystemDev1-1/SolarSystemDev1.ttl
- INFO - ----- Sentence (id): SSC-01-01
- INFO - ----- Sentence (text): The Solar System is the gravitationally bound system of the Sun and the objects that orbit it, either directly or indirectly.
- INFO - -- Loading Extraction Scheme (amr_scheme_1)
- DEBUG - ----- Step number: 3
- INFO - -- Loading Extraction Rules (amr_rule/*)
- 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 (626, 0:00:00.076365)
- INFO - --- Sequence: amr-reification-sequence
- INFO - ----- reclassify-concept-1: 10/10 new triples (636, 0:00:00.138721)
- DEBUG - ----- reclassify-concept-2: 0/0 new triple (636, 0:00:00.073647)
- INFO - ----- reclassify-concept-3: 12/12 new triples (648, 0:00:00.050540)
- INFO - ----- reclassify-concept-4: 16/16 new triples (664, 0:00:00.070545)
- INFO - ----- reclassify-concept-5: 2/4 new triples (666, 0:00:00.054357)
- INFO - ----- reify-roles-as-concept: 10/10 new triples (676, 0:00:00.047627)
- INFO - ----- reclassify-existing-variable: 45/45 new triples (721, 0:00:00.045947)
- INFO - ----- add-new-variable-for-reified-concept: 8/8 new triples (729, 0:00:00.049993)
- INFO - ----- add-amr-leaf-for-reclassified-concept: 33/33 new triples (762, 0:00:00.049845)
- INFO - ----- add-amr-leaf-for-reified-concept: 8/8 new triples (770, 0:00:00.030195)
- INFO - ----- add-amr-edge-for-core-relation: 27/27 new triples (797, 0:00:00.132663)
- INFO - ----- add-amr-edge-for-reified-concept: 12/12 new triples (809, 0:00:00.129960)
- INFO - ----- add-amr-edge-for-name-relation: 5/5 new triples (814, 0:00:00.079002)
- DEBUG - ----- add-value-for-quant-relation: 0/0 new triple (814, 0:00:00.069826)
- INFO - ----- add-amr-edge-for-polarity-relation: 5/5 new triples (819, 0:00:00.078315)
- INFO - ----- update-amr-edge-role-1: 15/15 new triples (834, 0:00:00.091958)
- INFO - ----- add-amr-root: 5/5 new triples (839, 0:00:00.024196)
- DEBUG - --- Serializing graph to SolarSystemDev1_preprocessing
- DEBUG - ----- step: preprocessing
- DEBUG - ----- id: SolarSystemDev1
- DEBUG - ----- work_file: /home/lamenji/Workspace/Tetras/tenet/tests/output/SolarSystemDev1-20230130/technical-data/SolarSystemDev1-1/SolarSystemDev1_preprocessing.ttl
- DEBUG - ----- base: http://SolarSystemDev1/preprocessing
- INFO - ----- 218 triples extracted during preprocessing step
- INFO - -- Applying extraction step: transduction
- INFO - --- Sequence: atomic-extraction-sequence
- INFO - ----- create-atom-class-net: 30/30 new triples (869, 0:00:00.067177)
- DEBUG - ----- (refinement) refine-cover-node-1: 5 new triples (874)
- DEBUG - ----- (refinement) refine-cover-node-2: 5 new triples (879)
- INFO - ----- create-individual-net-1: 9/9 new triples (888, 0:00:00.088076)
- DEBUG - ----- (refinement) refine-cover-node-1: 1 new triples (889)
- INFO - ----- create-atom-property-net-1: 82/82 new triples (971, 0:00:00.141340)
- DEBUG - ----- (refinement) refine-cover-node-1: 6 new triples (977)
- INFO - ----- create-value-net: 15/15 new triples (992, 0:00:00.054675)
- INFO - ----- create-phenomena-net-1: 22/23 new triples (1014, 0:00:00.075633)
- DEBUG - ----- (refinement) refine-cover-node-1: 2 new triples (1016)
- INFO - --- Sequence: atomic-extraction-sequence
- INFO - ----- create-atom-class-net: 1/44 new triple (1017, 0:00:00.083310)
- DEBUG - ----- create-individual-net-1: 0/9 new triple (1017, 0:00:00.063313)
- INFO - ----- create-atom-property-net-1: 1/89 new triple (1018, 0:00:00.178095)
- DEBUG - ----- create-value-net: 0/15 new triple (1018, 0:00:00.056896)
- DEBUG - ----- create-phenomena-net-1: 0/23 new triple (1018, 0:00:00.063038)
- INFO - --- Sequence: phenomena-application-polarity-sequence
- INFO - ----- polarity-phenomena-application: 7/8 new triples (1025, 0:00:00.126432)
- DEBUG - ----- (refinement) refine-cover-node-1: 1 new triples (1026)
- INFO - --- Sequence: phenomena-application-mod-sequence
- DEBUG - ----- mod-phenomena-application-1: 0/0 new triple (1026, 0:00:00.082391)
- DEBUG - ----- mod-phenomena-application-2: 0/0 new triple (1026, 0:00:00.042832)
- DEBUG - ----- mod-phenomena-application-3: 0/0 new triple (1026, 0:00:00.087127)
- INFO - --- Sequence: phenomena-application-and-sequence
- INFO - ----- and-conjunction-phenomena-application-1: 14/17 new triples (1040, 0:00:00.190640)
- DEBUG - ----- (refinement) refine-cover-node-1: 1 new triples (1041)
- INFO - ----- and-conjunction-phenomena-application-2: 1/1 new triple (1042, 0:00:00.115763)
- INFO - ----- and-conjunction-phenomena-application-3: 14/14 new triples (1056, 0:00:00.128241)
- INFO - ----- and-conjunction-phenomena-application-4: 13/13 new triples (1069, 0:00:00.190439)
- DEBUG - ----- (refinement) refine-cover-node-2: 1 new triples (1070)
- INFO - ----- and-conjunction-phenomena-application-5: 6/9 new triples (1076, 0:00:00.078537)
- INFO - ----- and-conjunction-phenomena-application-6: 2/2 new triples (1078, 0:00:00.224878)
- INFO - ******* New Rule: <function analyze_phenomena_or at 0x7f2a3f2365f0> ********
- INFO - --- *** New *** Rule: "or" phenomena analysis
- DEBUG - ----- new net construction: 0/0 new triple (1078, 0:00:00.048477)
- ERROR - *** Error while processing extraction (_apply_new_rule_sequence) ***
- DEBUG - ----- len(sequence): 1
- DEBUG - ----- last rule: new net construction
- DEBUG - ----- last SPARQL query:
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX amr: <https://amr.tetras-libre.fr/rdf/schema#>
PREFIX ns1: <http://amr.isi.edu/frames/ld/v1.2.2/>
PREFIX ns2: <http://amr.isi.edu/rdf/amr-terms#>
PREFIX ns3: <http://amr.isi.edu/rdf/core-amr#>
PREFIX ns4: <http://amr.isi.edu/entity-types#>
PREFIX net: <https://tenet.tetras-libre.fr/semantic-net#>
PREFIX cprm: <https://tenet.tetras-libre.fr/config/parameters#>
PREFIX fprm: <https://tenet.tetras-libre.fr/frame/parameters#>
PREFIX base-out: <https://tenet.tetras-libre.fr/base-ontology#>
PREFIX ext-out: <https://tenet.tetras-libre.fr/extract-result#>
CONSTRUCT {
# -- New net
?compositeClassNet a net:Composite_Class_Net.
# -- Composition Tracking for ?compositeClassNet
?compositeClassNet net:trackNetComposante ?classNet0.
?compositeClassNet net:trackMainNetComposante ?classNet0.
?compositeClassNet net:coverNode ?classNet0Node.
?compositeClassNet net:trackNetComposante ?propertyNet.
?compositeClassNet net:coverNode ?propertyNetNode.
?compositeClassNet net:trackNetComposante ?phenomenaNet.
?compositeClassNet net:coverNode ?phenomenaNetNode.
# -- Deprecate net
?classNet0 a net:Deprecated_Net.
}
WHERE {
# -- Identify Net(s)
?classNet0 a [rdfs:subClassOf* net:Class_Net].
?propertyNet a [rdfs:subClassOf* net:Property_Net].
?phenomenaNet a [rdfs:subClassOf* net:Phenomena_Net].
?phenomenaNet net:hasPhenomenaType amr:phenomena_conjunction_or.
# -- Identify Pattern
?propertyNet amr:role_ARG0 ?classNet0.
?propertyNet amr:manner ?phenomenaNet.
# -- Data Selection
?classNet0 net:coverNode ?classNet0Node.
?propertyNet net:coverNode ?propertyNetNode.
?phenomenaNet net:coverNode ?phenomenaNetNode.
# -- New Net Binding
BIND (REPLACE(?newNetName, ' ', "") AS ?newNetNameRefNet).
BIND (REPLACE(?newNetMainNode, ' ', "") AS ?newNetMainNodeRefNode).
BIND (CONCAT(str(net:), 'compositeClass') AS ?compositeClassNetRef1).
BIND (CONCAT(?compositeClassNetRef1, '_', ?newNetNameRefNet) AS ?compositeClassNetRef2).
BIND (CONCAT(?compositeClassNetRef2, '_', ?newNetMainNodeRefNode) AS ?compositeClassNetRef3).
BIND (uri(?compositeClassNetRef3) AS ?compositeClassNet).
}
- DEBUG - ----- len(extracted_triple_set): 0
- DEBUG - ----- new_triple_count: 0
- INFO - --- Sequence: phenomena-checking-sequence
- INFO - ----- expand-and-conjunction-phenomena-net: 5/5 new triples (1083, 0:00:00.017671)
- DEBUG - ----- expand-degree-phenomena-net-1: 0/0 new triple (1083, 0:00:00.009065)
- DEBUG - ----- expand-degree-phenomena-net-2: 0/0 new triple (1083, 0:00:00.009797)
- DEBUG - ----- expand-degree-phenomena-net-3: 0/0 new triple (1083, 0:00:00.009745)
- DEBUG - ----- expand-degree-phenomena-net-4: 0/0 new triple (1083, 0:00:00.009931)
- DEBUG - ----- expand-degree-phenomena-net-5: 0/0 new triple (1083, 0:00:00.010127)
- DEBUG - ----- expand-degree-phenomena-net-6: 0/0 new triple (1083, 0:00:00.009099)
- INFO - --- Sequence: composite-property-extraction-sequence
- DEBUG - ----- create-composite-class-net-from-property-1: 0/0 new triple (1083, 0:00:00.104618)
- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triple (1083, 0:00:00.283172)
- INFO - --- Sequence: composite-class-extraction-sequence-1
- INFO - ----- create-composite-class-net-from-property-1: 60/66 new triples (1143, 0:00:01.090781)
- DEBUG - ----- (refinement) refine-cover-node-1: 10 new triples (1153)
- DEBUG - ----- (refinement) refine-cover-node-2: 4 new triples (1157)
- DEBUG - ----- create-composite-class-net-from-property-2: 0/0 new triple (1157, 0:00:00.393388)
- INFO - ----- create-composite-class-net-from-property-3: 20/24 new triples (1177, 0:00:00.319539)
- INFO - --- Sequence: composite-class-extraction-sequence-2
- DEBUG - ----- create-composite-class-net-from-phenomena-1: 0/0 new triple (1177, 0:00:00.045260)
- DEBUG - ----- create-composite-class-net-from-phenomena-2: 0/0 new triple (1177, 0:00:00.040544)
- DEBUG - ----- create-composite-class-net-from-phenomena-3: 0/0 new triple (1177, 0:00:00.064424)
- DEBUG - ----- create-composite-class-net-from-phenomena-4: 0/0 new triple (1177, 0:00:00.136188)
- INFO - --- Sequence: restriction-adding-sequence
- DEBUG - ----- add-restriction-to-class-net-from-property-1: 0/0 new triple (1177, 0:00:00.062562)
- INFO - --- Sequence: classification-sequence
- INFO - ----- classify-net-from-core-1: 8/8 new triples (1185, 0:00:00.014222)
- INFO - ----- classify-net-from-core-2: 1/6 new triple (1186, 0:00:00.006798)
- DEBUG - ----- classify-net-from-core-3: 0/0 new triple (1186, 0:00:00.038190)
- DEBUG - ----- classify-net-from-part: 0/0 new triple (1186, 0:00:00.008924)
- INFO - ----- classify-net-from-domain: 4/4 new triples (1190, 0:00:00.009085)
- DEBUG - ----- classify-net-from-degree-phenomena-1: 0/0 new triple (1190, 0:00:00.012121)
- DEBUG - ----- classify-net-from-degree-phenomena-2: 0/0 new triple (1190, 0:00:00.036864)
- DEBUG - ----- classify-net-from-degree-phenomena-3: 0/0 new triple (1190, 0:00:00.018587)
- INFO - ----- propagate-individual-1: 1/1 new triple (1191, 0:00:00.016842)
- INFO - ----- propagate-individual-2: 4/4 new triples (1195, 0:00:00.008606)
- DEBUG - ----- reclassify-deprecated-net: 0/0 new triple (1195, 0:00:00.006333)
- DEBUG - --- Serializing graph to SolarSystemDev1_transduction
- DEBUG - ----- step: transduction
- DEBUG - ----- id: SolarSystemDev1
- DEBUG - ----- work_file: /home/lamenji/Workspace/Tetras/tenet/tests/output/SolarSystemDev1-20230130/technical-data/SolarSystemDev1-1/SolarSystemDev1_transduction.ttl
- DEBUG - ----- base: http://SolarSystemDev1/transduction
- INFO - ----- 356 triples extracted during transduction step
- INFO - -- Applying extraction step: generation
- INFO - --- Sequence: main-generation-sequence
- INFO - ----- compute-uri-for-owl-declaration-1: 9/9 new triples (1204, 0:00:00.029195)
- INFO - ----- compute-uri-for-owl-declaration-2: 1/5 new triple (1205, 0:00:00.027794)
- INFO - ----- compute-uri-for-owl-declaration-3: 1/1 new triple (1206, 0:00:00.037933)
- DEBUG - ----- compute-uri-for-owl-declaration-4: 0/0 new triple (1206, 0:00:00.020072)
- INFO - ----- compute-uri-for-owl-declaration-5: 7/7 new triples (1213, 0:00:00.021811)
- INFO - ----- compute-uri-for-owl-declaration-6: 6/6 new triples (1219, 0:00:00.022707)
- INFO - ----- generate-atom-class: 12/12 new triples (1231, 0:00:00.010732)
- INFO - ----- classify-atom-class-1: 4/4 new triples (1235, 0:00:00.009827)
- DEBUG - ----- classify-atom-class-2: 0/0 new triple (1235, 0:00:00.016475)
- INFO - ----- generate-individual: 3/3 new triples (1238, 0:00:00.008376)
- DEBUG - ----- classify-individual-1: 0/0 new triple (1238, 0:00:00.011317)
- INFO - ----- classify-individual-2: 4/4 new triples (1242, 0:00:00.008994)
- INFO - ----- generate-atom-property-1: 20/20 new triples (1262, 0:00:00.010208)
- INFO - ----- generate-atom-property-12: 12/20 new triples (1274, 0:00:00.009498)
- DEBUG - ----- generate-inverse-relation: 0/0 new triple (1274, 0:00:00.006962)
- INFO - ----- generate-composite-class: 22/22 new triples (1296, 0:00:00.038740)
- DEBUG - ----- add-restriction-to-class-1: 0/0 new triple (1296, 0:00:00.015111)
- DEBUG - ----- add-restriction-to-class-2: 0/0 new triple (1296, 0:00:00.012649)
- INFO - ----- add-restriction-to-class-3: 24/29 new triples (1320, 0:00:00.018723)
- DEBUG - ----- add-restriction-to-class-4: 0/0 new triple (1320, 0:00:00.018901)
- DEBUG - ----- add-restriction-to-class-5: 0/0 new triple (1320, 0:00:00.013924)
- DEBUG - ----- add-restriction-to-class-6: 0/0 new triple (1320, 0:00:00.016910)
- DEBUG - ----- generate-composite-property: 0/0 new triple (1320, 0:00:00.011736)
- DEBUG - --- Serializing graph to SolarSystemDev1_generation
- DEBUG - ----- step: generation
- DEBUG - ----- id: SolarSystemDev1
- DEBUG - ----- work_file: /home/lamenji/Workspace/Tetras/tenet/tests/output/SolarSystemDev1-20230130/technical-data/SolarSystemDev1-1/SolarSystemDev1_generation.ttl
- DEBUG - ----- base: http://SolarSystemDev1/generation
- INFO - ----- 125 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: 142
- DEBUG - ----- Graph base: http://SolarSystemDev1/factoid
- DEBUG - --- Serializing graph to factoid file (/home/lamenji/Workspace/Tetras/tenet/tests/output/SolarSystemDev1-20230130/technical-data/SolarSystemDev1-1/SolarSystemDev1_factoid.ttl)
- INFO -
=== Final Ontology Generation ===
- INFO - -- Making complete factoid graph by merging the result factoids
- INFO - ----- Total factoid number: 142
- INFO - -- Serializing graph to factoid string
- INFO - ----- Graph base: http://SolarSystemDev1/factoid
- INFO - -- Serializing graph to factoid file
- INFO - ----- Ontology Turtle File: /home/lamenji/Workspace/Tetras/tenet/tests/output/SolarSystemDev1-20230130/SolarSystemDev1_factoid.ttl
- INFO -
=== Done ===
#!/usr/bin/python3.10
# -*-coding:Utf-8 -*
#==============================================================================
# TENET: Extraction Rule Test
#------------------------------------------------------------------------------
# Script to test rules under development
#==============================================================================
from context import tenet
from scheme import amr_scheme_1
#==============================================================================
# Development Test
#==============================================================================
print('\n *** Development Test ***')
print('\n' + ' *** - ***')
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment