@base <http://www.w3.org/ns/shacl#> .
@prefix rdf: <../1999/02/22-rdf-syntax-ns#> .
@prefix owl: <../2002/07/owl#> .
@prefix sh: <> .
@prefix rdfs: <../2000/01/rdf-schema#> .
@prefix xsd: <../2001/XMLSchema#> .

<>
    a owl:Ontology ;
    rdfs:comment "This vocabulary defines terms used in SHACL, the W3C Shapes Constraint Language."@en ;
    rdfs:label "W3C Shapes Constraint Language (SHACL) Vocabulary"@en ;
    sh:declare [
        sh:namespace "http://www.w3.org/ns/shacl#" ;
        sh:prefix "sh"
    ] ;
    sh:suggestedShapesGraph <shacl-shacl#> .

sh:AbstractResult
    a rdfs:Class ;
    rdfs:comment "The base class of validation results, typically not instantiated directly."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Abstract result"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:AndConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to test whether a value node conforms to all members of a provided list of shapes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "And constraint component"@en ;
    sh:parameter sh:AndConstraintComponent-and .

sh:AndConstraintComponent-and
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:path sh:and .

sh:BlankNode
    a sh:NodeKind ;
    rdfs:comment "The node kind of all blank nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Blank node"@en .

sh:BlankNodeOrIRI
    a sh:NodeKind ;
    rdfs:comment "The node kind of all blank nodes or IRIs."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Blank node or IRI"@en .

sh:BlankNodeOrLiteral
    a sh:NodeKind ;
    rdfs:comment "The node kind of all blank nodes or literals."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Blank node or literal"@en .

sh:ClassConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to verify that each value node is an instance of a given type."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Class constraint component"@en ;
    sh:parameter sh:ClassConstraintComponent-class .

sh:ClassConstraintComponent-class
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:nodeKind sh:IRI ;
    sh:path sh:class .

sh:ClosedConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to indicate that focus nodes must only have values for those properties that have been explicitly enumerated via sh:property/sh:path."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Closed constraint component"@en ;
    sh:parameter sh:ClosedConstraintComponent-closed, sh:ClosedConstraintComponent-ignoredProperties .

sh:ClosedConstraintComponent-closed
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:datatype xsd:boolean ;
    sh:path sh:closed .

sh:ClosedConstraintComponent-ignoredProperties
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:optional true ;
    sh:path sh:ignoredProperties .

sh:ConstraintComponent
    a rdfs:Class ;
    rdfs:comment "The class of constraint components."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Constraint component"@en ;
    rdfs:subClassOf sh:Parameterizable .

sh:DatatypeConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to restrict the datatype of all value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Datatype constraint component"@en ;
    sh:parameter sh:DatatypeConstraintComponent-datatype .

sh:DatatypeConstraintComponent-datatype
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:maxCount 1 ;
    sh:nodeKind sh:IRI ;
    sh:path sh:datatype .

sh:DisjointConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to verify that the set of value nodes is disjoint with the the set of nodes that have the focus node as subject and the value of a given property as predicate."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Disjoint constraint component"@en ;
    sh:parameter sh:DisjointConstraintComponent-disjoint .

sh:DisjointConstraintComponent-disjoint
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:nodeKind sh:IRI ;
    sh:path sh:disjoint .

sh:EqualsConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to verify that the set of value nodes is equal to the set of nodes that have the focus node as subject and the value of a given property as predicate."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Equals constraint component"@en ;
    sh:parameter sh:EqualsConstraintComponent-equals .

sh:EqualsConstraintComponent-equals
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:nodeKind sh:IRI ;
    sh:path sh:equals .

sh:ExpressionConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to verify that a given node expression produces true for all value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Expression constraint component"@en ;
    sh:parameter sh:ExpressionConstraintComponent-expression .

sh:ExpressionConstraintComponent-expression
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:path sh:expression .

sh:Function
    a rdfs:Class ;
    rdfs:comment "The class of SHACL functions."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Function"@en ;
    rdfs:subClassOf sh:Parameterizable .

sh:HasValueConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to verify that one of the value nodes is a given RDF node."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Has-value constraint component"@en ;
    sh:parameter sh:HasValueConstraintComponent-hasValue .

sh:HasValueConstraintComponent-hasValue
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:path sh:hasValue .

sh:IRI
    a sh:NodeKind ;
    rdfs:comment "The node kind of all IRIs."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "IRI"@en .

sh:IRIOrLiteral
    a sh:NodeKind ;
    rdfs:comment "The node kind of all IRIs or literals."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "IRI or literal"@en .

sh:InConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to exclusively enumerate the permitted value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "In constraint component"@en ;
    sh:parameter sh:InConstraintComponent-in .

sh:InConstraintComponent-in
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:maxCount 1 ;
    sh:path sh:in .

sh:Info
    a sh:Severity ;
    rdfs:comment "The severity for an informational validation result."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Info"@en .

sh:JSConstraint
    a rdfs:Class ;
    rdfs:comment "The class of constraints backed by a JavaScript function."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "JavaScript-based constraint"@en ;
    rdfs:subClassOf sh:JSExecutable .

sh:JSConstraint-js
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:path sh:js .

sh:JSConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component with the parameter sh:js linking to a sh:JSConstraint containing a sh:script."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "JavaScript constraint component"@en ;
    sh:parameter sh:JSConstraint-js .

sh:JSExecutable
    a rdfs:Class ;
    rdfs:comment "Abstract base class of resources that declare an executable JavaScript."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "JavaScript executable"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:JSFunction
    a rdfs:Class ;
    rdfs:comment "The class of SHACL functions that execute a JavaScript function when called."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "JavaScript function"@en ;
    rdfs:subClassOf sh:Function, sh:JSExecutable .

sh:JSLibrary
    a rdfs:Class ;
    rdfs:comment "Represents a JavaScript library, typically identified by one or more URLs of files to include."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "JavaScript library"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:JSRule
    a rdfs:Class ;
    rdfs:comment "The class of SHACL rules expressed using JavaScript."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "JavaScript rule"@en ;
    rdfs:subClassOf sh:JSExecutable, sh:Rule .

