https://ontology.solveit-df.org/solveit/core/shapes/TechniqueIOTermConsistencyShape
Checks that a term named as a technique input or output is not declared as more than one kind of thing, which happens when SOLVE-IT states a type that contradicts the one CASE or UCO gives it.
@prefix default2: <https://ontology.solveit-df.org/solveit/core/shapes/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix solveit-core: <https://ontology.solveit-df.org/solveit/core/> .
default2:TechniqueIOTermConsistencyShape a sh:NodeShape ;
rdfs:label "SOLVE-IT Technique Input and Output Term Consistency Shape"@en ;
rdfs:comment "Checks that a term named as a technique input or output is not declared as more than one kind of thing, which happens when SOLVE-IT states a type that contradicts the one CASE or UCO gives it."@en ;
sh:sparql [ sh:message "A term named as a technique input or output is declared as more than one kind of thing. SOLVE-IT and CASE/UCO disagree about what it is."@en ;
sh:prefixes solveit-core: ;
sh:select """
SELECT $this ?value
WHERE {
$this ?path ?value .
FILTER(?path IN (<https://ontology.solveit-df.org/solveit/core/hasCASEInputClass>,
<https://ontology.solveit-df.org/solveit/core/hasCASEOutputClass>))
?value a ?kindA, ?kindB .
FILTER(?kindA != ?kindB)
FILTER(?kindA IN (<http://www.w3.org/2002/07/owl#Class>,
<http://www.w3.org/2002/07/owl#DatatypeProperty>,
<http://www.w3.org/2002/07/owl#ObjectProperty>))
FILTER(?kindB IN (<http://www.w3.org/2002/07/owl#Class>,
<http://www.w3.org/2002/07/owl#DatatypeProperty>,
<http://www.w3.org/2002/07/owl#ObjectProperty>))
}
""" ] ;
sh:targetClass solveit-core:Technique .