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 sh: <http://www.w3.org/ns/shacl#>
PREFIX linkml: <https://w3id.org/linkml/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX pav: <http://purl.org/pav/>
PREFIX schema: <http://schema.org/>
PREFIX vann: <http://purl.org/vocab/vann/>

sh: a owl:Ontology ;
  rdfs:label "W3C Shapes Constraint Language (SHACL) Vocabulary"@en ;
  rdfs:comment "This vocabulary defines terms used in SHACL, the W3C Shapes Constraint Language."@en ;
  schema:inLanguage "en" ;
  dcterms:license <https://www.w3.org/copyright/software-license/> ;
  pav:version "http://www.w3.org/ns/shacl#1.2" ;
  dcterms:creator "W3C Data Shapes Working Group"@en ;
  dcterms:publisher "World Wide Web Consortium"@en ;
  sh:suggestedShapesGraph <http://www.w3.org/ns/shacl-shacl#> ;
  vann:preferredNamespacePrefix "sh" ;
  vann:preferredNamespaceUri "http://www.w3.org/ns/shacl#"^^xsd:anyURI ;
  sh:declare [
    sh:prefix "sh" ;
    sh:namespace "http://www.w3.org/ns/shacl#"^^xsd:anyURI
  ] , [
    sh:prefix "linkml" ;
    sh:namespace "https://w3id.org/linkml/"^^xsd:anyURI
  ] , [
    sh:prefix "dcterms" ;
    sh:namespace "http://purl.org/dc/terms/"^^xsd:anyURI
  ] , [
    sh:prefix "rdf" ;
    sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI
  ] , [
    sh:prefix "rdfs" ;
    sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI
  ] , [
    sh:prefix "xsd" ;
    sh:namespace "http://www.w3.org/2001/XMLSchema#"^^xsd:anyURI
  ] , [
    sh:prefix "owl" ;
    sh:namespace "http://www.w3.org/2002/07/owl#"^^xsd:anyURI
  ] .

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

sh:SPARQLSelectValidator a owl:Class ;
  rdfs:label "SPARQL SELECT validator"@en ;
  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 sh: ;
  rdfs:subClassOf sh:SPARQLSelectExecutable , sh:Validator , [
    a owl:Restriction ;
    owl:onProperty sh:resultAnnotation ;
    owl:allValuesFrom sh:ResultAnnotation
  ] .

sh:Parameter a owl:Class ;
  rdfs:label "Parameter"@en ;
  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 sh: ;
  rdfs:subClassOf sh:PropertyShape , [
    a owl:Restriction ;
    owl:onProperty sh:keyParameter ;
    owl:allValuesFrom xsd:boolean
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:optional ;
    owl:allValuesFrom xsd:boolean
  ] .

sh:NodeExpressionFunction a owl:Class ;
  rdfs:label "Node expression function"@en ;
  rdfs:comment "The base (meta) class of node expression functions."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf rdfs:Class , [
    a owl:Restriction ;
    owl:onProperty sh:bodyExpression ;
    owl:allValuesFrom owl:Thing
  ] .

sh:ConstraintComponent a owl:Class ;
  rdfs:label "Constraint component"@en ;
  rdfs:comment "The class of constraint components."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:Parameterizable , [
    a owl:Restriction ;
    owl:onProperty sh:propertyValidator ;
    owl:allValuesFrom sh:Validator
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:nodeValidator ;
    owl:allValuesFrom sh:Validator
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:validator ;
    owl:allValuesFrom sh:Validator
  ] .

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

sh:PropertyShape a owl:Class ;
  rdfs:label "Property shape"@en ;
  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 sh: ;
  rdfs:subClassOf sh:Shape , [
    a owl:Restriction ;
    owl:onProperty sh:description ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:name ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:path ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:group ;
    owl:allValuesFrom sh:PropertyGroup
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:defaultValue ;
    owl:allValuesFrom owl:Thing
  ] .

sh:SPARQLSelectExecutable a owl:Class ;
  rdfs:label "SPARQL SELECT executable"@en ;
  rdfs:comment "The class of SPARQL executables based on a SELECT query."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:SPARQLExecutable , [
    a owl:Restriction ;
    owl:onProperty sh:select ;
    owl:allValuesFrom xsd:string
  ] .

sh:NodeExpression a owl:Class ;
  rdfs:label "Node expression"@en ;
  rdfs:comment "The base class of node expression (instances)."@en ;
  rdfs:isDefinedBy sh: .

sh:SPARQLAskValidator a owl:Class ;
  rdfs:label "SPARQL ASK validator"@en ;
  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 sh: ;
  rdfs:subClassOf sh:SPARQLAskExecutable , sh:Validator .

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

sh:Function a owl:Class ;
  rdfs:label "Function"@en ;
  rdfs:comment "The class of SHACL functions."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:Parameterizable , [
    a owl:Restriction ;
    owl:onProperty sh:returnType ;
    owl:allValuesFrom rdfs:Class
  ] .

sh:Validator a owl:Class ;
  rdfs:label "Validator"@en ;
  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 sh: .

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

sh:SPARQLConstructExecutable a owl:Class ;
  rdfs:label "SPARQL CONSTRUCT executable"@en ;
  rdfs:comment "The class of SPARQL executables that are based on a CONSTRUCT query."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:SPARQLExecutable , [
    a owl:Restriction ;
    owl:onProperty sh:construct ;
    owl:allValuesFrom xsd:string
  ] .

sh:AbstractResult a owl:Class ;
  rdfs:label "Abstract result"@en ;
  rdfs:comment "The base class of validation results, typically not instantiated directly."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty sh:sourceShape ;
    owl:allValuesFrom sh:Shape
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:sourceConstraintComponent ;
    owl:allValuesFrom sh:ConstraintComponent
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:detail ;
    owl:allValuesFrom sh:AbstractResult
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:resultMessage ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:focusNode ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:sourceConstraint ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:resultPath ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:value ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:resultSeverity ;
    owl:allValuesFrom sh:Severity
  ] .

sh:Parameterizable a owl:Class ;
  rdfs:label "Parameterizable"@en ;
  rdfs:comment "Superclass of components that can take parameters, especially functions and constraint components."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty sh:labelTemplate ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:parameter ;
    owl:allValuesFrom sh:Parameter
  ] .

sh:ListParameterExpressionFunction a owl:Class ;
  rdfs:label "List parameter expression function"@en ;
  rdfs:comment "The base class of node expression functions that take a list of parameters."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:NodeExpressionFunction .

sh:SPARQLDescribeExecutable a owl:Class ;
  rdfs:label "SPARQL DESCRIBE executable"@en ;
  rdfs:comment "The class of SPARQL executables based on a SPARQL DESCRIBE."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:SPARQLExecutable , [
    a owl:Restriction ;
    owl:onProperty sh:describe ;
    owl:allValuesFrom xsd:string
  ] .

sh:DataGraph a owl:Class ;
  rdfs:label "Data graph"@en ;
  rdfs:comment "The class of graphs that typically act in the role of a SHACL data graph."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:Graph , [
    a owl:Restriction ;
    owl:onProperty sh:suggestedShapesGraph ;
    owl:allValuesFrom sh:ShapesGraph
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:validationReport ;
    owl:allValuesFrom sh:ValidationReport
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:conformsTo ;
    owl:allValuesFrom sh:ShapesGraph
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:shapesGraph ;
    owl:allValuesFrom sh:ShapesGraph
  ] .

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

sh:ShapeClass a owl:Class ;
  rdfs:label "Shape class"@en ;
  rdfs:comment "A shape class is a class that is also a node shape. sh:ShapeClass can be used as rdf:type instead of the combination of rdfs:Class and sh:NodeShape."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:NodeShape , rdfs:Class .

sh:SPARQLAskExecutable a owl:Class ;
  rdfs:label "SPARQL ASK executable"@en ;
  rdfs:comment "The class of SPARQL executables that are based on an ASK query."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:SPARQLExecutable , [
    a owl:Restriction ;
    owl:onProperty sh:ask ;
    owl:allValuesFrom xsd:string
  ] .

sh:TripleRule a owl:Class ;
  rdfs:label "Triple rule"@en ;
  rdfs:comment "A rule based on triple (subject, predicate, object) pattern."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:Rule , [
    a owl:Restriction ;
    owl:onProperty sh:object ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:subject ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:predicate ;
    owl:allValuesFrom owl:Thing
  ] .

sh:Rule a owl:Class ;
  rdfs:label "Rule"@en ;
  rdfs:comment "The class of SHACL rules. Never instantiated directly."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty sh:condition ;
    owl:allValuesFrom sh:Shape
  ] .

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

sh:PrefixDeclaration a owl:Class ;
  rdfs:label "Prefix declaration"@en ;
  rdfs:comment "The class of prefix declarations, consisting of pairs of a prefix with a namespace."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty sh:prefix ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:namespace ;
    owl:allValuesFrom xsd:anyURI
  ] .

sh:ResultAnnotation a owl:Class ;
  rdfs:label "Result annotation"@en ;
  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 sh: ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty sh:annotationVarName ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:annotationProperty ;
    owl:allValuesFrom rdf:Property
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:annotationValue ;
    owl:allValuesFrom owl:Thing
  ] .

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

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

sh:SPARQLUpdateExecutable a owl:Class ;
  rdfs:label "SPARQL UPDATE executable"@en ;
  rdfs:comment "The class of SPARQL executables based on a SPARQL UPDATE."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:SPARQLExecutable , [
    a owl:Restriction ;
    owl:onProperty sh:update ;
    owl:allValuesFrom xsd:string
  ] .

sh:ShapesGraph a owl:Class ;
  rdfs:label "Shapes graph"@en ;
  rdfs:comment "The class of graphs that typically act in the role of a SHACL shapes graph."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:Graph , [
    a owl:Restriction ;
    owl:onProperty sh:entailment ;
    owl:allValuesFrom owl:Thing
  ] .

sh:Graph a owl:Class ;
  rdfs:label "Graph"@en ;
  rdfs:comment "The class of graphs."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf owl:Ontology .

sh:Shape a owl:Class ;
  rdfs:label "Shape"@en ;
  rdfs:comment "A shape is a collection of constraints that may be targeted for certain nodes."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty sh:targetNode ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:sparql ;
    owl:allValuesFrom sh:SPARQLConstraint
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:target ;
    owl:allValuesFrom sh:Target
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:targetSubjectsOf ;
    owl:allValuesFrom rdf:Property
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:targetClass ;
    owl:allValuesFrom rdfs:Class
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:targetWhere ;
    owl:allValuesFrom sh:Shape
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:targetObjectsOf ;
    owl:allValuesFrom rdf:Property
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:rule ;
    owl:allValuesFrom sh:Rule
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:unit ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:property ;
    owl:allValuesFrom sh:PropertyShape
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:codeIdentifier ;
    owl:allValuesFrom xsd:string
  ] .

sh:ListParameterExpression a owl:Class ;
  rdfs:label "List parameter expression"@en ;
  rdfs:comment "The base class of node expressions (instances) that take a list of parameters."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:NodeExpression .

sh:NamedParameterExpression a owl:Class ;
  rdfs:label "Named parameter expression"@en ;
  rdfs:comment "The base class of node expressions (instances) that take named parameters."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:NodeExpression .

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

sh:SPARQLExecutable a owl:Class ;
  rdfs:label "SPARQL executable"@en ;
  rdfs:comment "The class of resources that encapsulate a SPARQL query."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty sh:prefixes ;
    owl:allValuesFrom owl:Thing
  ] .

sh:ValidationReport a owl:Class ;
  rdfs:label "Validation report"@en ;
  rdfs:comment "The class of SHACL validation reports."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty sh:conformanceDisallows ;
    owl:allValuesFrom sh:Severity
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:shapesGraphWellFormed ;
    owl:allValuesFrom xsd:boolean
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:result ;
    owl:allValuesFrom sh:ValidationResult
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:conforms ;
    owl:allValuesFrom xsd:boolean
  ] , [
    a owl:Restriction ;
    owl:onProperty sh:usedShapesGraph ;
    owl:allValuesFrom sh:ShapesGraph
  ] .

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

sh:SelectExpression a owl:Class , owl:NamedIndividual ;
  rdfs:label "Select expression"@en ;
  rdfs:comment "The class of node expressions based on SPARQL SELECT queries."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:NamedParameterExpression , sh:SPARQLSelectExecutable ;
  a sh:NamedParameterExpressionFunction .

sh:SPARQLExprExpression a owl:Class , owl:NamedIndividual ;
  rdfs:label "SPARQL expr expression"@en ;
  rdfs:comment "The class of node expressions based on SPARQL expressions (sh:sparqlExpr)."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:NamedParameterExpression , sh:SPARQLExecutable , [
    a owl:Restriction ;
    owl:onProperty sh:sparqlExpr ;
    owl:allValuesFrom xsd:string
  ] ;
  a sh:NamedParameterExpressionFunction .

sh:disjoint a owl:ObjectProperty ;
  rdfs:label "disjoint"@en ;
  rdfs:comment "Specifies a property path where the set of values must be disjoint with the value nodes."@en ;
  rdfs:isDefinedBy sh: .

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

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

sh:suggestedShapesGraph a owl:ObjectProperty ;
  rdfs:label "suggested shapes graph"@en ;
  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:isDefinedBy sh: ;
  rdfs:range sh:ShapesGraph ;
  rdfs:domain sh:DataGraph .

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

sh:someValue a owl:ObjectProperty ;
  rdfs:label "some value"@en ;
  rdfs:comment "Specifies the shape that at least one value node must conform to."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:Shape .

sh:oneOrMorePath a owl:ObjectProperty ;
  rdfs:label "one or more path"@en ;
  rdfs:comment "The (single) value of this property represents a path that is matched one or more times."@en ;
  rdfs:isDefinedBy sh: .

sh:formalized a owl:DatatypeProperty ;
  rdfs:label "formalized"@en ;
  rdfs:comment "Can be used as reification of sh:intent triples to indicate whether the intended interpretation has already been formalized using SHACL in the same shapes graph."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range xsd:boolean .

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

sh:targetNode a owl:ObjectProperty ;
  rdfs:label "target node"@en ;
  rdfs:comment "Links a shape to node expressions, indicating that the output nodes must conform to the shape."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:domain sh:Shape .

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

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

sh:maxExclusive a owl:ObjectProperty ;
  rdfs:label "max exclusive"@en ;
  rdfs:comment "Specifies the maximum exclusive value of each value node."@en ;
  rdfs:isDefinedBy sh: .

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

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

sh:describe a owl:DatatypeProperty ;
  rdfs:label "describe"@en ;
  rdfs:comment "The SPARQL DESCRIBE to execute."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range xsd:string ;
  rdfs:domain sh:SPARQLDescribeExecutable .

sh:equals a owl:ObjectProperty ;
  rdfs:label "equals"@en ;
  rdfs:comment "Specifies a property path that must have the same values as the value nodes."@en ;
  rdfs:isDefinedBy sh: .

sh:validationReport a owl:ObjectProperty ;
  rdfs:label "validation report"@en ;
  rdfs:comment "A Validation Report that exists for the subject."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:ValidationReport ;
  rdfs:domain sh:DataGraph .

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

sh:in a owl:ObjectProperty ;
  rdfs:label "in"@en ;
  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 sh: ;
  rdfs:range rdf:List .

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

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

sh:intent a owl:ObjectProperty ;
  rdfs:label "intent"@en ;
  rdfs:comment "Provides human-readable descriptions of one or more intended rules, assumptions, or constraints associated with its subject (e.g., a shape). Can be used as input for external agents that understand natural language."@en ;
  rdfs:isDefinedBy sh: .

sh:singleLine a owl:DatatypeProperty ;
  rdfs:label "single line"@en ;
  rdfs:comment "Specifies whether none of the value nodes may contain a line break."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range xsd:boolean .

sh:conformanceDisallows a owl:ObjectProperty ;
  rdfs:label "conformance disallows"@en ;
  rdfs:comment "Severity levels that are evaluated in the conformance check."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:Severity ;
  rdfs:domain sh:ValidationReport .

sh:conformsTo a owl:ObjectProperty ;
  rdfs:label "conforms to"@en ;
  rdfs:comment "The subject conforms to the object if validation did not produce any validation results with a severity level of the set of disallowed levels."@en ;
  rdfs:seeAlso sh:conformanceDisallows , <https://www.dublincore.org/specifications/dublin-core/dcmi-terms/terms/conformsTo/> ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:ShapesGraph ;
  rdfs:domain sh:DataGraph .

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

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

sh:zeroOrOnePath a owl:ObjectProperty ;
  rdfs:label "zero or one path"@en ;
  rdfs:comment "The (single) value of this property represents a path that is matched zero or one times."@en ;
  rdfs:isDefinedBy sh: .

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

sh:prefix a owl:DatatypeProperty ;
  rdfs:label "prefix"@en ;
  rdfs:comment "The prefix of a prefix declaration."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range xsd:string ;
  rdfs:domain sh:PrefixDeclaration .

sh:shapesGraphWellFormed a owl:DatatypeProperty ;
  rdfs:label "shapes graph well-formed"@en ;
  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:isDefinedBy sh: ;
  rdfs:range xsd:boolean ;
  rdfs:domain sh:ValidationReport .

sh:reificationRequired a owl:DatatypeProperty ;
  rdfs:label "reification required"@en ;
  rdfs:comment "Can be used to mark the reification statements required."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range xsd:boolean .

sh:result a owl:ObjectProperty ;
  rdfs:label "result"@en ;
  rdfs:comment "The validation results contained in a validation report."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:ValidationResult ;
  rdfs:domain sh:ValidationReport .

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

sh:minExclusive a owl:ObjectProperty ;
  rdfs:label "min exclusive"@en ;
  rdfs:comment "Specifies the minimum exclusive value of each value node."@en ;
  rdfs:isDefinedBy sh: .

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

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

sh:severity a owl:ObjectProperty ;
  rdfs:label "severity"@en ;
  rdfs:comment "Defines the severity that validation results produced by a shape or constraint must have. Defaults to sh:Violation."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:Severity .

sh:update a owl:DatatypeProperty ;
  rdfs:label "update"@en ;
  rdfs:comment "The SPARQL UPDATE to execute."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range xsd:string ;
  rdfs:domain sh:SPARQLUpdateExecutable .

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

sh:sparqlExpr a owl:DatatypeProperty ;
  rdfs:label "SPARQL expr"@en ;
  rdfs:comment "The SPARQL expression that is executed during evaluation of a node expression."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range xsd:string ;
  rdfs:domain sh:SPARQLExprExpression .

sh:zeroOrMorePath a owl:ObjectProperty ;
  rdfs:label "zero or more path"@en ;
  rdfs:comment "The (single) value of this property represents a path that is matched zero or more times."@en ;
  rdfs:isDefinedBy sh: .

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

sh:memberShape a owl:ObjectProperty ;
  rdfs:label "member shape"@en ;
  rdfs:comment "Specifies the shape that all members of SHACL lists must conform to."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:NodeShape .

sh:datatype a owl:ObjectProperty ;
  rdfs:label "datatype"@en ;
  rdfs:comment "Specifies an RDF datatype that all value nodes must have."@en ;
  rdfs:isDefinedBy sh: .

sh:ignoredProperties a owl:ObjectProperty ;
  rdfs:label "ignored properties"@en ;
  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 sh: ;
  rdfs:range rdf:List .

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

sh:lessThanOrEquals a owl:ObjectProperty ;
  rdfs:label "less than or equals"@en ;
  rdfs:comment "Specifies a property path that must have smaller or equal values than the value nodes."@en ;
  rdfs:isDefinedBy sh: .

sh:declare a owl:ObjectProperty ;
  rdfs:label "declare"@en ;
  rdfs:comment "Links a resource with its namespace prefix declarations."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:PrefixDeclaration .

sh:labelTemplate a owl:ObjectProperty ;
  rdfs:label "label template"@en ;
  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:isDefinedBy sh: ;
  rdfs:domain sh:Parameterizable .

sh:nodeByExpression a owl:ObjectProperty ;
  rdfs:label "node by expression"@en ;
  rdfs:comment "Links a shape to node expressions, indicating the node shape(s) that all value nodes must conform to."@en ;
  rdfs:isDefinedBy sh: .

sh:minListLength a owl:DatatypeProperty ;
  rdfs:label "Minimum list length"@en ;
  rdfs:comment "Specifies the minimum length that a given SHACL list must have."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range xsd:integer .

sh:targetSubjectsOf a owl:ObjectProperty ;
  rdfs:label "target subjects of"@en ;
  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:isDefinedBy sh: ;
  rdfs:range rdf:Property ;
  rdfs:domain sh:Shape .

sh:maxInclusive a owl:ObjectProperty ;
  rdfs:label "max inclusive"@en ;
  rdfs:comment "Specifies the maximum inclusive value of each value node."@en ;
  rdfs:isDefinedBy sh: .

sh:lessThan a owl:ObjectProperty ;
  rdfs:label "less than"@en ;
  rdfs:comment "Specifies a property path that must have smaller values than the value nodes."@en ;
  rdfs:isDefinedBy sh: .

sh:shapesGraph a owl:ObjectProperty ;
  rdfs:label "shapes graph"@en ;
  rdfs:comment "Shapes graphs that should be used when validating this data graph."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:ShapesGraph ;
  rdfs:domain sh:DataGraph .

sh:keyParameter a owl:DatatypeProperty ;
  rdfs:label "key parameter"@en ;
  rdfs:comment "Set to true for the parameter of a named parameter expression function that uniquely identifies it."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range xsd:boolean ;
  rdfs:domain sh:Parameter .

sh:subsetOf a owl:ObjectProperty ;
  rdfs:label "subset of"@en ;
  rdfs:comment "Specifies a property path where the set of value nodes must be a subset of the values of that property path."@en ;
  rdfs:isDefinedBy sh: .

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

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

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

sh:uniqueValuesFor a owl:ObjectProperty ;
  rdfs:label "unique values for"@en ;
  rdfs:comment "Specifies one or more properties (as a URI or rdf:List of URIs) for which no two nodes targeted by the same shape may have the same combination of values."@en ;
  rdfs:isDefinedBy sh: .

sh:bodyExpression a owl:ObjectProperty ;
  rdfs:label "body expression"@en ;
  rdfs:comment "A node expression that is the implementation/body of a custom node expression function."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:domain sh:NodeExpressionFunction .

sh:minInclusive a owl:ObjectProperty ;
  rdfs:label "min inclusive"@en ;
  rdfs:comment "Specifies the minimum inclusive value of each value node."@en ;
  rdfs:isDefinedBy sh: .

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

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

sh:targetWhere a owl:ObjectProperty ;
  rdfs:label "target where"@en ;
  rdfs:comment "Links a (subject) shape to an (object) shape, indicating that all nodes from the data graph that conform to the given (object) shape must conform to the (subject) shape."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:Shape ;
  rdfs:domain sh:Shape .

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

sh:expression a owl:ObjectProperty ;
  rdfs:label "expression"@en ;
  rdfs:comment "The node expression that must return true for the value nodes."@en ;
  rdfs:isDefinedBy sh: .

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

sh:targetObjectsOf a owl:ObjectProperty ;
  rdfs:label "target objects of"@en ;
  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:isDefinedBy sh: ;
  rdfs:range rdf:Property ;
  rdfs:domain sh:Shape .

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

sh:deactivated a owl:ObjectProperty ;
  rdfs:label "deactivated"@en ;
  rdfs:comment "If set to true then all nodes conform to this."@en ;
  rdfs:isDefinedBy sh: .

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

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

sh:prefixes a owl:ObjectProperty ;
  rdfs:label "prefixes"@en ;
  rdfs:comment "The prefixes that shall be applied before parsing the associated SPARQL query. The objects should define those prefixes using sh:declare."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:domain sh:SPARQLExecutable .

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

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

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

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

sh:path a owl:ObjectProperty ;
  rdfs:label "path"@en ;
  rdfs:comment "Specifies the property path of a property shape."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:domain sh:PropertyShape .

sh:rule a owl:ObjectProperty ;
  rdfs:label "rule"@en ;
  rdfs:comment "The rules linked to a shape."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:Rule ;
  rdfs:domain sh:Shape .

sh:unit a owl:ObjectProperty ;
  rdfs:label "unit"@en ;
  rdfs:comment "The code of a unit that the (literal) value nodes should be interpreted with. Recommended values are plain strings from the UCUM and ISO 4217 standards for units of measure and currencies respectively, or unit URIs from QUDT or a similar ontology."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:domain sh:Shape .

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

sh:property a owl:ObjectProperty ;
  rdfs:label "property"@en ;
  rdfs:comment "Links a shape to its property shapes."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:PropertyShape ;
  rdfs:domain sh:Shape .

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

sh:inversePath a owl:ObjectProperty ;
  rdfs:label "inverse path"@en ;
  rdfs:comment "The (single) value of this property represents an inverse path (object to subject)."@en ;
  rdfs:isDefinedBy sh: .

sh:uniqueMembers a owl:DatatypeProperty ;
  rdfs:label "Unique list members"@en ;
  rdfs:comment "Specifies that all members of a SHACL list must be unique."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range xsd:boolean .

sh:reifierShape a owl:ObjectProperty ;
  rdfs:label "reifier shape"@en ;
  rdfs:comment "The shape that the reified triples must conform to."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:NodeShape .

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

sh:conforms a owl:DatatypeProperty ;
  rdfs:label "conforms"@en ;
  rdfs:comment "True if the validation did not produce any validation results with a severity level of the set of disallowed levels, and false otherwise."@en ;
  rdfs:seeAlso sh:conformanceDisallows ;
  rdfs:isDefinedBy sh: ;
  rdfs:range xsd:boolean ;
  rdfs:domain sh:ValidationReport .

sh:codeIdentifier a owl:DatatypeProperty ;
  rdfs:label "code identifier"@en ;
  rdfs:comment "A hint on how code generators should represent the associated shape."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range xsd:string ;
  rdfs:domain sh:Shape .

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

sh:resultPath a owl:ObjectProperty ;
  rdfs:label "result path"@en ;
  rdfs:comment "The path of a validation result, based on the path of the validated property shape."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:domain sh:AbstractResult .

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

sh:class a owl:ObjectProperty ;
  rdfs:label "class"@en ;
  rdfs:comment "The type that all value nodes must have."@en ;
  rdfs:isDefinedBy sh: .

sh:usedShapesGraph a owl:ObjectProperty ;
  rdfs:label "used shapes graph"@en ;
  rdfs:comment "The subject Validation Report was generated using the object Shapes Graph."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:ShapesGraph ;
  rdfs:domain sh:ValidationReport .

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

sh:group a owl:ObjectProperty ;
  rdfs:label "group"@en ;
  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:isDefinedBy sh: ;
  rdfs:range sh:PropertyGroup ;
  rdfs:domain sh:PropertyShape .

sh:order a owl:ObjectProperty ;
  rdfs:label "order"@en ;
  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 sh: .

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

sh:shape a owl:ObjectProperty ;
  rdfs:label "shape"@en ;
  rdfs:comment "Links from a node in the data graph to a shape that it is expected to conform to."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range sh:Shape .

sh:value a owl:ObjectProperty ;
  rdfs:label "value"@en ;
  rdfs:comment "An RDF node that has caused the result."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:domain sh:AbstractResult .

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