sh:JSTarget
    a rdfs:Class ;
    rdfs:comment "The class of targets that are based on JavaScript functions."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "JavaScript target"@en ;
    rdfs:subClassOf sh:JSExecutable, sh:Target .

sh:JSTargetType
    a rdfs:Class ;
    rdfs:comment "The (meta) class for parameterizable targets that are based on JavaScript functions."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "JavaScript target type"@en ;
    rdfs:subClassOf sh:JSExecutable, sh:TargetType .

sh:JSValidator
    a rdfs:Class ;
    rdfs:comment "A SHACL validator based on JavaScript. This can be used to declare SHACL constraint components that perform JavaScript-based validation when used."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "JavaScript validator"@en ;
    rdfs:subClassOf sh:JSExecutable, sh:Validator .

sh:LanguageInConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to enumerate language tags that all value nodes must have."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Language-in constraint component"@en ;
    sh:parameter sh:LanguageInConstraintComponent-languageIn .

sh:LanguageInConstraintComponent-languageIn
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:maxCount 1 ;
    sh:path sh:languageIn .

sh:LessThanConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to verify that each value node is smaller than all the nodes that have the focus node as subject and the value of a given property as predicate."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Less-than constraint component"@en ;
    sh:parameter sh:LessThanConstraintComponent-lessThan .

sh:LessThanConstraintComponent-lessThan
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:nodeKind sh:IRI ;
    sh:path sh:lessThan .

sh:LessThanOrEqualsConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to verify that every value node is smaller than all the nodes that have the focus node as subject and the value of a given property as predicate."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "less-than-or-equals constraint component"@en ;
    sh:parameter sh:LessThanOrEqualsConstraintComponent-lessThanOrEquals .

sh:LessThanOrEqualsConstraintComponent-lessThanOrEquals
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:nodeKind sh:IRI ;
    sh:path sh:lessThanOrEquals .

sh:Literal
    a sh:NodeKind ;
    rdfs:comment "The node kind of all literals."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Literal"@en .

sh:MaxCountConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to restrict the maximum number of value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Max-count constraint component"@en ;
    sh:parameter sh:MaxCountConstraintComponent-maxCount .

sh:MaxCountConstraintComponent-maxCount
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:datatype xsd:integer ;
    sh:maxCount 1 ;
    sh:path sh:maxCount .

sh:MaxExclusiveConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to restrict the range of value nodes with a maximum exclusive value."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Max-exclusive constraint component"@en ;
    sh:parameter sh:MaxExclusiveConstraintComponent-maxExclusive .

sh:MaxExclusiveConstraintComponent-maxExclusive
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:maxCount 1 ;
    sh:nodeKind sh:Literal ;
    sh:path sh:maxExclusive .

sh:MaxInclusiveConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to restrict the range of value nodes with a maximum inclusive value."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Max-inclusive constraint component"@en ;
    sh:parameter sh:MaxInclusiveConstraintComponent-maxInclusive .

sh:MaxInclusiveConstraintComponent-maxInclusive
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:maxCount 1 ;
    sh:nodeKind sh:Literal ;
    sh:path sh:maxInclusive .

sh:MaxLengthConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to restrict the maximum string length of value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Max-length constraint component"@en ;
    sh:parameter sh:MaxLengthConstraintComponent-maxLength .

sh:MaxLengthConstraintComponent-maxLength
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:datatype xsd:integer ;
    sh:maxCount 1 ;
    sh:path sh:maxLength .

sh:MinCountConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to restrict the minimum number of value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Min-count constraint component"@en ;
    sh:parameter sh:MinCountConstraintComponent-minCount .

sh:MinCountConstraintComponent-minCount
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:datatype xsd:integer ;
    sh:maxCount 1 ;
    sh:path sh:minCount .

sh:MinExclusiveConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to restrict the range of value nodes with a minimum exclusive value."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Min-exclusive constraint component"@en ;
    sh:parameter sh:MinExclusiveConstraintComponent-minExclusive .

sh:MinExclusiveConstraintComponent-minExclusive
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:maxCount 1 ;
    sh:nodeKind sh:Literal ;
    sh:path sh:minExclusive .

sh:MinInclusiveConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to restrict the range of value nodes with a minimum inclusive value."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Min-inclusive constraint component"@en ;
    sh:parameter sh:MinInclusiveConstraintComponent-minInclusive .

sh:MinInclusiveConstraintComponent-minInclusive
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:maxCount 1 ;
    sh:nodeKind sh:Literal ;
    sh:path sh:minInclusive .

sh:MinLengthConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to restrict the minimum string length of value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Min-length constraint component"@en ;
    sh:parameter sh:MinLengthConstraintComponent-minLength .

sh:MinLengthConstraintComponent-minLength
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:datatype xsd:integer ;
    sh:maxCount 1 ;
    sh:path sh:minLength .

sh:NodeConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to verify that all value nodes conform to the given node shape."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Node constraint component"@en ;
    sh:parameter sh:NodeConstraintComponent-node .

sh:NodeConstraintComponent-node
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:path sh:node .

sh:NodeKind
    a rdfs:Class ;
    rdfs:comment "The class of all node kinds, including sh:BlankNode, sh:IRI, sh:Literal or the combinations of these: sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral, sh:IRIOrLiteral."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Node kind"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:NodeKindConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to restrict the RDF node kind of each value node."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Node-kind constraint component"@en ;
    sh:parameter sh:NodeKindConstraintComponent-nodeKind .

sh:NodeKindConstraintComponent-nodeKind
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:in (sh:BlankNode
        sh:IRI
        sh:Literal
        sh:BlankNodeOrIRI
        sh:BlankNodeOrLiteral
        sh:IRIOrLiteral
    ) ;
    sh:maxCount 1 ;
    sh:path sh:nodeKind .

sh:NodeShape
    a rdfs:Class ;
    rdfs:comment "A node shape is a shape that specifies constraint that need to be met with respect to focus nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Node shape"@en ;
    rdfs:subClassOf sh:Shape .

sh:NotConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to verify that value nodes do not conform to a given shape."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Not constraint component"@en ;
    sh:parameter sh:NotConstraintComponent-not .

sh:NotConstraintComponent-not
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:path sh:not .

sh:OrConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to restrict the value nodes so that they conform to at least one out of several provided shapes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Or constraint component"@en ;
    sh:parameter sh:OrConstraintComponent-or .

sh:OrConstraintComponent-or
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:path sh:or .

sh:Parameter
    a rdfs:Class ;
    rdfs:comment "The class of parameter declarations, consisting of a path predicate and (possibly) information about allowed value type, cardinality and other characteristics."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Parameter"@en ;
    rdfs:subClassOf sh:PropertyShape .

sh:Parameterizable
    a rdfs:Class ;
    rdfs:comment "Superclass of components that can take parameters, especially functions and constraint components."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Parameterizable"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:PatternConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to verify that every value node matches a given regular expression."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Pattern constraint component"@en ;
    sh:parameter sh:PatternConstraintComponent-flags, sh:PatternConstraintComponent-pattern .

sh:PatternConstraintComponent-flags
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:datatype xsd:string ;
    sh:optional true ;
    sh:path sh:flags .

sh:PatternConstraintComponent-pattern
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:datatype xsd:string ;
    sh:path sh:pattern .

sh:PrefixDeclaration
    a rdfs:Class ;
    rdfs:comment "The class of prefix declarations, consisting of pairs of a prefix with a namespace."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Prefix declaration"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:PropertyConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to verify that all value nodes conform to the given property shape."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Property constraint component"@en ;
    sh:parameter sh:PropertyConstraintComponent-property .

sh:PropertyConstraintComponent-property
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:path sh:property .

sh:PropertyGroup
    a rdfs:Class ;
    rdfs:comment "Instances of this class represent groups of property shapes that belong together."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Property group"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:PropertyShape
    a rdfs:Class ;
    rdfs:comment "A property shape is a shape that specifies constraints on the values of a focus node for a given property or path."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Property shape"@en ;
    rdfs:subClassOf sh:Shape .

sh:QualifiedMaxCountConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to verify that a specified maximum number of value nodes conforms to a given shape."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Qualified-max-count constraint component"@en ;
    sh:parameter sh:QualifiedMaxCountConstraintComponent-qualifiedMaxCount, sh:QualifiedMaxCountConstraintComponent-qualifiedValueShape, sh:QualifiedMaxCountConstraintComponent-qualifiedValueShapesDisjoint .

sh:QualifiedMaxCountConstraintComponent-qualifiedMaxCount
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:datatype xsd:integer ;
    sh:path sh:qualifiedMaxCount .

sh:QualifiedMaxCountConstraintComponent-qualifiedValueShape
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:path sh:qualifiedValueShape .

sh:QualifiedMaxCountConstraintComponent-qualifiedValueShapesDisjoint
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:datatype xsd:boolean ;
    sh:optional true ;
    sh:path sh:qualifiedValueShapesDisjoint .

sh:QualifiedMinCountConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to verify that a specified minimum number of value nodes conforms to a given shape."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Qualified-min-count constraint component"@en ;
    sh:parameter sh:QualifiedMinCountConstraintComponent-qualifiedMinCount, sh:QualifiedMinCountConstraintComponent-qualifiedValueShape, sh:QualifiedMinCountConstraintComponent-qualifiedValueShapesDisjoint .

sh:QualifiedMinCountConstraintComponent-qualifiedMinCount
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:datatype xsd:integer ;
    sh:path sh:qualifiedMinCount .

sh:QualifiedMinCountConstraintComponent-qualifiedValueShape
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:path sh:qualifiedValueShape .

sh:QualifiedMinCountConstraintComponent-qualifiedValueShapesDisjoint
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:datatype xsd:boolean ;
    sh:optional true ;
    sh:path sh:qualifiedValueShapesDisjoint .

sh:ResultAnnotation
    a rdfs:Class ;
    rdfs:comment "A class of result annotations, which define the rules to derive the values of a given annotation property as extra values for a validation result."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Result annotation"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:Rule
    a rdfs:Class ;
    rdfs:comment "The class of SHACL rules. Never instantiated directly."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Rule"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:SPARQLAskExecutable
    a rdfs:Class ;
    rdfs:comment "The class of SPARQL executables that are based on an ASK query."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "SPARQL ASK executable"@en ;
    rdfs:subClassOf sh:SPARQLExecutable .

sh:SPARQLAskValidator
    a rdfs:Class ;
    rdfs:comment "The class of validators based on SPARQL ASK queries. The queries are evaluated for each value node and are supposed to return true if the given node conforms."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "SPARQL ASK validator"@en ;
    rdfs:subClassOf sh:SPARQLAskExecutable, sh:Validator .

sh:SPARQLConstraint
    a rdfs:Class ;
    rdfs:comment "The class of constraints based on SPARQL SELECT queries."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "SPARQL constraint"@en ;
    rdfs:subClassOf sh:SPARQLSelectExecutable .

sh:SPARQLConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to define constraints based on SPARQL queries."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "SPARQL constraint component"@en ;
    sh:parameter sh:SPARQLConstraintComponent-sparql .

sh:SPARQLConstraintComponent-sparql
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:path sh:sparql .

sh:SPARQLConstructExecutable
    a rdfs:Class ;
    rdfs:comment "The class of SPARQL executables that are based on a CONSTRUCT query."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "SPARQL CONSTRUCT executable"@en ;
    rdfs:subClassOf sh:SPARQLExecutable .

