From a2af80d5f56bb56377b9c4a1bf6212ecab715d37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Lamercerie?= <aurelien.lamercerie@tetras-libre.fr> Date: Fri, 7 Apr 2023 18:59:33 +0200 Subject: [PATCH] Update AMR Rule to construct individual net in mod analyzer --- .../transduction/phenomena_mod_analyzer_1.py | 33 +++++++-- tenet/transduction/net/net.py | 2 +- .../mod-analyzer-devGraph-1.result.ttl | 68 ++++++++++++------- ...or.py => test_rule_composite_extractor.py} | 0 ...ty_class.py => test_rule_owl_generator.py} | 0 ....py => test_rule_phenomena_or_analyzer.py} | 0 6 files changed, 71 insertions(+), 32 deletions(-) rename tests/dev_tests/{test_rule_composite_class_extractor.py => test_rule_composite_extractor.py} (100%) rename tests/dev_tests/{test_rule_generation_property_class.py => test_rule_owl_generator.py} (100%) rename tests/dev_tests/{test_rule_phenomena_or.py => test_rule_phenomena_or_analyzer.py} (100%) diff --git a/tenet/scheme/amr_rule/transduction/phenomena_mod_analyzer_1.py b/tenet/scheme/amr_rule/transduction/phenomena_mod_analyzer_1.py index b51c5c45..900070f7 100644 --- a/tenet/scheme/amr_rule/transduction/phenomena_mod_analyzer_1.py +++ b/tenet/scheme/amr_rule/transduction/phenomena_mod_analyzer_1.py @@ -122,6 +122,28 @@ def __construct_composite_class_net(graph, class_net_1, class_net_2): result_triple_list = triple_list_1 + triple_list_2 return composite_class_net, result_triple_list + + + +def __construct_individual_net(graph, class_net): + + # -- Net Composition + individual_net = net.IndividualNet(graph) + individual_net.compose(class_net) + + # -- Data Computation + individual_net.base_class_name = f'"Feature"' + individual_net.mother_class_net = class_net.uri + + # -- Net Naming + individual_net.naming = f'{__extract_naming(class_net, default="something")}' + individual_net.individual_label = f'{__extract_naming(class_net, default="something")}' + + # -- Finalization + individual_net.finalize() + result_triple_list = individual_net.generate_triple_definition() + + return individual_net, result_triple_list @@ -140,18 +162,15 @@ def analyze_phenomena_mod_1(graph): # -- Selection Analyzing (1) rule_triple_list = [] for pattern in pattern_set: - - # -- Net Selection class_net_1 = net.ClassNet(graph, uri=pattern.class_net_1) class_net_2 = net.ClassNet(graph, uri=pattern.class_net_2) - # -- New Net Construction (from 2 nets) - new_class, triple_list = __construct_composite_class_net( - graph, class_net_1, class_net_2) + # -- New Net Construction(s) + _, triple_list_1 = __construct_composite_class_net(graph, class_net_1, class_net_2) + _, triple_list_2 = __construct_individual_net(graph, class_net_2) # -- Resulting List Update - # class_net_list.append(new_class) - rule_triple_list += triple_list + rule_triple_list += triple_list_1 + triple_list_2 # -- Deprecation: Origin Class Net rule_triple_list += class_net_1.deprecate() diff --git a/tenet/transduction/net/net.py b/tenet/transduction/net/net.py index f5b2ddcd..f552c915 100644 --- a/tenet/transduction/net/net.py +++ b/tenet/transduction/net/net.py @@ -240,7 +240,7 @@ class Net: clause_list.append(('?in_net', '?in_rel', self.uri)) # print(f' *** DEVTEST *** {clause_list}') query_code = generate_select_query(self.support_graph, select_data_list, clause_list) - # print(f' *** DEVTEST *** {query_code}') + print(f' *** DEVTEST *** {query_code}') query_result = self.support_graph.query(query_code) return query_result diff --git a/tests/dev_tests/test_data/mod-analyzer-devGraph-1.result.ttl b/tests/dev_tests/test_data/mod-analyzer-devGraph-1.result.ttl index 1d46b25c..7c763bbf 100644 --- a/tests/dev_tests/test_data/mod-analyzer-devGraph-1.result.ttl +++ b/tests/dev_tests/test_data/mod-analyzer-devGraph-1.result.ttl @@ -620,6 +620,26 @@ net:has_target a owl:AnnotationProperty ; rdfs:label "has target" ; rdfs:subPropertyOf net:has_relation_value . +net:individual_dwarf_d2 a net:Individual_Net ; + net:composeFrom net:atomClass_dwarf_d2 ; + net:coverBaseNode :leaf_dwarf_d2 ; + net:coverNode :leaf_dwarf_d2 ; + net:hasBaseClassName "\"Feature\"" ; + net:hasIndividualLabel "dwarf" ; + net:hasMotherClassNet net:atomClass_dwarf_d2 ; + net:hasNaming "dwarf" ; + net:hasStructure "SSC-02-01" . + +net:individual_small_s3 a net:Individual_Net ; + net:composeFrom net:atomClass_small_s3 ; + net:coverBaseNode :leaf_small_s3 ; + net:coverNode :leaf_small_s3 ; + net:hasBaseClassName "\"Feature\"" ; + net:hasIndividualLabel "small" ; + net:hasMotherClassNet net:atomClass_small_s3 ; + net:hasNaming "small" ; + net:hasStructure "SSC-02-01" . + net:inverse_direction a owl:NamedIndividual . net:listBy a owl:AnnotationProperty ; @@ -908,9 +928,6 @@ net:Axiom_Net a owl:Class ; net:Feature a owl:Class ; rdfs:subClassOf net:Net_Structure . -net:Individual_Net a owl:Class ; - rdfs:subClassOf net:Net . - net:atomClass_large_l a net:Atom_Class_Net ; net:coverBaseNode :leaf_large_l ; net:coverNode :leaf_large_l ; @@ -1360,12 +1377,8 @@ ns3:and a ns3:Concept ; :toReify a owl:AnnotationProperty ; rdfs:subPropertyOf :AMR_AnnotationProperty . -net:atomClass_dwarf_d2 a net:Atom_Class_Net ; - net:coverBaseNode :leaf_dwarf_d2 ; - net:coverNode :leaf_dwarf_d2 ; - net:hasClassName "dwarf" ; - net:hasNaming "dwarf" ; - net:hasStructure "SSC-02-01" . +net:Individual_Net a owl:Class ; + rdfs:subClassOf net:Net . net:atomClass_object_o a net:Atom_Class_Net, net:Deprecated_Net ; @@ -1384,13 +1397,6 @@ net:atomClass_planet_p2 a net:Atom_Class_Net, net:hasNaming "planet" ; net:hasStructure "SSC-02-01" . -net:atomClass_small_s3 a net:Atom_Class_Net ; - net:coverBaseNode :leaf_small_s3 ; - net:coverNode :leaf_small_s3 ; - net:hasClassName "small" ; - net:hasNaming "small" ; - net:hasStructure "SSC-02-01" . - net:atomClass_system_s4 a net:Atom_Class_Net, net:Deprecated_Net ; net:coverBaseNode :leaf_system_s4 ; @@ -1441,18 +1447,10 @@ ns3:Frame a ns3:Concept, :hasConcept :concept_and ; :hasVariable :variable_a2 . -:leaf_dwarf_d2 a :AMR_Leaf ; - :hasConcept :concept_dwarf ; - :hasVariable :variable_d2 . - :leaf_object_o3 a :AMR_Leaf ; :hasConcept :concept_object ; :hasVariable :variable_o3 . -:leaf_small_s3 a :AMR_Leaf ; - :hasConcept :concept_small ; - :hasVariable :variable_s3 . - net:Deprecated_Net a owl:Class ; rdfs:subClassOf net:Net . @@ -1506,6 +1504,20 @@ net:typeProperty a owl:AnnotationProperty ; sys:Out_Structure a owl:Class ; rdfs:label "Output Ontology Structure" . +net:atomClass_dwarf_d2 a net:Atom_Class_Net ; + net:coverBaseNode :leaf_dwarf_d2 ; + net:coverNode :leaf_dwarf_d2 ; + net:hasClassName "dwarf" ; + net:hasNaming "dwarf" ; + net:hasStructure "SSC-02-01" . + +net:atomClass_small_s3 a net:Atom_Class_Net ; + net:coverBaseNode :leaf_small_s3 ; + net:coverNode :leaf_small_s3 ; + net:hasClassName "small" ; + net:hasNaming "small" ; + net:hasStructure "SSC-02-01" . + net:netProperty a owl:AnnotationProperty ; rdfs:label "netProperty" . @@ -1517,6 +1529,14 @@ net:netProperty a owl:AnnotationProperty ; :AMR_Structure a owl:Class . +:leaf_dwarf_d2 a :AMR_Leaf ; + :hasConcept :concept_dwarf ; + :hasVariable :variable_d2 . + +:leaf_small_s3 a :AMR_Leaf ; + :hasConcept :concept_small ; + :hasVariable :variable_s3 . + :leaf_sun_s a :AMR_Leaf ; :hasConcept :concept_sun ; :hasVariable :variable_s . diff --git a/tests/dev_tests/test_rule_composite_class_extractor.py b/tests/dev_tests/test_rule_composite_extractor.py similarity index 100% rename from tests/dev_tests/test_rule_composite_class_extractor.py rename to tests/dev_tests/test_rule_composite_extractor.py diff --git a/tests/dev_tests/test_rule_generation_property_class.py b/tests/dev_tests/test_rule_owl_generator.py similarity index 100% rename from tests/dev_tests/test_rule_generation_property_class.py rename to tests/dev_tests/test_rule_owl_generator.py diff --git a/tests/dev_tests/test_rule_phenomena_or.py b/tests/dev_tests/test_rule_phenomena_or_analyzer.py similarity index 100% rename from tests/dev_tests/test_rule_phenomena_or.py rename to tests/dev_tests/test_rule_phenomena_or_analyzer.py -- GitLab