diff --git a/.gitignore b/.gitignore
index 4f20399b64dfb8ff5400aa713f3c420443384b1c..fbb09710f37f602680fd154a081131b32ab184f6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,4 +5,4 @@ devtemp*.py
 corpus/CCTP-SRSA-IP*
 .project
 *.ttl.tbc
-output.ttl
+output*.ttl
diff --git a/config/semantic-net.ttl b/config/semantic-net.ttl
index 1b3b04e3000e96c28cdf6f3b3f7dae531e18c18a..1aba98fa04ab448ff342876d0f2e2a7607986608 100644
--- a/config/semantic-net.ttl
+++ b/config/semantic-net.ttl
@@ -53,7 +53,7 @@ net:complement_mod_list
 net:concept
   rdf:type rdf:Property ;
   rdfs:label "concept "@fr ;
-  rdfs:subPropertyOf net:value ;
+  rdfs:subPropertyOf net:objectValue ;
 .
 net:entity
   rdf:type owl:Class ;
@@ -63,12 +63,12 @@ net:entity
 net:entityClass
   rdf:type rdf:Property ;
   rdfs:label "entity class" ;
-  rdfs:subPropertyOf net:value ;
+  rdfs:subPropertyOf net:objectValue ;
 .
 net:entityInstance
   rdf:type rdf:Property ;
   rdfs:label "entity instance" ;
-  rdfs:subPropertyOf net:value ;
+  rdfs:subPropertyOf net:objectValue ;
 .
 net:entity_class_list
   rdf:type owl:Class ;
@@ -83,63 +83,63 @@ net:entity_mod_list
 net:featureClass
   rdf:type rdf:Property ;
   rdfs:label "feature class" ;
-  rdfs:subPropertyOf net:value ;
+  rdfs:subPropertyOf net:objectValue ;
 .
 net:has_entity
   rdf:type rdf:Property ;
   rdfs:label "has entity" ;
-  rdfs:subPropertyOf net:relation ;
+  rdfs:subPropertyOf net:has_object ;
 .
 net:has_feature
   rdf:type rdf:Property ;
   rdfs:label "has feature" ;
-  rdfs:subPropertyOf net:relation ;
+  rdfs:subPropertyOf net:has_object ;
 .
 net:has_mainClass
   rdf:type rdf:Property ;
   rdfs:label "has main class" ;
-  rdfs:subPropertyOf net:relation ;
+  rdfs:subPropertyOf net:has_object ;
+.
+net:has_node
+  rdf:type rdf:Property ;
+  rdfs:label "UNL Node" ;
+  rdfs:subPropertyOf net:property ;
+.
+net:has_object
+  rdf:type rdf:Property ;
+  rdfs:label "relation" ;
+  rdfs:subPropertyOf net:property ;
+.
+net:has_structure
+  rdf:type rdf:Property ;
+  rdfs:label "Linguistic Structure (in UNL Document)" ;
+  rdfs:subPropertyOf net:property ;
 .
 net:has_subClass
   rdf:type rdf:Property ;
   rdfs:label "has sub class" ;
-  rdfs:subPropertyOf net:relation ;
+  rdfs:subPropertyOf net:has_object ;
 .
 net:listGuiding
   rdf:type rdf:Property ;
   rdfs:label "Guiding connector of a list (or, and)" ;
-  rdfs:subPropertyOf net:value ;
+  rdfs:subPropertyOf net:objectValue ;
 .
 net:modCat1
   rdf:type rdf:Property ;
   rdfs:label "Modality Category (level 1)" ;
-  rdfs:subPropertyOf net:value ;
+  rdfs:subPropertyOf net:objectValue ;
 .
 net:modCat2
   rdf:type rdf:Property ;
   rdfs:label "Modality Category (level 2)" ;
-  rdfs:subPropertyOf net:value ;
+  rdfs:subPropertyOf net:objectValue ;
 .
 net:mod_list
   rdf:type owl:Class ;
   rdfs:label "modList" ;
   rdfs:subClassOf net:Type ;
 .
-net:node
-  rdf:type rdf:Property ;
-  rdfs:label "UNL Node" ;
-  rdfs:subPropertyOf net:property ;
-.
-net:objLS
-  rdf:type rdf:Property ;
-  rdfs:label "Object Linguistic Structure" ;
-  rdfs:subPropertyOf net:objectAttribute ;
-.
-net:objUW
-  rdf:type rdf:Property ;
-  rdfs:label "Object Universal Word" ;
-  rdfs:subPropertyOf net:objectAttribute ;
-.
 net:objectAttribute
   rdf:type rdf:Property ;
   rdfs:label "object attribute" ;
@@ -147,29 +147,19 @@ net:objectAttribute
 net:objectType
   rdf:type rdf:Property ;
   rdfs:label "object type" ;
