diff --git a/tenet/scheme/amr_clara_rule/__init__.py b/tenet/scheme/amr_clara_rule/__init__.py
index d8ef58bb6e27abbee73044368f774088c8e6a023..6ff657bc423b6560a63f5bda3f61354aa4c97a36 100644
--- a/tenet/scheme/amr_clara_rule/__init__.py
+++ b/tenet/scheme/amr_clara_rule/__init__.py
@@ -16,6 +16,8 @@ from scheme.amr_clara_rule.transduction.phenomena_mod_analyzer_1 import *
 from scheme.amr_clara_rule.transduction.phenomena_or_analyzer_1 import * 
 from scheme.amr_clara_rule.transduction.phenomena_or_analyzer_2 import * 
 
+from scheme.amr_clara_rule.transduction.odrl_rule_extractor import * 
+
 from scheme.amr_clara_rule.odrl_generation.odrl_rule_generator import *
 
 from scheme.amr_clara_rule import *
diff --git a/tenet/scheme/amr_clara_rule/transduction/atom_individual_extractor.py b/tenet/scheme/amr_clara_rule/transduction/atom_individual_extractor.py
index e63801749568451afecebc212c4721f3bc57e162..5e7260c5ec2d56545ca4f1775a212ced44117d79 100644
--- a/tenet/scheme/amr_clara_rule/transduction/atom_individual_extractor.py
+++ b/tenet/scheme/amr_clara_rule/transduction/atom_individual_extractor.py
@@ -157,7 +157,7 @@ def extract_atom_individual(graph):
     # -- Search for patterns 
     _, pattern_set = __search_pattern(graph)
     
-    # -- Selection Analyzing (1)
+    # -- Pattern Analysis
     rule_triple_list = []
     for pattern in pattern_set:
         
