Skip to content
Snippets Groups Projects
Commit 341dc4d0 authored by Aurélien Lamercerie's avatar Aurélien Lamercerie
Browse files

Update typing of composite list

parent 477b33c7
Branches
Tags
No related merge requests found
......@@ -130,9 +130,9 @@ net:has_instance
rdfs:label "entity instance" ;
rdfs:subPropertyOf net:objectValue ;
.
net:has_mainClass
net:has_item
rdf:type rdf:Property ;
rdfs:label "has main class" ;
rdfs:label "has item" ;
rdfs:subPropertyOf net:has_object ;
.
net:has_mother_class
......@@ -150,6 +150,11 @@ net:has_object
rdfs:label "relation" ;
rdfs:subPropertyOf net:netProperty ;
.
net:has_parent
rdf:type rdf:Property ;
rdfs:label "has parent" ;
rdfs:subPropertyOf net:has_object ;
.
net:has_parent_class
rdf:type rdf:Property ;
rdfs:label "parent class" ;
......@@ -170,11 +175,6 @@ net:has_structure
rdfs:label "Linguistic Structure (in UNL Document)" ;
rdfs:subPropertyOf net:netProperty ;
.
net:has_subClass
rdf:type rdf:Property ;
rdfs:label "has sub class" ;
rdfs:subPropertyOf net:has_object ;
.
net:has_target
rdf:type rdf:Property ;
rdfs:label "has target" ;
......
......@@ -57,15 +57,17 @@ CONSTRUCT {
?mainInstanceUri rdf:type ?subEntity23Uri.
}
WHERE {
# net1: entity class list
# net1: Composite List
?net1 a net:Instance.
?net1 net:type net:entity_class_list.
?net1 net:type net:list.
?net1 net:listOf net:composite.
# -- old --- ?net1 net:type net:entity_class_list.
?net1 net:has_structure ?req.
?net1 net:entityClass ?entityClass.
?net1 net:has_node ?uw2, ?uw3.
?net1 net:has_mainClass ?mainEntityObject.
?net1 net:has_parent ?mainEntityObject.
?mainEntityObject net:has_concept ?mainEntity.
?net1 net:has_subClass ?subEntityObject2, ?subEntityObject3.
?net1 net:has_item ?subEntityObject2, ?subEntityObject3.
?subEntityObject2 net:concept ?subEntity2.
?subEntityObject2 net:has_node ?uw2.
?subEntityObject3 net:has_concept ?subEntity3.
......@@ -124,15 +126,17 @@ CONSTRUCT {
?mainInstanceUri rdf:type ?subEntity23Uri.
}
WHERE {
# net1: entity class list
# net1: Composite List
?net1 a net:Instance.
?net1 net:type net:entity_class_list.
?net1 net:type net:list.
?net1 net:listOf net:composite.
# -- old --- ?net1 net:type net:entity_class_list.
?net1 net:has_structure ?req.
?net1 net:entityClass ?entityClass.
?net1 net:has_node ?uw2, ?uw3.
?net1 net:has_mainClass ?mainEntityObject.
?net1 net:has_parent ?mainEntityObject.
?mainEntityObject net:has_concept ?mainEntity.
?net1 net:has_subClass ?subEntityObject2, ?subEntityObject3.
?net1 net:has_item ?subEntityObject2, ?subEntityObject3.
?subEntityObject2 net:has_concept ?subEntity2.
?subEntityObject2 net:has_node ?uw2.
?subEntityObject3 net:has_concept ?subEntity3.
......@@ -235,56 +239,6 @@ WHERE {
}""" ;
sh:order 3.1 ;
.
cts:add-list-of-entity-classes
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#>
# -- Add Entity classes in System Ontology
CONSTRUCT {
# Classification
?subEntityUri rdfs:subClassOf ?mainEntityUri.
?subEntityUri rdfs:label ?subEntity.
?subEntityUri sys:from_structure ?req.
# -- old --- ?mainEntityUri rdfs:subClassOf ?entityUri.
# -- old --- ?mainEntityUri rdfs:label ?mainEntity.
# Instantiation (extension)
?mainInstanceUri rdf:type ?subEntityUri.
?mainInstanceUri sys:from_structure ?req.
}
WHERE {
# net1: entity class list
?net1 a net:Instance.
?net1 net:type net:entity_class_list.
?net1 net:has_structure ?req.
?net1 net:entityClass ?entityClass.
?net1 net:has_mainClass ?mainEntityObject.
?mainEntityObject net:has_concept ?mainEntity.
?net1 net:has_subClass ?subEntityObject.
?subEntityObject net:has_concept ?subEntity.
?subEntityObject net:has_instance ?mainInstance.
# Filter -- old --- FILTER NOT EXISTS { ?net2 net:has_subClass ?mainEntity}
# URI (for classes)
sys:Structure sys:has_frame_uri ?frameURI.
BIND (concat( ?frameURI, ?entityClass) AS ?s1).
BIND (concat(?s1, '#', ?mainEntity) AS ?s2).
BIND (concat(?s1, '#', ?subEntity) AS ?s3).
BIND (uri(?s2) AS ?mainEntityUri).
BIND (uri(?s3) AS ?subEntityUri).
# URI (for instance)
BIND (concat(?s1, '_', ?mainInstance) AS ?s4).
BIND (uri(?s4) AS ?mainInstanceUri).
}""" ;
sh:order 3.2 ;
.
cts:add-state-property
rdf:type sh:SPARQLRule ;
rdfs:label "add-event" ;
......@@ -382,10 +336,9 @@ cts:batch_execution
sh:rule cts:add-conjunctive-entity-classes ;
sh:rule cts:add-disjunctive-entity-classes ;
sh:rule cts:add-event ;
sh:rule cts:add-list-of-entity-classes ;
sh:rule cts:add-state-property ;
sh:rule cts:bypass-reification ;
sh:rule cts:complement-list-of-entity-classes ;
sh:rule cts:complement-composite-class ;
sh:rule cts:compose-agt-verb-obj-as-simple-event ;
sh:rule cts:compose-aoj-verb-obj-as-simple-state-property ;
sh:rule cts:compose-atom-with-list-by-mod-1 ;
......@@ -400,6 +353,7 @@ cts:batch_execution
sh:rule cts:extend-list-net ;
sh:rule cts:generate-atom-class ;
sh:rule cts:generate-atom-instance ;
sh:rule cts:generate-composite-class-from-list-net ;
sh:rule cts:init-conjunctive-list-net ;
sh:rule cts:init-disjunctive-list-net ;
sh:rule cts:instantiate-atom-net ;
......@@ -436,7 +390,7 @@ WHERE {
} """ ;
sh:order 1.1 ;
.
cts:complement-list-of-entity-classes
cts:complement-composite-class
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#>
......@@ -457,9 +411,10 @@ CONSTRUCT {
WHERE {
# net1: entity class list
?net1 a net:Instance.
?net1 net:type net:entity_class_list.
?net1 net:type net:list.
?net1 net:listOf net:composite.
?net1 net:entityClass ?entityClass.
?net1 net:has_subClass ?subEntityObject.
?net1 net:has_item ?subEntityObject.
?subEntityObject net:has_concept ?subEntity.
?subEntityObject net:has_feature ?featureObject.
# object: feature
......@@ -639,30 +594,24 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
# -- Compose an atom net and a list net (with distinct item classes)
CONSTRUCT {
# Object: composite (A)
?newObject12 a net:Object.
?newObject12 net:objectType net:composite.
?newObject12 net:has_node ?uw1, ?uw2.
?newObject12 net:has_mother_class ?net1Mother.
# -- TODO --- ?newObject12 net:has_parent_class ?net1Class.
?newObject12 net:has_concept ?subConceptA.
?newObject12 net:has_feature ?net2ItemA.
# Object: composite (B)
?newObject13 a net:Object.
?newObject13 net:objectType net:composite.
?newObject13 net:has_node ?uw1, ?uw3.
?newObject13 net:has_mother_class ?net1Mother.
# -- TODO --- ?newObject13 net:has_parent_class ?net1Class.
?newObject13 net:has_concept ?subConceptB.
?newObject13 net:has_feature ?net2ItemB.
# Net: Entity ClassList
# Object: Composite
?newObject a net:Object.
?newObject net:objectType net:composite.
?newObject net:has_node ?uw1, ?uw3.
?newObject net:has_mother_class ?net1Mother.
# -- TODO --- ?newObject net:has_parent_class ?net1Class.
?newObject net:has_concept ?subConcept.
?newObject net:has_feature ?net2Item.
# Net: Composite List
?newNet a net:Instance.
?newNet net:type net:entity_class_list.
?newNet net:type net:list.
?newNet net:type ?listSubType.
?newNet net:listOf net:composite.
?newNet net:has_structure ?req.
?newNet net:has_node ?uw1, ?uw2, ?uw3.
?newNet net:entityClass ?net1ParentClass.
?newNet net:has_mainClass ?net1Object.
?newNet net:has_subClass ?newObject12, ?newObject13.
?newNet net:has_parent ?net1Object.
?newNet net:has_item ?newObject.
}
WHERE {
# net1: atom
......@@ -679,36 +628,33 @@ WHERE {
# net2: list
?net2 a net:Instance.
?net2 net:type net:list.
?net2 net:listOf ?listItemClass.
?net2 net:type ?listSubType.
?net2 net:listOf net:atom.
?net2 net:has_structure ?req.
?net2 net:has_node ?uw2, ?uw3.
?net2 net:has_item ?net2ItemA.
?net2ItemA net:has_node ?uw2.
?net2ItemA net:has_concept ?net2ConceptA.
?net2 net:has_item ?net2ItemB.
?net2ItemB net:has_node ?uw3.
?net2ItemB net:has_concept ?net2ConceptB.
?net2 net:has_item ?net2Item.
?net2Item net:has_node ?uw3.
?net2Item net:has_parent_class ?net2ParentClass.
?net2Item net:has_concept ?net2Concept.
# Filter
FILTER NOT EXISTS { ?net2 net:has_node ?uw1 }.
FILTER ( ?net1ParentClass != ?listItemClass ).
FILTER ( ?net1ParentClass != ?net2ParentClass ).
# Label: Id, concept
?uw1 unl:has_id ?uw1Id.
?uw2 unl:has_id ?uw2Id.
?uw3 unl:has_id ?uw3Id.
BIND (concat( ?net2ConceptA, '_', ?net1Concept) AS ?subConceptA).
BIND (concat( ?net2ConceptB, '_', ?net1Concept) AS ?subConceptB).
BIND (concat( ?net2Concept, '_', ?net1Concept) AS ?subConcept).
# URI (for Object)
cprm:Config_Parameters cprm:netURI ?netURI.
cprm:Config_Parameters cprm:objectRef ?objectRef.
BIND (concat( ?netURI, ?objectRef) AS ?o1).
BIND (concat(?o1, ?uw1Id, '-', ?uw2Id) AS ?o2).
BIND (concat(?o1, ?uw1Id, '-', ?uw3Id) AS ?o3).
BIND (uri(?o2) AS ?newObject12).
BIND (uri(?o3) AS ?newObject13).
# URI (for ClassList Net)
BIND (concat(?o1, ?uw1Id, '-', ?uw3Id) AS ?o2).
BIND (uri(?o2) AS ?newObject).
# URI (for List Net)
cprm:Config_Parameters cprm:netURI ?netURI.
net:class_list rdfs:label ?classListLabel.
BIND (concat( ?netURI, ?classListLabel, '_') AS ?n1).
net:list rdfs:label ?listLabel.
net:composite rdfs:label ?compositeLabel.
BIND (concat( ?netURI, ?listLabel, '_', ?compositeLabel, '_') AS ?n1).
BIND (concat(?n1, ?uw1Id, '-', ?uw2Id) AS ?n2).
BIND (uri(?n2) AS ?newNet).
}""" ;
......@@ -729,14 +675,16 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
# -- Compose an atom net and an list net (with same item classes)
CONSTRUCT {
# Net: Entity ClassList
# Net: Composite List
?newNet a net:Instance.
?newNet net:type net:entity_class_list.
?newNet net:type net:list.
?newNet net:type ?listSubType.
?newNet net:listOf net:composite.
?newNet net:has_structure ?req.
?newNet net:has_node ?uw1, ?uw2, ?uw3.
?newNet net:entityClass ?net1ParentClass.
?newNet net:has_mainClass ?net1Object.
?newNet net:has_subClass ?object2, ?object3.
?newNet net:has_parent ?net1Object.
?newNet net:has_item ?net2Item.
}
WHERE {
# net1: atom
......@@ -751,23 +699,27 @@ WHERE {
# net2: list
?net2 a net:Instance.
?net2 net:type net:list.
?net2 net:listOf ?listItemClass.
?net2 net:listOf net:atom.
?net2 net:has_structure ?req.
?net2 net:has_node ?uw2, ?uw3.
?net2 net:has_item ?object2, ?object3.
?net2 net:has_item ?net2Item.
?net2Item net:has_node ?uw3.
?net2Item net:has_parent_class ?net2ParentClass.
?net2Item net:has_concept ?net2Concept.
# Filter
FILTER ( ?uw1 != ?uw3 ).
FILTER ( ?net1ParentClass = ?listItemClass ).
FILTER NOT EXISTS { ?net2 net:has_node ?uw1 }.
FILTER ( ?net1ParentClass = ?net2ParentClass ).
# Label: Id, subEntity
?uw1 unl:has_id ?uw1Id.
?uw2 unl:has_id ?uw2Id.
?uw3 unl:has_id ?uw3Id.
# URI (for ClassList Net)
# URI (for List Net)
cprm:Config_Parameters cprm:netURI ?netURI.
net:class_list rdfs:label ?classListLabel.
BIND (concat( ?netURI, ?classListLabel, '_') AS ?s1).
BIND (concat(?s1, ?uw1Id, '-', ?uw2Id) AS ?s2).
BIND (uri(?s2) AS ?newNet).
net:list rdfs:label ?listLabel.
net:composite rdfs:label ?compositeLabel.
BIND (concat( ?netURI, ?listLabel, '_', ?compositeLabel, '_') AS ?n1).
BIND (concat(?n1, ?uw1Id, '-', ?uw2Id) AS ?n2).
BIND (uri(?n2) AS ?newNet).
}""" ;
sh:order 2.33 ;
.
......@@ -1032,7 +984,7 @@ CONSTRUCT {
?newNet a net:Instance.
?newNet net:type net:list.
?newNet net:type net:unary_list.
?newNet net:listOf ?net1ParentClass.
?newNet net:listOf net:atom.
?newNet net:has_structure ?req.
?newNet net:has_node ?uw1.
?newNet net:has_item ?object1.
......@@ -1057,9 +1009,8 @@ WHERE {
?uw1 unl:has_id ?uw1Id.
cprm:Config_Parameters cprm:netURI ?netURI.
net:list rdfs:label ?listLabel.
BIND (strbefore(?uw1Label, '(') AS ?concept1).
# -- old --- BIND (strbefore(?uw2Label, '(') AS ?concept2).
BIND (concat( ?netURI, ?listLabel, '_') AS ?s1).
net:atom rdfs:label ?atomLabel.
BIND (concat( ?netURI, ?listLabel, '_', ?atomLabel, '_') AS ?s1).
BIND (concat(?s1, ?uw1Id) AS ?s2).
BIND (uri(?s2) AS ?newNet).
}""" ;
......@@ -1191,8 +1142,12 @@ WHERE {
?net1 net:has_atom ?atomObject1.
?atomObject1 net:has_parent_class ?atomParentClass.
?atomObject1 net:has_concept ?atomConcept.
# Filter: entity not present in a class list
FILTER NOT EXISTS { ?net2 net:has_subClass ?atomObject1}
# Filter: atom not present in a composite list
FILTER NOT EXISTS {
?net2 net:type net:list.
?net2 net:listOf net:composite.
?net2 net:has_item ?atomObject1.
}
# URI: class
sys:Structure sys:has_frame_uri ?frameURI.
BIND (concat( ?frameURI, ?atomParentClass) AS ?s1).
......@@ -1247,6 +1202,57 @@ WHERE {
}""" ;
sh:order 3.1 ;
.
cts:generate-composite-class-from-list-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#>
# -- Add Entity classes in System Ontology
CONSTRUCT {
# Classification
?subEntityUri rdfs:subClassOf ?mainEntityUri.
?subEntityUri rdfs:label ?subEntity.
?subEntityUri sys:from_structure ?req.
# -- old --- ?mainEntityUri rdfs:subClassOf ?entityUri.
# -- old --- ?mainEntityUri rdfs:label ?mainEntity.
# Instantiation (extension)
?mainInstanceUri rdf:type ?subEntityUri.
?mainInstanceUri sys:from_structure ?req.
}
WHERE {
# net1: Composite List
?net1 a net:Instance.
?net1 net:type net:list.
?net1 net:listOf net:composite.
?net1 net:has_structure ?req.
?net1 net:entityClass ?entityClass.
?net1 net:has_parent ?mainEntityObject.
?mainEntityObject net:has_concept ?mainEntity.
?net1 net:has_item ?subEntityObject.
?subEntityObject net:has_concept ?subEntity.
?subEntityObject net:has_instance ?mainInstance.
# Filter -- old --- FILTER NOT EXISTS { ?net2 net:has_subClass ?mainEntity}
# URI (for classes)
sys:Structure sys:has_frame_uri ?frameURI.
BIND (concat( ?frameURI, ?entityClass) AS ?s1).
BIND (concat(?s1, '#', ?mainEntity) AS ?s2).
BIND (concat(?s1, '#', ?subEntity) AS ?s3).
BIND (uri(?s2) AS ?mainEntityUri).
BIND (uri(?s3) AS ?subEntityUri).
# URI (for instance)
BIND (concat(?s1, '_', ?mainInstance) AS ?s4).
BIND (uri(?s4) AS ?mainInstanceUri).
}""" ;
sh:order 3.2 ;
.
cts:generation
rdf:type owl:Class ;
rdf:type sh:NodeShape ;
......@@ -1255,15 +1261,15 @@ cts:generation
sh:rule cts:add-conjunctive-entity-classes ;
sh:rule cts:add-disjunctive-entity-classes ;
sh:rule cts:add-event ;
sh:rule cts:add-list-of-entity-classes ;
sh:rule cts:add-state-property ;
sh:rule cts:complement-list-of-entity-classes ;
sh:rule cts:complement-composite-class ;
sh:rule cts:compute-class-uri-of-net-object ;
sh:rule cts:compute-domain-range-of-event-object-properties ;
sh:rule cts:compute-domain-range-of-state-property-object-properties ;
sh:rule cts:compute-instance-uri-of-net-object ;
sh:rule cts:generate-atom-class ;
sh:rule cts:generate-atom-instance ;
sh:rule cts:generate-composite-class-from-list-net ;
.
cts:init-conjunctive-list-net
rdf:type sh:SPARQLRule ;
......@@ -1283,7 +1289,7 @@ CONSTRUCT {
?newNet a net:Instance.
?newNet net:type net:list.
?newNet net:type net:conjunctive_list.
?newNet net:listOf ?net1ParentClass.
?newNet net:listOf net:atom.
?newNet net:has_structure ?req.
?newNet net:has_node ?uw1.
?newNet net:has_item ?object1.
......@@ -1307,9 +1313,8 @@ WHERE {
?uw1 unl:has_id ?uw1Id.
cprm:Config_Parameters cprm:netURI ?netURI.
net:list rdfs:label ?listLabel.
BIND (strbefore(?uw1Label, '(') AS ?concept1).
# -- old --- BIND (strbefore(?uw2Label, '(') AS ?concept2).
BIND (concat( ?netURI, ?listLabel, '_') AS ?s1).
net:atom rdfs:label ?atomLabel.
BIND (concat( ?netURI, ?listLabel, '_', ?atomLabel, '_') AS ?s1).
BIND (concat(?s1, ?uw1Id) AS ?s2).
BIND (uri(?s2) AS ?newNet).
}""" ;
......@@ -1333,7 +1338,7 @@ CONSTRUCT {
?newNet a net:Instance.
?newNet net:type net:list.
?newNet net:type net:disjunctive_list.
?newNet net:listOf ?net1ParentClass.
?newNet net:listOf net:atom.
?newNet net:has_structure ?req.
?newNet net:has_node ?uw1.
?newNet net:has_item ?object1.
......@@ -1357,9 +1362,8 @@ WHERE {
?uw1 unl:has_id ?uw1Id.
cprm:Config_Parameters cprm:netURI ?netURI.
net:list rdfs:label ?listLabel.
BIND (strbefore(?uw1Label, '(') AS ?concept1).
# -- old --- BIND (strbefore(?uw2Label, '(') AS ?concept2).
BIND (concat( ?netURI, ?listLabel, '_') AS ?s1).
net:atom rdfs:label ?atomLabel.
BIND (concat( ?netURI, ?listLabel, '_', ?atomLabel, '_') AS ?s1).
BIND (concat(?s1, ?uw1Id) AS ?s2).
BIND (uri(?s2) AS ?newNet).
}""" ;
......@@ -1416,17 +1420,18 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
# -- Instantiate composite in list by extension of instances from parent element
CONSTRUCT {
?subObject2 net:has_instance ?parentInstance.
?itemObject net:has_instance ?parentInstance.
}
WHERE {
# net2: list of composite items
?net2 a net:Instance.
?net2 net:type net:entity_class_list.
?net2 net:has_mainClass ?parentObject.
# net1: Composite List
?net1 a net:Instance.
?net1 net:type net:list.
?net1 net:listOf net:composite.
?net1 net:has_parent ?parentObject.
?parentObject net:has_instance ?parentInstance.
?net2 net:has_subClass ?subObject2.
?net1 net:has_item ?itemObject.
# Filter
FILTER NOT EXISTS { ?subObject2 net:has_instance ?anyInstance } .
FILTER NOT EXISTS { ?itemObject net:has_instance ?anyInstance } .
}""" ;
sh:order 2.341 ;
.
......@@ -1448,21 +1453,23 @@ CONSTRUCT {
?net2SubObject net:has_instance ?parentInstance.
}
WHERE {
# net1: list of composite items
# net1: Composite Liste
?net1 a net:Instance.
?net1 net:type net:entity_class_list.
?net1 net:type net:list.
?net1 net:listOf net:composite.
?net1 net:has_structure ?sameReq.
?net1 net:has_mainClass ?parentObject.
?net1 net:has_parent ?parentObject.
?parentObject net:has_instance ?parentInstance.
?net1 net:has_subClass ?net1SubObject.
?net1 net:has_item ?net1SubObject.
?net1SubObject net:has_concept ?sameEntity.
# net2: another list
# net2: Another List
?net2 a net:Instance.
?net2 net:type net:entity_class_list.
?net2 net:type net:list.
?net2 net:listOf net:composite.
?net2 net:has_structure ?sameReq.
?net2 net:has_mainClass ?net2MainObject.
?net2 net:has_parent ?net2MainObject.
?net2MainObject net:has_concept ?sameEntity.
?net2 net:has_subClass ?net2SubObject.
?net2 net:has_item ?net2SubObject.
# Filter
FILTER NOT EXISTS { ?net2SubObject net:has_instance ?anyInstance } .
}""" ;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment