diff --git a/config/transduction-schemes.ttl b/config/transduction-schemes.ttl
index 755fcaf6b6078efbc2dcb706e3af075bd1e40f50..766259e72138ab474bdbbf1c6c69b89a6970bd32 100644
--- a/config/transduction-schemes.ttl
+++ b/config/transduction-schemes.ttl
@@ -90,7 +90,7 @@ WHERE {
    BIND (concat(?s1, '_', ?mainInstance) AS ?s6).
    BIND (uri(?s6) AS ?mainInstanceUri).
 }""" ;
-  sh:order "204"^^xsd:decimal ;
+  sh:order "514"^^xsd:decimal ;
 .
 cts:add-disjunctive-entity-classes
   rdf:type sh:SPARQLRule ;
@@ -158,7 +158,7 @@ WHERE {
    BIND (concat(?s1, '_', ?mainInstance) AS ?s6).
    BIND (uri(?s6) AS ?mainInstanceUri).
 }""" ;
-  sh:order "203"^^xsd:decimal ;
+  sh:order "513"^^xsd:decimal ;
 .
 cts:add-disjunctive-entity-classes-2--old
   rdf:type sh:SPARQLRule ;
@@ -266,7 +266,46 @@ WHERE {
    BIND (concat(?s1, '_', ?mainInstance) AS ?s3).
    BIND (uri(?s3) AS ?mainInstanceUri).
 }""" ;
-  sh:order "201"^^xsd:decimal ;
+  sh:order "511"^^xsd:decimal ;
+.
+cts:add-feature-classes
+  rdf:type sh:SPARQLRule ;
+  rdfs:label "add-entity-classes" ;
+  sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#>
+PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
+PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#>
+PREFIX net: <https://unsel.tetras-libre.fr/tenet/semantic-net#>
+PREFIX cprm: <https://unsel.tetras-libre.fr/tenet/config/parameters#>
+PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#>
+PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology#>
+PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
+
+# -- Add Entity class / instance in System Ontology
+CONSTRUCT { 
+   # Classification
+   ?mainFeatureUri rdfs:subClassOf ?featureUri.
+   ?mainFeatureUri rdfs:label ?mainFeature.
+   # Instantiation: no instance for feature
+}
+WHERE {
+   # net1: entity
+   ?net1 a net:Instance.
+   ?net1 net:type net:feature.
+   ?net1 net:featureClass ?featureClass.
+   ?net1 net:concept ?mainFeature.	
+   # Filter: entity not present in a class list
+   FILTER NOT EXISTS  { ?net2 net:class2 ?mainFeature}
+   # Label(s) / URI (for classes)
+   cprm:Config_Parameters cprm:baseURI ?baseURI.
+   fprm:System_Ontology fprm:frameURI ?frameURI.
+   BIND (concat( ?frameURI, ?featureClass) AS ?s1).
+   BIND (concat(?s1, '_', ?mainFeature) AS ?s2).
+   BIND (uri( ?s1) AS ?featureUri).
+   BIND (uri(?s2) AS ?mainFeatureUri).
+}""" ;
+  sh:order "501"^^xsd:decimal ;
 .
 cts:add-list-of-entity-classes
   rdf:type sh:SPARQLRule ;
@@ -315,7 +354,7 @@ WHERE {
    BIND (concat(?s1, '_', ?mainInstance) AS ?s4).
    BIND (uri(?s4) AS ?mainInstanceUri).
 }""" ;
-  sh:order "202"^^xsd:decimal ;
+  sh:order "512"^^xsd:decimal ;
 .
 cts:bypass-reification
   rdf:type sh:SPARQLRule ;
@@ -411,7 +450,7 @@ WHERE {
    BIND (concat(?s1, ?uw1Id, '-', ?uw2Id) AS ?s2).
    BIND (uri(?s2) AS ?newNet).
 }""" ;
-  sh:order "121"^^xsd:decimal ;
+  sh:order "221"^^xsd:decimal ;
 .
 cts:compose-entity-modlist-2
   rdf:type sh:SPARQLRule ;
@@ -486,7 +525,7 @@ WHERE {
    BIND (concat(?s1, ?uw1Id, '-', ?uw2Id) AS ?s2).
    BIND (uri(?s2) AS ?newNet).
 }""" ;
-  sh:order "122"^^xsd:decimal ;
+  sh:order "222"^^xsd:decimal ;
 .
 cts:compose-entity-modlist-3
   rdf:type sh:SPARQLRule ;
@@ -558,7 +597,7 @@ WHERE {
    BIND (concat(?s1, ?uw1Id, '-', ?uw2Id) AS ?s2).
    BIND (uri(?s2) AS ?newNet).
 }""" ;
-  sh:order "123"^^xsd:decimal ;
+  sh:order "223"^^xsd:decimal ;
 .
 cts:create-entity-net
   rdf:type sh:SPARQLRule ;
@@ -601,6 +640,50 @@ WHERE {
    BIND (uri(?s2) AS ?semNet).
    # Filter
    FILTER ( regex(str(?uw1Label),str(?entityRestriction))  ).
+}""" ;
+  sh:order "201"^^xsd:decimal ;
+.
+cts:create-feature-net
+  rdf:type sh:SPARQLRule ;
+  sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#>
+PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
+PREFIX unl: <https://unl.tetras-libre.fr/rdf/schema#>
+PREFIX net: <https://unsel.tetras-libre.fr/tenet/semantic-net#>
+PREFIX cprm: <https://unsel.tetras-libre.fr/tenet/config/parameters#>
+PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#>
+PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology#>
+PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
+    
+# -- Create Feature net
+CONSTRUCT { 
+   ?semNet a net:Instance.
+   ?semNet net:type net:feature.
+   ?semNet net:structure ?req.
+   ?semNet net:node ?uw1.
+   ?semNet net:featureClass ?featureClass.
+   ?semNet net:concept ?concept1. 
+}
+WHERE {
+   # Feature (from System Ontology)
+   ?entity rdf:type fprm:System_Feature.
+   ?entity fprm:class ?featureClass.
+   ?entity fprm:restriction ?featureRestriction.
+   # UW: type UW-Occurrence and substructure of req sentence
+   ?uw1 rdf:type unl:UW_Occurrence.
+   ?uw1 unl:is_substructure_of ?req.
+   # ------ ?uw1 unl:is_occurrence_of ?lexTrg.
+   # Label(s) / URI
+   ?uw1 rdfs:label ?uw1Label.
+   ?uw1 unl:has_id ?uw1Id.
+   cprm:Config_Parameters cprm:netURI ?netURI
+   BIND (strbefore(?uw1Label, '(') AS ?concept1).
+   BIND (concat( ?netURI, ?featureClass, '_') AS ?s1).
+   BIND (concat(?s1, ?uw1Id) AS ?s2).
+   BIND (uri(?s2) AS ?semNet).
+   # Filter
+   FILTER ( regex(str(?uw1Label),str(?featureRestriction))  ).
 }""" ;
   sh:order "101"^^xsd:decimal ;
 .
@@ -787,7 +870,18 @@ WHERE {
    BIND (strbefore(?uw1Label, '(') AS ?concept1)
    BIND (strbefore(?uw2Label, '(') AS ?concept2)
 }""" ;
-  sh:order "112"^^xsd:decimal ;
+  sh:order "212"^^xsd:decimal ;
+.
+cts:feature_extraction
+  rdf:type owl:Class ;
+  rdf:type sh:NodeShape ;
+  rdfs:label "feature extraction" ;
+  rdfs:subClassOf cts:net_extension ;
+  sh:rule cts:create-feature-net ;
+.
+cts:feature_extraction_1
+  rdf:type cts:feature_extraction ;
+  rdfs:label "feature extraction 1" ;
 .
 cts:generation
   rdf:type owl:Class ;
@@ -797,6 +891,7 @@ cts:generation
   sh:rule cts:add-conjunctive-entity-classes ;
   sh:rule cts:add-disjunctive-entity-classes ;
   sh:rule cts:add-entity-classes ;
+  sh:rule cts:add-feature-classes ;
   sh:rule cts:add-list-of-entity-classes ;
 .
 cts:generation_1
@@ -844,7 +939,7 @@ WHERE {
    BIND (concat(?s1, ?uw1Id) AS ?s2).
    BIND (uri(?s2) AS ?semNet).
 }""" ;
-  sh:order "111"^^xsd:decimal ;
+  sh:order "211"^^xsd:decimal ;
 .
 cts:instantiate-classlist-by-extension-1
   rdf:type sh:SPARQLRule ;
@@ -880,7 +975,7 @@ WHERE {
    # Filter
    FILTER NOT EXISTS { ?net2 net:entityInstance ?instanceName2 } .
 }""" ;
-  sh:order "124"^^xsd:decimal ;
+  sh:order "224"^^xsd:decimal ;
 .
 cts:instantiate-classlist-by-extension-2
   rdf:type sh:SPARQLRule ;
@@ -916,7 +1011,7 @@ WHERE {
    # Filter
    FILTER NOT EXISTS { ?net2 net:entityInstance ?instanceName2 } .
 }""" ;
-  sh:order "125"^^xsd:decimal ;
+  sh:order "225"^^xsd:decimal ;
 .
 cts:instantiate-entity-classes--old
   rdf:type sh:SPARQLRule ;
@@ -995,7 +1090,7 @@ WHERE {
    ?uw1 unl:has_id ?uw1Id.
    BIND (?uw1Id AS ?instanceName).
 }""" ;
-  sh:order "102"^^xsd:decimal ;
+  sh:order "202"^^xsd:decimal ;
 .
 cts:link-to-scope-entry
   rdf:type sh:SPARQLRule ;
@@ -1040,6 +1135,12 @@ cts:preprocessing
   sh:rule cts:bypass-reification ;
   sh:rule cts:link-to-scope-entry ;
 .
+cts:property_extraction
+  rdf:type owl:Class ;
+  rdf:type sh:NodeShape ;
+  rdfs:label "property extraction" ;
+  rdfs:subClassOf cts:net_extension ;
+.
 cts:typify-modlist-entity
   rdf:type sh:SPARQLRule ;
   sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#>
@@ -1076,7 +1177,7 @@ WHERE {
    # Filter
    FILTER ( regex(str(?uw1Label),str(?entityRestriction)) ).
 }""" ;
-  sh:order "113"^^xsd:decimal ;
+  sh:order "213"^^xsd:decimal ;
 .
 cts:typify-modlist-feature
   rdf:type sh:SPARQLRule ;
@@ -1114,5 +1215,5 @@ WHERE {
    # Filter
    FILTER ( regex(str(?uw1Label),str(?featureRestriction))  ).
 }""" ;
-  sh:order "114"^^xsd:decimal ;
+  sh:order "214"^^xsd:decimal ;
 .