diff --git a/tenet/scheme/amr_master_rule/transduction/extractor/atom_class_extractor.py b/tenet/scheme/amr_master_rule/transduction/extractor/atom_class_extractor.py
index 2c9356f14f4b803315ab6ef183b670318b7be0c9..d8522821582e1a055f4dd25ea471af8dd2a85a7a 100644
--- a/tenet/scheme/amr_master_rule/transduction/extractor/atom_class_extractor.py
+++ b/tenet/scheme/amr_master_rule/transduction/extractor/atom_class_extractor.py
@@ -118,6 +118,7 @@ def __construct_atom_class_net(graph, leaf, concept_name):
     
     # -- Finalization
     atom_class_net.finalize()
+    atom_class_net.root_class_net = atom_class_net.uri
     triple_definition = atom_class_net.generate_triple_definition()
     
     return atom_class_net, triple_definition
diff --git a/tenet/scheme/amr_master_rule/transduction/extractor/composite_class_extractor_1.py b/tenet/scheme/amr_master_rule/transduction/extractor/composite_class_extractor_1.py
index c16dbee563eeece59af21d05b86d6d49bde956ad..4b9256954c04ea0421ecfb8eb270f48f3b264f0e 100644
--- a/tenet/scheme/amr_master_rule/transduction/extractor/composite_class_extractor_1.py
+++ b/tenet/scheme/amr_master_rule/transduction/extractor/composite_class_extractor_1.py
@@ -106,6 +106,7 @@ def __construct_composite_class_net(
     
     # -- Data Computation
     composite_class_net.mother_class_net = base_class_net.uri
+    composite_class_net.root_class_net = base_class_net.root_class_net
 
     # -- Restriction Computation
     restriction_net, triple_list_1 = __construct_restriction_net(graph, core_property_net, target_class_net)
diff --git a/tenet/scheme/amr_master_rule/transduction/extractor/composite_class_extractor_2.py b/tenet/scheme/amr_master_rule/transduction/extractor/composite_class_extractor_2.py
index 216db854abd7498c012ee5e320f9609db5b32252..8b974cfe88b55b39b033824e6c4d20ca919ff45f 100644
--- a/tenet/scheme/amr_master_rule/transduction/extractor/composite_class_extractor_2.py
+++ b/tenet/scheme/amr_master_rule/transduction/extractor/composite_class_extractor_2.py
@@ -105,6 +105,7 @@ def __construct_composite_class_net(
     
     # -- Data Computation
     composite_class_net.mother_class_net = base_class_net.uri
+    composite_class_net.root_class_net = base_class_net.root_class_net
 
     # -- Restriction Computation
     restriction_net, triple_list_1 = __construct_restriction_net(graph, core_property_net, target_class_net)
diff --git a/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/refine_restriction_1.py b/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/refine_restriction_1.py
index a93d6e2c94dda2d807c2fbdd91feaceab13e2890..d133e0712ae3e363d4414384d03c123b006d05c4 100644
--- a/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/refine_restriction_1.py
+++ b/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/refine_restriction_1.py
@@ -134,8 +134,9 @@ def __construct_composite_class_net(
     composite_class_net.compose(base_class_net, core_property_net, target_class_net)
     
     # -- Data Computation
-    composite_class_net.mother_class_net = [base_class_net.uri, mother_class_net.uri] 
-    composite_class_net.mother_class_net = [mother_class_net.uri] 
+    # composite_class_net.mother_class_net = [base_class_net.uri, mother_class_net.uri] 
+    composite_class_net.mother_class_net = mother_class_net.uri
+    composite_class_net.root_class_net = base_class_net.root_class_net
 
     # -- Restriction Computation
     restriction_net, triple_list_1 = __construct_restriction_net(graph, core_property_net, target_class_net)
diff --git a/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/relation_deducer_1.py b/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/relation_deducer_1.py
index aafb2cad705168b7a44934d56313e6ed455f2c94..3d3e8ab3f23496327aa71742018eb3ef27c6585a 100644
--- a/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/relation_deducer_1.py
+++ b/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/relation_deducer_1.py
@@ -79,13 +79,13 @@ def __get_structure(graph):
     return structure
 
 
-def __define_individual_label(net):
+def __define_individual_label(net, reference):
     class_label = 'thing'
     naming_list = net.naming
     if len(naming_list) > 0:
         assert len(naming_list) == 1, 'Houston, we have a problem: too many naming'
         class_label = naming_list[0]
-    return f'any {class_label}'
+    return f'{class_label} ({reference})'
 
         
 
@@ -99,15 +99,15 @@ def __construct_individual_net(graph, mother_class_net):
     individual_net = net.IndividualNet(graph)
     
     # -- Main mother class
-    main_mother_class_net = mother_class_net
-    if mother_class_net.mother_class_net:
-        main_mother_class_net = net.ClassNet(graph, uri=mother_class_net.mother_class_net[0])
+    root_class_net = mother_class_net
+    if mother_class_net.root_class_net:
+        root_class_net = net.ClassNet(graph, uri=mother_class_net.root_class_net[0])
     
     # -- Data Computation
     individual_net.base_node = mother_class_net.base_node
     individual_net.node = mother_class_net.node
-    individual_net.individual_label = __define_individual_label(main_mother_class_net)
     structure_ref = __get_structure(graph)
+    individual_net.individual_label = __define_individual_label(root_class_net, structure_ref)
     individual_net.structure = structure_ref
     
     # -- Mother classes
@@ -118,7 +118,7 @@ def __construct_individual_net(graph, mother_class_net):
     individual_net.mother_class_net = mother_class_net_list
 
     # -- Net Naming
-    individual_net.naming = define_individual_naming(main_mother_class_net, structure_ref)
+    individual_net.naming = define_individual_naming(root_class_net, structure_ref)
     
     # -- Finalization
     individual_net.finalize()
diff --git a/tenet/scheme/amr_master_rule/transduction/phenomena_analyzer/mod_analyzer_1.py b/tenet/scheme/amr_master_rule/transduction/phenomena_analyzer/mod_analyzer_1.py
index dd2090e6ffd4a1775e2a028ec1e39fafbfbfbe32..8cdecc38ee78be8df2f11a11594bfbc0c04657de 100644
--- a/tenet/scheme/amr_master_rule/transduction/phenomena_analyzer/mod_analyzer_1.py
+++ b/tenet/scheme/amr_master_rule/transduction/phenomena_analyzer/mod_analyzer_1.py
@@ -108,6 +108,7 @@ def __construct_composite_class_net(graph, class_net_1, class_net_2):
     
     # -- Data Computation
     composite_class_net.mother_class_net = class_net_1.uri
+    composite_class_net.root_class_net = class_net_1.root_class_net
 
     # -- Restriction Computation
     triple_list_1 = []
@@ -136,7 +137,7 @@ def __construct_individual_net(graph, class_net):
     individual_net.compose(class_net)
     
     # -- Data Computation
-    individual_net.base_class_name = f'Feature'
+    individual_net.base_class_name = 'Feature'
     individual_net.mother_class_net = class_net.uri
 
     # -- Net Naming
diff --git a/tenet/scheme/amr_master_rule/transduction/phenomena_analyzer/or_analyzer_1.py b/tenet/scheme/amr_master_rule/transduction/phenomena_analyzer/or_analyzer_1.py
index 8283ee1d45006df0a62b820e009b374dc02e8159..9a10a7b1a501eda75f902b076b88a7448bbce746 100644
--- a/tenet/scheme/amr_master_rule/transduction/phenomena_analyzer/or_analyzer_1.py
+++ b/tenet/scheme/amr_master_rule/transduction/phenomena_analyzer/or_analyzer_1.py
@@ -118,6 +118,7 @@ def __construct_composite_class_net_from_3_nets(
     
     # -- Data Computation
     composite_class_net.mother_class_net = base_class_net.uri
+    composite_class_net.root_class_net = base_class_net.root_class_net
 
     # -- Restriction Computation
     restriction_net, triple_list_1 = __construct_restriction_net(graph, core_property_net, target_class_net)
@@ -139,27 +140,27 @@ def __construct_composite_class_net_from_3_nets(
 
 
 
-def __construct_class_union_net(graph, base_class_net, class_net_list):
+# def __construct_class_union_net(graph, base_class_net, class_net_list):
 
-    # -- Net Composition
-    class_union_net = net.PropertyUnionNet(graph)
-    class_union_net.compose(base_class_net, class_net_list)
+#     # -- Net Composition
+#     class_union_net = net.PropertyUnionNet(graph)
+#     class_union_net.compose(base_class_net, class_net_list)
     
-    # -- Data Computation: None
+#     # -- Data Computation: None
 
-    # -- Restriction Computation: None
+#     # -- Restriction Computation: None
     
-    # -- Relation Propagation
-    __propagate_relation(class_union_net, base_class_net) 
+#     # -- Relation Propagation
+#     __propagate_relation(class_union_net, base_class_net) 
 
-    # -- Net Naming
-    class_union_net.naming = define_union_naming(base_class_net)
+#     # -- Net Naming
+#     class_union_net.naming = define_union_naming(base_class_net)
     
-    # -- Finalization
-    class_union_net.finalize()
-    triple_list = class_union_net.generate_triple_definition()
+#     # -- Finalization
+#     class_union_net.finalize()
+#     triple_list = class_union_net.generate_triple_definition()
     
-    return class_union_net, triple_list
+#     return class_union_net, triple_list
   
     
 #==============================================================================
diff --git a/tenet/scheme/amr_master_rule/transduction/phenomena_analyzer/or_analyzer_2.py b/tenet/scheme/amr_master_rule/transduction/phenomena_analyzer/or_analyzer_2.py
index 88955c5a726895760ed8c56c8b4bb58842ca973c..eb401ad24f39a36541bfea686f456303d07e56f7 100644
--- a/tenet/scheme/amr_master_rule/transduction/phenomena_analyzer/or_analyzer_2.py
+++ b/tenet/scheme/amr_master_rule/transduction/phenomena_analyzer/or_analyzer_2.py
@@ -140,27 +140,27 @@ def __construct_composite_property_net_from_3_properties(
 
 
 
-def __construct_property_union_net(graph, base_property_net, property_net_list):
+# def __construct_property_union_net(graph, base_property_net, property_net_list):
 
-    # -- Net Composition
-    property_union_net = net.PropertyUnionNet(graph)
-    property_union_net.compose(base_property_net, property_net_list)
+#     # -- Net Composition
+#     property_union_net = net.PropertyUnionNet(graph)
+#     property_union_net.compose(base_property_net, property_net_list)
     
-    # -- Data Computation: None
+#     # -- Data Computation: None
 
-    # -- Restriction Computation: None
+#     # -- Restriction Computation: None
     
-    # -- Relation Propagation
-    __propagate_relation(property_union_net, base_property_net) 
+#     # -- Relation Propagation
+#     __propagate_relation(property_union_net, base_property_net) 
 
-    # -- Net Naming
-    property_union_net.naming = define_union_naming(base_property_net)
+#     # -- Net Naming
+#     property_union_net.naming = define_union_naming(base_property_net)
     
-    # -- Finalization
-    property_union_net.finalize()
-    triple_list = property_union_net.generate_triple_definition()
+#     # -- Finalization
+#     property_union_net.finalize()
+#     triple_list = property_union_net.generate_triple_definition()
     
-    return property_union_net, triple_list
+#     return property_union_net, triple_list
     
 
 
diff --git a/tenet/transduction/net/class_net.py b/tenet/transduction/net/class_net.py
index b0d12fe219de5c6eb16e246c06c57901c832903b..30c4e3f5fbc08ab43a5784ae7f9564c1368e1b1b 100644
--- a/tenet/transduction/net/class_net.py
+++ b/tenet/transduction/net/class_net.py
@@ -34,11 +34,12 @@ class ClassNet(Net):
         self.type_uri = produce_uriref(self.support_graph, f'net:{self.type_id}')
         
         # -- Net Attributes
-        self.attr_list += ['class_name', 'class_uri', 'class_type', 'mother_class_net']
+        self.attr_list += ['class_name', 'class_uri', 'class_type', 'mother_class_net', 'root_class_net']
         self._class_name = None
         self._class_uri = None
         self._class_type = None
         self._mother_class_net = None
+        self._root_class_net = None
   
         
     #--------------------------------------------------------------------------
@@ -85,4 +86,14 @@ class ClassNet(Net):
     
     @mother_class_net.setter
     def mother_class_net(self, new_value):
-        self._mother_class_net = self.set_attribute_value_list(new_value, produce_uriref)
\ No newline at end of file
+        self._mother_class_net = self.set_attribute_value_list(new_value, produce_uriref)
+
+    @property
+    def root_class_net(self):
+        if self._root_class_net is None: 
+            self._root_class_net = self.get_value_list_from_graph('root_class_net')
+        return self._root_class_net
+    
+    @root_class_net.setter
+    def root_class_net(self, new_value):
+        self._root_class_net = self.set_attribute_value_list(new_value, produce_uriref)
\ No newline at end of file
diff --git a/tenet/transduction/semantic_net_rdf_reference.py b/tenet/transduction/semantic_net_rdf_reference.py
index abd5e63c8b2e70e70f1bf6aa7c3af9b662ef654c..c603ee52455429c8a4b571a4a71053ce769e66e8 100644
--- a/tenet/transduction/semantic_net_rdf_reference.py
+++ b/tenet/transduction/semantic_net_rdf_reference.py
@@ -39,6 +39,7 @@ class SemanticNetReferenceHandle:
             # Class Net
             'class_name':               'hasClassName',
             'mother_class_net':         'hasMotherClassNet',
+            'root_class_net':           'hasRootClassNet',
             'class_type':               'hasClassType',
             
             # Property Net