diff --git a/tenet/scheme/amr_clara_rule/transduction/odrl_rule_extractor.py b/tenet/scheme/amr_clara_rule/transduction/odrl_rule_extractor.py
new file mode 100644
index 0000000000000000000000000000000000000000..efa5a49f1c9fbaa1b95458daf03ddf7f94575454
--- /dev/null
+++ b/tenet/scheme/amr_clara_rule/transduction/odrl_rule_extractor.py
@@ -0,0 +1,127 @@
+#!/usr/bin/python3.10
+# -*-coding:Utf-8 -*
+
+#==============================================================================
+# TENET: Rule to extract composite classes (rule 1)
+#------------------------------------------------------------------------------
+# Net Expansion AMR rule to extract composite classes
+# Rule: property(arg0:class, arg1:class) => compositeClass
+#==============================================================================
+
+from rdflib import Graph
+
+import transduction
+from transduction import net
+from transduction.query_builder import generate_select_query
+from transduction.naming_computer import define_composite_naming_1, define_restriction_naming
+
+
+#==============================================================================
+# Pattern Search: modality phenomena
+#==============================================================================
+
+PHENOMENA_TYPE_RELATION = 'net:hasPhenomenaType' 
+POLARITY_RELATION = 'amr:role_polarity' 
+
+MODALITY_TABLE = [('permission', 'amr:phenomena_modality_possible'),
+                  ('obligation', 'amr:phenomena_modality_obligation'),
+                  ('prohibition', 'amr:phenomena_modality_prohibition')]
+
+def __get_query_code(graph, phenomena_uri, arg_relation):
+    select_data_list = ['?phenomena_net', '?action_net']
+    clause_list = [f'?phenomena_net a [rdfs:subClassOf* net:Phenomena_Net].',
+                    f'?phenomena_net {PHENOMENA_TYPE_RELATION} {phenomena_uri}.',
+                    f'FILTER NOT EXISTS {{ ?phenomena_net a net:Deprecated_Net. }}',
+                    f'?phenomena_net {arg_relation} ?action_net.']
+    return generate_select_query(graph, select_data_list, clause_list)
+
+
+def __search_pattern(graph, phenomena_uri):
+    query_code = ''
+    result_set = []
+    for arg_relation in ['amr:role_arg1', 'amr:role_arg2']:
+        query_code = __get_query_code(graph, phenomena_uri, arg_relation)
+        result_set += graph.query(query_code)
+    return query_code, result_set
+
+
+
+#==============================================================================
+# Useful Computation Method(s)
+#============================================================================== 
+
+def __define_naming(rule_relation):
+    return f'{rule_relation}'
+
+
+def __filter_relation(relation_list):
+    result_list = []
+    for relation in relation_list:
+        check = True
+        (s, p, o) = relation
+        if s == o: check = False
+        if check: result_list.append(relation)
+    return result_list
+
+
+def __propagate_relation(target_net, base_net):
+    # -- target_net.input_relation_list = base_net.input_relation_list
+    out_relation_list = __filter_relation(base_net.output_relation_list)
+    target_net.output_relation_list = out_relation_list
+    
+    
+    
+#==============================================================================
+# Construct Method(s)
+#============================================================================== 
+
+def __construct_rule_net(graph, rule_relation, phenomena_net, action_net):
+
+    # -- Net Composition
+    rule_net = net.RuleNet(graph)
+    rule_net.compose(phenomena_net, action_net)
+    
+    # -- Data Computation
+    rule_net.rule_relation_name = rule_relation
+    rule_net.rule_action_net = action_net
+    
+    # -- Relation Propagation
+    # None
+
+    # -- Net Naming
+    rule_net.naming = __define_naming(rule_relation)
+    
+    # -- Finalization
+    rule_net.finalize()
+    triple_definition = rule_net.generate_triple_definition()
+    
+    return rule_net, triple_definition
+
+  
+    
+#==============================================================================
+# Main Method
+#==============================================================================
+
+def extract_odrl_rule(graph):
+    
+    # -- Rule Initialization 
+    rule_label = 'extract ODRL rules' 
+    rule_triple_list = []
+    
+    for (rule_relation, phenomena_uri) in MODALITY_TABLE:
+
+        # -- Search for patterns 
+        _, pattern_set = __search_pattern(graph, phenomena_uri)
+        
+        # -- Pattern Analysis
+        for pattern in pattern_set:
+            phenomena_net = net.PhenomenaNet(graph, uri=pattern.phenomena_net)
+            action_net = net.ActionNet(graph, uri=pattern.action_net)
+                       
+            # -- New Net Construction
+            _, triple_list = __construct_rule_net(
+                graph, rule_relation, phenomena_net, action_net)
+            rule_triple_list += triple_list
+    
+    return rule_label, rule_triple_list
\ No newline at end of file
diff --git a/tenet/scheme/amr_scheme_clara_1.py b/tenet/scheme/amr_scheme_clara_1.py
index 7e9812d5505368300e8694940090d7dafd60687e..d130f07e6965148264d83a2125d732bbbf4b2b67 100644
--- a/tenet/scheme/amr_scheme_clara_1.py
+++ b/tenet/scheme/amr_scheme_clara_1.py
@@ -191,6 +191,10 @@ composite_class_extraction_sequence = ['composite class extraction sequence',
                                        rule.extract_composite_class_1,
                                        rule.extract_composite_class_2]
 
+odrl_extraction_sequence = ['ODRL extraction sequence',
+                            # rule.extract_odrl_action,
+                            rule.extract_odrl_rule]
+
 
 # # ---------------------------------------------
 # # ODRL Generation
@@ -216,15 +220,7 @@ scheme = {
                       phenomena_analyze_sequence_1,
                       phenomena_analyze_sequence_2,
                       composite_class_extraction_sequence,
-                      ],
-        
-    # 'transduction': [transduction_refinement_sequence,
-    #                   phenomena_application_and_sequence,
-    #                   phenomena_checking_sequence,
-    #                   composite_property_extraction_sequence,
-    #                   composite_class_extraction_sequence_2,
-    #                   restriction_adding_sequence,
-    #                   classification_sequence],
+                      odrl_extraction_sequence],
     
     'generation': [default_refinement_sequence,
                    odrl_rule_generation_sequence]
diff --git a/tenet/structure/amr-rdf-schema.ttl b/tenet/structure/amr-rdf-schema.ttl
index 5b102697ec90857408d83d2d9cf64ccdce278345..0c8dd19cfe1b06336e7b6075ceab3f02f6544ea0 100644
--- a/tenet/structure/amr-rdf-schema.ttl
+++ b/tenet/structure/amr-rdf-schema.ttl
@@ -388,7 +388,7 @@ ns1:Role rdf:type owl:Class ;
 ###  https://amr.tetras-libre.fr/rdf/schema#phenomena_modality_possible
 :phenomena_modality_possible rdf:type owl:Class ;
                              rdfs:subClassOf :phenomena_modality ;
-                               :hasConceptLink "possible-01", "permit-01", "likely-01", "grant-01" ;
+                               :hasConceptLink "possible-01", "permit-01", "likely-01", "grant-01", "allow-01" ;
                                :label "possible-modality" .
 
 
diff --git a/tenet/structure/odrl-snet-schema.ttl b/tenet/structure/odrl-snet-schema.ttl
index 998691874b5541ad9d83020b5e570bbfcabc2c04..5037b557d4319c0d8b86d29af5227eae77624622 100644
--- a/tenet/structure/odrl-snet-schema.ttl
+++ b/tenet/structure/odrl-snet-schema.ttl
@@ -19,12 +19,6 @@ net:abstractionClass rdf:type owl:AnnotationProperty ;
                      rdfs:subPropertyOf net:objectValue .
 
 
-###  https://tenet.tetras-libre.fr/semantic-net#atomOf
-net:atomOf rdf:type owl:AnnotationProperty ;
-           rdfs:label "atom of" ;
-           rdfs:subPropertyOf net:typeProperty .
-
-
 ###  https://tenet.tetras-libre.fr/semantic-net#atomType
 net:atomType rdf:type owl:AnnotationProperty ;
              rdfs:label "atom type" ;
@@ -191,24 +185,12 @@ net:has_value rdf:type owl:AnnotationProperty ;
               rdfs:subPropertyOf net:netProperty .
 
 
-###  https://tenet.tetras-libre.fr/semantic-net#listBy
-net:listBy rdf:type owl:AnnotationProperty ;
-           rdfs:label "list by" ;
-           rdfs:subPropertyOf net:typeProperty .
-
-
 ###  https://tenet.tetras-libre.fr/semantic-net#listGuiding
 net:listGuiding rdf:type owl:AnnotationProperty ;
                 rdfs:label "Guiding connector of a list (or, and)" ;
                 rdfs:subPropertyOf net:objectValue .
 
 
-###  https://tenet.tetras-libre.fr/semantic-net#listOf
-net:listOf rdf:type owl:AnnotationProperty ;
-           rdfs:label "list of" ;
-           rdfs:subPropertyOf net:typeProperty .
-
-
 ###  https://tenet.tetras-libre.fr/semantic-net#modCat1
 net:modCat1 rdf:type owl:AnnotationProperty ;
             rdfs:label "Modality Category (level 1)" ;
@@ -243,23 +225,12 @@ net:objectValue rdf:type owl:AnnotationProperty ;
                 rdfs:subPropertyOf net:objectProperty .
 
 
-###  https://tenet.tetras-libre.fr/semantic-net#relationOf
-net:relationOf rdf:type owl:AnnotationProperty ;
-               rdfs:label "relation of" ;
-               rdfs:subPropertyOf net:typeProperty .
-
-
 ###  https://tenet.tetras-libre.fr/semantic-net#type
 net:type rdf:type owl:AnnotationProperty ;
          rdfs:label "type "@fr ;
          rdfs:subPropertyOf net:netProperty .
 
 
-###  https://tenet.tetras-libre.fr/semantic-net#typeProperty
-net:typeProperty rdf:type owl:AnnotationProperty ;
-                 rdfs:label "type property" .
-
-
 ###  https://tenet.tetras-libre.fr/semantic-net#verbClass
 net:verbClass rdf:type owl:AnnotationProperty ;
               rdfs:label "verb class" ;
diff --git a/tenet/tenet.log b/tenet/tenet.log
index f0f2598fbe69e0c8f12b4b868e1b3f3cf3aff6a1..d1e6c869d465d1d439761a6ce9330f5f3c6eabcc 100644
--- a/tenet/tenet.log
+++ b/tenet/tenet.log
@@ -3,8 +3,8 @@
  === Process Initialization === 
 - INFO - -- Process Setting 
 - INFO - ----- Corpus source: /home/lamenji/Workspace/Tetras/tenet/tests/input/amrDocuments/dev/asail_odrl_sentences/s01.stog.amr.ttl (amr)
-- INFO - ----- Base output dir: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230411/aos01_factoid.ttl
-- INFO - ----- technical dir path: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230411/technical-data/
+- INFO - ----- Base output dir: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230412/aos01_factoid.ttl
+- INFO - ----- technical dir path: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230412/technical-data/
 - INFO - ----- Ontology target (id): https://tenet.tetras-libre.fr/demo/clara/01/
 - INFO - ----- Current path: /home/lamenji/Workspace/Tetras/tenet/tenet
 - DEBUG - ----- Config file: /home/lamenji/Workspace/Tetras/tenet/tenet/config.xml
