diff --git a/tenet/febTransduction/net/net.py b/tenet/febTransduction/net/net.py
index 6356bcad210f536832570d6780f5d124cd8996d4..e3ad67f5ce37ad6a08ec831cc205b4c37856cbe7 100644
--- a/tenet/febTransduction/net/net.py
+++ b/tenet/febTransduction/net/net.py
@@ -10,8 +10,10 @@
 import rdflib
 from rdflib import URIRef
 from rdflib.namespace import NamespaceManager
+from rdflib.term import _is_valid_uri
 
 from febTransduction.net import SemanticNetReferenceHandle
+from febTransduction.uriref_computer import produce_uriref
 from febTransduction.query_builder import generate_select_query
 
 
@@ -39,12 +41,7 @@ class Net:
         self.type_uri = f'net:{self.type_id}'
         
         # -- Net URI
-        self._uri = uri
-        if isinstance(uri, rdflib.term.URIRef):
-            self._uri = uri.n3(self.support_graph.namespace_manager)
-        elif isinstance(uri, str):
-            self._uri = URIRef(uri).n3(self.support_graph.namespace_manager)
-        
+        self._uri = produce_uriref(self.support_graph, uri)        
            
         # -- Net Attributes
         self.attr_list = ['node', 'base_node', 'structure', 'naming']
@@ -118,17 +115,9 @@ class Net:
     def uri(self):
         return self._uri       
     
-    
     @uri.setter
     def uri(self, new_value):
-        control = (isinstance(new_value, rdflib.term.URIRef) or isinstance(new_value, str))
-        assert control, f'new_value does not a string or URIRef ({type(new_value)})'
-        
-        if isinstance(new_value, rdflib.term.URIRef):
-            self._uri = new_value.n3(self.support_graph.namespace_manager)
-        else:
-            self._uri = URIRef(new_value).n3(self.support_graph.namespace_manager)
-  
+        self._uri = produce_uriref(self.support_graph, new_value) 
     
         
     #--------------------------------------------------------------------------
diff --git a/tenet/febTransduction/uriref_computer.py b/tenet/febTransduction/uriref_computer.py
index f508fd3eec689e73a9985ef108ebc5e0d2055ee5..9eb1f0b0b0055c23c324a4366bc8b6c7c441f7b5 100644
--- a/tenet/febTransduction/uriref_computer.py
+++ b/tenet/febTransduction/uriref_computer.py
@@ -8,27 +8,42 @@
 # attributes)
 #==============================================================================
 
-from urllib.parse import quote_plus
-
-from rdflib import URIRef, Graph, RDF, SDO
+import rdflib
+from rdflib import URIRef, Graph
 from rdflib.term import _is_valid_uri
 
 
 
-#==============================================================================
-# Checking Method(s)
-#==============================================================================
-
-class InvalidURIRef(Exception):
-    """Raise when URIs are invalid."""
-    pass
-
-
 #==============================================================================
 # Main Method(s)
 #==============================================================================
 
-def create_uriref(uri):
+def __create_uriref(uri):
+    assert isinstance(uri, str), f'Houston, we have a problem: uri is not a string'
+    
+    if (uri.startswith("<") & uri.endswith(">")):
+        uri = uri[1:-1]
+    
+    if not isinstance(uri, rdflib.term.URIRef):
+        uri = rdflib.URIRef(uri)
+    
+    assert isinstance(uri, rdflib.term.URIRef), f'Houston, we have a problem: result uri is not an URIRef'
+    
+    return uri
+
+
+def __update_uri_with_prefix(graph, uri):
+    assert isinstance(uri, str), f'Houston, we have a problem: uri is not a string'
+    
+    if uri.startswith("http"):
+        uri = rdflib.URIRef(uri.n3(graph.namespace_manager))
+    
+    assert _is_valid_uri(uri), f'Houston, we have a problem: unknown url in uri'
+    
+    return uri
+
+
+def produce_uriref(graph, uri):
     """Create a URIRef with the same validation func used by URIRef
 
     Except here an InvalidURIRef exception is raised.
@@ -36,7 +51,12 @@ def create_uriref(uri):
     The RDFLib _is_valid_uri only checks for invalid characters. You can also add your
     own validation checks.
     """
-    if _is_valid_uri(uri):
-        return URIRef(uri)
-    raise InvalidURIRef(f'"{uri}" is not a valid URI.')
+    
+    if uri is not None:
+        uri = __create_uriref(uri)
+        uri = __update_uri_with_prefix(graph, uri)
+        uri = __create_uriref(uri) 
+        assert _is_valid_uri(uri), f'Houston, we have a problem: URI is not a valid uri'
+    
+    return uri
     
\ No newline at end of file
diff --git a/tests/test_semantic_net_1.py b/tests/test_semantic_net_1.py
index 4f08b18926a35cc07b29620cf1b1407fd20e8360..257fea7740c313dccd17f15a9d3bec159141a002 100644
--- a/tests/test_semantic_net_1.py
+++ b/tests/test_semantic_net_1.py
@@ -178,24 +178,24 @@ if __name__ == '__main__':
     print('\n \n')
     
     print('\n *** Unit Test ***')