sh:optional a owl:DatatypeProperty ;
  rdfs:label "optional"@en ;
  rdfs:comment "Indicates whether a parameter is optional."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range xsd:boolean ;
  rdfs:domain sh:Parameter .

sh:entailment a owl:ObjectProperty ;
  rdfs:label "entailment"@en ;
  rdfs:comment "An entailment regime that indicates what kind of inferencing is required by a shapes graph."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:domain sh:ShapesGraph .

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

sh:agentInstruction a owl:ObjectProperty ;
  rdfs:label "agent instruction"@en ;
  rdfs:comment "Can be used to store instructions that shall be sent as input for external agents that understand natural language."@en ;
  rdfs:isDefinedBy sh: .

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

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

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

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

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

sh:resultAnnotation a owl:ObjectProperty ;
  rdfs:label "result annotation"@en ;
  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:isDefinedBy sh: ;
  rdfs:range sh:ResultAnnotation ;
  rdfs:domain sh:SPARQLSelectValidator .

sh:hasValue a owl:ObjectProperty ;
  rdfs:label "has value"@en ;
  rdfs:comment "Specifies a value that must be among the value nodes."@en ;
  rdfs:isDefinedBy sh: .

sh:rootClass a owl:ObjectProperty ;
  rdfs:label "root class"@en ;
  rdfs:comment "Specifies a class so that each value node must be that class or a (transitive) subclass of that class."@en ;
  rdfs:isDefinedBy sh: .

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

sh:maxListLength a owl:DatatypeProperty ;
  rdfs:label "Maximum list length"@en ;
  rdfs:comment "Specifies the maximum length that a given SHACL list must have."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:range xsd:integer .

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

sh:NamedParameterExpressionFunction a owl:Class ;
  rdfs:label "Named parameter expression function"@en ;
  rdfs:comment "The base class of node expression functions that take named parameters."@en ;
  rdfs:isDefinedBy sh: ;
  rdfs:subClassOf sh:NodeExpressionFunction , sh:Parameterizable ;
  owl:equivalentClass [
    a owl:Class ;
    owl:oneOf ( sh:SelectExpression sh:SPARQLExprExpression )
  ] .

sh:NodeKind a owl:Class ;
  rdfs:label "Node kind"@en ;
  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 sh: ;
  owl:equivalentClass [
    a owl:Class ;
    owl:oneOf ( sh:BlankNodeOrLiteral sh:BlankNode sh:IRIOrLiteral sh:Literal sh:BlankNodeOrIRI sh:TripleTerm sh:IRI )
  ] .

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

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

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

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

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

sh:TripleTerm a owl:NamedIndividual ;
  rdfs:label "Triple term"@en ;
  rdfs:comment "The node kind of all triple terms."@en ;
  rdfs:isDefinedBy sh: ;
  a sh:NodeKind .

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

sh:Severity a owl:Class ;
  rdfs:label "Severity"@en ;
  rdfs:comment "The class of validation result severity levels, including violation and warning levels."@en ;
  rdfs:isDefinedBy sh: ;
  owl:equivalentClass [
    a owl:Class ;
    owl:oneOf ( sh:Violation sh:Warning sh:Info sh:Debug sh:Trace )
  ] .

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

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

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

sh:Debug a owl:NamedIndividual ;
  rdfs:label "Debug"@en ;
  rdfs:comment "The severity for a debug validation result."@en ;
  rdfs:isDefinedBy sh: ;
  a sh:Severity .

sh:Trace a owl:NamedIndividual ;
  rdfs:label "Trace"@en ;
  rdfs:comment "The severity for a trace validation result."@en ;
  rdfs:isDefinedBy sh: ;
  a sh:Severity .

schema:inLanguage a owl:AnnotationProperty .

dcterms:license a owl:AnnotationProperty .

pav:version a owl:AnnotationProperty .

dcterms:creator a owl:AnnotationProperty .

dcterms:publisher a owl:AnnotationProperty .

vann:preferredNamespacePrefix a owl:AnnotationProperty .

vann:preferredNamespaceUri a owl:AnnotationProperty .