sh:SPARQLExecutable
    a rdfs:Class ;
    rdfs:comment "The class of resources that encapsulate a SPARQL query."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "SPARQL executable"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:SPARQLFunction
    a rdfs:Class ;
    rdfs:comment "A function backed by a SPARQL query - either ASK or SELECT."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "SPARQL function"@en ;
    rdfs:subClassOf sh:Function, sh:SPARQLAskExecutable, sh:SPARQLSelectExecutable .

sh:SPARQLRule
    a rdfs:Class ;
    rdfs:comment "The class of SHACL rules based on SPARQL CONSTRUCT queries."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "SPARQL CONSTRUCT rule"@en ;
    rdfs:subClassOf sh:Rule, sh:SPARQLConstructExecutable .

sh:SPARQLSelectExecutable
    a rdfs:Class ;
    rdfs:comment "The class of SPARQL executables based on a SELECT query."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "SPARQL SELECT executable"@en ;
    rdfs:subClassOf sh:SPARQLExecutable .

sh:SPARQLSelectValidator
    a rdfs:Class ;
    rdfs:comment "The class of validators based on SPARQL SELECT queries. The queries are evaluated for each focus node and are supposed to produce bindings for all focus nodes that do not conform."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "SPARQL SELECT validator"@en ;
    rdfs:subClassOf sh:SPARQLSelectExecutable, sh:Validator .

sh:SPARQLTarget
    a rdfs:Class ;
    rdfs:comment "The class of targets that are based on SPARQL queries."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "SPARQL target"@en ;
    rdfs:subClassOf sh:SPARQLAskExecutable, sh:SPARQLSelectExecutable, sh:Target .

sh:SPARQLTargetType
    a rdfs:Class ;
    rdfs:comment "The (meta) class for parameterizable targets that are based on SPARQL queries."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "SPARQL target type"@en ;
    rdfs:subClassOf sh:SPARQLAskExecutable, sh:SPARQLSelectExecutable, sh:TargetType .

sh:SPARQLUpdateExecutable
    a rdfs:Class ;
    rdfs:comment "The class of SPARQL executables based on a SPARQL UPDATE."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "SPARQL UPDATE executable"@en ;
    rdfs:subClassOf sh:SPARQLExecutable .

sh:Severity
    a rdfs:Class ;
    rdfs:comment "The class of validation result severity levels, including violation and warning levels."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Severity"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:Shape
    a rdfs:Class ;
    rdfs:comment "A shape is a collection of constraints that may be targeted for certain nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Shape"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:Target
    a rdfs:Class ;
    rdfs:comment "The base class of targets such as those based on SPARQL queries."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Target"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:TargetType
    a rdfs:Class ;
    rdfs:comment "The (meta) class for parameterizable targets.	Instances of this are instantiated as values of the sh:target property."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Target type"@en ;
    rdfs:subClassOf rdfs:Class, sh:Parameterizable .

sh:TripleRule
    a rdfs:Class ;
    rdfs:isDefinedBy <> ;
    rdfs:label "A rule based on triple (subject, predicate, object) pattern."@en ;
    rdfs:subClassOf sh:Rule .

sh:UniqueLangConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to specify that no pair of value nodes may use the same language tag."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Unique-languages constraint component"@en ;
    sh:parameter sh:UniqueLangConstraintComponent-uniqueLang .

sh:UniqueLangConstraintComponent-uniqueLang
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
    sh:path sh:uniqueLang .

sh:ValidationReport
    a rdfs:Class ;
    rdfs:comment "The class of SHACL validation reports."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Validation report"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:ValidationResult
    a rdfs:Class ;
    rdfs:comment "The class of validation results."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Validation result"@en ;
    rdfs:subClassOf sh:AbstractResult .

sh:Validator
    a rdfs:Class ;
    rdfs:comment "The class of validators, which provide instructions on how to process a constraint definition. This class serves as base class for the SPARQL-based validators and other possible implementations."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Validator"@en ;
    rdfs:subClassOf rdfs:Resource .

sh:Violation
    a sh:Severity ;
    rdfs:comment "The severity for a violation validation result."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Violation"@en .

sh:Warning
    a sh:Severity ;
    rdfs:comment "The severity for a warning validation result."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Warning"@en .

sh:XoneConstraintComponent
    a sh:ConstraintComponent ;
    rdfs:comment "A constraint component that can be used to restrict the value nodes so that they conform to exactly one out of several provided shapes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "Exactly one constraint component"@en ;
    sh:parameter sh:XoneConstraintComponent-xone .

sh:XoneConstraintComponent-xone
    a sh:Parameter ;
    rdfs:isDefinedBy <> ;
    sh:path sh:xone .

sh:alternativePath
    a rdf:Property ;
    rdfs:comment "The (single) value of this property must be a list of path elements, representing the elements of alternative paths."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "alternative path"@en ;
    rdfs:range rdf:List .

sh:and
    a rdf:Property ;
    rdfs:comment "RDF list of shapes to validate the value nodes against."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "and"@en ;
    rdfs:range rdf:List .

sh:annotationProperty
    a rdf:Property ;
    rdfs:comment "The annotation property that shall be set."@en ;
    rdfs:domain sh:ResultAnnotation ;
    rdfs:isDefinedBy <> ;
    rdfs:label "annotation property"@en ;
    rdfs:range rdf:Property .

sh:annotationValue
    a rdf:Property ;
    rdfs:comment "The (default) values of the annotation property."@en ;
    rdfs:domain sh:ResultAnnotation ;
    rdfs:isDefinedBy <> ;
    rdfs:label "annotation value"@en .

sh:annotationVarName
    a rdf:Property ;
    rdfs:comment "The name of the SPARQL variable from the SELECT clause that shall be used for the values."@en ;
    rdfs:domain sh:ResultAnnotation ;
    rdfs:isDefinedBy <> ;
    rdfs:label "annotation variable name"@en ;
    rdfs:range xsd:string .