-    # unittest_get_attribute_net(graph, 'https://tenet.tetras-libre.fr/semantic-net#atomClass_sun_s2')
+    unittest_get_attribute_net(graph, 'https://tenet.tetras-libre.fr/semantic-net#atomClass_sun_s2')
 
-    # unittest_get_attribute_class_net(graph, 'net:atomClass_sun_s2')
-    # unittest_get_attribute_atom_class_net(graph, 'net:atomClass_sun_s2')
-    # unittest_get_attribute_composite_class_net(graph, 'net:compositeClass_orbit-hasManner-conjunction-OR_o2')
-    # unittest_get_attribute_composite_class_net(graph, 'net:compositeClass_system-hasPart-sun-and-object_s')
+    unittest_get_attribute_class_net(graph, 'net:atomClass_sun_s2')
+    unittest_get_attribute_atom_class_net(graph, 'net:atomClass_sun_s2')
+    unittest_get_attribute_composite_class_net(graph, 'net:compositeClass_orbit-hasManner-conjunction-OR_o2')
+    unittest_get_attribute_composite_class_net(graph, 'net:compositeClass_system-hasPart-sun-and-object_s')
 
-    # unittest_get_attribute_property_net(graph, 'net:atomProperty_orbit_o2')     
-    # unittest_get_attribute_atom_property_net(graph, 'net:atomProperty_orbit_o2')
-    # unittest_get_attribute_composite_property_net(graph, 'net:compositeProperty_not-direct_d2')
+    unittest_get_attribute_property_net(graph, 'net:atomProperty_orbit_o2')     
+    unittest_get_attribute_atom_property_net(graph, 'net:atomProperty_orbit_o2')
+    unittest_get_attribute_composite_property_net(graph, 'net:compositeProperty_not-direct_d2')
     
-    # unittest_get_attribute_individual_net(graph, 'net:individual_system_SolarSystem')  
+    unittest_get_attribute_individual_net(graph, 'net:individual_system_SolarSystem')  
 
-    # unittest_get_attribute_value_net(graph, 'net:value_SolarSystem_blankNode')  
+    unittest_get_attribute_value_net(graph, 'net:value_SolarSystem_blankNode')  
      
-    # unittest_get_attribute_phenomena_net(graph, 'net:phenomena_conjunction-AND_a')
-    # unittest_get_attribute_phenomena_net(graph, 'net:phenomena_conjunction-OR_o3') 
+    unittest_get_attribute_phenomena_net(graph, 'net:phenomena_conjunction-AND_a')
+    unittest_get_attribute_phenomena_net(graph, 'net:phenomena_conjunction-OR_o3') 
 
-    # unittest_get_attribute_restriction_net(graph, 'net:restriction_hasPart_sun')  
+    unittest_get_attribute_restriction_net(graph, 'net:restriction_hasPart_sun')  
                       
     print('\n \n')
\ No newline at end of file
diff --git a/tests/test_transduction_uriref_computer.py b/tests/test_transduction_uriref_computer.py
index fea2b124570822b183ae0fe11dc4d8892e02e636..f376b1ee14310bd6a4f2d9ab734d3124113541a0 100644
--- a/tests/test_transduction_uriref_computer.py
+++ b/tests/test_transduction_uriref_computer.py
@@ -8,7 +8,8 @@
 #==============================================================================
 
 import subprocess, os
-from rdflib import Graph, Namespace
+import rdflib
+from rdflib import Graph, Namespace, URIRef
 from rdflib.namespace import NamespaceManager
 from rdflib.term import _is_valid_uri
 
@@ -18,6 +19,8 @@ OUTPUT_DIR_PATH = f'{FILE_PATH}/output/'
 TEST_GRAPH = f'{INPUT_DIR_PATH}testGraph1.ttl'
 
 from context import tenet
+import utility
+
 from tenet.febTransduction import uriref_computer
 
 
@@ -26,7 +29,15 @@ from tenet.febTransduction import uriref_computer
 # Useful Methods
 #==============================================================================
 
-# None
+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
 
 
 #==============================================================================
@@ -36,17 +47,78 @@ from tenet.febTransduction import uriref_computer
 def devtest_check_uri(uri):
     print(f'\n -- Test URI checking')
     print(f' ----- uri: {uri}')
