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

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  sh: ;
        rdfs:label        "result path"@en ;
        rdfs:range        rdfs:Resource .

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

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

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  sh: ;
        rdfs:label        "detail"@en ;
        rdfs:range        sh:AbstractResult .

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

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

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  sh: ;
        rdfs:label        "target subjects of"@en ;
        rdfs:range        rdf:Property .

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

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

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

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

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  sh: ;
        rdfs:label        "Validator"@en ;
        rdfs:subClassOf   rdfs:Resource .

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  sh: ;
        rdfs:label        "qualified value shapes disjoint"@en ;
        rdfs:range        xsd:boolean .

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

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  sh: ;
        rdfs:label        "Qualified-max-count constraint component"@en ;
        sh:parameter      sh:QualifiedMaxCountConstraintComponent-qualifiedValueShapesDisjoint , sh:QualifiedMaxCountConstraintComponent-qualifiedValueShape , sh:QualifiedMaxCountConstraintComponent-qualifiedMaxCount .

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  sh: ;
        rdfs:label        "Min-length constraint component"@en ;
        sh:parameter      sh:MinLengthConstraintComponent-minLength .

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  sh: ;
        rdfs:label        "annotation variable name"@en ;
        rdfs:range        xsd:string .

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  sh: ;
        rdfs:label        "Disjoint constraint component"@en ;
        sh:parameter      sh:DisjointConstraintComponent-disjoint .

sh:TargetType  a          rdfs:Class ;
        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:label        "Target type"@en ;
        rdfs:subClassOf   sh:Parameterizable , rdfs:Class .

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

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

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

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

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

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  sh: ;
        rdfs:label        "group"@en ;
        rdfs:range        sh:PropertyGroup .

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

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

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

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

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

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  sh: ;
        rdfs:label        "Or constraint component"@en ;
        sh:parameter      sh:OrConstraintComponent-or .

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  sh: ;
        rdfs:label        "And constraint component"@en ;
        sh:parameter      sh:AndConstraintComponent-and .

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

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  sh: ;
        rdfs:label        "shapes graph"@en ;
        rdfs:range        owl:Ontology .

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  sh: ;
        rdfs:label        "zero or more path"@en ;
        rdfs:range        rdfs:Resource .

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  sh: ;
        rdfs:label        "prefixes"@en ;
        rdfs:range        owl:Ontology .

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

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  sh: ;
        rdfs:label        "Min-inclusive constraint component"@en ;
        sh:parameter      sh:MinInclusiveConstraintComponent-minInclusive .

sh:maxExclusive  a        rdf:Property ;
        rdfs:comment      "Specifies the maximum exclusive value of each value node."@en ;
        rdfs:isDefinedBy  sh: ;
        rdfs:label        "max exclusive"@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  sh: ;
        rdfs:label        "description"@en .

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  sh: ;
        rdfs:label        "predicate"@en .

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  sh: ;
        rdfs:label        "default value"@en .

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  sh: ;
        rdfs:label        "JavaScript validator"@en ;
        rdfs:subClassOf   sh:Validator , sh:JSExecutable .

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

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

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

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

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  sh: ;
        rdfs:label        "Min-count constraint component"@en ;
        sh:parameter      sh:MinCountConstraintComponent-minCount .

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  sh: ;
        rdfs:label        "Class constraint component"@en ;
        sh:parameter      sh:ClassConstraintComponent-class .

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  sh: ;
        rdfs:label        "JavaScript library URL"@en ;
        rdfs:range        xsd:anyURI .

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

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

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

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

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

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  sh: ;
        rdfs:label        "SPARQL SELECT validator"@en ;
        rdfs:subClassOf   sh:SPARQLSelectExecutable , sh:Validator .

sh:nodes  a               rdf:Property ;
        rdfs:comment      "The node expression producing the input nodes of a filter shape expression."@en ;
        rdfs:isDefinedBy  sh: ;
        rdfs:label        "nodes"@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  sh: ;
        rdfs:label        "exactly one"@en ;
        rdfs:range        rdf:List .

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

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

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

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  sh: ;
        rdfs:label        "Result annotation"@en ;
        rdfs:subClassOf   rdfs:Resource .

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  sh: ;
        rdfs:label        "target objects of"@en ;
        rdfs:range        rdf:Property .

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

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

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  sh: ;
        rdfs:label        "condition"@en ;
        rdfs:range        sh:Shape .

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  sh: ;
        rdfs:label        "entailment"@en ;
        rdfs:range        rdfs:Resource .

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  sh: ;
        rdfs:label        "Not constraint component"@en ;
        sh:parameter      sh:NotConstraintComponent-not .

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

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

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  sh: ;
        rdfs:label        "Language-in constraint component"@en ;
        sh:parameter      sh:LanguageInConstraintComponent-languageIn .

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

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  sh: ;
        rdfs:label        "subject"@en .

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  sh: ;
        rdfs:label        "conforms"@en ;
        rdfs:range        xsd:boolean .

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  sh: ;
        rdfs:label        "message"@en .

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

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

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

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

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

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

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

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  sh: ;
        rdfs:label        "object"@en .

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  sh: ;
        rdfs:label        "zero or one path"@en ;
        rdfs:range        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  sh: ;
        rdfs:label        "Property shape"@en ;
        rdfs:subClassOf   sh:Shape .

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

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

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

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  sh: ;
        rdfs:label        "severity"@en ;
        rdfs:range        sh:Severity .

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

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

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  sh: ;
        rdfs:label        "JavaScript library"@en ;
        rdfs:subClassOf   rdfs:Resource .

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  sh: ;
        rdfs:label        "target node"@en .

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

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  sh: ;
        rdfs:label        "Node-kind constraint component"@en ;
        sh:parameter      sh:NodeKindConstraintComponent-nodeKind .

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

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  sh: ;
        rdfs:label        "Node shape"@en ;
        rdfs:subClassOf   sh:Shape .

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

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

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

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  sh: ;
        rdfs:label        "Max-length constraint component"@en ;
        sh:parameter      sh:MaxLengthConstraintComponent-maxLength .

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

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  sh: ;
        rdfs:label        "Max-exclusive constraint component"@en ;
        sh:parameter      sh:MaxExclusiveConstraintComponent-maxExclusive .

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  sh: ;
        rdfs:label        "Has-value constraint component"@en ;
        sh:parameter      sh:HasValueConstraintComponent-hasValue .

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

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

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

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

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

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

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

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  sh: ;
        rdfs:label        "suggested shapes graph"@en ;
        rdfs:range        owl:Ontology .

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  sh: ;
        rdfs:label        "source shape"@en ;
        rdfs:range        sh:Shape .

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  sh: ;
        rdfs:label        "JavaScript constraint component"@en ;
        sh:parameter      sh:JSConstraint-js .

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

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

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

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

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

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  sh: ;
        rdfs:label        "Less-than constraint component"@en ;
        sh:parameter      sh:LessThanConstraintComponent-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  sh: ;
        rdfs:label        "less-than-or-equals constraint component"@en ;
        sh:parameter      sh:LessThanOrEqualsConstraintComponent-lessThanOrEquals .

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  sh: ;
        rdfs:label        "Max-count constraint component"@en ;
        sh:parameter      sh:MaxCountConstraintComponent-maxCount .

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

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

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  sh: ;
        rdfs:label        "target class"@en ;
        rdfs:range        rdfs:Class .