sh:ask
    a rdf:Property ;
    rdfs:comment "The SPARQL ASK query to execute."@en ;
    rdfs:domain sh:SPARQLAskExecutable ;
    rdfs:isDefinedBy <> ;
    rdfs:label "ask"@en ;
    rdfs:range xsd:string .

sh:class
    a rdf:Property ;
    rdfs:comment "The type that all value nodes must have."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "class"@en ;
    rdfs:range rdfs:Class .

sh:closed
    a rdf:Property ;
    rdfs:comment "If set to true then the shape is closed."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "closed"@en ;
    rdfs:range xsd:boolean .

sh:condition
    a rdf:Property ;
    rdfs:comment "The shapes that the focus nodes need to conform to before a rule is executed on them."@en ;
    rdfs:domain sh:Rule ;
    rdfs:isDefinedBy <> ;
    rdfs:label "condition"@en ;
    rdfs:range sh:Shape .

sh:conforms
    a rdf:Property ;
    rdfs:comment "True if the validation did not produce any validation results, and false otherwise."@en ;
    rdfs:domain sh:ValidationReport ;
    rdfs:isDefinedBy <> ;
    rdfs:label "conforms"@en ;
    rdfs:range xsd:boolean .

sh:construct
    a rdf:Property ;
    rdfs:comment "The SPARQL CONSTRUCT query to execute."@en ;
    rdfs:domain sh:SPARQLConstructExecutable ;
    rdfs:isDefinedBy <> ;
    rdfs:label "construct"@en ;
    rdfs:range xsd:string .

sh:datatype
    a rdf:Property ;
    rdfs:comment "Specifies an RDF datatype that all value nodes must have."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "datatype"@en ;
    rdfs:range rdfs:Datatype .

sh:deactivated
    a rdf:Property ;
    rdfs:comment "If set to true then all nodes conform to this."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "deactivated"@en ;
    rdfs:range xsd:boolean .

sh:declare
    a rdf:Property ;
    rdfs:comment "Links a resource with its namespace prefix declarations."@en ;
    rdfs:domain owl:Ontology ;
    rdfs:isDefinedBy <> ;
    rdfs:label "declare"@en ;
    rdfs:range sh:PrefixDeclaration .

sh:defaultValue
    a rdf:Property ;
    rdfs:comment "A default value for a property, for example for user interface tools to pre-populate input fields."@en ;
    rdfs:domain sh:PropertyShape ;
    rdfs:isDefinedBy <> ;
    rdfs:label "default value"@en .

sh:description
    a rdf:Property ;
    rdfs:comment "Human-readable descriptions for the property in the context of the surrounding shape."@en ;
    rdfs:domain sh:PropertyShape ;
    rdfs:isDefinedBy <> ;
    rdfs:label "description"@en .

sh:detail
    a rdf:Property ;
    rdfs:comment "Links a result with other results that provide more details, for example to describe violations against nested shapes."@en ;
    rdfs:domain sh:AbstractResult ;
    rdfs:isDefinedBy <> ;
    rdfs:label "detail"@en ;
    rdfs:range sh:AbstractResult .

sh:disjoint
    a rdf:Property ;
    rdfs:comment "Specifies a property where the set of values must be disjoint with the value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "disjoint"@en ;
    rdfs:range rdf:Property .

sh:entailment
    a rdf:Property ;
    rdfs:comment "An entailment regime that indicates what kind of inferencing is required by a shapes graph."@en ;
    rdfs:domain owl:Ontology ;
    rdfs:isDefinedBy <> ;
    rdfs:label "entailment"@en ;
    rdfs:range rdfs:Resource .

sh:equals
    a rdf:Property ;
    rdfs:comment "Specifies a property that must have the same values as the value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "equals"@en ;
    rdfs:range rdf:Property .

sh:expression
    a rdf:Property ;
    rdfs:comment "The node expression that must return true for the value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "expression"@en .

sh:filterShape
    a rdf:Property ;
    rdfs:comment "The shape that all input nodes of the expression need to conform to."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "filter shape"@en ;
    rdfs:range sh:Shape .

sh:flags
    a rdf:Property ;
    rdfs:comment "An optional flag to be used with regular expression pattern matching."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "flags"@en ;
    rdfs:range xsd:string .

sh:focusNode
    a rdf:Property ;
    rdfs:comment "The focus node that was validated when the result was produced."@en ;
    rdfs:domain sh:AbstractResult ;
    rdfs:isDefinedBy <> ;
    rdfs:label "focus node"@en .

sh:group
    a rdf:Property ;
    rdfs:comment "Can be used to link to a property group to indicate that a property shape belongs to a group of related property shapes."@en ;
    rdfs:domain sh:PropertyShape ;
    rdfs:isDefinedBy <> ;
    rdfs:label "group"@en ;
    rdfs:range sh:PropertyGroup .

sh:hasValue
    a rdf:Property ;
    rdfs:comment "Specifies a value that must be among the value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "has value"@en .

sh:ignoredProperties
    a rdf:Property ;
    rdfs:comment "An optional RDF list of properties that are also permitted in addition to those explicitly enumerated via sh:property/sh:path."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "ignored properties"@en ;
    rdfs:range rdf:List .

sh:in
    a rdf:Property ;
    rdfs:comment "Specifies a list of allowed values so that each value node must be among the members of the given list."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "in"@en ;
    rdfs:range rdf:List .

sh:intersection
    a rdf:Property ;
    rdfs:comment "A list of node expressions that shall be intersected."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "intersection"@en .

sh:inversePath
    a rdf:Property ;
    rdfs:comment "The (single) value of this property represents an inverse path (object to subject)."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "inverse path"@en ;
    rdfs:range rdfs:Resource .

sh:js
    a rdf:Property ;
    rdfs:comment "Constraints expressed in JavaScript." ;
    rdfs:isDefinedBy <> ;
    rdfs:label "JavaScript constraint"@en ;
    rdfs:range sh:JSConstraint .

sh:jsFunctionName
    a rdf:Property ;
    rdfs:comment "The name of the JavaScript function to execute."@en ;
    rdfs:domain sh:JSExecutable ;
    rdfs:isDefinedBy <> ;
    rdfs:label "JavaScript function name"@en ;
    rdfs:range xsd:string .

sh:jsLibrary
    a rdf:Property ;
    rdfs:comment "Declares which JavaScript libraries are needed to execute this."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "JavaScript library"@en ;
    rdfs:range sh:JSLibrary .

sh:jsLibraryURL
    a rdf:Property ;
    rdfs:comment "Declares the URLs of a JavaScript library. This should be the absolute URL of a JavaScript file. Implementations may redirect those to local files."@en ;
    rdfs:domain sh:JSLibrary ;
    rdfs:isDefinedBy <> ;
    rdfs:label "JavaScript library URL"@en ;
    rdfs:range xsd:anyURI .

sh:labelTemplate
    a rdf:Property ;
    rdfs:comment "Outlines how human-readable labels of instances of the associated Parameterizable shall be produced. The values can contain {?paramName} as placeholders for the actual values of the given parameter."@en ;
    rdfs:domain sh:Parameterizable ;
    rdfs:isDefinedBy <> ;
    rdfs:label "label template"@en .

sh:languageIn
    a rdf:Property ;
    rdfs:comment "Specifies a list of language tags that all value nodes must have."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "language in"@en ;
    rdfs:range rdf:List .

sh:lessThan
    a rdf:Property ;
    rdfs:comment "Specifies a property that must have smaller values than the value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "less than"@en ;
    rdfs:range rdf:Property .

sh:lessThanOrEquals
    a rdf:Property ;
    rdfs:comment "Specifies a property that must have smaller or equal values than the value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "less than or equals"@en ;
    rdfs:range rdf:Property .

sh:maxCount
    a rdf:Property ;
    rdfs:comment "Specifies the maximum number of values in the set of value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "max count"@en ;
    rdfs:range xsd:integer .

sh:maxExclusive
    a rdf:Property ;
    rdfs:comment "Specifies the maximum exclusive value of each value node."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "max exclusive"@en .

sh:maxInclusive
    a rdf:Property ;
    rdfs:comment "Specifies the maximum inclusive value of each value node."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "max inclusive"@en .

sh:maxLength
    a rdf:Property ;
    rdfs:comment "Specifies the maximum string length of each value node."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "max length"@en ;
    rdfs:range xsd:integer .

sh:message
    a rdf:Property ;
    rdfs:comment "A human-readable message (possibly with placeholders for variables) explaining the cause of the result."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "message"@en .

sh:minCount
    a rdf:Property ;
    rdfs:comment "Specifies the minimum number of values in the set of value nodes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "min count"@en ;
    rdfs:range xsd:integer .

sh:minExclusive
    a rdf:Property ;
    rdfs:comment "Specifies the minimum exclusive value of each value node."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "min exclusive"@en .

sh:minInclusive
    a rdf:Property ;
    rdfs:comment "Specifies the minimum inclusive value of each value node."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "min inclusive"@en .

sh:minLength
    a rdf:Property ;
    rdfs:comment "Specifies the minimum string length of each value node."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "min length"@en ;
    rdfs:range xsd:integer .

sh:name
    a rdf:Property ;
    rdfs:comment "Human-readable labels for the property in the context of the surrounding shape."@en ;
    rdfs:domain sh:PropertyShape ;
    rdfs:isDefinedBy <> ;
    rdfs:label "name"@en .

sh:namespace
    a rdf:Property ;
    rdfs:comment "The namespace associated with a prefix in a prefix declaration."@en ;
    rdfs:domain sh:PrefixDeclaration ;
    rdfs:isDefinedBy <> ;
    rdfs:label "namespace"@en ;
    rdfs:range xsd:anyURI .

sh:node
    a rdf:Property ;
    rdfs:comment "Specifies the node shape that all value nodes must conform to."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "node"@en ;
    rdfs:range sh:NodeShape .

sh:nodeKind
    a rdf:Property ;
    rdfs:comment "Specifies the node kind (e.g. IRI or literal) each value node."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "node kind"@en ;
    rdfs:range sh:NodeKind .

sh:nodeValidator
    a rdf:Property ;
    rdfs:comment "The validator(s) used to evaluate a constraint in the context of a node shape."@en ;
    rdfs:domain sh:ConstraintComponent ;
    rdfs:isDefinedBy <> ;
    rdfs:label "shape validator"@en ;
    rdfs:range sh:Validator .

sh:nodes
    a rdf:Property ;
    rdfs:comment "The node expression producing the input nodes of a filter shape expression."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "nodes"@en .

sh:not
    a rdf:Property ;
    rdfs:comment "Specifies a shape that the value nodes must not conform to."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "not"@en ;
    rdfs:range sh:Shape .

sh:object
    a rdf:Property ;
    rdfs:comment "An expression producing the nodes that shall be inferred as objects."@en ;
    rdfs:domain sh:TripleRule ;
    rdfs:isDefinedBy <> ;
    rdfs:label "object"@en .

sh:oneOrMorePath
    a rdf:Property ;
    rdfs:comment "The (single) value of this property represents a path that is matched one or more times."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "one or more path"@en ;
    rdfs:range rdfs:Resource .

sh:optional
    a rdf:Property ;
    rdfs:comment "Indicates whether a parameter is optional."@en ;
    rdfs:domain sh:Parameter ;
    rdfs:isDefinedBy <> ;
    rdfs:label "optional"@en ;
    rdfs:range xsd:boolean .

sh:or
    a rdf:Property ;
    rdfs:comment "Specifies a list of shapes so that the value nodes must conform to at least one of the shapes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "or"@en ;
    rdfs:range rdf:List .

sh:order
    a rdf:Property ;
    rdfs:comment "Specifies the relative order of this compared to its siblings. For example use 0 for the first, 1 for the second."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "order"@en .

sh:parameter
    a rdf:Property ;
    rdfs:comment "The parameters of a function or constraint component."@en ;
    rdfs:domain sh:Parameterizable ;
    rdfs:isDefinedBy <> ;
    rdfs:label "parameter"@en ;
    rdfs:range sh:Parameter .

sh:path
    a rdf:Property ;
    rdfs:comment "Specifies the property path of a property shape."@en ;
    rdfs:domain sh:PropertyShape ;
    rdfs:isDefinedBy <> ;
    rdfs:label "path"@en ;
    rdfs:range rdfs:Resource .

sh:pattern
    a rdf:Property ;
    rdfs:comment "Specifies a regular expression pattern that the string representations of the value nodes must match."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "pattern"@en ;
    rdfs:range xsd:string .

sh:predicate
    a rdf:Property ;
    rdfs:comment "An expression producing the properties that shall be inferred as predicates."@en ;
    rdfs:domain sh:TripleRule ;
    rdfs:isDefinedBy <> ;
    rdfs:label "predicate"@en .

sh:prefix
    a rdf:Property ;
    rdfs:comment "The prefix of a prefix declaration."@en ;
    rdfs:domain sh:PrefixDeclaration ;
    rdfs:isDefinedBy <> ;
    rdfs:label "prefix"@en ;
    rdfs:range xsd:string .

sh:prefixes
    a rdf:Property ;
    rdfs:comment "The prefixes that shall be applied before parsing the associated SPARQL query."@en ;
    rdfs:domain sh:SPARQLExecutable ;
    rdfs:isDefinedBy <> ;
    rdfs:label "prefixes"@en ;
    rdfs:range owl:Ontology .

sh:property
    a rdf:Property ;
    rdfs:comment "Links a shape to its property shapes."@en ;
    rdfs:domain sh:Shape ;
    rdfs:isDefinedBy <> ;
    rdfs:label "property"@en ;
    rdfs:range sh:PropertyShape .

sh:propertyValidator
    a rdf:Property ;
    rdfs:comment "The validator(s) used to evaluate a constraint in the context of a property shape."@en ;
    rdfs:domain sh:ConstraintComponent ;
    rdfs:isDefinedBy <> ;
    rdfs:label "property validator"@en ;
    rdfs:range sh:Validator .

sh:qualifiedMaxCount
    a rdf:Property ;
    rdfs:comment "The maximum number of value nodes that can conform to the shape."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "qualified max count"@en ;
    rdfs:range xsd:integer .

sh:qualifiedMinCount
    a rdf:Property ;
    rdfs:comment "The minimum number of value nodes that must conform to the shape."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "qualified min count"@en ;
    rdfs:range xsd:integer .

sh:qualifiedValueShape
    a rdf:Property ;
    rdfs:comment "The shape that a specified number of values must conform to."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "qualified value shape"@en ;
    rdfs:range sh:Shape .

sh:qualifiedValueShapesDisjoint
    a rdf:Property ;
    rdfs:comment "Can be used to mark the qualified value shape to be disjoint with its sibling shapes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "qualified value shapes disjoint"@en ;
    rdfs:range xsd:boolean .

sh:result
    a rdf:Property ;
    rdfs:comment "The validation results contained in a validation report."@en ;
    rdfs:domain sh:ValidationReport ;
    rdfs:isDefinedBy <> ;
    rdfs:label "result"@en ;
    rdfs:range sh:ValidationResult .

sh:resultAnnotation
    a rdf:Property ;
    rdfs:comment "Links a SPARQL validator with zero or more sh:ResultAnnotation instances, defining how to derive additional result properties based on the variables of the SELECT query."@en ;
    rdfs:domain sh:SPARQLSelectValidator ;
    rdfs:isDefinedBy <> ;
    rdfs:label "result annotation"@en ;
    rdfs:range sh:ResultAnnotation .

sh:resultMessage
    a rdf:Property ;
    rdfs:comment "Human-readable messages explaining the cause of the result."@en ;
    rdfs:domain sh:AbstractResult ;
    rdfs:isDefinedBy <> ;
    rdfs:label "result message"@en .

sh:resultPath
    a rdf:Property ;
    rdfs:comment "The path of a validation result, based on the path of the validated property shape."@en ;
    rdfs:domain sh:AbstractResult ;
    rdfs:isDefinedBy <> ;
    rdfs:label "result path"@en ;
    rdfs:range rdfs:Resource .

sh:resultSeverity
    a rdf:Property ;
    rdfs:comment "The severity of the result, e.g. warning."@en ;
    rdfs:domain sh:AbstractResult ;
    rdfs:isDefinedBy <> ;
    rdfs:label "result severity"@en ;
    rdfs:range sh:Severity .

sh:returnType
    a rdf:Property ;
    rdfs:comment "The expected type of values returned by the associated function."@en ;
    rdfs:domain sh:Function ;
    rdfs:isDefinedBy <> ;
    rdfs:label "return type"@en ;
    rdfs:range rdfs:Class .

sh:rule
    a rdf:Property ;
    rdfs:comment "The rules linked to a shape."@en ;
    rdfs:domain sh:Shape ;
    rdfs:isDefinedBy <> ;
    rdfs:label "rule"@en ;
    rdfs:range sh:Rule .

sh:select
    a rdf:Property ;
    rdfs:comment "The SPARQL SELECT query to execute."@en ;
    rdfs:domain sh:SPARQLSelectExecutable ;
    rdfs:isDefinedBy <> ;
    rdfs:label "select"@en ;
    rdfs:range xsd:string .

sh:severity
    a rdf:Property ;
    rdfs:comment "Defines the severity that validation results produced by a shape must have. Defaults to sh:Violation."@en ;
    rdfs:domain sh:Shape ;
    rdfs:isDefinedBy <> ;
    rdfs:label "severity"@en ;
    rdfs:range sh:Severity .

sh:shapesGraph
    a rdf:Property ;
    rdfs:comment "Shapes graphs that should be used when validating this data graph."@en ;
    rdfs:domain owl:Ontology ;
    rdfs:isDefinedBy <> ;
    rdfs:label "shapes graph"@en ;
    rdfs:range owl:Ontology .

sh:shapesGraphWellFormed
    a rdf:Property ;
    rdfs:comment "If true then the validation engine was certain that the shapes graph has passed all SHACL syntax requirements during the validation process."@en ;
    rdfs:domain sh:ValidationReport ;
    rdfs:isDefinedBy <> ;
    rdfs:label "shapes graph well-formed"@en ;
    rdfs:range xsd:boolean .

sh:sourceConstraint
    a rdf:Property ;
    rdfs:comment "The constraint that was validated when the result was produced."@en ;
    rdfs:domain sh:AbstractResult ;
    rdfs:isDefinedBy <> ;
    rdfs:label "source constraint"@en .

sh:sourceConstraintComponent
    a rdf:Property ;
    rdfs:comment "The constraint component that is the source of the result."@en ;
    rdfs:domain sh:AbstractResult ;
    rdfs:isDefinedBy <> ;
    rdfs:label "source constraint component"@en ;
    rdfs:range sh:ConstraintComponent .

sh:sourceShape
    a rdf:Property ;
    rdfs:comment "The shape that is was validated when the result was produced."@en ;
    rdfs:domain sh:AbstractResult ;
    rdfs:isDefinedBy <> ;
    rdfs:label "source shape"@en ;
    rdfs:range sh:Shape .

sh:sparql
    a rdf:Property ;
    rdfs:comment "Links a shape with SPARQL constraints."@en ;
    rdfs:domain sh:Shape ;
    rdfs:isDefinedBy <> ;
    rdfs:label "constraint (in SPARQL)"@en ;
    rdfs:range sh:SPARQLConstraint .

sh:subject
    a rdf:Property ;
    rdfs:comment "An expression producing the resources that shall be inferred as subjects."@en ;
    rdfs:domain sh:TripleRule ;
    rdfs:isDefinedBy <> ;
    rdfs:label "subject"@en .

sh:suggestedShapesGraph
    a rdf:Property ;
    rdfs:comment "Suggested shapes graphs for this ontology. The values of this property may be used in the absence of specific sh:shapesGraph statements."@en ;
    rdfs:domain owl:Ontology ;
    rdfs:isDefinedBy <> ;
    rdfs:label "suggested shapes graph"@en ;
    rdfs:range owl:Ontology .

sh:target
    a rdf:Property ;
    rdfs:comment "Links a shape to a target specified by an extension language, for example instances of sh:SPARQLTarget."@en ;
    rdfs:domain sh:Shape ;
    rdfs:isDefinedBy <> ;
    rdfs:label "target"@en ;
    rdfs:range sh:Target .

sh:targetClass
    a rdf:Property ;
    rdfs:comment "Links a shape to a class, indicating that all instances of the class must conform to the shape."@en ;
    rdfs:domain sh:Shape ;
    rdfs:isDefinedBy <> ;
    rdfs:label "target class"@en ;
    rdfs:range rdfs:Class .

sh:targetNode
    a rdf:Property ;
    rdfs:comment "Links a shape to individual nodes, indicating that these nodes must conform to the shape."@en ;
    rdfs:domain sh:Shape ;
    rdfs:isDefinedBy <> ;
    rdfs:label "target node"@en .

sh:targetObjectsOf
    a rdf:Property ;
    rdfs:comment "Links a shape to a property, indicating that all all objects of triples that have the given property as their predicate must conform to the shape."@en ;
    rdfs:domain sh:Shape ;
    rdfs:isDefinedBy <> ;
    rdfs:label "target objects of"@en ;
    rdfs:range rdf:Property .

sh:targetSubjectsOf
    a rdf:Property ;
    rdfs:comment "Links a shape to a property, indicating that all subjects of triples that have the given property as their predicate must conform to the shape."@en ;
    rdfs:domain sh:Shape ;
    rdfs:isDefinedBy <> ;
    rdfs:label "target subjects of"@en ;
    rdfs:range rdf:Property .

sh:this
    a rdfs:Resource ;
    rdfs:comment "A node expression that represents the current focus node."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "this"@en .

sh:union
    a rdf:Property ;
    rdfs:comment "A list of node expressions that shall be used together."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "union"@en .

sh:uniqueLang
    a rdf:Property ;
    rdfs:comment "Specifies whether all node values must have a unique (or no) language tag."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "unique languages"@en ;
    rdfs:range xsd:boolean .

sh:update
    a rdf:Property ;
    rdfs:comment "The SPARQL UPDATE to execute."@en ;
    rdfs:domain sh:SPARQLUpdateExecutable ;
    rdfs:isDefinedBy <> ;
    rdfs:label "update"@en ;
    rdfs:range xsd:string .

sh:validator
    a rdf:Property ;
    rdfs:comment "The validator(s) used to evaluate constraints of either node or property shapes."@en ;
    rdfs:domain sh:ConstraintComponent ;
    rdfs:isDefinedBy <> ;
    rdfs:label "validator"@en ;
    rdfs:range sh:Validator .

sh:value
    a rdf:Property ;
    rdfs:comment "An RDF node that has caused the result."@en ;
    rdfs:domain sh:AbstractResult ;
    rdfs:isDefinedBy <> ;
    rdfs:label "value"@en .

sh:xone
    a rdf:Property ;
    rdfs:comment "Specifies a list of shapes so that the value nodes must conform to exactly one of the shapes."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "exactly one"@en ;
    rdfs:range rdf:List .

sh:zeroOrMorePath
    a rdf:Property ;
    rdfs:comment "The (single) value of this property represents a path that is matched zero or more times."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "zero or more path"@en ;
    rdfs:range rdfs:Resource .

sh:zeroOrOnePath
    a rdf:Property ;
    rdfs:comment "The (single) value of this property represents a path that is matched zero or one times."@en ;
    rdfs:isDefinedBy <> ;
    rdfs:label "zero or one path"@en ;
    rdfs:range rdfs:Resource .