@@ -26,10 +26,10 @@
   ----- CTS directory: ./scheme/
   ----- target frame directory: ./../input/targetFrameStructure/
   ----- input document directory: 
-  ----- base output dir: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230411/aos01_factoid.ttl
-  ----- output directory: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230411/aos01_factoid.ttltenet.tetras-libre.fr_demo_clara_01-20230411/
-  ----- sentence output directory: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230411/technical-data/
-  ----- technical dir path: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230411/technical-data/
+  ----- base output dir: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230412/aos01_factoid.ttl
+  ----- output directory: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230412/aos01_factoid.ttltenet.tetras-libre.fr_demo_clara_01-20230412/
+  ----- sentence output directory: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230412/technical-data/
+  ----- technical dir path: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230412/technical-data/
   -- Config File Definition
   ----- schema file: ./structure/amr-rdf-schema.ttl
   ----- semantic net file: ./structure/odrl-snet-schema.ttl
@@ -47,23 +47,23 @@
   ----- frame ontology seed file: ./../input/targetFrameStructure/base-ontology-seed.ttl
   -- Output
   ----- ontology namespace: https://tenet.tetras-libre.fr/base-ontology/
-  ----- output file: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230411/technical-data/tenet.tetras-libre.fr_demo_clara_01.ttl
+  ----- output file: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230412/technical-data/tenet.tetras-libre.fr_demo_clara_01.ttl
   *** - *** 
 - INFO - 
  === Extraction Processing === 
 - INFO - -- Work Structure Preparation
 - DEBUG - --- Graph Initialization
 - DEBUG - ----- Configuration Loading
-- DEBUG - -------- RDF Schema (315)
-- DEBUG - -------- Semantic Net Definition (475)
-- DEBUG - -------- Config Parameter Definition (509)
+- DEBUG - -------- RDF Schema (316)
+- DEBUG - -------- Semantic Net Definition (462)
+- DEBUG - -------- Config Parameter Definition (496)
 - DEBUG - ----- Frame Ontology Loading
-- DEBUG - -------- Base Ontology produced as output (539)
+- DEBUG - -------- Base Ontology produced as output (526)
 - DEBUG - --- Source Data Import
 - DEBUG - ----- Sentence Loading
-- DEBUG - -------- /home/lamenji/Workspace/Tetras/tenet/tests/input/amrDocuments/dev/asail_odrl_sentences/s01.stog.amr.ttl (556)
+- DEBUG - -------- /home/lamenji/Workspace/Tetras/tenet/tests/input/amrDocuments/dev/asail_odrl_sentences/s01.stog.amr.ttl (543)
 - DEBUG - --- Export work graph as turtle
-- DEBUG - ----- Work graph file: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230411/technical-data/tenet.tetras-libre.fr_demo_clara_01-0/tenet.tetras-libre.fr_demo_clara_01.ttl 
+- DEBUG - ----- Work graph file: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230412/technical-data/tenet.tetras-libre.fr_demo_clara_01-0/tenet.tetras-libre.fr_demo_clara_01.ttl 
 - INFO - ----- Sentence (id): document-01
 - INFO - ----- Sentence (text): Movie9898 can be used.
 - INFO - -- Loading Extraction Scheme (amr_scheme_clara_1)
@@ -72,80 +72,81 @@
 - DEBUG - ----- Total rule number: 87
 - INFO - -- Applying extraction step: preprocessing
 - INFO - --- *** November Transduction *** Sequence: amrld-correcting-sequence
-- DEBUG - ----- fix-amr-bug-about-system-solar-planet: 0/0 new triple (556, 0:00:00.036256)
+- DEBUG - ----- fix-amr-bug-about-system-solar-planet: 0/0 new triple (543, 0:00:00.028270)
 - INFO - --- *** November Transduction *** Sequence: amr-reification-sequence
