diff --git a/tenet/febTransduction/net/atom_property_net.py b/tenet/febTransduction/net/atom_property_net.py
index c029b52c158a40f07362e3d883bd45d31dc995da..a7e9303423d31de0803ca5a1fc365a98026084be 100644
--- a/tenet/febTransduction/net/atom_property_net.py
+++ b/tenet/febTransduction/net/atom_property_net.py
@@ -53,10 +53,8 @@ class AtomPropertyNet(PropertyNet):
     
     @core_role.setter
     def core_role(self, new_value):
-        if isinstance(self._core_role, list):
-            self._core_role.append(new_value)
-        else:
-            self._core_role = new_value
+        self._core_role = self.set_attribute_value(self._core_role, new_value)
+        
         
     @property
     def target_argument_node(self):
@@ -65,10 +63,8 @@ class AtomPropertyNet(PropertyNet):
     
     @target_argument_node.setter
     def target_argument_node(self, new_value):
-        if isinstance(self._target_argument_node, list):
-            self._target_argument_node.append(new_value)
-        else:
-            self._target_argument_node = new_value
+        self._target_argument_node = self.set_attribute_value(self._target_argument_node, new_value)
+
         
     @property
     def property_type(self):
@@ -77,10 +73,8 @@ class AtomPropertyNet(PropertyNet):
     
     @property_type.setter
     def property_type(self, new_value):
-        if isinstance(self._property_type, list):
-            self._property_type.append(new_value)
-        else:
-            self._property_type = new_value
+        self._property_type = self.set_attribute_value(self._property_type, new_value)
+
         
     @property
     def property_name01(self):
@@ -89,10 +83,8 @@ class AtomPropertyNet(PropertyNet):
     
     @property_name01.setter
     def property_name01(self, new_value):
-        if isinstance(self._property_name01, list):
-            self._property_name01.append(new_value)
-        else:
-            self._property_name01 = new_value
+        self._property_name01 = self.set_attribute_value(self._property_name01, new_value)
+        
         
     @property
     def property_name10(self):
@@ -101,10 +93,8 @@ class AtomPropertyNet(PropertyNet):
     
     @property_name10.setter
     def property_name10(self, new_value):
-        if isinstance(self._property_name10, list):
-            self._property_name10.append(new_value)
-        else:
-            self._property_name10 = new_value
+        self._property_name10 = self.set_attribute_value(self._property_name10, new_value)
+
         
     @property
     def property_name12(self):
@@ -113,7 +103,4 @@ class AtomPropertyNet(PropertyNet):
     
     @property_name12.setter
     def property_name12(self, new_value):
-        if isinstance(self._property_name12, list):
-            self._property_name12.append(new_value)
-        else:
-            self._property_name12 = new_value
\ No newline at end of file
+        self._property_name12 = self.set_attribute_value(self._property_name12, new_value)
diff --git a/tenet/febTransduction/net/class_net.py b/tenet/febTransduction/net/class_net.py
index c030589686b1b898935919294c7d23e253a10440..26836286236b1323c20f1a493f0650df9dfc6780 100644
--- a/tenet/febTransduction/net/class_net.py
+++ b/tenet/febTransduction/net/class_net.py
@@ -47,7 +47,4 @@ class ClassNet(Net):
     
     @class_name.setter
     def class_name(self, new_value):
-        if isinstance(self._class_name, list):
-            self._class_name.append(new_value)
-        else:
-            self._class_name = new_value
\ No newline at end of file
+        self._class_name = self.set_attribute_value(self._class_name, new_value)
diff --git a/tenet/febTransduction/net/composite_class_net.py b/tenet/febTransduction/net/composite_class_net.py
index 374e050f8e8337b4dcac56c1275ea012e0785726..374a156ca508831238848bc0ba4a3320093a30d3 100644
--- a/tenet/febTransduction/net/composite_class_net.py
+++ b/tenet/febTransduction/net/composite_class_net.py
@@ -49,10 +49,8 @@ class CompositeClassNet(ClassNet):
     
     @mother_class_net.setter
     def mother_class_net(self, new_value):
