From 9431756bb435ccc679a3d636e0a0e0ac9e6844e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Lamercerie?= <aurelien.lamercerie@tetras-libre.fr> Date: Wed, 15 Feb 2023 00:15:49 +0100 Subject: [PATCH] Development of febTransduction (in progress) --- tenet/febTransduction/__init__.py | 1 + tenet/febTransduction/pattern.py | 240 +-- .../phenomena_application_or.py | 230 ++- tenet/febTransduction/testGraph1.ttl | 1572 +++++++++++++++++ tests/test_tenet_rule.py | 43 +- 5 files changed, 1813 insertions(+), 273 deletions(-) create mode 100644 tenet/febTransduction/__init__.py create mode 100644 tenet/febTransduction/testGraph1.ttl diff --git a/tenet/febTransduction/__init__.py b/tenet/febTransduction/__init__.py new file mode 100644 index 00000000..6ee1bc2f --- /dev/null +++ b/tenet/febTransduction/__init__.py @@ -0,0 +1 @@ +from .pattern import Pattern \ No newline at end of file diff --git a/tenet/febTransduction/pattern.py b/tenet/febTransduction/pattern.py index e8119a09..d1b55fbc 100644 --- a/tenet/febTransduction/pattern.py +++ b/tenet/febTransduction/pattern.py @@ -2,234 +2,90 @@ # -*-coding:Utf-8 -* #============================================================================== -# TENET: Transduction Rule +# TENET: Pattern #------------------------------------------------------------------------------ -# Class to define a Compositional Transduction Rule (CTR), namely a rule -# associating a semantic graph pattern and a semantic net constructor. -# Several methods are proposed to translate the rule into a sequence of SPARQL -# queries applicable to a semantic graph. +# Class to define a pattern to find in a semantic graph. The pattern is +# composed of a list of semantic nets to be extracted from the graph and +# associated with a set of clauses (identification or relational clauses). #============================================================================== -if __name__ == '__main__': - import os, sys - LIB_PATH = f'{os.path.dirname(os.path.abspath(__file__))}/..' - sys.path.insert(0, os.path.abspath(LIB_PATH)) - print(sys.path[0]) - import logging +from rdflib import Graph +from rdflib import Namespace +from rdflib.namespace import NamespaceManager + import febTransduction.query_builder as query_builder import febTransduction.net as net -# -- Useful Constant(s) -DEFAULT_ATTRIBUTE_VALUE = f'\"NA\"' -INDENT_STR = ' ' -SENTENCE_REF = '?sentenceRef' +from febTransduction.net.semantic_net_rdf_reference import SemanticNetReferenceHandle #============================================================================== -# Net Class +# Class #============================================================================== -class Rule: - """ Class to define a Compositional Transduction Rule (CTR), namely a rule - associating a semantic graph pattern and a semantic net constructor. +class Pattern: + """ Class to define a pattern to find in a semantic graph. The pattern is + composed of a list of semantic nets to be extracted from the graph and + associated with a set of clauses (identification or relational clauses). """ - - #-------------------------------------------------------------------------- - # Class Attributes - #-------------------------------------------------------------------------- - - # None - - + #-------------------------------------------------------------------------- # Constructor #-------------------------------------------------------------------------- - def __init__(self, label, net): + def __init__(self, *nets): # -- Base - self.label = label - self.new_net = net + self.label = f' ----- finding' + self.net_list = [] + for net in nets: + self.label += f' {net}' + self.net_list.append(f'?{net}') + + # -- Reference Handle + self.referenceHandle = SemanticNetReferenceHandle() # -- Pattern - self._identification_pattern_dict = {} - self._composition_pattern_list = [] - self._restriction_pattern_list = [] - - # -- SPARQL Query - self.query_list = [] - - - #-------------------------------------------------------------------------- - # Accessor(s) - #-------------------------------------------------------------------------- - - # -- + self._identification_pattern_list = [] + self._relation_pattern_list = [] #-------------------------------------------------------------------------- # Method(s) to add pattern #-------------------------------------------------------------------------- - + def add_identification_pattern(self, net, **net_attribute): - self._identification_pattern_dict[net] = net.identify_attribute(**net_attribute) - + for attr_ref in net_attribute.keys(): + attr_predicate = self.referenceHandle.get_predicate(attr_ref) + attr_value = net_attribute.get(attr_ref) + self._identification_pattern_list.append(()) - def add_composition_pattern(self, 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): - self._restriction_pattern_list.append((net_1, relation, net_2)) + def add_relation_pattern(self, net_1, relation, net_2): + self._relation_pattern_list.append((net_1, relation, net_2)) #-------------------------------------------------------------------------- - # Method(s) to construct a new semantic net by composition of net(s) + # Pattern Application Method #-------------------------------------------------------------------------- - - def __define_identification_clause(self, *nets): - clause_part = f"\n{INDENT_STR}" - clause_part += f"# -- Identify Net(s)" - for net in nets: - clause_part += f"\n{INDENT_STR}" - clause_part += net.identify() - if net in self._identification_pattern_dict: - clause_part += self._identification_pattern_dict[net] - return clause_part - - - def __define_pattern_clause(self): - clause_part = f"\n{INDENT_STR}" - clause_part += f"# -- Identify Pattern " - for (net_1, relation, net_2) in self._composition_pattern_list: - clause_part += f"\n{INDENT_STR}" - clause_part += f'{net_1.id} {relation} {net_2.id}.' - return clause_part - - - def __define_tracking_data_selection_clause(self, *nets): - clause_part = f"\n{INDENT_STR}" - clause_part += f"# -- Data Selection " - for net in nets: - clause_part += f"\n{INDENT_STR}" - clause_part += net.select_tracking_data() - return clause_part - - - def __define_new_net_binding_clause(self, *nets): - - assert len(nets) > 0, '__define_new_net_binding_clause impossible without net' - - clause_part = f"\n{INDENT_STR}" - clause_part += f"""# *** Identify variable label of base leaf *** - {nets[0].select_data('base_node')} - {nets[0].base_node} a amr:AMR_Leaf ; - amr:hasVariable ?variable. - ?variable amr:label ?varLabel.""" - clause_part += f"\n\n{INDENT_STR}" - clause_part += f"# -- Naming Binding \n{INDENT_STR}" - clause_part += self.new_net.bind_naming(*nets) - - clause_part += f"\n\n{INDENT_STR}" - clause_part += f"# -- URI Binding" - clause_part += self.new_net.bind_uri(self.new_net.naming, '?varLabel') + def apply(self, graph): - return clause_part + # -- Select Data List + select_data_list = [] + for net in net_list: + select_data_list.append(net.id) - - def __define_new_net(self): - construct_part = f"\n{INDENT_STR}" - construct_part += f'# -- New net \n' - construct_part += self.new_net.define() - return construct_part - - - def __define_composition(self, *nets): - construct_part = f"\n{INDENT_STR}" - construct_part += f'# -- Composition Tracking for {self.new_net.id}' - main = True - for net in nets: - construct_part += f"\n{INDENT_STR}" - construct_part += self.new_net.track_composante(net, main) - main = False - return construct_part - - def __define_deprecate_net(self, *nets): - if (nets is not None) & (len(nets) != 0): - construct_part = f'\n{INDENT_STR}' - construct_part += f'# -- Deprecate net \n{INDENT_STR}' - construct_part += f'{nets[0].id} a net:Deprecated_Net.' - return construct_part - - - def compose(self, *nets): - - query_label = 'new net construction' - - # -- Clause Part - clause_part = '' - clause_part += self.__define_identification_clause(*nets) - clause_part += '\n' - clause_part += self.__define_pattern_clause() - clause_part += '\n' - clause_part += self.__define_tracking_data_selection_clause(*nets) - clause_part += '\n' - clause_part += self.__define_new_net_binding_clause(*nets) - - # -- Construct Part - construct_part = '' - construct_part += self.__define_new_net() - construct_part += self.__define_composition(*nets) - construct_part += self.__define_deprecate_net(*nets) + # -- Clause List + clause_list = [] + for (attr_predicate, attr_value) in relation_pattern_list: + clause_list.append(f'{self.id} {attr_predicate} {attr_value}.') + for (net_1, relation, net_2) in relation_pattern_list: + clause_list.append(f'{net_1.id} {relation} {net_2.id}.') # -- Query Generation - compose_query = query_builder.generate_construct_query(construct_part, clause_part) - self.query_list.append((query_label, compose_query)) - - - - -#============================================================================== -# Development Test -#============================================================================== - -if __name__ == '__main__': - - print('\n' + ' *** Development Test ***') - - # print('\n' + ' -- Net Definition') - property_net_0 = net.PropertyNet(0) - property_net_1 = net.PropertyNet(1) - phenomena_net = net.PhenomenaNet() - or_composite_class_net = net.OrCompositeClassNet() - - # print('\n' + ' -- Test Rule 1') - 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_1, 'amr:role_ARG0', property_net_0) - rule.add_composition_pattern(property_net_1, 'amr:role_ARG1', phenomena_net) - rule.compose(property_net_0, property_net_1, phenomena_net) - - rule.compute_data() - - num = 0 - for query_label, query in rule.query_list: - num += 1 - print(f'*** query {num} - {query_label} ***\n{query}\n') - - # print('\n' + ' -- load a rule definition from a dictionary') - # rule.load_dict(rule_def_1) - # print(rule) - - # print('\n' + ' -- load a prefix list') - # rule.load_prefix_list(prefix_list_1) - # print(rule) - - # print('\n' + ' -- get the SPARQL query') - # query = rule.get_query() - # print(query) + query_code = query_builder.generate_select_query(select_data_list, clause_list) + query_result = graph.query(test_query) - print('\n' + ' *** - ***') \ No newline at end of file + return query_result \ No newline at end of file diff --git a/tenet/febTransduction/phenomena_application_or.py b/tenet/febTransduction/phenomena_application_or.py index 0cf2eca4..f8aed303 100644 --- a/tenet/febTransduction/phenomena_application_or.py +++ b/tenet/febTransduction/phenomena_application_or.py @@ -2,97 +2,167 @@ # -*-coding:Utf-8 -* #============================================================================== -# TENET: AMR CTR at 'Net Expansion' level +# TENET: AMR CTR at 'Net Expansion' level for phenomena application (or) #------------------------------------------------------------------------------ # Module grouping compositional transduction rule_sets (CTR) for the analysis # of AMR structures, at 'Net Expansion' level #============================================================================== +import subprocess, os +from rdflib import Graph +from rdflib import Namespace +from rdflib.namespace import NamespaceManager + if __name__ == '__main__': import os, sys - LIB_PATH = f'{os.path.dirname(os.path.abspath(__file__))}/../../..' + LIB_PATH = f'{os.path.dirname(os.path.abspath(__file__))}/..' sys.path.insert(0, os.path.abspath(LIB_PATH)) print(sys.path[0]) +import febTransduction as transduction +from febTransduction.query_builder import generate_select_query + #============================================================================== -# Rule to analyze conjunction phenomena +# Rule with pattern property(class, or_phenomena) #============================================================================== -def analyze_phenomena_or_1(graph): +def __select_pattern_1(): - rule_label = '"or" phenomena analysis 1 (targetting class)' - print(f"--- *** February Transduction *** Sequence: {rule_label}") - #logger.info(f"--- *** February Transduction *** Sequence: {rule_label}") - - # -- Net Instanciation - property_net = net.PropertyNet(graph) - class_net_0 = net.ClassNet(graph) - phenomena_net = net.PhenomenaNet(graph) - composite_class_net = net.CompositeClassNet(graph) + # -- Select Data List + select_data_list = ['?property_net', '?class_net', '?phenomena_net'] + + # -- Clause List + clause_list = [] + clause_list.append(f'?property_net a [rdfs:subClassOf* net:Property_Net].') + clause_list.append(f'?class_net a [rdfs:subClassOf* net:Class_Net].') + clause_list.append(f'?phenomena_net a [rdfs:subClassOf* net:Phenomena_Net].') + clause_list.append(f'?phenomena_net net:hasPhenomenaType amr:phenomena_conjunction_or.') + clause_list.append(f'?property_net amr:role_ARG0 ?class_net.') + clause_list.append(f'?property_net amr:role_ARG1 ?phenomena_net.') + + # -- Query Generation + query_code = transduction.query_builder.generate_select_query(select_data_list, clause_list) + + return query_code - # -- Rule Initialization - pattern = transduction.Pattern(class_net_0, property_net, phenomena_net) - pattern.add_identification_pattern(phenomena_net, phenomena_type='amr:phenomena_conjunction_or') - pattern.add_composition_pattern(property_net, 'amr:role_ARG0', class_net_0) - pattern.add_composition_pattern(property_net, 'amr:role_ARG1', phenomena_net) - pattern.apply(graph) # ou class_net_0, property_net, phenomena_net = pattern.apply(graph) + # pattern = transduction.Pattern('class_net', 'property_net', 'phenomena_net') + # pattern.add_identification_pattern(phenomena_net, phenomena_type='amr:phenomena_conjunction_or') + # pattern.add_composition_pattern(property_net, 'amr:role_ARG0', class_net_0) + # pattern.add_composition_pattern(property_net, 'amr:role_ARG1', phenomena_net) + # pattern_query = pattern.get_select_query() + # return pattern_query - # -- Net Composition - composite_class_net.compose(class_net_0, property_net, phenomena_net) - # -- Data Computation - composite_class_net.mother_class = class_net_0 - # etc +def __op_pattern_1(phenomena_net_uri, num): - # -- Restriction Computation - # TODO - composite_class_net.restriction = restriction + assert 1 <= num <= 9 - # -- Relation Propagation - for (n1, rel, _) in class_net_0.input_relation_list: - composite_class_net.add_input_relation(n1, rel) - # TODO: à voir si on veut d'autres relations + # -- Select Data List + select_data_list = ['?class_net'] - # -- Finalization - composite_class_net.finalize() - new_triple_list = composite_class_net.generate_triple_definition() + # -- Clause List + clause_list = [] + clause_list.append(f'?class_net a [rdfs:subClassOf* net:Class_Net].') + clause_list.append(f'{phenomena_net_uri} amr:role_op{num} ?class_net.') + + # -- Query Generation + query_code = transduction.query_builder.generate_select_query(select_data_list, clause_list) + + return query_code - return rule_label, new_triple_list +def __define_restriction(net, op_set): # TODO + pass + return net + + +def analyze_phenomena_or_1(graph): + + # -- Rule Initialization + rule_label = '"or" phenomena analysis 1 (targetting class)' + print(f"--- *** February Transduction *** Sequence: {rule_label}") + #logger.info(f"--- *** February Transduction *** Sequence: {rule_label}") -def analyze_phenomena_or_2(): + # -- Selection Pattern Application + query_code = __select_pattern_1() + pattern_set = graph.query(query_code) + + # -- New Net Computing + new_triple_list = [] + for selection in pattern_set: + + # -- Net Composition + class_net = net.ClassNet(graph, selection.class_net) + property_net = net.PropertyNet(graph, selection.property_net) + phenomena_net = net.PhenomenaNet(graph, selection.phenomena_net) + composite_class_net = net.CompositeClassNet(graph) + composite_class_net.compose(class_net, property_net, phenomena_net) + + # -- Data Computation + composite_class_net.mother_class = class_net + # etc + + # -- Restriction Computation + for num in range(1, 9+1): + query_code = __op_pattern_1(selection.phenomena_net, num) + op_set = graph.query(query_code) + composite_class_net = __define_restriction(composite_class_net, op_set) + + # -- Relation Propagation + for (n1, rel, _) in class_net.input_relation_list: + composite_class_net.add_input_relation(n1, rel) + # TODO: à voir si on veut d'autres relations + + # -- Finalization + composite_class_net.finalize() + new_triples = composite_class_net.generate_triple_definition() + new_triple_list.append(new_triples) + + return rule_label, new_triple_list - # -- Net Instanciation - property_net_0 = net.PropertyNet(0) - property_net_1 = net.PropertyNet(1) - phenomena_net = net.PhenomenaNet() - or_composite_class_net = net.OrCompositeClassNet() - # -- Rule Initialization - rule = transduction.Rule('"or" phenomena analysis 2 (targetting property)', - or_composite_class_net) - - # -- Net Composition - rule.add_identification_pattern(phenomena_net, phenomena_type='amr:phenomena_conjunction_or') - rule.add_composition_pattern(property_net_1, 'amr:role_ARG0', property_net_0) - rule.add_composition_pattern(property_net_1, 'amr:role_ARG1', phenomena_net) - rule.compose(property_net_0, property_net_1, phenomena_net) +#============================================================================== +# Rule with pattern property(property, or_phenomena) +#============================================================================== + +def __select_pattern_2(): - # -- Data Computation - # rule.compute_data(mother_class_net=property_net_0.id) + # -- Select Data List + select_data_list = ['?property_net_0', '?property_net', '?phenomena_net'] - # -- Restriction Computation - # TODO + # -- Clause List + clause_list = [] + clause_list.append(f'?property_net a [rdfs:subClassOf* net:Property_Net].') + clause_list.append(f'?property_net_0 a [rdfs:subClassOf* net:Property_Net].') + clause_list.append(f'?phenomena_net a [rdfs:subClassOf* net:Phenomena_Net].') + clause_list.append(f'?phenomena_net net:hasPhenomenaType amr:phenomena_conjunction_or.') + clause_list.append(f'?property_net amr:role_ARG0 ?property_net_0.') + clause_list.append(f'?property_net amr:role_ARG1 ?phenomena_net.') - # -- Relation Propagation - # TODO + # -- Query Generation + query_code = transduction.query_builder.generate_select_query(select_data_list, clause_list) - # -- Finalization - # TODO + return query_code + + +def analyze_phenomena_or_2(): - return rule + # -- Rule Initialization + rule_label = '"or" phenomena analysis 2 (targetting class)' + print(f"--- *** February Transduction *** Sequence: {rule_label}") + # -- Selection Pattern Application + query_code = __select_pattern_2() + pattern_set = graph.query(query_code) + + # -- New Net Computing + new_triple_list = [] + for selection in pattern_set: + + pass + + return rule_label, new_triple_list @@ -103,12 +173,44 @@ def analyze_phenomena_or_2(): if __name__ == '__main__': print('\n' + ' *** Development Test ***') + + print(f'\n -- Test Graph Loading') + graph = Graph() + graph.bind('net', Namespace('https://tenet.tetras-libre.fr/semantic-net#')) + graph.parse('testGraph1.ttl') + print(f"----- Graph Loaded ({len(graph)})") + + + print('\n -- Select Pattern Application 1') + query_code = __select_pattern_1() + print(query_code) + pattern_result_set = graph.query(query_code) + print(f'\n ----- number of selection found: {len(pattern_result_set)}') + for selection in pattern_result_set: + result_str = f'>>> ' + result_str += f'{selection.property_net.n3(graph.namespace_manager)}' + result_str += f' {selection.class_net.n3(graph.namespace_manager)}' + result_str += f' {selection.phenomena_net.n3(graph.namespace_manager)}' + print(result_str) + + + print('\n -- Select Pattern Application 2') + query_code = __select_pattern_2() + print(query_code) + pattern_result_set = graph.query(query_code) + print(f'\n ----- number of selection found: {len(pattern_result_set)}') + for selection in pattern_result_set: + result_str = f'>>> ' + result_str += f'{selection.property_net.n3(graph.namespace_manager)}' + result_str += f' {selection.property_net_0.n3(graph.namespace_manager)}' + result_str += f' {selection.phenomena_net.n3(graph.namespace_manager)}' + print(result_str) print('\n -- Rule') - rule = analyze_phenomena_or_1() + # rule = analyze_phenomena_or_1() - num = 0 - for query_label, query in rule.query_list: - num += 1 - print(f'*** query {num} - {query_label} ***\n{query}\n') + # num = 0 + # for query_label, query in rule.query_list: + # num += 1 + # print(f'*** query {num} - {query_label} ***\n{query}\n') \ No newline at end of file diff --git a/tenet/febTransduction/testGraph1.ttl b/tenet/febTransduction/testGraph1.ttl new file mode 100644 index 00000000..e3e90472 --- /dev/null +++ b/tenet/febTransduction/testGraph1.ttl @@ -0,0 +1,1572 @@ +@base <http://SolarSystemDev1/transduction> . +@prefix : <https://amr.tetras-libre.fr/rdf/schema#> . +@prefix cprm: <https://tenet.tetras-libre.fr/config/parameters#> . +@prefix net: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix ns11: <http://amr.isi.edu/rdf/amr-terms#> . +@prefix ns21: <http://amr.isi.edu/rdf/core-amr#> . +@prefix ns3: <http://amr.isi.edu/frames/ld/v1.2.2/> . +@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 sys: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +ns21:Concept a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Concept" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:Role a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/test-1#root01> ns21:hasID "test-1" ; + ns21:hasSentence "The sun is a star." ; + ns21:root <http://amr.isi.edu/amr_data/test-1#s> . + +<http://amr.isi.edu/amr_data/test-2#root01> ns21:hasID "test-2" ; + ns21:hasSentence "Earth is a planet." ; + ns21:root <http://amr.isi.edu/amr_data/test-2#p> . + +ns3:bind-01.ARG0 a ns3:FrameRole . + +ns3:bind-01.ARG1 a ns3:FrameRole . + +ns3:orbit-01.ARG0 a ns3:FrameRole . + +ns3:orbit-01.ARG1 a ns3:FrameRole . + +ns11:domain a ns21:Role, + owl:AnnotationProperty, + owl:NamedIndividual . + +ns11:op1 a ns21:Role . + +ns11:op2 a ns21:Role . + +ns21:hasID a owl:AnnotationProperty . + +ns21:hasSentence a owl:AnnotationProperty . + +ns21:root a owl:AnnotationProperty . + +<https://amr.tetras-libre.fr/rdf/schema> a owl:Ontology ; + owl:versionIRI :0.1 . + +:AMR_DataProperty a owl:DatatypeProperty . + +:AMR_Prep_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:edge_a_op1_s2 a :AMR_Edge ; + :hasAmrRole :role_op1 ; + :hasRoleID "op1" . + +:edge_a_op2_o a :AMR_Edge ; + :hasAmrRole :role_op2 ; + :hasRoleID "op2" . + +:edge_b_ARG0_g a :AMR_Edge ; + :hasAmrRole :role_ARG0 ; + :hasRoleID "ARG0" . + +:edge_b_ARG1_s a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_d2_polarity_negative a :AMR_Edge ; + :hasAmrRole :role_polarity ; + :hasRoleID "polarity" . + +:edge_m9_ARG0_o2 a :AMR_Edge ; + :hasAmrRole :role_ARG0 ; + :hasRoleID "ARG0" . + +:edge_m9_ARG1_o3 a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_o2_ARG0_o a :AMR_Edge ; + :hasAmrRole :role_ARG0 ; + :hasRoleID "ARG0" . + +:edge_o2_ARG1_s2 a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_o3_op1_d a :AMR_Edge ; + :hasAmrRole :role_op1 ; + :hasRoleID "op1" . + +:edge_o3_op2_d2 a :AMR_Edge ; + :hasAmrRole :role_op2 ; + :hasRoleID "op2" . + +:edge_p9_ARG0_s a :AMR_Edge ; + :hasAmrRole :role_ARG0 ; + :hasRoleID "ARG0" . + +:edge_p9_ARG1_a a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_p_name_SolarSystem a :AMR_Edge ; + :hasAmrRole :role_name ; + :hasRoleID "name" . + +:edge_s_domain_p a :AMR_Edge ; + :hasAmrRole :role_domain ; + :hasRoleID "domain" . + +:fromAmrLkFramerole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRoot a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:getDirectPropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getInversePropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getPropertyType a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:hasConcept a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasConceptLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasEdgeLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasReification a owl:AnnotationProperty ; + rdfs:range xsd:boolean ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationDomain a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationRange a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasRelationName a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasRoleID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRoleTag a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRolesetID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRootLeaf a owl:ObjectProperty ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasSentenceID a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasSentenceStatement a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasVariable a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:label a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_degree a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "have-degree-91" ; + :label "degree" . + +:relation_domain a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "domain" . + +:relation_manner a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasManner" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "manner" . + +:relation_mod a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "mod" . + +:relation_name a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "name" . + +:relation_part a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasPart" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "part" . + +:relation_polarity a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "polarity" . + +:relation_quant a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "quant" . + +:role_ARG2 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG2" . + +:role_ARG3 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG3" . + +:role_ARG4 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG4" . + +:role_ARG5 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG5" . + +:role_ARG6 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG6" . + +:role_ARG7 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG7" . + +:role_ARG8 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG8" . + +:role_ARG9 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG9" . + +:role_have-degree-91 a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :getPropertyType <net:specificProperty> . + +:role_manner a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "manner" ; + :getPropertyType owl:DataProperty ; + :label "manner" ; + :toReifyAsConcept "manner" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_mod a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasFeature"^^xsd:string ; + :getPropertyType rdfs:subClassOf, + owl:ObjectProperty ; + :label "mod" ; + :toReifyAsConcept "mod" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_op3 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op3" . + +:role_op4 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op4" . + +:role_op5 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op5" . + +:role_op6 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op6" . + +:role_op7 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op7" . + +:role_op8 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op8" . + +:role_op9 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op9" . + +:role_part a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasPart"^^xsd:string ; + :getInversePropertyName "partOf"^^xsd:string ; + :getPropertyType owl:ObjectProperty ; + :toReifyAsConcept "part" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_quant a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "quant" . + +:root_SSC-01-01 a :AMR_Root ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-01-01#root01> ; + :hasRootLeaf :leaf_system_s ; + :hasSentenceID "SSC-01-01" ; + :hasSentenceStatement "The Solar System is the gravitationally bound system of the Sun and the objects that orbit it, either directly or indirectly." . + +:toReifyAsConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithBaseEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithHeadEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +<https://tenet.tetras-libre.fr/base-ontology> a owl:Ontology . + +sys:Event a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Undetermined_Thing a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:fromStructure a owl:AnnotationProperty ; + rdfs:subPropertyOf sys:Out_AnnotationProperty . + +sys:hasDegree a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +sys:hasFeature a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +<https://tenet.tetras-libre.fr/config/parameters> a owl:Ontology . + +cprm:Config_Parameters a owl:Class ; + cprm:baseURI "https://tenet.tetras-libre.fr/" ; + cprm:netURI "https://tenet.tetras-libre.fr/semantic-net#" ; + cprm:newClassRef "new-class#" ; + cprm:newPropertyRef "new-relation#" ; + cprm:objectRef "object_" ; + cprm:targetOntologyURI "https://tenet.tetras-libre.fr/base-ontology/" . + +cprm:baseURI a rdf:Property ; + rdfs:label "Base URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:netURI a rdf:Property ; + rdfs:label "Net URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newClassRef a rdf:Property ; + rdfs:label "Reference for a new class" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newPropertyRef a rdf:Property ; + rdfs:label "Reference for a new property" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:objectRef a rdf:Property ; + rdfs:label "Object Reference" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:targetOntologyURI a rdf:Property ; + rdfs:label "URI of classes in target ontology" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +<https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology . + +net:Instance a owl:Class ; + rdfs:label "Semantic Net Instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Object a owl:Class ; + rdfs:label "Object using in semantic net instance" ; + rdfs:subClassOf net:Net_Structure . + +net:Property_Direction a owl:Class ; + rdfs:subClassOf net:Feature . + +net:abstractionClass a owl:AnnotationProperty ; + rdfs:label "abstraction class" ; + rdfs:subPropertyOf net:objectValue . + +net:atom a owl:Class ; + rdfs:label "atom" ; + rdfs:subClassOf net:Type . + +net:atomOf a owl:AnnotationProperty ; + rdfs:label "atom of" ; + rdfs:subPropertyOf net:typeProperty . + +net:atomType a owl:AnnotationProperty ; + rdfs:label "atom type" ; + rdfs:subPropertyOf net:objectType . + +net:class a owl:Class ; + rdfs:label "class" ; + rdfs:subClassOf net:Type . + +net:composite a owl:Class ; + rdfs:label "composite" ; + rdfs:subClassOf net:Type . + +net:conjunctive_list a owl:Class ; + rdfs:label "conjunctive-list" ; + rdfs:subClassOf net:list . + +net:disjunctive_list a owl:Class ; + rdfs:label "disjunctive-list" ; + rdfs:subClassOf net:list . + +net:entityClass a owl:AnnotationProperty ; + rdfs:label "entity class" ; + rdfs:subPropertyOf net:objectValue . + +net:entity_class_list a owl:Class ; + rdfs:label "entityClassList" ; + rdfs:subClassOf net:class_list . + +net:event a owl:Class ; + rdfs:label "event" ; + rdfs:subClassOf net:Type . + +net:featureClass a owl:AnnotationProperty ; + rdfs:label "feature class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_atom a owl:AnnotationProperty ; + rdfs:label "has atom" ; + rdfs:subPropertyOf net:has_object . + +net:has_class a owl:AnnotationProperty ; + rdfs:label "is class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_class_name a owl:AnnotationProperty ; + rdfs:subPropertyOf net:has_value . + +net:has_class_uri a owl:AnnotationProperty ; + rdfs:label "class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_concept a owl:AnnotationProperty ; + rdfs:label "concept "@fr ; + rdfs:subPropertyOf net:objectValue . + +net:has_entity a owl:AnnotationProperty ; + rdfs:label "has entity" ; + rdfs:subPropertyOf net:has_object . + +net:has_feature a owl:AnnotationProperty ; + rdfs:label "has feature" ; + rdfs:subPropertyOf net:has_object . + +net:has_instance a owl:AnnotationProperty ; + rdfs:label "entity instance" ; + rdfs:subPropertyOf net:objectValue . + +net:has_instance_uri a owl:AnnotationProperty ; + rdfs:label "instance uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_item a owl:AnnotationProperty ; + rdfs:label "has item" ; + rdfs:subPropertyOf net:has_object . + +net:has_mother_class a owl:AnnotationProperty ; + rdfs:label "has mother class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_mother_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_node a owl:AnnotationProperty ; + rdfs:label "UNL Node" ; + rdfs:subPropertyOf net:netProperty . + +net:has_parent a owl:AnnotationProperty ; + rdfs:label "has parent" ; + rdfs:subPropertyOf net:has_object . + +net:has_parent_class a owl:AnnotationProperty ; + rdfs:label "parent class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_parent_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_possible_domain a owl:AnnotationProperty ; + rdfs:label "has possible domain" ; + rdfs:subPropertyOf net:has_object . + +net:has_possible_range a owl:AnnotationProperty ; + rdfs:label "has possible range" ; + rdfs:subPropertyOf net:has_object . + +net:has_relation a owl:AnnotationProperty ; + rdfs:label "has relation" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_source a owl:AnnotationProperty ; + rdfs:label "has source" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_structure a owl:AnnotationProperty ; + rdfs:label "Linguistic Structure (in UNL Document)" ; + rdfs:subPropertyOf net:netProperty . + +net:has_target a owl:AnnotationProperty ; + rdfs:label "has target" ; + rdfs:subPropertyOf net:has_relation_value . + +net:inverse_direction a owl:NamedIndividual . + +net:listBy a owl:AnnotationProperty ; + rdfs:label "list by" ; + rdfs:subPropertyOf net:typeProperty . + +net:listGuiding a owl:AnnotationProperty ; + rdfs:label "Guiding connector of a list (or, and)" ; + rdfs:subPropertyOf net:objectValue . + +net:listOf a owl:AnnotationProperty ; + rdfs:label "list of" ; + rdfs:subPropertyOf net:typeProperty . + +net:modCat1 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 1)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat2 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 2)" ; + rdfs:subPropertyOf net:objectValue . + +net:normal_direction a owl:NamedIndividual . + +net:relation a owl:Class ; + rdfs:label "relation" ; + rdfs:subClassOf net:Type . + +net:relationOf a owl:AnnotationProperty ; + rdfs:label "relation of" ; + rdfs:subPropertyOf net:typeProperty . + +net:state_property a owl:Class ; + rdfs:label "stateProperty" ; + rdfs:subClassOf net:Type . + +net:type a owl:AnnotationProperty ; + rdfs:label "type "@fr ; + rdfs:subPropertyOf net:netProperty . + +net:unary_list a owl:Class ; + rdfs:label "unary-list" ; + rdfs:subClassOf net:list . + +net:verbClass a owl:AnnotationProperty ; + rdfs:label "verb class" ; + rdfs:subPropertyOf net:objectValue . + +<http://amr.isi.edu/amr_data/SSC-01-01#b> a ns3:bind-01 ; + ns3:bind-01.ARG0 <http://amr.isi.edu/amr_data/SSC-01-01#g> ; + ns3:bind-01.ARG1 <http://amr.isi.edu/amr_data/SSC-01-01#s> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-01-01#o2> a ns3:orbit-01 ; + ns3:orbit-01.ARG0 <http://amr.isi.edu/amr_data/SSC-01-01#o> ; + ns3:orbit-01.ARG1 <http://amr.isi.edu/amr_data/SSC-01-01#s2> ; + ns11:manner <http://amr.isi.edu/amr_data/SSC-01-01#o3> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-01-01#root01> a ns21:AMR ; + ns21:has-id "SSC-01-01" ; + ns21:has-sentence "The Solar System is the gravitationally bound system of the Sun and the objects that orbit it, either directly or indirectly." ; + ns21:root <http://amr.isi.edu/amr_data/SSC-01-01#s> . + +<http://amr.isi.edu/amr_data/test-1#s> ns11:domain <http://amr.isi.edu/amr_data/test-1#s2> . + +<http://amr.isi.edu/amr_data/test-2#p> rdfs:label "Earth" . + +<http://amr.isi.edu/entity-types#planet> a ns21:NamedEntity ; + rdfs:comment "bug" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:AMR a owl:Class ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Root a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:concept_and rdfs:subClassOf :AMR_Relation_Concept ; + :fromAmrLk ns21:and ; + :hasPhenomenaLink :phenomena_conjunction_and ; + :label "and" . + +:concept_bind-01 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns3:bind-01 ; + :label "bind-01" . + +:concept_gravitation rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns11:gravitation ; + :label "gravitation" . + +:concept_manner rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns11:manner ; + :isReifiedConcept true ; + :label "hasManner" . + +:concept_object rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns11:object ; + :label "object" . + +:concept_or rdfs:subClassOf :AMR_Relation_Concept ; + :fromAmrLk ns21:or ; + :hasPhenomenaLink :phenomena_conjunction_or ; + :label "or" . + +:concept_orbit-01 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns3:orbit-01 ; + :label "orbit-01" . + +:concept_part rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns11:part ; + :isReifiedConcept true ; + :label "hasPart" . + +:concept_sun rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns11:sun ; + :label "sun" . + +:role_domain a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_NonCore_Role ; + :hasRelationName "domain" ; + :label "domain" ; + :toReifyAsConcept "domain" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_name a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_NonCore_Role ; + :label "name" . + +:role_polarity a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "polarity" . + +:value_SolarSystem a :AMR_Value ; + rdfs:label "Solar System" . + +:variable_a a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-01-01#a> ; + :label "a" . + +:variable_b a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-01-01#b> ; + :label "b" . + +:variable_d a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-01-01#d> ; + :label "d" . + +:variable_d2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-01-01#d2> ; + :label "d2" . + +:variable_g a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-01-01#g> ; + :label "g" . + +:variable_m9 a ns11:manner, + :AMR_Variable ; + :isReifiedVariable true ; + :label "m9" . + +:variable_o a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-01-01#o> ; + :label "o" . + +:variable_o2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-01-01#o2> ; + :label "o2" . + +:variable_o3 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-01-01#o3> ; + :label "o3" . + +:variable_p a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-01-01#p> ; + :label "p" ; + :name "Solar System" . + +:variable_p9 a ns11:part, + :AMR_Variable ; + :isReifiedVariable true ; + :label "p9" . + +:variable_s a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-01-01#s> ; + :label "s" . + +:variable_s2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/SSC-01-01#s2> ; + :label "s2" . + +sys:Degree a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Feature a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Out_AnnotationProperty a owl:AnnotationProperty . + +net:Composite_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Feature a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Individual_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Logical_Set_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:atomProperty_bind_b a net:Atom_Property_Net ; + :role_ARG0 net:atomClass_gravitation_g, + net:compositeClass_gravitation-binding-system-hasPart-sun-and-object_g, + net:compositeClass_orbit-hasManner-conjunction-OR_o2 ; + :role_ARG1 net:atomClass_system_s, + net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:compositeClass_system-hasPart-sun-and-object-hasPart-object_s, + net:compositeClass_system-hasPart-sun-and-object-hasPart-sun_s, + net:compositeClass_system-hasPart-sun-and-object_s ; + net:coverBaseNode :leaf_bind-01_b ; + net:coverNode :leaf_bind-01_b ; + net:hasNaming "bind" ; + net:hasPropertyName "bind" ; + net:hasPropertyName01 "binding" ; + net:hasPropertyName10 "bind-by" ; + net:hasPropertyName12 "bind-of" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "SSC-01-01" ; + net:isCoreRoleLinked true ; + net:targetArgumentNode :leaf_gravitation_g, + :leaf_system_s ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomProperty_hasManner_m9 a net:Atom_Property_Net ; + :role_ARG0 net:atomProperty_orbit_o2, + net:compositeClass_orbit-hasManner-conjunction-OR_o2 ; + :role_ARG1 net:atomProperty_direct_d, + net:atomProperty_direct_d2, + net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:compositeProperty_not-direct_d2, + net:phenomena_conjunction-OR_o3 ; + net:coverBaseNode :leaf_hasManner_m9 ; + net:coverNode :leaf_hasManner_m9 ; + net:hasNaming "hasManner" ; + net:hasPropertyName "hasManner" ; + net:hasPropertyName01 "hasManner" ; + net:hasPropertyName10 "hasManner" ; + net:hasPropertyName12 "hasManner" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "SSC-01-01" ; + net:isCoreRoleLinked true ; + net:targetArgumentNode :leaf_or_o3, + :leaf_orbit-01_o2 ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:class_list a owl:Class ; + rdfs:label "classList" ; + rdfs:subClassOf net:Type . + +net:compositeClass_gravitation-binding-system-hasPart-sun-and-object_g a net:Composite_Class_Net ; + net:coverBaseNode :leaf_gravitation_g ; + net:coverNode :leaf_and_a, + :leaf_bind-01_b, + :leaf_gravitation_g, + :leaf_hasPart_p9, + :leaf_system_s ; + net:coverNodeCount 5 ; + net:hasClassName "gravitation-binding-system-hasPart-sun-and-object" ; + net:hasClassType sys:Entity ; + net:hasMotherClassNet net:atomClass_gravitation_g ; + net:hasRestriction01 net:restriction_binding_system-hasPart-sun-and-object ; + net:hasStructure "SSC-01-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:has_value a owl:AnnotationProperty ; + rdfs:subPropertyOf net:netProperty . + +net:objectType a owl:AnnotationProperty ; + rdfs:label "object type" ; + rdfs:subPropertyOf net:objectProperty . + +net:phenomena_conjunction-AND_a a net:Phenomena_Net ; + :role_op1 net:atomClass_sun_s2, + net:compositeClass_orbit-hasManner-conjunction-OR_o2 ; + :role_op2 net:atomClass_object_o, + net:compositeClass_orbit-hasManner-conjunction-OR_o2 ; + net:coverBaseNode :leaf_and_a ; + net:coverNode :leaf_and_a ; + net:hasNaming "conjunction-AND" ; + net:hasPhenomenaRef "and" ; + net:hasPhenomenaType :phenomena_conjunction_and ; + net:hasStructure "SSC-01-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:restriction_binding_system-hasPart-sun-and-object a net:Restriction_Net ; + net:coverBaseNode :leaf_gravitation_g ; + net:coverNode :leaf_and_a, + :leaf_bind-01_b, + :leaf_gravitation_g, + :leaf_hasPart_p9, + :leaf_system_s ; + net:coverTargetNode :leaf_and_a, + :leaf_bind-01_b, + :leaf_hasPart_p9, + :leaf_system_s ; + net:hasNaming "gravitation-binding-system-hasPart-sun-and-object" ; + net:hasRestrictionNetValue net:compositeClass_system-hasPart-sun-and-object_s ; + net:hasRestrictionOnProperty net:atomProperty_bind_b . + +net:value_negative_blankNode a net:Value_Net ; + net:hasNaming "negative" ; + net:hasStructure "SSC-01-01" ; + net:hasValueLabel "negative" ; + net:trackProgress net:initialized, + net:relation_propagated . + +<http://amr.isi.edu/amr_data/SSC-01-01#a> a ns21:and ; + ns11:op1 <http://amr.isi.edu/amr_data/SSC-01-01#s2> ; + ns11:op2 <http://amr.isi.edu/amr_data/SSC-01-01#o> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-01-01#d> a ns3:direct-02 ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-01-01#d2> a ns3:direct-02 ; + ns11:polarity "-" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-01-01#g> a ns11:gravitation ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-01-01#o3> a ns21:or ; + ns11:op1 <http://amr.isi.edu/amr_data/SSC-01-01#d> ; + ns11:op2 <http://amr.isi.edu/amr_data/SSC-01-01#d2> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-01-01#p> a <http://amr.isi.edu/entity-types#planet>, + <http://amr.isi.edu/entity-types#system> ; + rdfs:label "Solar System" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/entity-types#system> a ns21:NamedEntity ; + rdfs:label "system" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:bind-01 a ns21:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:orbit-01 a ns21:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:gravitation a ns21:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:manner a ns21:Role ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:object a ns21:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:part a ns21:Role ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:sun a ns21:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:system a ns21:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:NamedEntity a ns21:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-EntityType", + "AMR-Term" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:and a ns21:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:or a ns21:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Phenomena a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Relation_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Value a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:concept_direct-02 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns3:direct-02 ; + :label "direct-02" . + +:concept_system rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk <http://amr.isi.edu/entity-types#system>, + ns11:system ; + :label "system" . + +:hasLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_conjunction a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "contrast-01", + "either", + "neither" ; + :label "conjunction" . + +:phenomena_conjunction_and a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "and" ; + :label "conjunction-AND" . + +:phenomena_conjunction_or a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "or" ; + :label "conjunction-OR" . + +:role_op1 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op1" . + +:role_op2 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op2" . + +:value_negative a :AMR_Value ; + rdfs:label "negative" . + +sys:Out_ObjectProperty a owl:ObjectProperty . + +net:Class_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Deprecated_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Phenomena_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Value_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:atomClass_gravitation_g a net:Atom_Class_Net ; + net:coverBaseNode :leaf_gravitation_g ; + net:coverNode :leaf_gravitation_g ; + net:coverNodeCount 1 ; + net:hasClassName "gravitation" ; + net:hasClassType sys:Entity ; + net:hasNaming "gravitation" ; + net:hasStructure "SSC-01-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:logicalSet_and_a a net:Logical_Set_Net ; + :role_op1 net:atomClass_sun_s2, + net:compositeClass_orbit-hasManner-conjunction-OR_o2 ; + :role_op2 net:atomClass_object_o, + net:compositeClass_orbit-hasManner-conjunction-OR_o2 ; + net:bindPropertyNet net:atomProperty_hasPart_p9 ; + net:bindRestriction net:restriction_hasPart_object, + net:restriction_hasPart_sun ; + net:containsNet net:atomClass_object_o, + net:atomClass_sun_s2 ; + net:containsNet1 net:atomClass_sun_s2 ; + net:containsNet2 net:atomClass_object_o ; + net:coverBaseNode :leaf_and_a ; + net:coverNode :leaf_and_a ; + net:hasLogicalConstraint "AND" ; + net:hasNaming "hasPart-sun-and-object" ; + net:hasStructure "SSC-01-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:objectProperty a owl:AnnotationProperty ; + rdfs:label "object attribute" . + +net:phenomena_conjunction-OR_o3 a net:Phenomena_Net ; + :role_op1 net:atomProperty_direct_d, + net:compositeClass_orbit-hasManner-conjunction-OR_o2 ; + :role_op2 net:atomProperty_direct_d2, + net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:compositeProperty_not-direct_d2 ; + net:coverBaseNode :leaf_or_o3 ; + net:coverNode :leaf_or_o3 ; + net:hasNaming "conjunction-OR" ; + net:hasPhenomenaRef "or" ; + net:hasPhenomenaType :phenomena_conjunction_or ; + net:hasStructure "SSC-01-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:value_SolarSystem_blankNode a net:Value_Net ; + net:hasNaming "Solar System" ; + net:hasStructure "SSC-01-01" ; + net:hasValueLabel "Solar System" ; + net:trackProgress net:initialized, + net:relation_propagated . + +<http://amr.isi.edu/amr_data/SSC-01-01#o> a ns11:object ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-01-01#s> a ns11:system ; + ns11:domain <http://amr.isi.edu/amr_data/SSC-01-01#p> ; + ns11:part <http://amr.isi.edu/amr_data/SSC-01-01#a> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/SSC-01-01#s2> a ns11:sun ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:direct-02 a ns21:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:Frame a ns21:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Frame" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Concept a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:AMR_Specific_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:fromAmrLk a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:getProperty a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationDefinition a owl:AnnotationProperty ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:leaf_direct-02_d a :AMR_Leaf ; + :hasConcept :concept_direct-02 ; + :hasVariable :variable_d . + +:leaf_hasManner_m9 a :AMR_Leaf ; + :edge_m9_ARG0_o2 :leaf_orbit-01_o2 ; + :edge_m9_ARG1_o3 :leaf_or_o3 ; + :hasConcept :concept_manner ; + :hasVariable :variable_m9 ; + :isReifiedLeaf true . + +:toReify a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +net:Restriction_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:atomProperty_orbit_o2 a net:Atom_Property_Net, + net:Deprecated_Net ; + :role_ARG0 net:atomClass_object_o, + net:compositeClass_orbit-hasManner-conjunction-OR_o2 ; + :role_ARG1 net:atomClass_sun_s2, + net:compositeClass_orbit-hasManner-conjunction-OR_o2 ; + net:coverBaseNode :leaf_orbit-01_o2 ; + net:coverNode :leaf_orbit-01_o2 ; + net:hasNaming "orbit" ; + net:hasPropertyName "orbit" ; + net:hasPropertyName01 "orbiting" ; + net:hasPropertyName10 "orbit-by" ; + net:hasPropertyName12 "orbit-of" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "SSC-01-01" ; + net:isCoreRoleLinked true ; + net:targetArgumentNode :leaf_object_o, + :leaf_sun_s2 ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:compositeClass_system-hasPart-sun-and-object-hasPart-object_s a net:Composite_Class_Net ; + :role_domain net:atomClass_system_p, + net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:individual_system_SolarSystem ; + net:coverBaseNode :leaf_system_s ; + net:coverNode :leaf_and_a, + :leaf_hasPart_p9, + :leaf_object_o, + :leaf_system_s ; + net:coverNodeCount 4 ; + net:hasClassName "system-hasPart-sun-and-object-hasPart-object" ; + net:hasClassType sys:Entity ; + net:hasMotherClassNet net:atomClass_system_p, + net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:compositeClass_system-hasPart-sun-and-object_s ; + net:hasRestriction01 net:restriction_hasPart_object ; + net:hasStructure "SSC-01-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:compositeClass_system-hasPart-sun-and-object-hasPart-sun_s a net:Composite_Class_Net ; + :role_domain net:atomClass_system_p, + net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:individual_system_SolarSystem ; + net:coverBaseNode :leaf_system_s ; + net:coverNode :leaf_and_a, + :leaf_hasPart_p9, + :leaf_sun_s2, + :leaf_system_s ; + net:coverNodeCount 4 ; + net:hasClassName "system-hasPart-sun-and-object-hasPart-sun" ; + net:hasClassType sys:Entity ; + net:hasMotherClassNet net:atomClass_system_p, + net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:compositeClass_system-hasPart-sun-and-object_s ; + net:hasRestriction01 net:restriction_hasPart_sun ; + net:hasStructure "SSC-01-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:has_relation_value a owl:AnnotationProperty ; + rdfs:label "has relation value" ; + rdfs:subPropertyOf net:has_object . + +net:list a owl:Class ; + rdfs:label "list" ; + rdfs:subClassOf net:Type . + +net:restriction_hasPart_object a net:Restriction_Net ; + :role_domain net:compositeClass_orbit-hasManner-conjunction-OR_o2 ; + net:coverBaseNode :leaf_system_s ; + net:coverNode :leaf_and_a, + :leaf_hasPart_p9, + :leaf_object_o, + :leaf_system_s ; + net:coverTargetNode :leaf_hasPart_p9, + :leaf_object_o ; + net:hasNaming "system-hasPart-sun-and-object-hasPart-object" ; + net:hasRestrictionNetValue net:atomClass_object_o ; + net:hasRestrictionOnProperty net:atomProperty_hasPart_p9 . + +net:restriction_hasPart_sun a net:Restriction_Net ; + :role_domain net:compositeClass_orbit-hasManner-conjunction-OR_o2 ; + net:coverBaseNode :leaf_system_s ; + net:coverNode :leaf_and_a, + :leaf_hasPart_p9, + :leaf_sun_s2, + :leaf_system_s ; + net:coverTargetNode :leaf_hasPart_p9, + :leaf_sun_s2 ; + net:hasNaming "system-hasPart-sun-and-object-hasPart-sun" ; + net:hasRestrictionNetValue net:atomClass_sun_s2 ; + net:hasRestrictionOnProperty net:atomProperty_hasPart_p9 . + +ns3:FrameRole a ns21:Role, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Element a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Term_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:role_ARG0 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG0" . + +:role_ARG1 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG1" . + +net:atomProperty_direct_d a net:Atom_Property_Net ; + net:coverBaseNode :leaf_direct-02_d ; + net:coverNode :leaf_direct-02_d ; + net:hasNaming "direct" ; + net:hasPropertyName "direct" ; + net:hasPropertyName01 "directing" ; + net:hasPropertyName10 "direct-by" ; + net:hasPropertyName12 "direct-of" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "SSC-01-01" ; + net:isCoreRoleLinked true ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomProperty_direct_d2 a net:Atom_Property_Net ; + :role_polarity net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:value_negative_blankNode ; + net:coverBaseNode :leaf_direct-02_d2 ; + net:coverNode :leaf_direct-02_d2 ; + net:hasNaming "direct" ; + net:hasPropertyName "direct" ; + net:hasPropertyName01 "directing" ; + net:hasPropertyName10 "direct-by" ; + net:hasPropertyName12 "direct-of" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "SSC-01-01" ; + net:isCoreRoleLinked true ; + net:targetArgumentNode :value_negative ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomProperty_hasPart_p9 a net:Atom_Property_Net ; + :role_ARG0 net:atomClass_system_s, + net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:compositeClass_system-hasPart-sun-and-object-hasPart-object_s, + net:compositeClass_system-hasPart-sun-and-object-hasPart-sun_s, + net:compositeClass_system-hasPart-sun-and-object_s ; + :role_ARG1 net:atomClass_object_o, + net:atomClass_sun_s2, + net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:logicalSet_and_a, + net:phenomena_conjunction-AND_a ; + net:coverBaseNode :leaf_hasPart_p9 ; + net:coverNode :leaf_hasPart_p9 ; + net:hasNaming "hasPart" ; + net:hasPropertyName "hasPart" ; + net:hasPropertyName01 "hasPart" ; + net:hasPropertyName10 "hasPart" ; + net:hasPropertyName12 "hasPart" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "SSC-01-01" ; + net:isCoreRoleLinked true ; + net:targetArgumentNode :leaf_and_a, + :leaf_system_s ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:compositeProperty_not-direct_d2 a net:Composite_Property_Net ; + :role_polarity net:compositeClass_orbit-hasManner-conjunction-OR_o2 ; + net:coverBaseNode :leaf_direct-02_d2 ; + net:coverNode :leaf_direct-02_d2 ; + net:hasNaming "not-direct" ; + net:hasPropertyName "not-direct" ; + net:hasStructure "SSC-01-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:typeProperty a owl:AnnotationProperty ; + rdfs:label "type property" . + +:AMR_NonCore_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Predicat_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Role a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:leaf_bind-01_b a :AMR_Leaf ; + :edge_b_ARG0_g :leaf_gravitation_g ; + :edge_b_ARG1_s :leaf_system_s ; + :hasConcept :concept_bind-01 ; + :hasVariable :variable_b . + +:leaf_direct-02_d2 a :AMR_Leaf ; + :edge_d2_polarity_negative :value_negative ; + :hasConcept :concept_direct-02 ; + :hasVariable :variable_d2 . + +:leaf_or_o3 a :AMR_Leaf ; + :edge_o3_op1_d :leaf_direct-02_d ; + :edge_o3_op2_d2 :leaf_direct-02_d2 ; + :hasConcept :concept_or ; + :hasVariable :variable_o3 . + +:leaf_orbit-01_o2 a :AMR_Leaf ; + :edge_o2_ARG0_o :leaf_object_o ; + :edge_o2_ARG1_s2 :leaf_sun_s2 ; + :hasConcept :concept_orbit-01 ; + :hasVariable :variable_o2 . + +:leaf_system_p a :AMR_Leaf ; + :edge_p_name_SolarSystem :value_SolarSystem ; + :hasConcept :concept_system ; + :hasVariable :variable_p . + +sys:Out_Structure a owl:Class ; + rdfs:label "Output Ontology Structure" . + +net:Atom_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Composite_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:individual_system_SolarSystem a net:Individual_Net ; + :role_name net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:value_SolarSystem_blankNode ; + net:coverBaseNode :leaf_system_p ; + net:coverNode :leaf_system_p ; + net:hasIndividualLabel "Solar System" ; + net:hasMotherClassName net:atomClass_system_p ; + net:hasMotherClassNet net:atomClass_system_p, + net:atomClass_system_s, + net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:compositeClass_system-hasPart-sun-and-object-hasPart-object_s, + net:compositeClass_system-hasPart-sun-and-object-hasPart-sun_s, + net:compositeClass_system-hasPart-sun-and-object_s ; + net:hasNaming "system" ; + net:hasStructure "SSC-01-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:netProperty a owl:AnnotationProperty ; + rdfs:label "netProperty" . + +:AMR_ObjectProperty a owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty . + +:AMR_Structure a owl:Class . + +cprm:configParamProperty a rdf:Property ; + rdfs:label "Config Parameter Property" . + +net:Atom_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Net_Structure a owl:Class ; + rdfs:label "Semantic Net Structure" ; + rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . + +net:atomClass_system_s a net:Atom_Class_Net, + net:Deprecated_Net ; + :role_domain net:atomClass_system_p, + net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:individual_system_SolarSystem ; + net:coverBaseNode :leaf_system_s ; + net:coverNode :leaf_system_s ; + net:coverNodeCount 1 ; + net:hasClassName "system" ; + net:hasClassType sys:Entity ; + net:hasMotherClassNet net:atomClass_system_p, + net:compositeClass_orbit-hasManner-conjunction-OR_o2 ; + net:hasNaming "system" ; + net:hasStructure "SSC-01-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:compositeClass_system-hasPart-sun-and-object_s a net:Composite_Class_Net ; + :role_domain net:atomClass_system_p, + net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:individual_system_SolarSystem ; + net:coverBaseNode :leaf_system_s ; + net:coverNode :leaf_and_a, + :leaf_hasPart_p9, + :leaf_system_s ; + net:coverNodeCount 3 ; + net:hasClassName "system-hasPart-sun-and-object" ; + net:hasClassType sys:Entity ; + net:hasMotherClassNet net:atomClass_system_p, + net:atomClass_system_s, + net:compositeClass_orbit-hasManner-conjunction-OR_o2 ; + net:hasNaming "system-hasPart-sun-and-object" ; + net:hasRestriction01 net:restriction_hasPart_object, + net:restriction_hasPart_sun ; + net:hasStructure "SSC-01-01" ; + net:trackMainNetComposante net:atomClass_system_s ; + net:trackNetComposante net:atomClass_system_s, + net:atomProperty_hasPart_p9, + net:logicalSet_and_a ; + net:trackProgress net:initialized, + net:relation_propagated . + +rdf:Property a owl:Class . + +:AMR_Relation a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +net:Relation a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +:leaf_gravitation_g a :AMR_Leaf ; + :hasConcept :concept_gravitation ; + :hasVariable :variable_g . + +:leaf_object_o a :AMR_Leaf ; + :hasConcept :concept_object ; + :hasVariable :variable_o . + +:leaf_sun_s2 a :AMR_Leaf ; + :hasConcept :concept_sun ; + :hasVariable :variable_s2 . + +net:Net a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:Type a owl:Class ; + rdfs:label "Semantic Net Type" ; + rdfs:subClassOf net:Net_Structure . + +net:has_object a owl:AnnotationProperty ; + rdfs:label "relation" ; + rdfs:subPropertyOf net:netProperty . + +:AMR_Op_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +net:atomClass_object_o a net:Atom_Class_Net ; + net:coverBaseNode :leaf_object_o ; + net:coverNode :leaf_object_o ; + net:coverNodeCount 1 ; + net:hasClassName "object" ; + net:hasClassType sys:Entity ; + net:hasNaming "object" ; + net:hasStructure "SSC-01-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +net:atomClass_sun_s2 a net:Atom_Class_Net ; + net:coverBaseNode :leaf_sun_s2 ; + net:coverNode :leaf_sun_s2 ; + net:coverNodeCount 1 ; + net:hasClassName "sun" ; + net:hasClassType sys:Entity ; + net:hasNaming "sun" ; + net:hasStructure "SSC-01-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +:AMR_AnnotationProperty a owl:AnnotationProperty . + +:AMR_Core_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +sys:Entity a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +:leaf_hasPart_p9 a :AMR_Leaf ; + :edge_p9_ARG0_s :leaf_system_s ; + :edge_p9_ARG1_a :leaf_and_a ; + :hasConcept :concept_part ; + :hasVariable :variable_p9 ; + :isReifiedLeaf true . + +net:atomClass_system_p a net:Atom_Class_Net ; + :role_name net:compositeClass_orbit-hasManner-conjunction-OR_o2, + net:value_SolarSystem_blankNode ; + net:coverBaseNode :leaf_system_p ; + net:coverNode :leaf_system_p ; + net:coverNodeCount 1 ; + net:hasClassName "system" ; + net:hasNaming "system" ; + net:hasStructure "SSC-01-01" ; + net:trackProgress net:initialized, + net:relation_propagated . + +:AMR_Variable a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:leaf_and_a a :AMR_Leaf ; + :edge_a_op1_s2 :leaf_sun_s2 ; + :edge_a_op2_o :leaf_object_o ; + :hasConcept :concept_and ; + :hasVariable :variable_a . + +:AMR_Leaf a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +net:objectValue a owl:AnnotationProperty ; + rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:objectProperty . + +:AMR_Edge a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:leaf_system_s a :AMR_Leaf ; + :edge_s_domain_p :leaf_system_p ; + :hasConcept :concept_system ; + :hasVariable :variable_s . + +net:compositeClass_orbit-hasManner-conjunction-OR_o2 a net:Composite_Class_Net ; + :role_ARG0 net:atomClass_object_o ; + :role_ARG1 net:atomClass_sun_s2 ; + :role_domain net:atomClass_system_p, + net:individual_system_SolarSystem ; + :role_op1 net:atomClass_sun_s2, + net:atomProperty_direct_d ; + :role_op2 net:atomClass_object_o, + net:atomProperty_direct_d2, + net:compositeProperty_not-direct_d2 ; + net:coverNode :leaf_hasManner_m9, + :leaf_or_o3, + :leaf_orbit-01_o2 ; + net:coverNodeCount 3 ; + net:hasClassType sys:Entity ; + net:hasMotherClassNet net:atomClass_system_p ; + net:hasStructure "SSC-01-01" ; + net:trackMainNetComposante net:atomProperty_orbit_o2 ; + net:trackNetComposante net:atomProperty_direct_d, + net:atomProperty_direct_d2, + net:atomProperty_hasManner_m9, + net:atomProperty_orbit_o2, + net:compositeProperty_not-direct_d2, + net:phenomena_conjunction-OR_o3 ; + net:trackProgress net:relation_propagated . + +:AMR_Linked_Data a owl:Class . + +[] a owl:AllDisjointClasses ; + owl:members ( sys:Degree sys:Entity sys:Feature ) . + diff --git a/tests/test_tenet_rule.py b/tests/test_tenet_rule.py index 35469dcc..f21e6972 100644 --- a/tests/test_tenet_rule.py +++ b/tests/test_tenet_rule.py @@ -9,6 +9,8 @@ import subprocess, os from rdflib import Graph +from rdflib import Namespace +from rdflib.namespace import NamespaceManager FILE_PATH = f'{os.path.dirname(os.path.abspath(__file__))}' INPUT_DIR_PATH = f'{FILE_PATH}/input/' @@ -16,7 +18,7 @@ OUTPUT_DIR_PATH = f'{FILE_PATH}/output/' TEST_GRAPH = f'{INPUT_DIR_PATH}testGraph1.ttl' from context import tenet -from tenet.febTransduction import query_builder +from tenet.febTransduction import phenomena_application_or INDENT_STR = ' ' @@ -41,27 +43,34 @@ print('\n *** Development Test ***') print(f'\n -- Test Graph Loading') work_graph = Graph() +work_graph.bind('net', Namespace('https://tenet.tetras-libre.fr/semantic-net#')) work_graph.parse(TEST_GRAPH) print(f"----- Graph Loaded ({len(work_graph)})") -print(f'\n -- Test Nets') -property_net = '?property_net' -class_net_0 = '?class_net_0' -phenomena_net = '?phenomena_net' +# print(f'\n -- Test Nets') +# property_net = '?property_net' +# class_net_0 = '?class_net_0' +# phenomena_net = '?phenomena_net' print(f'\n -- Select Query Test') -select_data_list = [class_net_0, property_net, phenomena_net] -composition_pattern_list = [] -composition_pattern_list.append((property_net, 'amr:role_ARG0', class_net_0)) -composition_pattern_list.append((property_net, 'amr:role_ARG1', phenomena_net)) -clause_list = define_clause_list(composition_pattern_list) -test_query = query_builder.generate_select_query(select_data_list, clause_list) -print(test_query) -query_result = work_graph.query(test_query) -for row in query_result: - print(f"{row.class_net_0} - {row.property_net} - {row.phenomena_net} ") - - + +# select_data_list = [class_net_0, property_net, phenomena_net] +# composition_pattern_list = [] +# composition_pattern_list.append((property_net, 'amr:role_ARG0', class_net_0)) +# composition_pattern_list.append((property_net, 'amr:role_ARG1', phenomena_net)) +# clause_list = define_clause_list(composition_pattern_list) +# test_query = query_builder.generate_select_query(select_data_list, clause_list) +# print(test_query) +# query_result = work_graph.query(test_query) +pattern_result_set = phenomena_application_or.apply_or_phenomena_pattern_1(work_graph) + +print(f'\n *** Select Result ***') +for selection in pattern_result_set: + result_str = f'>>> ' + result_str += f'{selection.class_net_0.n3(work_graph.namespace_manager)}' + result_str += f' {selection.property_net.n3(work_graph.namespace_manager)}' + result_str += f' {selection.phenomena_net.n3(work_graph.namespace_manager)}' + print(result_str) print(f'\n -- Insert Query Test') triple_list = ['net:net1 a net:ClassNet.', -- GitLab