-- INFO - ----- reclassify-concept-1: 5/5 new triples (561, 0:00:00.138418)
-- DEBUG - ----- reclassify-concept-2: 0/0 new triple (561, 0:00:00.089553)
-- INFO - ----- reclassify-concept-3: 4/4 new triples (565, 0:00:00.064027)
-- INFO - ----- reclassify-concept-4: 4/4 new triples (569, 0:00:00.085822)
-- DEBUG - ----- reclassify-concept-5: 0/0 new triple (569, 0:00:00.064385)
-- DEBUG - ----- reify-roles-as-concept: 0/0 new triple (569, 0:00:00.163300)
-- INFO - ----- reclassify-existing-variable: 13/13 new triples (582, 0:00:00.041098)
-- DEBUG - ----- add-new-variable-for-reified-concept: 0/0 new triple (582, 0:00:00.074518)
-- INFO - ----- add-amr-leaf-for-reclassified-concept: 9/9 new triples (591, 0:00:00.044130)
-- DEBUG - ----- add-amr-leaf-for-reified-concept: 0/0 new triple (591, 0:00:00.049568)
-- INFO - ----- add-amr-edge-for-core-relation: 6/6 new triples (597, 0:00:00.127213)
-- DEBUG - ----- add-amr-edge-for-reified-concept: 0/0 new triple (597, 0:00:00.104635)
-- INFO - ----- add-amr-edge-for-name-relation: 5/5 new triples (602, 0:00:00.097994)
-- DEBUG - ----- add-value-for-quant-relation: 0/0 new triple (602, 0:00:00.101918)
-- DEBUG - ----- add-amr-edge-for-polarity-relation: 0/0 new triple (602, 0:00:00.102668)
-- INFO - ----- update-amr-edge-role-1: 3/3 new triples (605, 0:00:00.037165)
-- INFO - ----- add-amr-root: 5/5 new triples (610, 0:00:00.034615)
+- INFO - ----- reclassify-concept-1: 5/5 new triples (548, 0:00:00.104339)
+- DEBUG - ----- reclassify-concept-2: 0/0 new triple (548, 0:00:00.158565)
+- INFO - ----- reclassify-concept-3: 4/4 new triples (552, 0:00:00.045084)
+- INFO - ----- reclassify-concept-4: 4/4 new triples (556, 0:00:00.064150)
+- DEBUG - ----- reclassify-concept-5: 0/0 new triple (556, 0:00:00.053422)
+- DEBUG - ----- reify-roles-as-concept: 0/0 new triple (556, 0:00:00.044123)
+- INFO - ----- reclassify-existing-variable: 13/13 new triples (569, 0:00:00.035977)
+- DEBUG - ----- add-new-variable-for-reified-concept: 0/0 new triple (569, 0:00:00.055366)
+- INFO - ----- add-amr-leaf-for-reclassified-concept: 9/9 new triples (578, 0:00:00.036535)
+- DEBUG - ----- add-amr-leaf-for-reified-concept: 0/0 new triple (578, 0:00:00.030991)
+- INFO - ----- add-amr-edge-for-core-relation: 6/6 new triples (584, 0:00:00.095660)
+- DEBUG - ----- add-amr-edge-for-reified-concept: 0/0 new triple (584, 0:00:00.077738)
+- INFO - ----- add-amr-edge-for-name-relation: 5/5 new triples (589, 0:00:00.076647)
+- DEBUG - ----- add-value-for-quant-relation: 0/0 new triple (589, 0:00:00.076118)
+- DEBUG - ----- add-amr-edge-for-polarity-relation: 0/0 new triple (589, 0:00:00.086418)
+- INFO - ----- update-amr-edge-role-1: 3/3 new triples (592, 0:00:00.032250)
+- INFO - ----- add-amr-root: 5/5 new triples (597, 0:00:00.025676)
 - DEBUG - --- Serializing graph to tenet.tetras-libre.fr_demo_clara_01_preprocessing 
 - DEBUG - ----- step: preprocessing
 - DEBUG - ----- id: https://tenet.tetras-libre.fr/demo/clara/01/
-- DEBUG - ----- work_file: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230411/technical-data/tenet.tetras-libre.fr_demo_clara_01-0/tenet.tetras-libre.fr_demo_clara_01_preprocessing.ttl
+- DEBUG - ----- work_file: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230412/technical-data/tenet.tetras-libre.fr_demo_clara_01-0/tenet.tetras-libre.fr_demo_clara_01_preprocessing.ttl
 - DEBUG - ----- base: http://https://tenet.tetras-libre.fr/demo/clara/01//preprocessing
 - INFO - ----- 54 triples extracted during preprocessing step
 - INFO - -- Applying extraction step: transduction
 - INFO - --- *** February Transduction *** Sequence: atomic extraction sequence
