Exécution lente sur la règle d'extraction 106 cts:compose-entity-modlist-1

Pour mémoire, la règle est la suivante :

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#>

# -- Compose an Entity net and a Complement ModList net    
CONSTRUCT { 
   ?newNet a net:Instance.
   ?newNet net:type net:entity_class_list.
   ?newNet net:node ?uw1.
   ?newNet net:node ?uw2.
   ?newNet net:node ?uw3.
   ?newNet net:entityClass ?entityClass.
   ?newNet net:featureClass ?featureClass.
   ?newNet net:class1 ?mainEntity.	
   ?newNet net:class2 ?concept2.	
   ?newNet net:class2 ?concept3.	
}
WHERE {
   # UW: type UW-Occurrence and substructure of req sentence
   ?uw1 rdf:type unl:UW_Occurrence.
   ?uw2 rdf:type unl:UW_Occurrence.
   ?uw3 rdf:type unl:UW_Occurrence.
   ?uw1 unl:is_substructure_of ?req.
   ?uw2 unl:is_substructure_of ?req.
   ?uw3 unl:is_substructure_of ?req.
   # net1: entity
   ?net1 a net:Instance.
   ?net1 net:type net:entity.
   ?net1 net:node ?uw1.
   ?net1 net:entityClass ?entityClass.
   ?net1 net:concept ?mainEntity.	
   # net2: complement modList
   ?net2 a net:Instance.
   ?net2 net:type net:complement_mod_list.
   ?net2 net:node ?uw2.
   ?net2 net:node ?uw3.
   ?net2 net:featureClass ?featureClass.
   ?net2 net:concept ?subComplement.	
   # condition: mod(net1, net2)
   ?uw1 unl:mod ?uw2.
   # Label(s) / URI
   ?uw2 rdfs:label ?uw2Label.
   ?uw3 rdfs:label ?uw3Label.
   BIND (strbefore(?uw2Label, '(') AS ?concept2)
   BIND (strbefore(?uw3Label, '(') AS ?concept3)
   #BIND (concat(?concept2, '_', ?mainEntity) AS ?subEntity2).
   #BIND (concat(?concept3, '_', ?mainEntity) AS ?subEntity3).
   cprm:Config_Parameters cprm:netURI ?netURI.
   net:class_list rdfs:label ?classListLabel.
   BIND (concat( ?netURI, ?classListLabel, '_') AS ?s1).
   BIND (concat(?s1, ?mainEntity, '-', ?concept2) AS ?s2).
   BIND (uri(?s2) AS ?newNet).
   # Filter
   FILTER ( ?uw1 != ?uw3  ).
}