sh:ask  a                 rdf:Property ;
        rdfs:comment      "The SPARQL ASK query to execute."@en ;
        rdfs:domain       sh:SPARQLAskExecutable ;
        rdfs:isDefinedBy  sh: ;
        rdfs:label        "ask"@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  sh: ;
        rdfs:label        "datatype"@en ;
        rdfs:range        rdfs:Datatype .

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

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

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

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

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  sh: ;
        rdfs:label        "target"@en ;
        rdfs:range        sh:Target .

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

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  sh: ;
        rdfs:label        "Equals constraint component"@en ;
        sh:parameter      sh:EqualsConstraintComponent-equals .

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  sh: ;
        rdfs:label        "Property constraint component"@en ;
        sh:parameter      sh:PropertyConstraintComponent-property .

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

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

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

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  sh: ;
        rdfs:label        "name"@en .

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

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  sh: ;
        rdfs:label        "Node kind"@en ;
        rdfs:subClassOf   rdfs:Resource .

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

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

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

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

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

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

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

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

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

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  sh: ;
        rdfs:label        "Datatype constraint component"@en ;
        sh:parameter      sh:DatatypeConstraintComponent-datatype .

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

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

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  sh: ;
        rdfs:label        "pattern"@en ;
        rdfs:range        xsd:string .

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

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

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

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

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

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

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

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  sh: ;
        rdfs:label        "Max-inclusive constraint component"@en ;
        sh:parameter      sh:MaxInclusiveConstraintComponent-maxInclusive .

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

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

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  sh: ;
        rdfs:label        "shape validator"@en ;
        rdfs:range        sh:Validator .

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  sh: ;
        rdfs:label        "Qualified-min-count constraint component"@en ;
        sh:parameter      sh:QualifiedMinCountConstraintComponent-qualifiedValueShapesDisjoint , sh:QualifiedMinCountConstraintComponent-qualifiedValueShape , sh:QualifiedMinCountConstraintComponent-qualifiedMinCount .

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

sh:     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  <http://www.w3.org/ns/shacl-shacl#> .

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

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

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

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

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

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

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  sh: ;
        rdfs:label        "focus node"@en .

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

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  sh: ;
        rdfs:label        "shapes graph well-formed"@en ;
        rdfs:range        xsd:boolean .

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  sh: ;
        rdfs:label        "Closed constraint component"@en ;
        sh:parameter      sh:ClosedConstraintComponent-ignoredProperties , sh:ClosedConstraintComponent-closed .

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  sh: ;
        rdfs:label        "Exactly one constraint component"@en ;
        sh:parameter      sh:XoneConstraintComponent-xone .

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

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

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

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

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

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

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  sh: ;
        rdfs:label        "validator"@en ;
        rdfs:range        sh:Validator .

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

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  sh: ;
        rdfs:label        "alternative path"@en ;
        rdfs:range        rdf:List .

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  sh: ;
        rdfs:label        "Node constraint component"@en ;
        sh:parameter      sh:NodeConstraintComponent-node .

sh:result  a              rdf:Property ;
        rdfs:comment      "The validation results contained in a validation report."@en ;
        rdfs:domain       sh:ValidationReport ;
        rdfs:isDefinedBy  sh: ;
        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  sh: ;
        rdfs:label        "result annotation"@en ;
        rdfs:range        sh:ResultAnnotation .

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

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

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

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

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  sh: ;
        rdfs:label        "label template"@en .

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

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

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

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

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

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

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

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

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  sh: ;
        rdfs:label        "one or more path"@en ;
        rdfs:range        rdfs:Resource .

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  sh: ;
        rdfs:label        "Min-exclusive constraint component"@en ;
        sh:parameter      sh:MinExclusiveConstraintComponent-minExclusive .

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

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

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  sh: ;
        rdfs:label        "disjoint"@en ;
        rdfs:range        rdf:Property .

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

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

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  sh: ;
        rdfs:label        "Expression constraint component"@en ;
        sh:parameter      sh:ExpressionConstraintComponent-expression .

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  sh: ;
        rdfs:label        "property validator"@en ;
        rdfs:range        sh:Validator .

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

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

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  sh: ;
        rdfs:label        "Pattern constraint component"@en ;
        sh:parameter      sh:PatternConstraintComponent-flags , sh:PatternConstraintComponent-pattern .

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

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  sh: ;
        rdfs:label        "Unique-languages constraint component"@en ;
        sh:parameter      sh:UniqueLangConstraintComponent-uniqueLang .

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

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

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

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  sh: ;
        rdfs:label        "Parameter"@en ;
        rdfs:subClassOf   sh:PropertyShape .