-- INFO - ----- extract atom classes: 6/6 new triples (616, 0:00:00.049375)
-- INFO - ----- extract atom individuals: 7/7 new triples (623, 0:00:00.058985)
-- INFO - ----- extract atomic properties: 12/12 new triples (635, 0:00:00.056138)
-- INFO - ----- extract atom values: 4/4 new triples (639, 0:00:00.044082)
-- INFO - ----- extract atom phenomena: 7/7 new triples (646, 0:00:00.037112)
-- INFO - ----- propagate atom relations: 4/12 new triples (650, 0:00:00.141900)
+- INFO - ----- extract atom classes: 6/6 new triples (603, 0:00:00.043952)
+- INFO - ----- extract atom individuals: 7/7 new triples (610, 0:00:00.043940)
+- INFO - ----- extract atomic properties: 12/12 new triples (622, 0:00:00.051127)
+- INFO - ----- extract atom values: 4/4 new triples (626, 0:00:00.027869)
+- INFO - ----- extract atom phenomena: 7/7 new triples (633, 0:00:00.040272)
+- INFO - ----- propagate atom relations: 4/12 new triples (637, 0:00:00.165620)
 - INFO - --- *** February Transduction *** Sequence: phenomena analyze sequence (1)
-- DEBUG - ----- analyze "polarity" phenomena: 0/0 new triple (650, 0:00:00.010470)
-- DEBUG - ----- analyze modifier phenomena (mod): 0/0 new triple (650, 0:00:00.012524)
+- DEBUG - ----- analyze "polarity" phenomena: 0/0 new triple (637, 0:00:00.009180)
+- DEBUG - ----- analyze modifier phenomena (mod): 0/0 new triple (637, 0:00:00.010339)
 - INFO - --- *** February Transduction *** Sequence: phenomena analyze sequence (2)
-- DEBUG - ----- analyze "or" phenomena (1): 0/0 new triple (650, 0:00:00.013205)
-- DEBUG - ----- analyze "or" phenomena (2): 0/0 new triple (650, 0:00:00.013459)
+- DEBUG - ----- analyze "or" phenomena (1): 0/0 new triple (637, 0:00:00.011306)
+- DEBUG - ----- analyze "or" phenomena (2): 0/0 new triple (637, 0:00:00.012883)
 - INFO - --- *** February Transduction *** Sequence: composite class extraction sequence
-- DEBUG - ----- extract composite classes (1): 0/0 new triple (650, 0:00:00.021303)
-- DEBUG - ----- extract composite classes (2): 0/0 new triple (650, 0:00:00.018889)
+- DEBUG - ----- extract composite classes (1): 0/0 new triple (637, 0:00:00.024933)
+- DEBUG - ----- extract composite classes (2): 0/0 new triple (637, 0:00:00.020872)
+- INFO - --- *** February Transduction *** Sequence: ODRL extraction sequence
+- DEBUG - ----- extract ODRL rules: 0/0 new triple (637, 0:00:00.066762)
 - DEBUG - --- Serializing graph to tenet.tetras-libre.fr_demo_clara_01_transduction 
 - DEBUG - ----- step: transduction
 - DEBUG - ----- id: https://tenet.tetras-libre.fr/demo/clara/01/
-- DEBUG - ----- work_file: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230411/technical-data/tenet.tetras-libre.fr_demo_clara_01-0/tenet.tetras-libre.fr_demo_clara_01_transduction.ttl
+- DEBUG - ----- work_file: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230412/technical-data/tenet.tetras-libre.fr_demo_clara_01-0/tenet.tetras-libre.fr_demo_clara_01_transduction.ttl
 - DEBUG - ----- base: http://https://tenet.tetras-libre.fr/demo/clara/01//transduction
 - INFO - ----- 40 triples extracted during transduction step
 - INFO - -- Applying extraction step: generation
 - INFO - --- *** February Transduction *** Sequence: ODRL Rule Generation Sequence
-- INFO - ----- generate ODRL rule: 1/1 new triple (651, 0:00:00.008208)
+- DEBUG - ----- generate ODRL rule: 0/0 new triple (637, 0:00:00.008132)
 - DEBUG - --- Serializing graph to tenet.tetras-libre.fr_demo_clara_01_generation 
 - DEBUG - ----- step: generation
 - DEBUG - ----- id: https://tenet.tetras-libre.fr/demo/clara/01/
-- DEBUG - ----- work_file: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230411/technical-data/tenet.tetras-libre.fr_demo_clara_01-0/tenet.tetras-libre.fr_demo_clara_01_generation.ttl
+- DEBUG - ----- work_file: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230412/technical-data/tenet.tetras-libre.fr_demo_clara_01-0/tenet.tetras-libre.fr_demo_clara_01_generation.ttl
 - DEBUG - ----- base: http://https://tenet.tetras-libre.fr/demo/clara/01//generation