-        if isinstance(self._mother_class_net, list):
-            self._mother_class_net.append(new_value)
-        else:
-            self._mother_class_net = new_value
+        self._mother_class_net = self.set_attribute_value(self._mother_class_net, new_value)
+
         
     @property
     def restriction(self):
@@ -61,10 +59,8 @@ class CompositeClassNet(ClassNet):
     
     @restriction.setter
     def restriction(self, new_value):
-        if isinstance(self._restriction, list):
-            self._restriction.append(new_value)
-        else:
-            self._restriction = new_value
+        self._restriction = self.set_attribute_value(self._restriction, new_value)
+
         
     @property
     def restriction01(self):
@@ -73,7 +69,4 @@ class CompositeClassNet(ClassNet):
     
     @restriction01.setter
     def restriction01(self, new_value):
-        if isinstance(self._restriction01, list):
-            self._restriction01.append(new_value)
-        else:
-            self._restriction01 = new_value
\ No newline at end of file
+        self._restriction01 = self.set_attribute_value(self._restriction01, new_value)
diff --git a/tenet/febTransduction/net/composite_property_net.py b/tenet/febTransduction/net/composite_property_net.py
index 7a2f969db8e9d3aa77f13539dc209cea8cc1fe80..23cc171fe57008b6450763f62883fa6992c9f29b 100644
--- a/tenet/febTransduction/net/composite_property_net.py
+++ b/tenet/febTransduction/net/composite_property_net.py
@@ -50,10 +50,8 @@ class CompositePropertyNet(PropertyNet):
     
     @core_role.setter
     def core_role(self, new_value):
-        if isinstance(self._core_role, list):
-            self._core_role.append(new_value)
-        else:
-            self._core_role = new_value
+        self._core_role = self.set_attribute_value(self._core_role, new_value)
+
         
     @property
     def target_argument_node(self):
@@ -62,10 +60,8 @@ class CompositePropertyNet(PropertyNet):
     
     @target_argument_node.setter
     def target_argument_node(self, new_value):
-        if isinstance(self._target_argument_node, list):
-            self._target_argument_node.append(new_value)
-        else:
-            self._target_argument_node = new_value
+        self._target_argument_node = self.set_attribute_value(self._target_argument_node, new_value)
+
         
     @property
     def property_type(self):
@@ -74,10 +70,8 @@ class CompositePropertyNet(PropertyNet):
     
     @property_type.setter
     def property_type(self, new_value):
-        if isinstance(self._property_type, list):
-            self._property_type.append(new_value)
-        else:
-            self._property_type = new_value
+        self._property_type = self.set_attribute_value(self._property_type, new_value)
+
         
     @property
     def restriction(self):
@@ -86,7 +80,4 @@ class CompositePropertyNet(PropertyNet):
     
     @restriction.setter
     def restriction(self, new_value):
-        if isinstance(self._restriction, list):
-            self._restriction.append(new_value)
-        else:
-            self._restriction = new_value
\ No newline at end of file
+        self._restriction = self.set_attribute_value(self._restriction, new_value)
diff --git a/tenet/febTransduction/net/individual_net.py b/tenet/febTransduction/net/individual_net.py
index 7088754625d3823a5cc598f19b84d05d4410ee1c..f61928bd8ac40367c777895633efd42ccf9f7b8c 100644
--- a/tenet/febTransduction/net/individual_net.py
+++ b/tenet/febTransduction/net/individual_net.py
@@ -49,10 +49,8 @@ class IndividualNet(Net):
     
     @base_class_name.setter
     def base_class_name(self, new_value):
-        if isinstance(self._base_class_name, list):
-            self._base_class_name.append(new_value)
-        else:
-            self._base_class_name = new_value
+        self._base_class_name = self.set_attribute_value(self._base_class_name, new_value)
+
         
     @property
     def mother_class_net(self):
@@ -61,10 +59,8 @@ class IndividualNet(Net):
     
     @mother_class_net.setter
     def mother_class_net(self, new_value):
-        if isinstance(self._mother_class_net, list):
-            self._mother_class_net.append(new_value)
-        else:
-            self._mother_class_net = new_value
+        self._mother_class_net = self.set_attribute_value(self._mother_class_net, new_value)
+
         
     @property
     def individual_label(self):
@@ -73,7 +69,4 @@ class IndividualNet(Net):
     
     @individual_label.setter
     def individual_label(self, new_value):
-        if isinstance(self._individual_label, list):
-            self._individual_label.append(new_value)
-        else:
-            self._individual_label = new_value
\ No newline at end of file
+        self._individual_label = self.set_attribute_value(self._individual_label, new_value)
diff --git a/tenet/febTransduction/net/net.py b/tenet/febTransduction/net/net.py
index 61404c55dc8a80fb6e2a052c6e7e5badbcd74417..854cfbad0e0a84828342648737aeb8d80348fc9e 100644
--- a/tenet/febTransduction/net/net.py
+++ b/tenet/febTransduction/net/net.py
@@ -100,12 +100,15 @@ class Net:
                 
         return res 
 
-    def set_attribute_value(self, **attr):
-        for attr_key, attr_value in attr.items():
-            if isinstance(attr_key, list):
-                self.attr_key.append(attr_value)
+    def set_attribute_value(self, attr_key, attr_value):
+        if isinstance(attr_key, list):
+            if isinstance(attr_value, list):
+                attr_key += attr_value
             else:
-                self.attr_key = attr_value
+                attr_key.append(attr_value)
+        else:
+            attr_key = attr_value
+        return attr_key
     
 
     #--------------------------------------------------------------------------
@@ -132,13 +135,8 @@ class Net:
     
     @node.setter
     def node(self, new_value):
-        if isinstance(self._node, list):
-            if isinstance(new_value, list):
-                self._node += new_value
-            else:
-                self._node.append(new_value)
-        else:
-            self._node = new_value
+        self._node = self.set_attribute_value(self._node, new_value)
+        
         
     @property
     def base_node(self):
@@ -147,13 +145,8 @@ class Net:
     
     @base_node.setter
     def base_node(self, new_value):
-        if isinstance(self._base_node, list):
-            if isinstance(new_value, list):
-                self._node += new_value
-            else:
-                self._node.append(new_value)
-        else:
-            self._base_node = new_value
+        self._base_node = self.set_attribute_value(self._base_node, new_value)
+        
         
     @property
     def structure(self):
@@ -162,13 +155,7 @@ class Net:
     
     @structure.setter
     def structure(self, new_value):
-        if isinstance(self._structure, list):
-            if isinstance(new_value, list):
-                self._node += new_value
-            else:
-                self._node.append(new_value)
-        else:
-            self._structure = new_value
+        self._structure = self.set_attribute_value(self._structure, new_value)
         
     @property
     def naming(self):
@@ -177,13 +164,7 @@ class Net:
     
     @naming.setter
     def naming(self, new_value):
-        if isinstance(self._naming, list):
-            if isinstance(new_value, list):
-                self._node += new_value
-            else:
-                self._node.append(new_value)
-        else:
-            self._naming = new_value
+        self._naming = self.set_attribute_value(self._naming, new_value)
         
         
         
diff --git a/tenet/febTransduction/net/phenomena_net.py b/tenet/febTransduction/net/phenomena_net.py
index 096109848bbf4e36a99bdc90fc3f4cd2de936020..99ac7022706d606651602b94d8c9832d881e3df9 100644
--- a/tenet/febTransduction/net/phenomena_net.py
+++ b/tenet/febTransduction/net/phenomena_net.py
@@ -48,10 +48,8 @@ class PhenomenaNet(Net):
     
     @phenomena_type.setter
     def phenomena_type(self, new_value):
-        if isinstance(self._phenomena_type, list):
-            self._phenomena_type.append(new_value)
-        else:
-            self._phenomena_type = new_value
+        self._phenomena_type = self.set_attribute_value(self._phenomena_type, new_value)
+
         
     @property
     def phenomena_ref(self):
