PREFIX jsonschema: <https://www.w3.org/2019/wot/json-schema#>
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#>

jsonschema:StringSchema a rdfs:Class ;
  rdfs:comment "Metadata describing data of type <code>string</code>. This subclass is indicated by the value <code>string</code> assigned to <code>type</code> in <code>DataSchema</code> instances."@en ;
  rdfs:subClassOf jsonschema:DataSchema .

jsonschema:IntegerSchema a rdfs:Class ;
  rdfs:comment "Metadata describing data of type <code>integer</code>. This subclass is indicated by the value <code>integer</code> assigned to <code>type</code> in <code>DataSchema</code> instances."@en ;
  rdfs:subClassOf jsonschema:DataSchema .

jsonschema:ObjectSchema a rdfs:Class ;
  rdfs:comment "Metadata describing data of type <code>object</code>. This subclass is indicated by the value <code>object</code> assigned to <code>type</code> in <code>DataSchema</code> instances."@en ;
  rdfs:subClassOf jsonschema:DataSchema .

jsonschema:NumberSchema a rdfs:Class ;
  rdfs:comment "Metadata describing data of type <code>number</code>. This subclass is indicated by the value <code>number</code> assigned to <code>type</code> in <code>DataSchema</code> instances."@en ;
  rdfs:subClassOf jsonschema:DataSchema .

jsonschema:NullSchema a rdfs:Class ;
  rdfs:comment "Metadata describing data of type <code>null</code>. This subclass is indicated by the value <code>null</code> assigned to <code>type</code> in <code>DataSchema</code> instances. This Subclass describes only one acceptable value, namely <code>null</code>. It is important to note that <code>null</code> does not mean the absence of a value. It is analogous to <code>null</code> in JavaScript, <code>None</code> in Python, <code>null</code> in Java and <code>nil</code> in Ruby programming languages. It can be used as part of a <code>oneOf</code> declaration, where it is used to indicate, that the data can also be <code>null</code>."@en ;
  rdfs:subClassOf jsonschema:DataSchema .

jsonschema:DataSchema a rdfs:Class ;
  rdfs:comment "Metadata that describes the data format used. It can be used for validation." .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object" .

jsonschema:BooleanSchema a rdfs:Class ;
  rdfs:comment "Metadata describing data of type <code>boolean</code>. This subclass is indicated by the value <code>boolean</code> assigned to <code>type</code> in <code>DataSchema</code> instances."@en ;
  rdfs:subClassOf jsonschema:DataSchema .

jsonschema:ArraySchema a rdfs:Class ;
  rdfs:comment "Metadata describing data of type array. This subclass is indicated by the value <code>array</code> assigned to <code>type</code> in <code>DataSchema</code> instances."@en ;
  rdfs:subClassOf jsonschema:DataSchema .

jsonschema:allOf a rdf:Property ;
  rdfs:label "allOf" ;
  rdfs:comment "Used to ensure that the data is valid against all of the specified schemas in the array."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

jsonschema:anyOf a rdf:Property ;
  rdfs:label "anyOf" ;
  rdfs:comment "Used to ensure that the data is valid against any of the specified schemas in the array."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

jsonschema:const a rdf:Property ;
  rdfs:label "const" ;
  rdfs:comment "Provides a constant value."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

jsonschema:contentEncoding a rdf:Property ;
  rdfs:label "contentEncoding" ;
  rdfs:comment "Specifies the encoding used to store the contents, as specified in RFC 2054. The values that are accepted: \"7bit\", \"8bit\", \"binary\", \"quoted-printable\" and \"base64\"."@en ;
  rdfs:range xsd:string .

jsonschema:contentMediaType a rdf:Property ;
  rdfs:label "contentMediaType" ;
  rdfs:comment "Specifies the MIME type (e.g., image/png, audio/mpeg) of the contents of a string value, as described in RFC 2046."@en ;
  rdfs:range xsd:string .

jsonschema:default a rdf:Property ;
  rdfs:label "default" ;
  rdfs:comment "Supply a default value. The value should validate against the data schema in which it resides."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

jsonschema:enum a rdf:Property ;
  rdfs:label "enum" ;
  rdfs:comment "Restricted set of values provided as an array."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

jsonschema:exclusiveMaximum a rdf:Property ;
  rdfs:label "exclusiveMaximum" ;
  rdfs:comment "Specifies a maximum numeric value, representing an exclusive upper limit. Only applicable for associated number or integer types."@en ;
  rdfs:seeAlso <http://schema.org/maxValue> ;
  rdfs:range xsd:decimal .

