diff --git a/tenet/scheme/amr_rule/transduction/atom_phenomena_extractor.py b/tenet/scheme/amr_rule/transduction/atom_phenomena_extractor.py
index 7a744ebcc7c14c0093adc62dcd2306831c6f4235..dce87eb68a540f7f38f09619c7fcb430d4e87b44 100644
--- a/tenet/scheme/amr_rule/transduction/atom_phenomena_extractor.py
+++ b/tenet/scheme/amr_rule/transduction/atom_phenomena_extractor.py
@@ -24,14 +24,10 @@ def __search_pattern(graph):
     select_data_list = ['?baseLeaf', '?phenomenaLabel', '?relationConceptPhenomena', '?relationConceptLabel']
     clause_list = [f'?baseLeaf a amr:AMR_Leaf.',
                    f'?baseLeaf amr:hasConcept ?concept.',
-                   f'?baseLeaf amr:hasVariable ?variable.',
-                   f'?variable amr:label ?varLabel.',
                    f'?concept rdfs:subClassOf amr:AMR_Relation_Concept.',
                    f'?concept amr:hasPhenomenaLink ?relationConceptPhenomena.',
                    f'?concept amr:label ?relationConceptLabel.',
-                   f'?relationConceptPhenomena amr:label ?phenomenaLabel.',
-                   f'?baseLeaf ?relation ?argLeaf.',
-                   f'?relation amr:hasAmrRole ?someArgRole.']
+                   f'?relationConceptPhenomena amr:label ?phenomenaLabel.']
     query_code = generate_select_query(graph, select_data_list, clause_list)
     result_set = graph.query(query_code) 
     return query_code, result_set
@@ -90,20 +86,6 @@ def __get_structure(graph):
     for row in structure_set: 
         structure = row.sentenceId
     return structure
-  
-
-def __define_naming(value_label):
-    value_label = value_label.replace(' ', '#')
-    value_label = value_label.replace('-', '#')
-    word_set = value_label.split('#')
-    first = True
-    for word in word_set:
-        if first:
-            naming = word
-            first = False
-        else:
-            naming += word.capitalize()
-    return naming
 
 
 def __propagate_relation(graph, target_net, base_leaf): 
@@ -120,30 +102,30 @@ def __propagate_relation(graph, target_net, base_leaf):
 # Construct Method(s)
 #============================================================================== 
 
-def __construct_individual_net(
-        graph, base_leaf, concept_name, value_label, mother_class_net):
+def __construct_phenomena_net(
+        graph, base_leaf, phenomena_label, relation_concept_phenomena, relation_concept_label):
 
     # -- Net Composition
-    individual_net = net.IndividualNet(graph)
+    phenomena_net = net.PhenomenaNet(graph)
     
     # -- Data Computation
-    individual_net.base_node = base_leaf
-    individual_net.node = base_leaf
-    individual_net.individual_label = value_label
-    individual_net.mother_class_net = mother_class_net
-    individual_net.structure = __get_structure(graph)
+    phenomena_net.base_node = base_leaf
+    phenomena_net.node = base_leaf
+    phenomena_net.phenomena_type = relation_concept_phenomena
+    phenomena_net.phenomena_ref = relation_concept_label
+    phenomena_net.structure = __get_structure(graph)
 
     # -- Net Naming
-    individual_net.naming = __define_naming(value_label)
+    phenomena_net.naming = phenomena_label
     
     # -- Relation Propagation
-    __propagate_relation(graph, individual_net, base_leaf) 
+    __propagate_relation(graph, phenomena_net, base_leaf) 
     
     # -- Finalization
-    individual_net.finalize()
-    triple_definition = individual_net.generate_triple_definition()
+    phenomena_net.finalize()
+    triple_definition = phenomena_net.generate_triple_definition()
     
-    return individual_net, triple_definition
+    return phenomena_net, triple_definition
 
   
     
@@ -164,8 +146,12 @@ def extract_atom_phenomena(graph):
     for pattern in pattern_set:
         
         # -- New Net Construction (from 3 nets)
-        new_class, triple_list = __construct_individual_net(
-            graph, pattern.baseLeaf, pattern.conceptName, pattern.valueLabel, pattern.classNet)
+        new_class, triple_list = __construct_phenomena_net(
+            graph, 
+            pattern.baseLeaf, 
+            pattern.phenomenaLabel, 
+            pattern.relationConceptPhenomena,
+            pattern.relationConceptLabel)
             
         # -- Resulting List Update
         # class_net_list.append(new_class)