@@ -60,7 +58,4 @@ class PhenomenaNet(Net):
     
     @phenomena_ref.setter
     def phenomena_ref(self, new_value):
-        if isinstance(self._phenomena_ref, list):
-            self._phenomena_ref.append(new_value)
-        else:
-            self._phenomena_ref = new_value
\ No newline at end of file
+        self._phenomena_ref = self.set_attribute_value(self._phenomena_ref, new_value)
diff --git a/tenet/febTransduction/net/property_net.py b/tenet/febTransduction/net/property_net.py
index 2da29dc3677eed229aea01f15d5c7d90aaf20258..a2d51a6af6b49ab46ac06ccbff9d126e1f3172ad 100644
--- a/tenet/febTransduction/net/property_net.py
+++ b/tenet/febTransduction/net/property_net.py
@@ -47,7 +47,4 @@ class PropertyNet(Net):
     
     @property_name.setter
     def property_name(self, new_value):
-        if isinstance(self._property_name, list):
-            self._property_name.append(new_value)
-        else:
-            self._property_name = new_value
\ No newline at end of file
+        self._property_name = self.set_attribute_value(self._property_name, new_value)
diff --git a/tenet/febTransduction/net/restriction_net.py b/tenet/febTransduction/net/restriction_net.py
index a60709087ded56f0e486cd6bc552f18d5f043183..c494d234d08d60669ede0b3fd8bac7199599160e 100644
--- a/tenet/febTransduction/net/restriction_net.py
+++ b/tenet/febTransduction/net/restriction_net.py
@@ -49,10 +49,8 @@ class RestrictionNet(Net):
     
     @target_node.setter
     def target_node(self, new_value):
-        if isinstance(self._target_node, list):
-            self._target_node.append(new_value)
-        else:
-            self._target_node = new_value
+        self._target_node = self.set_attribute_value(self._target_node, new_value)
+
         
     @property
     def restriction_property(self):
@@ -61,10 +59,8 @@ class RestrictionNet(Net):
     
     @restriction_property.setter
     def restriction_property(self, new_value):
-        if isinstance(self._restriction_property, list):
-            self._restriction_property.append(new_value)
-        else:
-            self._restriction_property = new_value
+        self._restriction_property = self.set_attribute_value(self._restriction_property, new_value)
+
         
     @property
     def restriction_net_value(self):
@@ -73,7 +69,4 @@ class RestrictionNet(Net):
     
     @restriction_net_value.setter
     def restriction_net_value(self, new_value):
-        if isinstance(self._restriction_net_value, list):
-            self._restriction_net_value.append(new_value)
-        else:
-            self._restriction_net_value = new_value
\ No newline at end of file
+        self._restriction_net_value = self.set_attribute_value(self._restriction_net_value, new_value)
diff --git a/tenet/febTransduction/net/value_net.py b/tenet/febTransduction/net/value_net.py
index 7971e411d3a5beff76d46708dceed9f7ae5dd61d..70bab39aa270235e30ef8d912e69a94694329210 100644
--- a/tenet/febTransduction/net/value_net.py
+++ b/tenet/febTransduction/net/value_net.py
@@ -47,7 +47,4 @@ class ValueNet(Net):
     
     @value_label.setter
     def value_label(self, new_value):
-        if isinstance(self._value_label, list):
-            self._value_label.append(new_value)
-        else:
-            self._value_label = new_value
+        self._value_label = self.set_attribute_value(self._value_label, new_value)
diff --git a/tests/test_transduction_semantic_net_2.py b/tests/test_transduction_semantic_net_2.py
index 5b6d42bb9634a6a90c072743d4d36b2356fe3a5e..92311ca46ae8974f68823f9c90f817425983505d 100644
--- a/tests/test_transduction_semantic_net_2.py
+++ b/tests/test_transduction_semantic_net_2.py
@@ -40,149 +40,192 @@ from tenet.febTransduction.net import RestrictionNet
 
 
 #==============================================================================
