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

Generation with classification and instantiation

parent 13282653
No related branches found
No related tags found
No related merge requests found
...@@ -40,11 +40,14 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> ...@@ -40,11 +40,14 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
# -- Add Disjunctive Entity classes in System Ontology # -- Add Disjunctive Entity classes in System Ontology
CONSTRUCT { CONSTRUCT {
# Classification
?subEntity23Uri rdfs:subClassOf ?mainEntityUri. ?subEntity23Uri rdfs:subClassOf ?mainEntityUri.
?subEntity23Uri rdfs:label ?subEntity23. ?subEntity23Uri rdfs:label ?subEntity23.
?subEntity23Uri ?subEntity23Uri
owl:equivalentClass [ a owl:Class ; owl:equivalentClass [ a owl:Class ;
owl:intersectionOf ( ?subEntity2Uri ?subEntity3Uri ) ] . owl:intersectionOf ( ?subEntity2Uri ?subEntity3Uri ) ] .
# Instantiation (extension)
?mainInstanceUri rdf:type ?subEntity23Uri.
} }
WHERE { WHERE {
# net1: entity class list # net1: entity class list
...@@ -56,9 +59,12 @@ WHERE { ...@@ -56,9 +59,12 @@ WHERE {
?net1 net:class1 ?mainEntity. ?net1 net:class1 ?mainEntity.
?net1 net:class2 ?subEntity2. ?net1 net:class2 ?subEntity2.
?net1 net:class2 ?subEntity3. ?net1 net:class2 ?subEntity3.
?net1 net:entityInstance ?mainInstance.
# extension: disjunction of UW # extension: disjunction of UW
?uw2 unl:and ?uw3. ?uw2 unl:and ?uw3.
# Label(s) / URI # --old --- FILTER NOT EXISTS { ?net2 net:class2 ?mainEntity }.
# --old --- FILTER NOT EXISTS { ?subEntity23Uri owl:equivalentClass ?c }.
# Label(s) / URI (for classes)
?uw2 rdfs:label ?uw2Label. ?uw2 rdfs:label ?uw2Label.
?uw3 rdfs:label ?uw3Label. ?uw3 rdfs:label ?uw3Label.
BIND (strbefore(?uw2Label, '(') AS ?concept2) BIND (strbefore(?uw2Label, '(') AS ?concept2)
...@@ -80,8 +86,9 @@ WHERE { ...@@ -80,8 +86,9 @@ WHERE {
BIND (uri(?s3) AS ?subEntity2Uri). BIND (uri(?s3) AS ?subEntity2Uri).
BIND (uri(?s4) AS ?subEntity3Uri). BIND (uri(?s4) AS ?subEntity3Uri).
BIND (uri(?s5) AS ?subEntity23Uri). BIND (uri(?s5) AS ?subEntity23Uri).
# --old --- FILTER NOT EXISTS { ?net2 net:class2 ?mainEntity }. # Label(s) / URI (for instance)
# --old --- FILTER NOT EXISTS { ?subEntity23Uri owl:equivalentClass ?c }. BIND (concat(?s1, '_', ?mainInstance) AS ?s6).
BIND (uri(?s6) AS ?mainInstanceUri).
}""" ; }""" ;
sh:order "204"^^xsd:decimal ; sh:order "204"^^xsd:decimal ;
. .
...@@ -101,11 +108,14 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> ...@@ -101,11 +108,14 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
# -- Add Disjunctive Entity classes in System Ontology # -- Add Disjunctive Entity classes in System Ontology
CONSTRUCT { CONSTRUCT {
# Classification
?subEntity23Uri rdfs:subClassOf ?mainEntityUri. ?subEntity23Uri rdfs:subClassOf ?mainEntityUri.
?subEntity23Uri rdfs:label ?subEntity23. ?subEntity23Uri rdfs:label ?subEntity23.
?subEntity23Uri ?subEntity23Uri
owl:equivalentClass [ a owl:Class ; owl:equivalentClass [ a owl:Class ;
owl:unionOf ( ?subEntity2Uri ?subEntity3Uri ) ] . owl:unionOf ( ?subEntity2Uri ?subEntity3Uri ) ] .
# Instantiation (extension)
?mainInstanceUri rdf:type ?subEntity23Uri.
} }
WHERE { WHERE {
# net1: entity class list # net1: entity class list
...@@ -117,9 +127,12 @@ WHERE { ...@@ -117,9 +127,12 @@ WHERE {
?net1 net:class1 ?mainEntity. ?net1 net:class1 ?mainEntity.
?net1 net:class2 ?subEntity2. ?net1 net:class2 ?subEntity2.
?net1 net:class2 ?subEntity3. ?net1 net:class2 ?subEntity3.
?net1 net:entityInstance ?mainInstance.
# extension: disjunction of UW # extension: disjunction of UW
?uw2 unl:or ?uw3. ?uw2 unl:or ?uw3.
# Label(s) / URI # --old --- FILTER NOT EXISTS { ?net2 net:class2 ?mainEntity }.
# --old --- FILTER NOT EXISTS { ?subEntity23Uri owl:equivalentClass ?c }.
# Label(s) / URI (for classes)
?uw2 rdfs:label ?uw2Label. ?uw2 rdfs:label ?uw2Label.
?uw3 rdfs:label ?uw3Label. ?uw3 rdfs:label ?uw3Label.
BIND (strbefore(?uw2Label, '(') AS ?concept2) BIND (strbefore(?uw2Label, '(') AS ?concept2)
...@@ -141,8 +154,9 @@ WHERE { ...@@ -141,8 +154,9 @@ WHERE {
BIND (uri(?s3) AS ?subEntity2Uri). BIND (uri(?s3) AS ?subEntity2Uri).
BIND (uri(?s4) AS ?subEntity3Uri). BIND (uri(?s4) AS ?subEntity3Uri).
BIND (uri(?s5) AS ?subEntity23Uri). BIND (uri(?s5) AS ?subEntity23Uri).
# --old --- FILTER NOT EXISTS { ?net2 net:class2 ?mainEntity }. # Label(s) / URI (for instance)
# --old --- FILTER NOT EXISTS { ?subEntity23Uri owl:equivalentClass ?c }. BIND (concat(?s1, '_', ?mainInstance) AS ?s6).
BIND (uri(?s6) AS ?mainInstanceUri).
}""" ; }""" ;
sh:order "203"^^xsd:decimal ; sh:order "203"^^xsd:decimal ;
. .
...@@ -222,10 +236,14 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> ...@@ -222,10 +236,14 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#>
PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology#> PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology#>
PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
# -- Add Entity classes in System Ontology # -- Add Entity class / instance in System Ontology
CONSTRUCT { CONSTRUCT {
# Classification
?mainEntityUri rdfs:subClassOf ?entityUri. ?mainEntityUri rdfs:subClassOf ?entityUri.
?mainEntityUri rdfs:label ?mainEntity. ?mainEntityUri rdfs:label ?mainEntity.
# Instantiation
?mainInstanceUri a ?mainEntityUri.
?mainInstanceUri rdfs:label ?mainInstance.
} }
WHERE { WHERE {
# net1: entity # net1: entity
...@@ -233,16 +251,20 @@ WHERE { ...@@ -233,16 +251,20 @@ WHERE {
?net1 net:type net:entity. ?net1 net:type net:entity.
?net1 net:entityClass ?entityClass. ?net1 net:entityClass ?entityClass.
?net1 net:concept ?mainEntity. ?net1 net:concept ?mainEntity.
# Label(s) / URI ?net1 net:entityInstance ?mainInstance.
# Filter: entity not present in a class list
FILTER NOT EXISTS { ?net2 net:class2 ?mainEntity}
# Label(s) / URI (for classes)
cprm:Config_Parameters cprm:baseURI ?baseURI. cprm:Config_Parameters cprm:baseURI ?baseURI.
fprm:System_Ontology fprm:frameURI ?frameURI. fprm:System_Ontology fprm:frameURI ?frameURI.
fprm:System_Entity rdfs:label ?entityLabel. # -- old --- fprm:System_Entity rdfs:label ?entityLabel.
BIND (concat( ?frameURI, ?entityClass) AS ?s1). BIND (concat( ?frameURI, ?entityClass) AS ?s1).
BIND (concat(?s1, '_', ?mainEntity) AS ?s2). BIND (concat(?s1, '_', ?mainEntity) AS ?s2).
BIND (uri( ?s1) AS ?entityUri). BIND (uri( ?s1) AS ?entityUri).
BIND (uri(?s2) AS ?mainEntityUri). BIND (uri(?s2) AS ?mainEntityUri).
# Filter: entity not present in a class list # Label(s) / URI (for instance)
FILTER NOT EXISTS { ?net2 net:class2 ?mainEntity} BIND (concat(?s1, '_', ?mainInstance) AS ?s3).
BIND (uri(?s3) AS ?mainInstanceUri).
}""" ; }""" ;
sh:order "201"^^xsd:decimal ; sh:order "201"^^xsd:decimal ;
. .
...@@ -261,10 +283,13 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> ...@@ -261,10 +283,13 @@ PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
# -- Add Entity classes in System Ontology # -- Add Entity classes in System Ontology
CONSTRUCT { CONSTRUCT {
# -- old --- ?mainEntityUri rdfs:subClassOf ?entityUri. # Classification
?subEntityUri rdfs:subClassOf ?mainEntityUri. ?subEntityUri rdfs:subClassOf ?mainEntityUri.
# -- old --- ?mainEntityUri rdfs:label ?mainEntity.
?subEntityUri rdfs:label ?subEntity. ?subEntityUri rdfs:label ?subEntity.
# -- old --- ?mainEntityUri rdfs:subClassOf ?entityUri.
# -- old --- ?mainEntityUri rdfs:label ?mainEntity.
# Instantiation (extension)
?mainInstanceUri rdf:type ?subEntityUri.
} }
WHERE { WHERE {
# net1: entity class list # net1: entity class list
...@@ -273,7 +298,9 @@ WHERE { ...@@ -273,7 +298,9 @@ WHERE {
?net1 net:entityClass ?entityClass. ?net1 net:entityClass ?entityClass.
?net1 net:class1 ?mainEntity. ?net1 net:class1 ?mainEntity.
?net1 net:class2 ?subEntity. ?net1 net:class2 ?subEntity.
# Label(s) / URI ?net1 net:entityInstance ?mainInstance.
# Filter -- old --- FILTER NOT EXISTS { ?net2 net:class2 ?mainEntity}
# Label(s) / URI (for classes)
# -- old --- BIND (concat(?concept2, '_', ?mainEntity) AS ?subEntity). # -- old --- BIND (concat(?concept2, '_', ?mainEntity) AS ?subEntity).
# -- old --- cprm:Config_Parameters cprm:baseURI ?baseURI. # -- old --- cprm:Config_Parameters cprm:baseURI ?baseURI.
fprm:System_Ontology fprm:frameURI ?frameURI. fprm:System_Ontology fprm:frameURI ?frameURI.
...@@ -284,8 +311,9 @@ WHERE { ...@@ -284,8 +311,9 @@ WHERE {
# -- old --- BIND (uri( ?s1) AS ?entityUri). # -- old --- BIND (uri( ?s1) AS ?entityUri).
BIND (uri(?s2) AS ?mainEntityUri). BIND (uri(?s2) AS ?mainEntityUri).
BIND (uri(?s3) AS ?subEntityUri). BIND (uri(?s3) AS ?subEntityUri).
# Filter # Label(s) / URI (for instance)
# -- old --- FILTER NOT EXISTS { ?net2 net:class2 ?mainEntity} BIND (concat(?s1, '_', ?mainInstance) AS ?s4).
BIND (uri(?s4) AS ?mainInstanceUri).
}""" ; }""" ;
sh:order "202"^^xsd:decimal ; sh:order "202"^^xsd:decimal ;
. .
...@@ -313,6 +341,20 @@ WHERE { ...@@ -313,6 +341,20 @@ WHERE {
} """ ; } """ ;
sh:order "001"^^xsd:decimal ; sh:order "001"^^xsd:decimal ;
. .
cts:classification
rdf:type owl:Class ;
rdf:type sh:NodeShape ;
rdfs:label "generation" ;
rdfs:subClassOf 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-list-of-entity-classes ;
.
cts:classification_1
rdf:type cts:classification ;
rdfs:label "classification 1" ;
.
cts:compose-entity-modlist-1 cts:compose-entity-modlist-1
rdf:type sh:SPARQLRule ; rdf:type sh:SPARQLRule ;
sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#>
...@@ -339,6 +381,7 @@ CONSTRUCT { ...@@ -339,6 +381,7 @@ CONSTRUCT {
?newNet net:class1 ?mainEntity. ?newNet net:class1 ?mainEntity.
?newNet net:class2 ?subEntity2. ?newNet net:class2 ?subEntity2.
?newNet net:class2 ?subEntity3. ?newNet net:class2 ?subEntity3.
?newNet net:entityInstance ?instanceName.
} }
WHERE { WHERE {
# net1: entity # net1: entity
...@@ -348,6 +391,7 @@ WHERE { ...@@ -348,6 +391,7 @@ WHERE {
?net1 net:node ?uw1. ?net1 net:node ?uw1.
?net1 net:entityClass ?entityClass. ?net1 net:entityClass ?entityClass.
?net1 net:concept ?mainEntity. ?net1 net:concept ?mainEntity.
?net1 net:entityInstance ?instanceName.
# net2: complement modList # net2: complement modList
?net2 a net:Instance. ?net2 a net:Instance.
?net2 net:type net:complement_mod_list. ?net2 net:type net:complement_mod_list.
...@@ -408,6 +452,7 @@ CONSTRUCT { ...@@ -408,6 +452,7 @@ CONSTRUCT {
?newNet net:class1 ?mainEntity. ?newNet net:class1 ?mainEntity.
?newNet net:class2 ?subEntity2. ?newNet net:class2 ?subEntity2.
?newNet net:class2 ?subEntity3. ?newNet net:class2 ?subEntity3.
?newNet net:entityInstance ?instanceName.
} }
WHERE { WHERE {
# net1: agent # net1: agent
...@@ -417,6 +462,7 @@ WHERE { ...@@ -417,6 +462,7 @@ WHERE {
?net1 net:node ?uw1. ?net1 net:node ?uw1.
?net1 net:entityClass ?entityClass1. ?net1 net:entityClass ?entityClass1.
?net1 net:concept ?mainEntity. ?net1 net:concept ?mainEntity.
?net1 net:entityInstance ?instanceName.
# net2: entity modList # net2: entity modList
?net2 a net:Instance. ?net2 a net:Instance.
?net2 net:type net:entity_mod_list. ?net2 net:type net:entity_mod_list.
...@@ -480,6 +526,7 @@ CONSTRUCT { ...@@ -480,6 +526,7 @@ CONSTRUCT {
?newNet net:class1 ?mainEntity. ?newNet net:class1 ?mainEntity.
?newNet net:class2 ?subEntity2. ?newNet net:class2 ?subEntity2.
?newNet net:class2 ?subEntity3. ?newNet net:class2 ?subEntity3.
?newNet net:entityInstance ?instanceName.
} }
WHERE { WHERE {
# net1: agent # net1: agent
...@@ -489,6 +536,7 @@ WHERE { ...@@ -489,6 +536,7 @@ WHERE {
?net1 net:node ?uw1. ?net1 net:node ?uw1.
?net1 net:entityClass ?entityClass1. ?net1 net:entityClass ?entityClass1.
?net1 net:concept ?mainEntity. ?net1 net:concept ?mainEntity.
?net1 net:entityInstance ?instanceName.
# net2: entity modList # net2: entity modList
?net2 a net:Instance. ?net2 a net:Instance.
?net2 net:type net:entity_mod_list. ?net2 net:type net:entity_mod_list.
...@@ -591,6 +639,49 @@ cts:entity_extraction_1 ...@@ -591,6 +639,49 @@ cts:entity_extraction_1
rdf:type cts:entity_extraction ; rdf:type cts:entity_extraction ;
rdfs:label "entity extraction 1" ; rdfs:label "entity extraction 1" ;
. .
cts:extend-instantiation-to-subclasses
rdf:type sh:SPARQLRule ;
rdfs:label "Extend Instantiatiation to Entity SubClasses" ;
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 {
?mainInstanceUri a ?mainEntityUri.
?mainInstanceUri a ?subEntityUri.
?mainInstanceUri rdfs:label ?mainInstance.
}
WHERE {
# net1: entity class list
?net1 a net:Instance.
?net1 net:type net:entity_class_list.
?net1 net:entityClass ?entityClass.
?net1 net:class1 ?mainEntity.
?net1 net:class2 ?subEntity.
?net1 net:entityInstance ?mainInstance.
# Label(s) / URI
cprm:Config_Parameters cprm:baseURI ?baseURI.
fprm:System_Ontology fprm:frameURI ?frameURI.
fprm:System_Entity rdfs:label ?entityLabel.
BIND (concat( ?frameURI, ?entityClass) AS ?s1).
BIND (concat(?s1, '_', ?mainEntity) AS ?s2).
BIND (concat(?s1, '_', ?subEntity) AS ?s3).
BIND (concat(?s1, '_', ?mainInstance) AS ?s4).
BIND (uri( ?s1) AS ?entityUri).
BIND (uri(?s2) AS ?mainEntityUri).
BIND (uri(?s3) AS ?subEntityUri).
BIND (uri(?s4) AS ?mainInstanceUri).
}""" ;
sh:order "302"^^xsd:decimal ;
.
cts:extend-list-of-entity-classes--old cts:extend-list-of-entity-classes--old
rdf:type sh:SPARQLRule ; rdf:type sh:SPARQLRule ;
sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#>
...@@ -681,14 +772,6 @@ cts:generation ...@@ -681,14 +772,6 @@ cts:generation
rdf:type sh:NodeShape ; rdf:type sh:NodeShape ;
rdfs:label "generation" ; rdfs:label "generation" ;
rdfs:subClassOf cts:Transduction_Schemes ; 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-list-of-entity-classes ;
.
cts:generation_1
rdf:type cts:generation ;
rdfs:label "generation 1" ;
. .
cts:init-mod-list cts:init-mod-list
rdf:type sh:SPARQLRule ; rdf:type sh:SPARQLRule ;
...@@ -731,6 +814,47 @@ WHERE { ...@@ -731,6 +814,47 @@ WHERE {
}""" ; }""" ;
sh:order "111"^^xsd:decimal ; sh:order "111"^^xsd:decimal ;
. .
cts:instantiate-entity-classes
rdf:type sh:SPARQLRule ;
rdfs:label "Instantiate 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 classes in System Ontology
CONSTRUCT {
?mainInstanceUri a ?mainEntityUri.
?mainInstanceUri rdfs:label ?mainInstance.
}
WHERE {
# net1: entity
?net1 a net:Instance.
?net1 net:type net:entity.
?net1 net:entityClass ?entityClass.
?net1 net:concept ?mainEntity.
?net1 net:entityInstance ?mainInstance.
# Label(s) / URI
cprm:Config_Parameters cprm:baseURI ?baseURI.
fprm:System_Ontology fprm:frameURI ?frameURI.
fprm:System_Entity rdfs:label ?entityLabel.
BIND (concat( ?frameURI, ?entityClass) AS ?s1).
BIND (concat(?s1, '_', ?mainEntity) AS ?s2).
BIND (concat(?s1, '_', ?mainInstance) AS ?s3).
BIND (uri( ?s1) AS ?entityUri).
BIND (uri(?s2) AS ?mainEntityUri).
BIND (uri(?s3) AS ?mainInstanceUri).
# Filter: entity not present in a class list
FILTER NOT EXISTS { ?net2 net:class2 ?mainEntity}
}""" ;
sh:order "301"^^xsd:decimal ;
.
cts:instantiate-entity-net cts:instantiate-entity-net
rdf:type sh:SPARQLRule ; rdf:type sh:SPARQLRule ;
sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#>
...@@ -764,11 +888,18 @@ WHERE { ...@@ -764,11 +888,18 @@ WHERE {
# -- old ---- ?uw1 unl:is_substructure_of ?req. # -- old ---- ?uw1 unl:is_substructure_of ?req.
# -- old ---- ?uw1 unl:is_occurrence_of ?lexTrg. # -- old ---- ?uw1 unl:is_occurrence_of ?lexTrg.
# Label(s) / URI # Label(s) / URI
BIND (concat( ?entityClass1, '_', ?concept1) AS ?s1). BIND (concat(?concept1, '_instance') AS ?instanceName).
BIND (concat(?s1, '_instance') AS ?instanceName).
}""" ; }""" ;
sh:order "102"^^xsd:decimal ; sh:order "102"^^xsd:decimal ;
. .
cts:instantiation
rdf:type owl:Class ;
rdf:type sh:NodeShape ;
rdfs:label "instantiation" ;
rdfs:subClassOf cts:generation ;
sh:rule cts:extend-instantiation-to-subclasses ;
sh:rule cts:instantiate-entity-classes ;
.
cts:link-to-scope-entry cts:link-to-scope-entry
rdf:type sh:SPARQLRule ; rdf:type sh:SPARQLRule ;
sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment