default2:TechniqueShape leaf node


URI

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

Label

SOLVE-IT Technique Shape

Description

Checks that each SOLVE-IT technique is declared as an owl:Class and is placed under solveit-core:SolveitInvestigativeAction, directly or through a parent technique.

Targets (1)

Property Constraints (3)

Focus nodes of this shape (solveit-core:Technique) can have the following properties:

PROPERTY DESCRIPTION MIN MAX VALUE TYPE OTHER CONSTRAINTS
rdf:type
sh:message A SOLVE-IT technique must also be declared an owl:Class, so that performed actions can be typed with it.
0 *
sh:hasValue owl:Class
rdfs:subClassOf
sh:message A SOLVE-IT technique class must have at least one rdfs:subClassOf — either its parent technique, or solveit-core:SolveitInvestigativeAction for a root technique.
1 * sh:IRI
solveit-core:techniqueID The unique identifier for a SOLVE-IT technique (e.g., T1002).
sh:message A SOLVE-IT technique must have exactly one techniqueID.
1 1

Implementation

@prefix default2: <https://ontology.solveit-df.org/solveit/core/shapes/> .
@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 sh: <http://www.w3.org/ns/shacl#> .
@prefix solveit-core: <https://ontology.solveit-df.org/solveit/core/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

default2:TechniqueShape a sh:NodeShape ;
    rdfs:label "SOLVE-IT Technique Shape"@en ;
    rdfs:comment "Checks that each SOLVE-IT technique is declared as an owl:Class and is placed under solveit-core:SolveitInvestigativeAction, directly or through a parent technique."@en ;
    sh:property [ sh:hasValue owl:Class ;
            sh:message "A SOLVE-IT technique must also be declared an owl:Class, so that performed actions can be typed with it."@en ;
            sh:path rdf:type ],
        [ sh:message "A SOLVE-IT technique class must have at least one rdfs:subClassOf — either its parent technique, or solveit-core:SolveitInvestigativeAction for a root technique."@en ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path rdfs:subClassOf ],
        [ sh:maxCount 1 ;
            sh:message "A SOLVE-IT technique must have exactly one techniqueID."@en ;
            sh:minCount 1 ;
            sh:path solveit-core:techniqueID ] ;
    sh:targetClass solveit-core:Technique .