-# Utilities
+# Useful Methods
 #==============================================================================
 
+def load_test_graph():
+    print(f'\n -- Test Graph Loading')
+    graph = Graph()
+    graph.bind('amr', Namespace('https://amr.tetras-libre.fr/rdf/schema#'))
+    graph.bind('net', Namespace('https://tenet.tetras-libre.fr/semantic-net#'))
+    graph.bind('base-out', Namespace('https://tenet.tetras-libre.fr/base-ontology#'))
+    graph.parse(TEST_GRAPH)
+    print(f" ----- Graph Loaded ({len(graph)})")
+    return graph
+
+
 def test_attribute_access(net, *attr_set):
     print(f'\n *** Net attributes ({net.type_id})) ***')
     for attr in attr_set:
-        print(f' ----- {attr}: {eval(attr)}')        
+        print(f' ----- {attr}: {eval(attr)}')           
+
+    
+
+#==============================================================================
+# Unit Test
+#==============================================================================
+
+def unittest_set_attribute_net(graph, net_uri):
+    print('\n -- Net')
+    net = Net(graph, uri=net_uri)
+    print('\n /// before setting')
+    test_attribute_access(net, 'net.uri', 
+                          'net.node', 'net.base_node', 'net.structure', 'net.naming')
+    net.base_node = ' *** node_a ***'
+    net.node = ' *** node_a ***'
+    net.structure = ' *** test-structure ***'
+    net.naming = ' *** test-naming ***'
+    print('\n /// after setting')
+    test_attribute_access(net, 'net.uri', 
+                          'net.node', 'net.base_node', 'net.structure', 'net.naming')
+
+
+def unittest_set_attribute_class_net(graph, net_uri):
+    print('\n -- Class Net')
+    net = ClassNet(graph, uri=net_uri)
+    net.class_name = ' *** test-class-name (1) ***'
+    test_attribute_access(net, 'net.uri', 
+                          'net.node', 'net.base_node', 'net.structure', 'net.naming',
+                          'net.class_name')
+  
+
+def unittest_set_attribute_atom_class_net(graph, net_uri):  
+    print('\n -- Atom Class Net')
+    net = AtomClassNet(graph, uri=net_uri)
+    net.class_name = ' *** test-class-name (2) ***'
+    test_attribute_access(net, 'net.uri', 
+                          'net.node', 'net.base_node', 'net.structure', 'net.naming',
+                          'net.class_name') 
+   
+
+def unittest_set_attribute_composite_class_net(graph, net_uri): 
+    print('\n -- Composite Class Net (1)')
+    net = CompositeClassNet(graph, uri=net_uri)
+    net.mother_class_net = ' *** test-value ***'
+    net.restriction = ' *** test-value ***'
+    net.restriction01 = ' *** test-value ***'
+    test_attribute_access(net, 'net.uri', 
+                          'net.node', 'net.base_node', 'net.structure', 'net.naming',
+                          'net.class_name',
+                          'net.mother_class_net', 'net.restriction', 'net.restriction01')
+    
+
+def unittest_set_attribute_property_net(graph, net_uri): 
+    print('\n -- Property Net')
+    net = PropertyNet(graph, uri=net_uri)
+    net.property_name = ' *** test-value ***'
+    test_attribute_access(net, 'net.uri', 
+                          'net.node', 'net.base_node', 'net.structure', 'net.naming',
+                          'net.property_name')
+    
+
+def unittest_set_attribute_atom_property_net(graph, net_uri): 
+    print('\n -- Atom Property Net')
+    net = AtomPropertyNet(graph, uri=net_uri)
+    net.property_name = ' *** test-value ***'
+    net.core_role = ' *** test-value ***'
+    net.target_argument_node = ' *** test-value ***'
+    net.property_type = ' *** test-value ***'
+    net.property_name01 = ' *** test-value ***'
+    net.property_name10 = ' *** test-value ***'
+    net.property_name12 = ' *** test-value ***'
+    test_attribute_access(net, 'net.uri', 
+                          'net.node', 'net.base_node', 'net.structure', 'net.naming',
+                          'net.property_name',
+                          'net.core_role', 'net.target_argument_node', 'net.property_type',
+                          'net.property_name01', 'net.property_name10', 'net.property_name12')
+    
+
+def unittest_set_attribute_composite_property_net(graph, net_uri): 
+    print('\n -- Composite Property Net')
+    net = CompositePropertyNet(graph, uri=net_uri)
+    net.property_name = ' *** test-value ***'
+    net.core_role = ' *** test-value ***'
+    net.target_argument_node = ' *** test-value ***'
+    net.property_type = ' *** test-value ***'
+    net.restriction = ' *** test-value ***'
+    test_attribute_access(net, 'net.uri', 
+                          'net.node', 'net.base_node', 'net.structure', 'net.naming',
+                          'net.property_name',
+                          'net.core_role', 'net.target_argument_node', 'net.property_type', 'net.restriction')
+    
+
+def unittest_set_attribute_individual_net(graph, net_uri): 
+    print('\n -- Individual Net')
+    net = IndividualNet(graph, uri=net_uri)
+    net.base_class_name = ' *** test-value ***'
+    net.mother_class_net = ' *** test-value ***'
+    net.individual_label = ' *** test-value ***'
+    test_attribute_access(net, 'net.uri', 
+                          'net.node', 'net.base_node', 'net.structure', 'net.naming',
+                          'net.base_class_name', 'net.mother_class_net', 'net.individual_label')
+    
+
+def unittest_set_attribute_value_net(graph, net_uri): 
+    print('\n -- Value Net')
+    net = ValueNet(graph, uri=net_uri)
+    net.value_label = ' *** test-value ***'
+    test_attribute_access(net, 'net.uri', 
+                          'net.node', 'net.base_node', 'net.structure', 'net.naming',
+                          'net.value_label')
        
 
+def unittest_set_attribute_phenomena_net(graph, net_uri): 
+    print('\n -- Phenomena Net (1)')
+    net = PhenomenaNet(graph, uri=net_uri)
+    net.phenomena_type = ' *** test-value ***'
+    net.phenomena_ref = ' *** test-value ***'
+    test_attribute_access(net, 'net.uri', 
+                          'net.node', 'net.base_node', 'net.structure', 'net.naming',
+                          'net.phenomena_type', 'net.phenomena_ref')
+    
+
+def unittest_set_attribute_restriction_net(graph, net_uri): 
+    print('\n -- Restriction Net')
+    net = RestrictionNet(graph, uri=net_uri)
+    net.target_node = ' *** test-value ***'
+    net.restriction_property = ' *** test-value ***'
+    net.restriction_net_value = ' *** test-value ***'
+    test_attribute_access(net, 'net.uri', 
+                          'net.node', 'net.base_node', 'net.structure', 'net.naming',
+                          'net.target_node', 'net.restriction_property', 'net.restriction_net_value')
+
+
+  
 
 #==============================================================================