diff --git a/tests/dev_tests/test_data/atom-extraction-devGraph-1.result.ttl b/tests/dev_tests/test_data/atom-extraction-devGraph-1.result.ttl
index 67bb1f9a51f43f11e0beec1ad5699ef506d3f03d..1109e650b2da04b00e0d2ab5bb2c6fd91156dfe3 100644
--- a/tests/dev_tests/test_data/atom-extraction-devGraph-1.result.ttl
+++ b/tests/dev_tests/test_data/atom-extraction-devGraph-1.result.ttl
@@ -428,9 +428,6 @@ net:Object a owl:Class ;
     rdfs:label "Object using in semantic net instance" ;
     rdfs:subClassOf net:Net_Structure .
 
-net:Phenomena_Net a owl:Class ;
-    rdfs:subClassOf net:Net .
-
 net:Property_Axiom_Net a owl:Class ;
     rdfs:subClassOf net:Axiom_Net .
 
@@ -468,32 +465,8 @@ net:atomProperty_bind_b a net:Atom_Property_Net ;
     net:targetArgumentNode :leaf_gravitation_g,
         :leaf_system_s .
 
-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:atomProperty_direct_d2 a net:Atom_Property_Net ;
-    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:atomProperty_hasManner_m9 a net:Atom_Property_Net ;
+    :role_ARG1 net:phenomena_conjunction-OR_o3 ;
     net:coverBaseNode :leaf_hasManner_m9 ;
     net:coverNode :leaf_hasManner_m9 ;
     net:hasNaming "hasManner" ;
@@ -509,6 +482,7 @@ net:atomProperty_hasManner_m9 a net:Atom_Property_Net ;
 
 net:atomProperty_hasPart_p9 a net:Atom_Property_Net ;
     :role_ARG0 net:atomClass_system_s ;
+    :role_ARG1 net:phenomena_conjunction-AND_a ;
     net:coverBaseNode :leaf_hasPart_p9 ;
     net:coverNode :leaf_hasPart_p9 ;
     net:hasNaming "hasPart" ;
@@ -789,16 +763,6 @@ ns2:AMR a owl:Class ;
     :fromAmrLk ns11:sun ;
     :label "sun" .
 
-: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_domain a owl:Class,
         net:Relation ;
     rdfs:subClassOf :AMR_NonCore_Role ;
@@ -901,20 +865,6 @@ net:atomClass_gravitation_g a net:Atom_Class_Net ;
     net:hasNaming "gravitation" ;
     net:hasStructure "SSC-01-01" .
 
-net:atomClass_object_o a net:Atom_Class_Net ;
-    net:coverBaseNode :leaf_object_o ;
-    net:coverNode :leaf_object_o ;
-    net:hasClassName "object" ;
-    net:hasNaming "object" ;
-    net:hasStructure "SSC-01-01" .
-
-net:atomClass_sun_s2 a net:Atom_Class_Net ;
-    net:coverBaseNode :leaf_sun_s2 ;
-    net:coverNode :leaf_sun_s2 ;
-    net:hasClassName "sun" ;
-    net:hasNaming "sun" ;
-    net:hasStructure "SSC-01-01" .
-
 net:atomClass_system_p a net:Atom_Class_Net ;
     net:coverBaseNode :leaf_system_p ;
     net:coverNode :leaf_system_p ;
@@ -922,6 +872,31 @@ net:atomClass_system_p a net:Atom_Class_Net ;
     net:hasNaming "system" ;
     net:hasStructure "SSC-01-01" .
 
+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:atomProperty_direct_d2 a net:Atom_Property_Net ;
+    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:class_list a owl:Class ;
     rdfs:label "classList" ;
     rdfs:subClassOf net:Type .
@@ -941,6 +916,26 @@ 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 ;
+    :role_op2 net:atomClass_object_o ;
+    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:phenomena_conjunction-OR_o3 a net:Phenomena_Net ;
+    :role_op1 net:atomProperty_direct_d ;
+    :role_op2 net:atomProperty_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" .
+
 <http://amr.isi.edu/amr_data/SSC-01-01#a> a ns2: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> ;
@@ -1028,12 +1023,6 @@ ns2:or a ns2:Concept ;
 :hasLink a owl:AnnotationProperty ;
     rdfs:subPropertyOf :AMR_AnnotationProperty .
 
-: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 .
-
 :leaf_bind-01_b a :AMR_Leaf ;
     :edge_b_ARG0_g :leaf_gravitation_g ;
     :edge_b_ARG1_s :leaf_system_s ;
@@ -1054,12 +1043,6 @@ ns2:or a ns2:Concept ;
     :hasVariable :variable_p9 ;
     :isReifiedLeaf true .
 
-: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 .
-
 :phenomena_conjunction a owl:Class ;
     rdfs:subClassOf :AMR_Phenomena ;
     :hasConceptLink "contrast-01",
@@ -1067,11 +1050,23 @@ ns2:or a ns2:Concept ;
         "neither" ;
     :label "conjunction" .
 
-:role_op1 a owl:Class ;
+: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 ;
+:role_op2 a owl:Class,
+        net:Relation ;
     rdfs:subClassOf :AMR_Op_Role ;
     :label "op2" .
 