-- INFO - ----- 1 triples extracted during generation step
-- DEBUG - --- Serializing graph to factoid file (/home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230411/technical-data/tenet.tetras-libre.fr_demo_clara_01-0/tenet.tetras-libre.fr_demo_clara_01_factoid.ttl)
-- DEBUG - ----- Number of factoids: 1
+- INFO - ----- 0 triples extracted during generation step
+- DEBUG - --- Serializing graph to factoid file (/home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230412/technical-data/tenet.tetras-libre.fr_demo_clara_01-0/tenet.tetras-libre.fr_demo_clara_01_factoid.ttl)
+- DEBUG - ----- Number of factoids: 0
 - DEBUG - ----- Graph base: http://https://tenet.tetras-libre.fr/demo/clara/01//factoid
 - INFO - 
  === Final Ontology Generation  === 
 - INFO - -- Making complete factoid graph by merging the result factoids
-- INFO - ----- Total factoid number: 1
+- INFO - ----- Total factoid number: 0
 - INFO - -- Serializing graph to factoid string
 - INFO - ----- Graph base: http://https://tenet.tetras-libre.fr/demo/clara/01//factoid
 - INFO - -- Serializing graph to factoid file
-- INFO - ----- Ontology Turtle File: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230411/aos01_factoid.ttl
+- INFO - ----- Ontology Turtle File: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos01-20230412/aos01_factoid.ttl
 - INFO - 
  === Done === 
 - INFO - 
   *** Execution Time *** 
 ----- Function: create_ontology_from_amrld_file (tenet.main)
------ Total Time: 0:00:02.351338
------ Process Time: 0:00:02.303288
+----- Total Time: 0:00:02.039175
+----- Process Time: 0:00:01.996954
   *** - *** 
-- DEBUG - handle_close[88d346bad84911ed9c6914abc581ea52]({'header': {'msg_id': 'e2e4aee1-6cb9e7de392b41ee961b7195_10499_244', 'msg_type': 'comm_close', 'username': 'lamenji', 'session': 'e2e4aee1-6cb9e7de392b41ee961b7195', 'date': datetime.datetime(2023, 4, 11, 15, 30, 50, 117111, tzinfo=tzutc()), 'version': '5.3'}, 'msg_id': 'e2e4aee1-6cb9e7de392b41ee961b7195_10499_244', 'msg_type': 'comm_close', 'parent_header': {}, 'metadata': {}, 'content': {'comm_id': '88d346bad84911ed9c6914abc581ea52', 'data': {}}, 'buffers': []})
diff --git a/tenet/transduction/net/__init__.py b/tenet/transduction/net/__init__.py
index fc989f72a52b422475ae61935310a9d4e6ab0783..c95236317212287cae0b18ce85c74063d777f01a 100644
--- a/tenet/transduction/net/__init__.py
+++ b/tenet/transduction/net/__init__.py
@@ -21,3 +21,4 @@ from transduction.net.restriction_net import RestrictionNet
 from transduction.net.axiom_net import AxiomNet
 
 from transduction.net.rule_net import RuleNet