-# Development Test
+# Test Script
 #==============================================================================
 
-print('\n' + ' *** Development Test ***')
-print('\n *** TEST: Semantic Net Setters ***')
-
-print(f'\n -- Test Graph Loading')
-graph = Graph()
-graph.bind('net', Namespace('https://tenet.tetras-libre.fr/semantic-net#'))
-graph.parse(TEST_GRAPH)
-print(f" ----- Graph Loaded ({len(graph)})")
-
-print('\n -- Net')
-net = Net(graph, uri='net:atomClass_sun_s2')
-print('\n /// before setting')
-test_attribute_access(net, 'net.uri', 
-                      'net.node', 'net.base_node', 'net.structure', 'net.naming')
-net.base_node = ' *** node_a ***'
-net.node = ' *** node_a ***'
-net.structure = ' *** test-structure ***'
-net.naming = ' *** test-naming ***'
-print('\n /// after setting')
-test_attribute_access(net, 'net.uri', 
-                      'net.node', 'net.base_node', 'net.structure', 'net.naming')
-
-print('\n -- Class Net')
-net = ClassNet(graph, uri='net:atomClass_sun_s2')
-net.class_name = ' *** test-class-name (1) ***'
-test_attribute_access(net, 'net.uri', 
-                      'net.node', 'net.base_node', 'net.structure', 'net.naming',
-                      'net.class_name')
-
-print('\n -- Atom Class Net')
-net = AtomClassNet(graph, uri='net:atomClass_sun_s2')
-net.class_name = ' *** test-class-name (2) ***'
-test_attribute_access(net, 'net.uri', 
-                      'net.node', 'net.base_node', 'net.structure', 'net.naming',
-                      'net.class_name') 
-
-print('\n -- Composite Class Net (1)')
-net = CompositeClassNet(graph, uri='net:compositeClass_orbit-hasManner-conjunction-OR_o2')
-net.mother_class_net = ' *** test-value ***'
-net.restriction = ' *** test-value ***'
-net.restriction01 = ' *** test-value ***'
-test_attribute_access(net, 'net.uri', 
-                      'net.node', 'net.base_node', 'net.structure', 'net.naming',
-                      'net.class_name',
-                      'net.mother_class_net', 'net.restriction', 'net.restriction01')
-
-print('\n -- Composite Class Net (2)')
-net = CompositeClassNet(graph, uri='net:compositeClass_system-hasPart-sun-and-object_s')
-net.mother_class_net = ' *** test-value ***'
-net.restriction = ' *** test-value ***'
-net.restriction01 = ' *** test-value ***'
-test_attribute_access(net, 'net.uri', 
-                      'net.node', 'net.base_node', 'net.structure', 'net.naming',
-                      'net.class_name',
-                      'net.mother_class_net', 'net.restriction', 'net.restriction01')
-
-print('\n -- Property Net')
-net = PropertyNet(graph, uri='net:atomProperty_orbit_o2')
-net.property_name = ' *** test-value ***'
-test_attribute_access(net, 'net.uri', 
-                      'net.node', 'net.base_node', 'net.structure', 'net.naming',
-                      'net.property_name')
-
-print('\n -- Atom Property Net')
-net = AtomPropertyNet(graph, uri='net:atomProperty_orbit_o2')
-net.property_name = ' *** test-value ***'
-net.core_role = ' *** test-value ***'
-net.target_argument_node = ' *** test-value ***'
-net.property_type = ' *** test-value ***'
-net.property_name01 = ' *** test-value ***'
-net.property_name10 = ' *** test-value ***'
-net.property_name12 = ' *** test-value ***'
-test_attribute_access(net, 'net.uri', 
-                      'net.node', 'net.base_node', 'net.structure', 'net.naming',
-                      'net.property_name',
-                      'net.core_role', 'net.target_argument_node', 'net.property_type',
-                      'net.property_name01', 'net.property_name10', 'net.property_name12')
-
-print('\n -- Composite Property Net')
-net = CompositePropertyNet(graph, uri='net:compositeProperty_not-direct_d2')
-net.property_name = ' *** test-value ***'
-net.core_role = ' *** test-value ***'
-net.target_argument_node = ' *** test-value ***'
-net.property_type = ' *** test-value ***'
-net.restriction = ' *** test-value ***'
-test_attribute_access(net, 'net.uri', 
-                      'net.node', 'net.base_node', 'net.structure', 'net.naming',
-                      'net.property_name',
-                      'net.core_role', 'net.target_argument_node', 'net.property_type', 'net.restriction')
-
-print('\n -- Individual Net')
-net = IndividualNet(graph, uri='net:individual_system_SolarSystem')
-net.base_class_name = ' *** test-value ***'
-net.mother_class_net = ' *** test-value ***'
-net.individual_label = ' *** test-value ***'
-test_attribute_access(net, 'net.uri', 
-                      'net.node', 'net.base_node', 'net.structure', 'net.naming',
-                      'net.base_class_name', 'net.mother_class_net', 'net.individual_label')
-
-print('\n -- Value Net')
-net = ValueNet(graph, uri='net:value_SolarSystem_blankNode')
-net.value_label = ' *** test-value ***'
-test_attribute_access(net, 'net.uri', 
-                      'net.node', 'net.base_node', 'net.structure', 'net.naming',
-                      'net.value_label')
-
-print('\n -- Phenomena Net (1)')
-net = PhenomenaNet(graph, uri='net:phenomena_conjunction-AND_a')
-net.phenomena_type = ' *** test-value ***'
-net.phenomena_ref = ' *** test-value ***'
-test_attribute_access(net, 'net.uri', 
-                      'net.node', 'net.base_node', 'net.structure', 'net.naming',
-                      'net.phenomena_type', 'net.phenomena_ref')
-
-print('\n -- Phenomena Net (1)')
-net = PhenomenaNet(graph, uri='net:phenomena_conjunction-OR_o3')
-net.phenomena_type = ' *** test-value ***'
-net.phenomena_ref = ' *** test-value ***'
-test_attribute_access(net, 'net.uri', 
-                      'net.node', 'net.base_node', 'net.structure', 'net.naming',
-                      'net.phenomena_type', 'net.phenomena_ref')
-
-print('\n -- Restriction Net')
-net = RestrictionNet(graph, uri='net:restriction_hasPart_sun')
-net.target_node = ' *** test-value ***'
-net.restriction_property = ' *** test-value ***'
-net.restriction_net_value = ' *** test-value ***'
-test_attribute_access(net, 'net.uri', 
-                      'net.node', 'net.base_node', 'net.structure', 'net.naming',
-                      'net.target_node', 'net.restriction_property', 'net.restriction_net_value')
+if __name__ == '__main__':
+      
+    print('\n *** Test Preparation ***')
+    graph = load_test_graph()
+    print('\n \n')
+    
+    print('\n *** Development Test ***')
+    # devtest_set_uri_attribute(graph)
+    print('\n \n')
     
