:TechniqueIOTermConsistencyShape leaf node


URI

https://ontology.solveit-df.org/solveit/core/shapes/TechniqueIOTermConsistencyShape

Label

SOLVE-IT Technique Input and Output Term Consistency Shape

Description

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.

Target Classes (1)

Shape Properties

Instances of solveit-core:Technique can have the following properties:

PROPERTY

MIN COUNT

MAX COUNT

TYPE

solveit-core:Technique
1
solveit-core:hasCASEInputClass
solveit-core:hasCASEOutputClass
solveit-core:techniqueID 1 1

Implementation

@prefix : <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/> .

: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 .