-    print(f' ----- check 1: {_is_valid_uri(uri)}')
+    print(f' ----- check 1 (valid uri): {_is_valid_uri(uri)}')
+    print(f' ----- check 2 (URIRef instance): {isinstance(uri, rdflib.term.URIRef)}')
+    print(f' ----- check 3 (str instance): {isinstance(uri, str)}')
+    print(f' ----- check 4 (not http uri): {uri.startswith("http")}')
+    print(f' ----- check 5 (not single quote uri): {uri.startswith("<") & uri.endswith(">")}')
+    
+    
+def devtest_create_uriref(graph, uri):
+    print(f'\n -- Creation of URI Reference')
+    assert isinstance(uri, str), f'URI is not a string'
+    
+    origin_uri = uri
+    new_uri = None
+    
+    if (uri.startswith("<") & uri.endswith(">")):
+        uri = uri[1:-1]
+    
+    if not isinstance(uri, rdflib.term.URIRef):
+        uri = rdflib.URIRef(uri)
+    assert isinstance(uri, rdflib.term.URIRef), f'Houston, we have a problem (1)'
     
+    if uri.startswith("http"):
+        new_uri = rdflib.URIRef(uri.n3(graph.namespace_manager))
+        assert isinstance(new_uri, rdflib.term.URIRef), f'Houston, we have a problem (2)'
+    else:
+        new_uri = uri
+        assert isinstance(new_uri, rdflib.term.URIRef), f'Houston, we have a problem (3)'
+
+    assert _is_valid_uri(uri), f'Houston, we have a problem: URI is not a valid uri'
+    print(f' ----- origin uri: {origin_uri}')
+    print(f' ----- new uri: {new_uri}')
+    print(f' ----- new uri checking as URIRef instance: {isinstance(new_uri, rdflib.term.URIRef)}')
+
+
 
 #==============================================================================
 # Unit Test
 #==============================================================================
 
-# TODO
-    
+def unittest_produce_uriref(graph, uri):
+    print(f'\n -- Produce valid URI Reference')
+    try:
+        uriref = uriref_computer.produce_uriref(graph, uri)
+        if uriref is None:
+            print(f' ----- None')
+        else: # uriref is not None
+            print(f' ----- origin uri: {uri}')
+            print(f' ----- result uri: {uriref}')
+            c_1 = _is_valid_uri(uriref)
+            c_2 = isinstance(uriref, rdflib.term.URIRef)
+            c_3 = isinstance(uriref, str)
+            c_4 = not(uriref.startswith("http"))
+            c_5 = not(uriref.startswith("<") & uriref.endswith(">"))
+            assert c_1 & c_2 & c_3 & c_4 & c_5
+            print(f' ----- result uri check: ok')
+    except:
+        print(f' ----- check 1 (valid uri): {c_1}')
+        print(f' ----- check 2 (URIRef instance): {c_2}')
+        print(f' ----- check 3 (str instance): {c_3}')
+        print(f' ----- check 4 (not http uri): {c_4}')
+        print(f' ----- check 5 (not single quote uri): {c_5}')
     
 
+def unittest_failure_produce_uriref(graph, uri):
+    print(f'\n -- * Failure to produce URI Reference *')
+    try:
+        uriref = uriref_computer.produce_uriref(graph, uri)
+        print(f'Houston, we have a problem: production is successful')
+    except:
+        print(f' ----- OK FAILURE!')
+        print(f' ----- origin uri: {uri}')
+
 
 #==============================================================================
 # Test Script
@@ -55,16 +127,35 @@ def devtest_check_uri(uri):
 if __name__ == '__main__':
       
     print('\n *** Test Preparation ***')
-    pass
+    graph = load_test_graph()
+    uri_1 = 'net:compositeClass_orbit_hasManner_conjunction-OR'
+    uri_2 = '<net:compositeClass_orbit_hasManner_conjunction-OR>'
+    uri_3 = 'https://tenet.tetras-libre.fr/semantic-net#atomClass_sun_s2'
+    uri_4 = 'https://unknow-url#atomClass_sun_s2'
+    uri_5 = URIRef('net:compositeClass_orbit_hasManner_conjunction-OR')
     print('\n \n')
     
     print('\n *** Development Test ***')
-    devtest_check_uri('<net:compositeClass_orbit_hasManner_conjunction-OR>')
-    devtest_check_uri('net:compositeClass_orbit_hasManner_conjunction-OR')
+    devtest_check_uri(uri_1)
+    devtest_check_uri(uri_2)
+    devtest_check_uri(uri_3)
+    devtest_check_uri(uri_4)
+    devtest_check_uri(uri_5)
+    devtest_create_uriref(graph, uri_1)
+    devtest_create_uriref(graph, uri_1)
+    devtest_create_uriref(graph, uri_2)
+    devtest_create_uriref(graph, uri_3)
+    devtest_create_uriref(graph, uri_4)
+    devtest_create_uriref(graph, uri_5)
     print('\n \n')
     
     print('\n *** Unit Test ***')
-    pass
+    unittest_produce_uriref(graph, uri_1)
+    unittest_produce_uriref(graph, uri_2)
+    unittest_produce_uriref(graph, uri_3)
+    unittest_failure_produce_uriref(graph, uri_4)
+    unittest_produce_uriref(graph, uri_5)
+    unittest_produce_uriref(graph, None)
     print('\n \n')
 
     print('\n *** - ***')
\ No newline at end of file