-print('\n' + ' *** - ***')
\ No newline at end of file
+    print('\n *** Unit Test ***')
+    unittest_set_attribute_net(graph, 'net:atomClass_sun_s2')
+
+    unittest_set_attribute_class_net(graph, 'net:atomClass_sun_s2')
+    unittest_set_attribute_atom_class_net(graph, 'net:atomClass_sun_s2')
+    unittest_set_attribute_composite_class_net(graph, 'net:compositeClass_orbit-hasManner-conjunction-OR_o2')
+    unittest_set_attribute_composite_class_net(graph, 'net:compositeClass_system-hasPart-sun-and-object_s')
+
+    unittest_set_attribute_property_net(graph, 'net:atomProperty_orbit_o2')     
+    unittest_set_attribute_atom_property_net(graph, 'net:atomProperty_orbit_o2')
+    unittest_set_attribute_composite_property_net(graph, 'net:compositeProperty_not-direct_d2')
+    
+    unittest_set_attribute_individual_net(graph, 'net:individual_system_SolarSystem')  
+
+    unittest_set_attribute_value_net(graph, 'net:value_SolarSystem_blankNode')  
+     
+    unittest_set_attribute_phenomena_net(graph, 'net:phenomena_conjunction-AND_a')
+    unittest_set_attribute_phenomena_net(graph, 'net:phenomena_conjunction-OR_o3') 
+
+    unittest_set_attribute_restriction_net(graph, 'net:restriction_hasPart_sun')  
+                      
+    print('\n \n')
\ No newline at end of file
diff --git a/tests/test_transduction_semantic_net_3.py b/tests/test_transduction_semantic_net_3.py
index 61fa60748eff806b451c7baf6af5510b79377669..88243ff1e9ea2d5c645364e1a88a75171c1bd819 100644
--- a/tests/test_transduction_semantic_net_3.py
+++ b/tests/test_transduction_semantic_net_3.py
@@ -50,6 +50,9 @@ def test_attribute_access(net, *attr_set):
        
 
 
+
+
+
 #==============================================================================
 # Development Test
 #==============================================================================