-  rdfs:subPropertyOf net:property ;
-.
-net:property
-  rdf:type rdf:Property ;
-  rdfs:label "netProperty" ;
+  rdfs:subPropertyOf net:objectAttribute ;
 .
-net:relation
+net:objectValue
   rdf:type rdf:Property ;
-  rdfs:label "relation" ;
-  rdfs:subPropertyOf net:property ;
+  rdfs:label "valuations"@fr ;
+  rdfs:subPropertyOf net:objectAttribute ;
 .
-net:structure
+net:property
   rdf:type rdf:Property ;
-  rdfs:label "Linguistic Structure (in UNL Document)" ;
-  rdfs:subPropertyOf net:property ;
+  rdfs:label "netProperty" ;
 .
 net:type
   rdf:type rdf:Property ;
   rdfs:label "type "@fr ;
   rdfs:subPropertyOf net:property ;
 .
-net:value
-  rdf:type rdf:Property ;
-  rdfs:label "valuations"@fr ;
-  rdfs:subPropertyOf net:property ;
-.
diff --git a/config/transduction-schemes.ttl b/config/transduction-schemes.ttl
index 83676980e3591b90e59408de7543ee1befc1798e..75a476c46bd5f236f8a2c5cceb6147ff9601a846 100644
--- a/config/transduction-schemes.ttl
+++ b/config/transduction-schemes.ttl
@@ -54,12 +54,15 @@ WHERE {
    ?net1 a net:Instance.
    ?net1 net:type net:entity_class_list.
    ?net1 net:entityClass ?entityClass.
-   ?net1 net:node ?uw2.
-   ?net1 net:node ?uw3.
-   ?net1 net:has_mainClass ?mainEntity.		
-   ?net1 net:has_subClass ?subEntity2.	
-   ?net1 net:has_subClass ?subEntity3.		
-   ?net1 net:entityInstance ?mainInstance.	
+   ?net1 net:has_node ?uw2, ?uw3.
+   ?net1 net:has_mainClass ?mainEntityObject.	
+   ?mainEntityObject net:concept ?mainEntity.
+   ?net1 net:has_subClass ?subEntityObject2, ?subEntityObject3.	
+   ?subEntityObject2 net:concept ?subEntity2.
+   ?subEntityObject2 net:has_node ?uw2.
+   ?subEntityObject3 net:concept ?subEntity3.
+   ?subEntityObject3 net:has_node ?uw3.
+   ?subEntityObject3 net:entityInstance ?mainInstance.	
    # extension: disjunction of UW
    ?uw2 unl:and ?uw3.
   # --old --- FILTER NOT EXISTS  { ?net2 net:has_subClass ?mainEntity }.
@@ -70,8 +73,8 @@ WHERE {
    BIND (strbefore(?uw2Label, '(') AS ?concept2)
    BIND (strbefore(?uw3Label, '(') AS ?concept3)
    BIND (concat(?concept2, '-or-', ?concept3) AS ?concept23)
-   FILTER ( STRSTARTS(?subEntity2, ?concept2) ).
-   FILTER ( STRSTARTS(?subEntity3, ?concept3) ).
+   # --old --- FILTER ( STRSTARTS(?subEntity2, ?concept2) ).
+   # --old --- FILTER ( STRSTARTS(?subEntity3, ?concept3) ).
    # -- old --- BIND (concat(?concept2, '_', ?mainEntity) AS ?subEntity2).
    # -- old --- BIND (concat(?concept3, '_', ?mainEntity) AS ?subEntity3).
    BIND (concat(?concept23, '_', ?mainEntity) AS ?subEntity23).
@@ -123,12 +126,15 @@ WHERE {
    ?net1 a net:Instance.
    ?net1 net:type net:entity_class_list.
    ?net1 net:entityClass ?entityClass.
-   ?net1 net:node ?uw2.
-   ?net1 net:node ?uw3.
-   ?net1 net:has_mainClass ?mainEntity.		
-   ?net1 net:has_subClass ?subEntity2.	
-   ?net1 net:has_subClass ?subEntity3.		
-   ?net1 net:entityInstance ?mainInstance.	
+   ?net1 net:has_node ?uw2, ?uw3.
+   ?net1 net:has_mainClass ?mainEntityObject.	
+   ?mainEntityObject net:concept ?mainEntity.
+   ?net1 net:has_subClass ?subEntityObject2, ?subEntityObject3.	
+   ?subEntityObject2 net:concept ?subEntity2.
+   ?subEntityObject2 net:has_node ?uw2.
+   ?subEntityObject3 net:concept ?subEntity3.
+   ?subEntityObject3 net:has_node ?uw3.	
+   ?subEntityObject3 net:entityInstance ?mainInstance.	
    # extension: disjunction of UW
    ?uw2 unl:or ?uw3.
   # --old --- FILTER NOT EXISTS  { ?net2 net:has_subClass ?mainEntity }.
@@ -139,8 +145,8 @@ WHERE {
    BIND (strbefore(?uw2Label, '(') AS ?concept2)
    BIND (strbefore(?uw3Label, '(') AS ?concept3)
    BIND (concat(?concept2, '-or-', ?concept3) AS ?concept23)
-   FILTER ( STRSTARTS(?subEntity2, ?concept2) ).
-   FILTER ( STRSTARTS(?subEntity3, ?concept3) ).
+   # --old --- FILTER ( STRSTARTS(?subEntity2, ?concept2) ).
+   # --old --- FILTER ( STRSTARTS(?subEntity3, ?concept3) ).
    # -- old --- BIND (concat(?concept2, '_', ?mainEntity) AS ?subEntity2).
    # -- old --- BIND (concat(?concept3, '_', ?mainEntity) AS ?subEntity3).
    BIND (concat(?concept23, '_', ?mainEntity) AS ?subEntity23).
@@ -276,9 +282,11 @@ WHERE {
    ?net1 a net:Instance.
    ?net1 net:type net:entity_class_list.
    ?net1 net:entityClass ?entityClass.
-   ?net1 net:has_mainClass ?mainEntity.	
-   ?net1 net:has_subClass ?subEntity.	
-   ?net1 net:entityInstance ?mainInstance.	
+   ?net1 net:has_mainClass ?mainEntityObject.	
+   ?mainEntityObject net:concept ?mainEntity.
+   ?net1 net:has_subClass ?subEntityObject.	
+   ?subEntityObject net:concept ?subEntity.
+   ?subEntityObject net:entityInstance ?mainInstance.	
    # Filter -- old --- FILTER NOT EXISTS  { ?net2 net:has_subClass ?mainEntity}	
    # URI (for classes)
    # -- old --- BIND (concat(?concept2, '_', ?mainEntity) AS ?subEntity).
@@ -297,6 +305,37 @@ WHERE {
 }""" ;
   sh:order 512.1 ;
 .
+cts:batch_execution
+  rdf:type owl:Class ;
+  rdf:type sh:NodeShape ;
+  rdfs:label "batch execution" ;
+  rdfs:subClassOf cts:Transduction_Schemes ;
+  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 ;
+  sh:rule cts:bypass-reification ;
+  sh:rule cts:complement-list-of-entity-classes ;
+  sh:rule cts:compose-entity-modlist-1 ;
+  sh:rule cts:compose-entity-modlist-2 ;
+  sh:rule cts:compose-entity-modlist-3 ;
+  sh:rule cts:create-entity-net ;
+  sh:rule cts:create-feature-net ;
+  sh:rule cts:define-uw-id ;
+  sh:rule cts:extend-mod-list ;
+  sh:rule cts:init-mod-list ;
+  sh:rule cts:instantiate-classlist-by-extension-1 ;
+  sh:rule cts:instantiate-classlist-by-extension-2 ;
+  sh:rule cts:instantiate-entity-net ;
+  sh:rule cts:link-to-scope-entry ;
+  sh:rule cts:typify-modlist-entity ;
+  sh:rule cts:typify-modlist-feature ;
+.
+cts:batch_execution_1
+  rdf:type cts:batch_execution ;
+  rdfs:label "batch execution 1" ;
+.
 cts:bypass-reification
   rdf:type sh:SPARQLRule ;
   sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#>
@@ -344,12 +383,13 @@ WHERE {
    ?net1 a net:Instance.
    ?net1 net:type net:entity_class_list.
    ?net1 net:entityClass ?entityClass.	
-   ?net1 net:has_subClass ?subEntity.	
-   ?net1 net:has_feature ?featureObject.	
+   ?net1 net:has_subClass ?subEntityObject.	
+   ?subEntityObject net:concept ?subEntity.	
+   ?subEntityObject net:has_feature ?featureObject.	
    # object: feature
    ?featureObject a net:Object.
    ?featureObject net:objectType sys:Feature.
-   ?featureObject net:node ?FeatureUW.
+   ?featureObject net:has_node ?FeatureUW.
    ?featureObject net:featureClass ?featureClass.
    ?featureObject net:concept ?featureConcept.
    # URI: entity class
@@ -380,38 +420,48 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
 
 # -- Compose an Entity net and a Complement ModList net    
 CONSTRUCT {
-   # Net Object: feature 
+   # Object: feature 2
    ?newFeature2 a net:Object.
    ?newFeature2 net:objectType sys:Feature.
-   ?newFeature2 net:node ?uw2.
+   ?newFeature2 net:has_node ?uw2.
    ?newFeature2 net:featureClass ?featureClass.
    ?newFeature2 net:concept ?concept2.
+   # Object: feature 3
    ?newFeature3 a net:Object.
    ?newFeature3 net:objectType sys:Feature.
-   ?newFeature3 net:node ?uw3.
+   ?newFeature3 net:has_node ?uw3.
    ?newFeature3 net:featureClass ?featureClass.
    ?newFeature3 net:concept ?concept3.
+   # Object: entity 2 
+   ?newEntity2 a net:Object.
+   ?newEntity2 net:objectType sys:Entity.
+   ?newEntity2 net:has_node ?uw2.
+   ?newEntity2 net:entityClass ?entityClass.
+   ?newEntity2 net:concept ?subEntity2.
+   ?newEntity2 net:has_feature ?newFeature2.
+   # Object: entity 3 
+   ?newEntity3 a net:Object.
+   ?newEntity3 net:objectType sys:Entity.
+   ?newEntity3 net:has_node ?uw3.
+   ?newEntity3 net:entityClass ?entityClass.
+   ?newEntity3 net:concept ?subEntity3.
+   ?newEntity3 net:has_feature ?newFeature3.
    # Net: Entity ClassList
    ?newNet a net:Instance.
    ?newNet net:type net:entity_class_list.
-   ?newNet net:structure ?req.
-   ?newNet net:node ?uw1.
-   ?newNet net:node ?uw2.
-   ?newNet net:node ?uw3.
+   ?newNet net:has_structure ?req.
+   ?newNet net:has_node ?uw1, ?uw2, ?uw3.
    ?newNet net:entityClass ?entityClass.
-   # -- old --- ?newNet net:featureClass ?featureClass.
-   ?newNet net:has_mainClass ?mainEntity.	
-   ?newNet net:has_subClass ?subEntity2.	
-   ?newNet net:has_subClass ?subEntity3.	
-   ?newNet net:has_feature ?newFeature2.	
-   ?newNet net:has_feature ?newFeature3.	
+   ?newNet net:has_mainClass ?entityObject1.	
+   ?newNet net:has_subClass ?newEntity2, ?newEntity3.	
+   ?newNet net:has_feature ?newFeature2, ?newFeature3.	
 }
 WHERE {
    # net1: entity
    ?net1 a net:Instance.
    ?net1 net:type net:entity.
-   ?net1 net:structure ?req.
-   ?net1 net:node ?uw1.
+   ?net1 net:has_structure ?req.
+   ?net1 net:has_node ?uw1.
    ?net1 net:has_entity ?entityObject1.
    ?entityObject1 net:entityClass ?entityClass.	
    ?entityObject1 net:concept ?mainEntity.
@@ -420,9 +470,8 @@ WHERE {
    # net2: complement modList
    ?net2 a net:Instance.
    ?net2 net:type net:complement_mod_list.
-   ?net2 net:structure ?req.
-   ?net2 net:node ?uw2.
-   ?net2 net:node ?uw3.
+   ?net2 net:has_structure ?req.
+   ?net2 net:has_node ?uw2, ?uw3.
    ?net2 net:modCat2 ?featureClass.
    # --old --- ?net2 net:concept ?subConcept.	
    # Filter
@@ -447,11 +496,16 @@ WHERE {
    # URI (for Feature Object)
    cprm:Config_Parameters cprm:netURI ?netURI.
    cprm:Config_Parameters cprm:objectRef ?objectRef.
-   BIND (concat( ?netURI, ?objectRef) AS ?f1).
-   BIND (concat(?f1, ?uw2Id) AS ?f2).
-   BIND (concat(?f1, ?uw3Id) AS ?f3).
+   BIND (concat( ?netURI, ?objectRef) AS ?o1).
+   BIND (concat(?o1, ?uw2Id) AS ?f2).
+   BIND (concat(?o1, ?uw3Id) AS ?f3).
    BIND (uri(?f2) AS ?newFeature2).
    BIND (uri(?f3) AS ?newFeature3).
+   # URI (for Entity Object)
+   BIND (concat(?f2, '_', ?subEntity2) AS ?e2).
+   BIND (concat(?f3, '_', ?subEntity3) AS ?e3).
+   BIND (uri(?e2) AS ?newEntity2).
+   BIND (uri(?e3) AS ?newEntity3).
    # URI (for ClassList Net)
    cprm:Config_Parameters cprm:netURI ?netURI.
    net:class_list rdfs:label ?classListLabel.
@@ -476,38 +530,48 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
     
 # -- Compose an Entity net and an Entity ModList net (with distinct entity classes)
 CONSTRUCT { 
-   # Net Object: feature 
+   # Object: feature 2
    ?newFeature2 a net:Object.
    ?newFeature2 net:objectType sys:Feature.
-   ?newFeature2 net:node ?uw2.
+   ?newFeature2 net:has_node ?uw2.
    ?newFeature2 net:featureClass ?entityClass2.
    ?newFeature2 net:concept ?concept2.
+   # Object: feature 3
    ?newFeature3 a net:Object.
    ?newFeature3 net:objectType sys:Feature.
-   ?newFeature3 net:node ?uw3.
+   ?newFeature3 net:has_node ?uw3.
    ?newFeature3 net:featureClass ?entityClass2.
    ?newFeature3 net:concept ?concept3.
+   # Object: entity 2 
+   ?newEntity2 a net:Object.
+   ?newEntity2 net:objectType sys:Entity.
+   ?newEntity2 net:has_node ?uw2.
+   ?newEntity2 net:entityClass ?entityClass2.
+   ?newEntity2 net:concept ?subEntity2.
+   ?newEntity2 net:has_feature ?newFeature2.
+   # Object: entity 3 
+   ?newEntity3 a net:Object.
+   ?newEntity3 net:objectType sys:Entity.
+   ?newEntity3 net:has_node ?uw3.
+   ?newEntity3 net:entityClass ?entityClass2.
+   ?newEntity3 net:concept ?subEntity3.
+   ?newEntity3 net:has_feature ?newFeature3.
    # Net: Entity ClassList
    ?newNet a net:Instance.
    ?newNet net:type net:entity_class_list.
-   ?newNet net:structure ?req.
-   ?newNet net:node ?uw1.
-   ?newNet net:node ?uw2.
-   ?newNet net:node ?uw3.
+   ?newNet net:has_structure ?req.
+   ?newNet net:has_node ?uw1, ?uw2, ?uw3.
    ?newNet net:entityClass ?entityClass1.
-   # -- old --- ?newNet net:featureClass ?entityClass2.
-   ?newNet net:has_mainClass ?mainEntity.	
-   ?newNet net:has_subClass ?subEntity2.	
-   ?newNet net:has_subClass ?subEntity3.	
-   ?newNet net:has_feature ?newFeature2.	
-   ?newNet net:has_feature ?newFeature3.	
+   ?newNet net:has_mainClass ?entityObject1.	
+   ?newNet net:has_subClass ?newEntity2, ?newEntity3.	
+   ?newNet net:has_feature ?newFeature2, ?newFeature3.	
 }
 WHERE {
    # net1: agent
    ?net1 a net:Instance.
    ?net1 net:type net:entity.
-   ?net1 net:structure ?req.
-   ?net1 net:node ?uw1.
+   ?net1 net:has_structure ?req.
+   ?net1 net:has_node ?uw1.
    ?net1 net:has_entity ?entityObject1.
    ?entityObject1 net:entityClass ?entityClass1.	
    ?entityObject1 net:concept ?mainEntity.
@@ -518,11 +582,8 @@ WHERE {
    ?net2 net:type net:entity_mod_list.
    ?net2 net:modCat1 fprm:System_Entity.
    ?net2 net:modCat2 ?entityClass2.
-   ?net2 net:structure ?req. 
-   ?net2 net:node ?uw2.
-   ?net2 net:node ?uw3.
-   # --old --- ?net2 net:concept ?subConcept.	
-   # -- old --- ?net2 net:entityClass ?entityClass2.
+   ?net2 net:has_structure ?req. 
+   ?net2 net:has_node ?uw2, ?uw3.
    # Filter
    FILTER ( ?uw1 != ?uw3  ).
    FILTER ( ?entityClass1 != ?entityClass2  ).
@@ -546,11 +607,16 @@ WHERE {
    # URI (for Feature Object)
    cprm:Config_Parameters cprm:netURI ?netURI.
    cprm:Config_Parameters cprm:objectRef ?objectRef.
-   BIND (concat( ?netURI, ?objectRef) AS ?f1).
-   BIND (concat(?f1, ?uw2Id) AS ?f2).
-   BIND (concat(?f1, ?uw3Id) AS ?f3).
+   BIND (concat( ?netURI, ?objectRef) AS ?o1).
+   BIND (concat(?o1, ?uw2Id) AS ?f2).
+   BIND (concat(?o1, ?uw3Id) AS ?f3).
    BIND (uri(?f2) AS ?newFeature2).
    BIND (uri(?f3) AS ?newFeature3).
+   # URI (for Entity Object)
+   BIND (concat(?f2, '_', ?subEntity2) AS ?e2).
+   BIND (concat(?f3, '_', ?subEntity3) AS ?e3).
+   BIND (uri(?e2) AS ?newEntity2).
+   BIND (uri(?e3) AS ?newEntity3).
    # URI (for ClassList Net)
    cprm:Config_Parameters cprm:netURI ?netURI.
    net:class_list rdfs:label ?classListLabel.
@@ -575,25 +641,33 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
     
 # -- Compose an Entity net and an Entity ModList net (with same entity classes)
 CONSTRUCT { 
+   # Object: entity 2 
+   ?newEntity2 a net:Object.
+   ?newEntity2 net:objectType sys:Entity.
+   ?newEntity2 net:has_node ?uw2.
+   ?newEntity2 net:entityClass ?entityClass2.
+   ?newEntity2 net:concept ?subEntity2.
+   # Object: entity 3 
+   ?newEntity3 a net:Object.
+   ?newEntity3 net:objectType sys:Entity.
+   ?newEntity3 net:has_node ?uw3.
+   ?newEntity3 net:entityClass ?entityClass2.
+   ?newEntity3 net:concept ?subEntity3.
    # Net: Entity ClassList
    ?newNet a net:Instance.
    ?newNet net:type net:entity_class_list.
-   ?newNet net:structure ?req.
-   ?newNet net:node ?uw1.
-   ?newNet net:node ?uw2.
-   ?newNet net:node ?uw3.
+   ?newNet net:has_structure ?req.
+   ?newNet net:has_node ?uw1, ?uw2, ?uw3.
    ?newNet net:entityClass ?entityClass1.
-   # -- old --- ?newNet net:featureClass \"None\".
-   ?newNet net:has_mainClass ?mainEntity.	
-   ?newNet net:has_subClass ?subEntity2.	
-   ?newNet net:has_subClass ?subEntity3.	
+   ?newNet net:has_mainClass ?entityObject1.	
+   ?newNet net:has_subClass ?newEntity2, ?newEntity3.	
 }
 WHERE {
    # net1: agent
    ?net1 a net:Instance.
    ?net1 net:type net:entity.
-   ?net1 net:structure ?req.
-   ?net1 net:node ?uw1.
+   ?net1 net:has_structure ?req.
+   ?net1 net:has_node ?uw1.
    ?net1 net:has_entity ?entityObject1.
    ?entityObject1 net:entityClass ?entityClass1.	
    ?entityObject1 net:concept ?mainEntity.
@@ -604,10 +678,8 @@ WHERE {
    ?net2 net:type net:entity_mod_list.
    ?net2 net:modCat1 fprm:System_Entity.
    ?net2 net:modCat2 ?entityClass2.
-   ?net2 net:structure ?req.
-   ?net2 net:node ?uw2.
-   ?net2 net:node ?uw3.
-   # --old --- ?net2 net:concept ?subConcept.	
+   ?net2 net:has_structure ?req.
+   ?net2 net:has_node ?uw2, ?uw3.
    # Filter
    FILTER ( ?uw1 != ?uw3  ).
    FILTER ( ?entityClass1 = ?entityClass2  ).
@@ -621,11 +693,21 @@ WHERE {
    # Label: Id, subEntity
    ?uw1 unl:has_id ?uw1Id.
    ?uw2 unl:has_id ?uw2Id.
-   # -- old --- ?uw3 unl:has_id ?uw3Id.
+   ?uw3 unl:has_id ?uw3Id.
    ?uw2 rdfs:label ?uw2Label.
    ?uw3 rdfs:label ?uw3Label.
    BIND (strbefore(?uw2Label, '(') AS ?subEntity2)
    BIND (strbefore(?uw3Label, '(') AS ?subEntity3)
+   # URI (for Entity Object)
+   cprm:Config_Parameters cprm:netURI ?netURI.
+   cprm:Config_Parameters cprm:objectRef ?objectRef.
+   BIND (concat( ?netURI, ?objectRef) AS ?e1).
+   BIND (concat(?e1, ?uw2Id) AS ?e2a).
+   BIND (concat(?e1, ?uw3Id) AS ?e3a).
+   BIND (concat(?e2a, '_', ?subEntity2) AS ?e2b).
+   BIND (concat(?e3a, '_', ?subEntity3) AS ?e3b).
+   BIND (uri(?e2b) AS ?newEntity2).
+   BIND (uri(?e3b) AS ?newEntity3).
    # URI (for ClassList Net)
    cprm:Config_Parameters cprm:netURI ?netURI.
    net:class_list rdfs:label ?classListLabel.
@@ -659,8 +741,8 @@ CONSTRUCT {
    # Net: Entity
    ?newNet a net:Instance.
    ?newNet net:type net:entity.
-   ?newNet net:structure ?req.
-   ?newNet net:node ?uw1.
+   ?newNet net:has_structure ?req.
+   ?newNet net:has_node ?uw1.
    ?newNet net:has_entity ?newEntity.	
 }
 WHERE {
@@ -709,8 +791,8 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
 CONSTRUCT { 
    ?semNet a net:Instance.
    ?semNet net:type net:feature.
-   ?semNet net:structure ?req.
-   ?semNet net:node ?uw1.
+   ?semNet net:has_structure ?req.
+   ?semNet net:has_node ?uw1.
    ?semNet net:featureClass ?featureClass.
    ?semNet net:concept ?concept1. 
 }
@@ -789,10 +871,6 @@ cts:entity_extraction
   sh:rule cts:typify-modlist-entity ;
   sh:rule cts:typify-modlist-feature ;
 .
-cts:entity_extraction_1
-  rdf:type cts:entity_extraction ;
-  rdfs:label "entity extraction 1" ;
-.
 cts:extend-mod-list
   rdf:type sh:SPARQLRule ;
   sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#>
@@ -808,14 +886,14 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
     
 # -- Extend a ModList net
 CONSTRUCT { 
-   ?semNet net:node ?uw2.
+   ?semNet net:has_node ?uw2.
    ?semNet net:concept ?concept2.
 }
 WHERE {
    # selection: modList net
    ?semNet a net:Instance.
    ?semNet net:type net:mod_list.
-   ?semNet net:node ?uw1.
+   ?semNet net:has_node ?uw1.
    # extension: disjunction of UW
    ?uw1 (unl:or|unl:and) ?uw2.
    # UW: type UW-Occurrence and substructure of req sentence
@@ -838,10 +916,6 @@ cts: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 ;
   rdf:type sh:NodeShape ;
@@ -854,10 +928,6 @@ cts:generation
   sh:rule cts:add-list-of-entity-classes ;
   sh:rule cts:complement-list-of-entity-classes ;
 .
-cts:generation_1
-  rdf:type cts:generation ;
-  rdfs:label "generation 1" ;
-.
 cts:init-mod-list
   rdf:type sh:SPARQLRule ;
   sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#>
@@ -875,8 +945,8 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
 CONSTRUCT { 
    ?semNet a net:Instance.
    ?semNet net:type net:mod_list.
-   ?semNet net:structure ?req.
-   ?semNet net:node ?uw1.
+   ?semNet net:has_structure ?req.
+   ?semNet net:has_node ?uw1.
    ?semNet net:concept ?concept1.
 }
 WHERE {
@@ -914,27 +984,29 @@ 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#>
     
-# -- Compose an Entity net and an Entity ModList net (with same entity classes)
+# -- Instantiate entities in class list by extension of instances (2)
 CONSTRUCT { 
-   ?net2 net:entityInstance ?instanceName1. 
+   ?subObject2 net:entityInstance ?instanceName1. 
 }
 WHERE {
    # net1: entity with instance
    ?net1 a net:Instance.
    ?net1 net:type net:entity.
-   ?net1 net:structure ?sameReq.
-   ?net1 net:has_entity ?entityObject1.
-   ?entityObject1 net:entityClass ?sameClass.	
-   ?entityObject1 net:concept ?sameEntity.
-   ?entityObject1 net:entityInstance ?instanceName1. 
+   ?net1 net:has_structure ?sameReq.
+   ?net1 net:has_entity ?sameObject1.
+   # -- old --- ?entityObject1 net:entityClass ?sameClass.	
+   # -- old --- ?entityObject1 net:concept ?sameEntity.
+   ?sameObject1 net:entityInstance ?instanceName1. 
    # net2: entity classList
    ?net2 a net:Instance.
    ?net2 net:type net:entity_class_list.
    ?net2 net:entityClass ?sameClass.
-   ?net2 net:structure ?sameReq.
-   ?net2 net:has_mainClass ?sameEntity.	
+   ?net2 net:has_structure ?sameReq.
+   ?net2 net:has_mainClass ?sameObject1.
+   # -- old --- ?net2 net:has_mainClass ?sameEntity.
+   ?net2 net:has_subClass ?subObject2.	
    # Filter
-   FILTER NOT EXISTS { ?net2 net:entityInstance ?instanceName2 } .
+   FILTER NOT EXISTS { ?subObject2 net:entityInstance ?instanceName2 } .
 }""" ;
   sh:order "224"^^xsd:decimal ;
 .
@@ -951,26 +1023,29 @@ 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#>
     
-# -- Compose an Entity net and an Entity ModList net (with same entity classes)
+# -- Instantiate entities in class list by extension of instances (2)
 CONSTRUCT { 
-   ?net2 net:entityInstance ?instanceName1. 
+   ?subObject2 net:entityInstance ?instanceName1. 
 }
 WHERE {
    # net2: entity classList with instance
    ?net1 a net:Instance.
    ?net1 net:type net:entity_class_list.
    ?net1 net:entityClass ?sameClass.
-   ?net1 net:structure ?sameReq.
-   ?net1 net:has_subClass ?sameEntity.	
-   ?net1 net:entityInstance ?instanceName1. 
+   ?net1 net:has_structure ?sameReq.
+   ?net1 net:has_subClass ?entityObject1.
+   ?entityObject1 net:concept ?sameEntity.	
+   ?entityObject1 net:entityInstance ?instanceName1. 
    # net2: another entity classList
    ?net2 a net:Instance.
    ?net2 net:type net:entity_class_list.
    ?net2 net:entityClass ?sameClass.
-   ?net2 net:structure ?sameReq.
-   ?net2 net:has_mainClass ?sameEntity.	
+   ?net2 net:has_structure ?sameReq.
+   ?net2 net:has_mainClass ?entityObject2.
+   ?entityObject2 net:concept ?sameEntity.	
+   ?net2 net:has_subClass ?subObject2.	
    # Filter
-   FILTER NOT EXISTS { ?net2 net:entityInstance ?instanceName2 } .
+   FILTER NOT EXISTS { ?subObject2 net:entityInstance ?instanceName2 } .
 }""" ;
   sh:order "225"^^xsd:decimal ;
 .
@@ -996,7 +1071,8 @@ WHERE {
    # net1: entity (with entity object)
    ?net1 a net:Instance.
    ?net1 net:type net:entity.
-   ?net1 net:node ?uw1.
+   ?net1 net:has_structure ?req.
+   ?net1 net:has_node ?uw1.
    ?net1 net:has_entity ?entityObject1. 
    # condition: agt/obj(uw0, uw1)
    ?uw0 (unl:agt | unl:obj) ?uw1.
@@ -1056,10 +1132,6 @@ cts:preprocessing
   sh:rule cts:define-uw-id ;
   sh:rule cts:link-to-scope-entry ;
 .
-cts:preprocessing_1
-  rdf:type cts:preprocessing ;
-  rdfs:label "preprocessing 1" ;
-.
 cts:property_extraction
   rdf:type owl:Class ;
   rdf:type sh:NodeShape ;
@@ -1093,7 +1165,7 @@ WHERE {
    # net: modList
    ?semNet a net:Instance.
    ?semNet net:type net:mod_list.
-   ?semNet net:node ?uw1.
+   ?semNet net:has_node ?uw1.
    # UW: type UW-Occurrence and substructure of req sentence
    ?uw1 rdf:type unl:UW_Occurrence.
    ?uw1 unl:is_substructure_of ?req.
@@ -1131,7 +1203,7 @@ WHERE {
    # net: modList
    ?semNet a net:Instance.
    ?semNet net:type net:mod_list.
-   ?semNet net:node ?uw1.
+   ?semNet net:has_node ?uw1.
    # UW: type UW-Occurrence and substructure of req sentence
    ?uw1 rdf:type unl:UW_Occurrence.
    ?uw1 unl:is_substructure_of ?req.
diff --git a/prepare_work_data.py b/prepare_work_data.py
index 093837cd6f7d388478bb4495366461532d70ee69..c0120d90743b336959616054745fc7efc042e05d 100644
--- a/prepare_work_data.py
+++ b/prepare_work_data.py
@@ -118,10 +118,12 @@ def load_cts(work_graph):
 # Result (export)
 #==============================================================================
      
-def export_result(work_graph):
-    export_file = 'output.ttl'
+def export_result(work_graph, export_ref, export_file):
     print("-- Export result as turtle: " + export_file)
-    work_graph.serialize(destination=export_file, base=base_uri, format='turtle')
+    
+    work_graph.serialize(destination=export_file, 
+                         base=base_uri + '/' + export_ref, 
+                         format='turtle')
     
     
         
@@ -129,9 +131,9 @@ def export_result(work_graph):
 # Main Function
 #==============================================================================
   
-def run():
+def run(corpus, output_ref, output_file):
     try:
-        print("Tenet Processing")
+        print("[Tenet] Prepare work data from corpus " + corpus)
     
         print("\n" + "- Graph Initialization")
         work_graph = Graph()
@@ -142,10 +144,12 @@ def run():
         load_cts(work_graph)
     
         print("\n" + "- Data Source Imports")
-        load_sentences(work_graph, corpus_1)
+        load_sentences(work_graph, corpus)
     
         print("\n" + "- Result")
-        export_result(work_graph)
+        export_result(work_graph, output_ref, output_file)
+        
+        print()
     
     except:
         print("!!! An exception occurred !!!") 
@@ -156,8 +160,8 @@ def run():
 #==============================================================================
 
 if __name__ == '__main__':
-    run()
-    
+    run(corpus_1, 'CCTP1', 'output1.ttl') 
+    run(corpus_40, 'CCTP40', 'output40.ttl')