+from transduction.net.action_net import ActionNet
diff --git a/tenet/transduction/net/action_net.py b/tenet/transduction/net/action_net.py
new file mode 100644
index 0000000000000000000000000000000000000000..db18533247a76c48104e475ae7b018726e5e83ef
--- /dev/null
+++ b/tenet/transduction/net/action_net.py
@@ -0,0 +1,65 @@
+#!/usr/bin/python3.10
+# -*-coding:Utf-8 -*
+
+#==============================================================================
+# TENET: Class Net
+#------------------------------------------------------------------------------
+# Class to handle semantic nets 
+#==============================================================================
+
+from transduction.net import Net
+from transduction.rdfterm_computer import produce_uriref, produce_literal
+
+
+#==============================================================================
+# Net Class
+#==============================================================================
+
+class ActionNet(Net):
+    """ Class to handle semantic net.
+    """
+    
+    #--------------------------------------------------------------------------
+    # Constructor(s)
+    #--------------------------------------------------------------------------
+           
+    def __init__(self, support_graph, uri=None):
+
+        # -- Parent init
+        super().__init__(support_graph, uri)
+        
+        # -- Net Type
+        self.type_name = 'action'
+        self.type_id = 'Action_Net'
+        self.type_uri = f'net:{self.type_id}'
+        
+        # -- Net Attributes
+        self.attr_list += ['action_name', 'target_net']
+        self._action_name = None
+        self._target_net = None
+  
+        
+    #--------------------------------------------------------------------------
+    # Accessors for Net Attributes
+    #--------------------------------------------------------------------------
+        
+    @property
+    def action_name(self):
+        if self._action_name is None: 
+            self._action_name = self.get_value_list_from_graph('action_name')
+        return self._action_name
+    
+    @action_name.setter
+    def action_name(self, new_value):
+        self._action_name = self.set_attribute_value_list(new_value, produce_literal)
+        
+        
+    @property
+    def target_net(self):
+        if self._target_net is None: 
+            self._target_net = self.get_value_list_from_graph('target_net')
+        return self._target_net
+    
+    @target_net.setter
+    def target_net(self, new_value):
+        self._target_net = self.set_attribute_value_list(new_value, produce_uriref)
diff --git a/tenet/transduction/net/rule_net.py b/tenet/transduction/net/rule_net.py
index 6d4e2d36ad729032701f7ba0ac1e4510b0a5fc6e..d024ce4449f701b6d7ecaff0d0404777c419d6c6 100644
--- a/tenet/transduction/net/rule_net.py
+++ b/tenet/transduction/net/rule_net.py
@@ -34,9 +34,9 @@ class RuleNet(Net):
         self.type_uri = f'net:{self.type_id}'
         
         # -- Net Attributes
-        self.attr_list += ['rule_name', 'rule_uri']
-        self._rule_name = None
-        self._rule_uri = None
+        self.attr_list += ['rule_relation_name', 'rule_action_net']
+        self._rule_relation_name = None
+        self._rule_action_net = None
   
         
     #--------------------------------------------------------------------------
@@ -44,22 +44,22 @@ class RuleNet(Net):
     #--------------------------------------------------------------------------
         
     @property
-    def rule_name(self):
-        if self._rule_name is None: 
-            self._rule_name = self.get_value_list_from_graph('rule_name')
-        return self._rule_name
+    def rule_relation_name(self):
+        if self._rule_relation_name is None: 
+            self._rule_relation_name = self.get_value_list_from_graph('rule_relation_name')
+        return self._rule_relation_name
     
-    @rule_name.setter
-    def rule_name(self, new_value):
-        self._rule_name = self.set_attribute_value_list(new_value, produce_literal)
+    @rule_relation_name.setter
+    def rule_relation_name(self, new_value):
+        self._rule_relation_name = self.set_attribute_value_list(new_value, produce_literal)
         
         
     @property
-    def rule_uri(self):
-        if self._rule_uri is None: 
-            self._rule_uri = self.get_value_list_from_graph('rule_uri')
-        return self._rule_uri
+    def rule_action_net(self):
+        if self._rule_action_net is None: 
+            self._rule_action_net = self.get_value_list_from_graph('rule_action_net')
+        return self._rule_action_net
     
-    @rule_uri.setter
-    def rule_uri(self, new_value):
-        self._rule_uri = self.set_attribute_value_list(new_value, produce_uriref)
+    @rule_action_net.setter
+    def rule_action_net(self, new_value):
+        self._rule_action_net = self.set_attribute_value_list(new_value, produce_uriref)
diff --git a/tenet/transduction/semantic_net_rdf_reference.py b/tenet/transduction/semantic_net_rdf_reference.py
index c16f0069c170d40c4713e1d168396d3070bab6ec..d3fb52af5e04a24fb04847c300f7be5c78d9b473 100644
--- a/tenet/transduction/semantic_net_rdf_reference.py
+++ b/tenet/transduction/semantic_net_rdf_reference.py
@@ -75,6 +75,19 @@ class SemanticNetReferenceHandle:
             'axiom_uri':                'hasAxiomURI',
             'axiom_net_argument':       'hasNetArgument',
             
+            # Action Net
+            'action_name':              'hasActionName',
+            'target_net':               'hasTargetNet',
+            
+            # Rule Net
+            'rule_relation_name':       'hasRuleRelationName',
+            'rule_action_net':          'hasRuleActionURI',
+            
+            # Action Net
+            'axiom_name':               'hasAxiomName',
+            'axiom_uri':                'hasAxiomURI',
+            'axiom_net_argument':       'hasNetArgument',
+            
             # URI for OWL declaration
             'class_uri':                'hasClassURI',
             'property_uri':             'hasPropertyURI',