@@ -1083,12 +1078,29 @@ sys:Out_ObjectProperty a owl:ObjectProperty .
 net:Class_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_object_o a net:Atom_Class_Net ;
+    net:coverBaseNode :leaf_object_o ;
+    net:coverNode :leaf_object_o ;
+    net:hasClassName "object" ;
+    net:hasNaming "object" ;
+    net:hasStructure "SSC-01-01" .
+
+net:atomClass_sun_s2 a net:Atom_Class_Net ;
+    net:coverBaseNode :leaf_sun_s2 ;
+    net:coverNode :leaf_sun_s2 ;
+    net:hasClassName "sun" ;
+    net:hasNaming "sun" ;
+    net:hasStructure "SSC-01-01" .
+
 net:atomClass_system_s a net:Atom_Class_Net ;
     :role_domain net:individual_SolarSystem_p ;
     net:coverBaseNode :leaf_system_s ;
@@ -1148,9 +1160,6 @@ ns2:Frame a ns2:Concept,
 :toReify a owl:AnnotationProperty ;
     rdfs:subPropertyOf :AMR_AnnotationProperty .
 
-net:Relation a owl:Class ;
-    rdfs:subClassOf net:Net_Structure .
-
 net:has_relation_value a owl:AnnotationProperty ;
     rdfs:label "has relation value" ;
     rdfs:subPropertyOf net:has_object .
@@ -1171,10 +1180,22 @@ ns3:FrameRole a ns2:Role,
 :AMR_Term_Concept a owl:Class ;
     rdfs:subClassOf :AMR_Concept .
 
+: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 .
+
 :leaf_gravitation_g a :AMR_Leaf ;
     :hasConcept :concept_gravitation ;
     :hasVariable :variable_g .
 
+: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 ;
@@ -1222,6 +1243,9 @@ sys:Out_Structure a owl:Class ;
 net:Atom_Class_Net a owl:Class ;
     rdfs:subClassOf net:Class_Net .
 
+net:Relation a owl:Class ;
+    rdfs:subClassOf net:Net_Structure .
+
 net:netProperty a owl:AnnotationProperty ;
     rdfs:label "netProperty" .
 
diff --git a/tests/dev_tests/test_rule_atomic_extractor.py b/tests/dev_tests/test_rule_atomic_extractor.py
index 8fbd3fb5d2ea9c58a0f864900a308d5fdad9ee14..7ef13a90a2a6222b95f435b23558930760edeffe 100644
--- a/tests/dev_tests/test_rule_atomic_extractor.py
+++ b/tests/dev_tests/test_rule_atomic_extractor.py
@@ -125,6 +125,19 @@ def test_search_pattern_4(graph):
     return pattern_set
 
         
+def test_search_pattern_5(graph):
+    _, pattern_set = rule_5.__search_pattern(graph)
+    print(f'\n ----- number of selection found: {len(pattern_set)}')
+    for row in pattern_set: 
+        result_str = f'>>> '
+        result_str += f'{row.baseLeaf.n3(graph.namespace_manager)}'
+        result_str += f' {row.phenomenaLabel.n3(graph.namespace_manager)}'
+        result_str += f' {row.relationConceptPhenomena.n3(graph.namespace_manager)}'
+        result_str += f' {row.relationConceptLabel.n3(graph.namespace_manager)}'
+        print(result_str) 
+    return pattern_set
+
+        
 def test_search_structure(graph):
     result_set = rule_3.__search_structure(graph)
     print(f'\n ----- number of selection found: {len(result_set)}')
@@ -165,6 +178,7 @@ if __name__ == '__main__':
     
     print('\n -- Step 1: Search Pattern')
     pattern_set = test_search_pattern_1(graph)
+    test_search_structure(graph)
     
     print('\n \n')
     
@@ -190,7 +204,6 @@ if __name__ == '__main__':
     
     print('\n -- Step 1: Search Pattern')
     pattern_set = test_search_pattern_3(graph)
-    test_search_structure(graph)
     
     print('\n \n')
     
@@ -203,12 +216,23 @@ if __name__ == '__main__':
     
     print('\n -- Step 1: Search Pattern')
     pattern_set = test_search_pattern_4(graph)
-    test_search_structure(graph)
     
     print('\n \n')
     
     print('\n *** Unit Test ***')
     test_rule_application(graph, rule_4.extract_atom_value)
     print('\n \n')
+    
+    print('\n ///////////////////// Extraction Rule 5')
+    print('\n *** Step Test ***')
+    
+    print('\n -- Step 1: Search Pattern')
+    pattern_set = test_search_pattern_5(graph)
+    
+    print('\n \n')
+    
+    print('\n *** Unit Test ***')
+    test_rule_application(graph, rule_5.extract_atom_phenomena)
+    print('\n \n')
 
     print('\n *** - ***')
\ No newline at end of file