jsonschema:exclusiveMinimum a rdf:Property ;
  rdfs:label "exclusiveMinimum" ;
  rdfs:comment "Specifies a minimum numeric value, representing an exclusive lower limit. Only applicable for associated number or integer types."@en ;
  rdfs:seeAlso <http://schema.org/minValue> ;
  rdfs:range xsd:decimal .

jsonschema:format a rdf:Property ;
  rdfs:label "format" ;
  rdfs:comment "Allows validation based on a format pattern such as \"date-time\", \"email\", \"uri\", etc."@en ;
  rdfs:range xsd:string .

jsonschema:items a rdf:Property ;
  rdfs:label "items" ;
  rdfs:comment "Used to define the characteristics of an array."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

jsonschema:maxItems a rdf:Property ;
  rdfs:label "maxItems" ;
  rdfs:comment "Defines the maximum number of items that have to be in the array."@en ;
  rdfs:range xsd:nonNegativeInteger .

jsonschema:maxLength a rdf:Property ;
  rdfs:label "maxLength" ;
  rdfs:comment "Specifies the maximum length of a string. Only applicable for associated string types."@en ;
  rdfs:range xsd:nonNegativeInteger .

jsonschema:maximum a rdf:Property ;
  rdfs:label "maximum" ;
  rdfs:comment "Specifies a maximum numeric value, representing an inclusive upper limit. Only applicable for associated number or integer types."@en ;
  rdfs:seeAlso <http://schema.org/maxValue> ;
  rdfs:range xsd:decimal .

jsonschema:minItems a rdf:Property ;
  rdfs:label "minItems" ;
  rdfs:comment "Defines the minimum number of items that have to be in the array."@en ;
  rdfs:range xsd:nonNegativeInteger .

jsonschema:minLength a rdf:Property ;
  rdfs:label "minLength" ;
  rdfs:comment "Specifies the minimum length of a string. Only applicable for associated string types."@en ;
  rdfs:range xsd:nonNegativeInteger .

jsonschema:minimum a rdf:Property ;
  rdfs:label "minimum" ;
  rdfs:comment "Specifies a minimum numeric value, representing an inclusive lower limit. Only applicable for associated number or integer types."@en ;
  rdfs:seeAlso <http://schema.org/minValue> ;
  rdfs:range xsd:decimal .

jsonschema:multipleOf a rdf:Property ;
  rdfs:label "multipleOf" ;
  rdfs:comment "Specifies the multipleOf value number. The value must strictly greater than 0. Only applicable for associated number or integer types."@en ;
  rdfs:range xsd:decimal .

jsonschema:oneOf a rdf:Property ;
  rdfs:label "oneOf" ;
  rdfs:comment "Used to ensure that the data is valid against exactly one of the specified schemas in the array."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

jsonschema:pattern a rdf:Property ;
  rdfs:label "pattern" ;
  rdfs:comment "Provides a regular expression to express constraints of the string value. The regular expression must follow the ECMA 262 dialect."@en ;
  rdfs:range xsd:nonNegativeInteger .

jsonschema:properties a rdf:Property ;
  rdfs:label "properties" ;
  rdfs:comment "Data schema nested definitions"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

jsonschema:propertyName a rdf:Property ;
  rdfs:label "propertyName" ;
  rdfs:comment "Used to store the indexing name in the parent object when this schema appears as a property of an object schema."@en ;
  rdfs:range xsd:string .

jsonschema:readOnly a rdf:Property ;
  rdfs:label "readOnly" ;
  rdfs:comment "Boolean value that is a hint to indicate whether a property interaction / value is read only (=true) or not (=false)"@en ;
  rdfs:range xsd:boolean .

jsonschema:required a rdf:Property ;
  rdfs:label "required" ;
  rdfs:comment "Defines which members of the object type are mandatory, i.e. which members are mandatory in the payload that is to be sent (e.g. input of <code>invokeaction</code>, <code>writeproperty</code>) and what members will be definitely delivered in the payload that is being received (e.g. output of <code>invokeaction</code>, <code>readproperty</code>)"@en ;
  rdfs:range xsd:string .

jsonschema:writeOnly a rdf:Property ;
  rdfs:label "writeOnly" ;
  rdfs:comment "Boolean value that is a hint to indicate whether a property interaction / value is write only (=true) or not (=false)"@en ;
  rdfs:range xsd:boolean .
