From f93a441065a611cc32874dde67e53a8295c87baf Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 27 May 2018 15:48:25 +0200 Subject: [WIP] Add validation --- schemas/xsd.ttl | 363 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 363 insertions(+) create mode 100644 schemas/xsd.ttl (limited to 'schemas/xsd.ttl') diff --git a/schemas/xsd.ttl b/schemas/xsd.ttl new file mode 100644 index 00000000..0bf5cf93 --- /dev/null +++ b/schemas/xsd.ttl @@ -0,0 +1,363 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . + +xsd: + a owl:Ontology ; + rdfs:comment "XML Schema Datatypes" . + +xsd:anySimpleType + a rdfs:Datatype ; + rdfs:comment "The base class of any primitive XSD dataype." ; + rdfs:label "any simple type" . + +xsd:anyURI + a rdfs:Datatype ; + rdfs:label "any URI" ; + owl:onDatatype xsd:anySimpleType . + +xsd:base64Binary + a rdfs:Datatype ; + rdfs:comment "Base64-encoded arbitrary binary data." ; + rdfs:label "base64 binary" ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:pattern "(([A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *)*(([A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/])|([A-Za-z0-9+/] *[A-Za-z0-9+/] *[AEIMQUYcgkosw048] *=)|([A-Za-z0-9+/] *[AQgw] *= *=)))?" + ] + ) . + +xsd:boolean + a rdfs:Datatype ; + rdfs:label "boolean" ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:pattern "(true|false|0|1)" + ] + ) . + +xsd:byte + a rdfs:Datatype ; + rdfs:label "byte" ; + owl:onDatatype xsd:short ; + owl:withRestrictions ( + [ + xsd:maxInclusive 127 + ] + [ + xsd:minInclusive -128 + ] + ) . + +xsd:date + a rdfs:Datatype ; + rdfs:label "date" ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:pattern "-?[0-9][0-9][0-9][0-9][0-9]*-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|[-+][0-2][0-9]:[0-5][0-9])?" + ] + ) . + +xsd:dateTime + a rdfs:Datatype ; + rdfs:label "date time" ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:pattern "-?[0-9][0-9][0-9][0-9][0-9]*-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([0-1][0-9])|(2[0-4])):[0-5][0-9]:[0-5][0-9](.[0-9]+)?(Z|[-+][0-2][0-9]:[0-5][0-9])?" + ] + ) . + +xsd:decimal + a rdfs:Datatype ; + rdfs:comment "A subset of the real numbers, which can be represented by decimal numerals." ; + rdfs:label "decimal" ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?" + ] + ) . + +xsd:double + a rdfs:Datatype ; + rdfs:comment "IEEE double-precision 64-bit floating point." ; + rdfs:label "double" ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?" + ] + ) . + +xsd:duration + a rdfs:Datatype ; + rdfs:label "duration" ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:pattern "-?P([0-9]+Y)?([0-9]+M)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?)?" + ] + [ + xsd:whiteSpace "collapse" + ] + ) . + +xsd:float + a rdfs:Datatype ; + rdfs:comment "IEEE single-precision 32-bit floating point." ; + rdfs:label "float" ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?" + ] + [ + xsd:whiteSpace "collapse" + ] + ) . + +xsd:fractionDigits + a rdf:Property , + owl:DatatypeProperty ; + rdfs:comment "The total number of digits to the right of the decimal point required to represent a value." ; + rdfs:label "fraction digits" ; + rdfs:range xsd:nonNegativeInteger . + +xsd:hexBinary + a rdfs:Datatype ; + rdfs:comment "Hex-encoded arbitrary binary data." ; + rdfs:label "hex binary" ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:pattern "([0-9A-Fa-f][0-9A-Fa-f])*" + ] + ) . + +xsd:int + a rdfs:Datatype ; + rdfs:label "int" ; + owl:onDatatype xsd:long ; + owl:withRestrictions ( + [ + xsd:maxInclusive 2147483647 + ] + [ + xsd:minInclusive -2147483648 + ] + ) . + +xsd:integer + a rdfs:Datatype ; + rdfs:label "integer" ; + owl:onDatatype xsd:decimal ; + owl:withRestrictions ( + [ + xsd:pattern "[-+]?[0-9]+" + ] + [ + xsd:fractionDigits 0 + ] + ) . + +xsd:language + a rdfs:Datatype ; + rdfs:label "language" ; + owl:onDatatype xsd:token ; + owl:withRestrictions ( + [ + xsd:pattern "[a-zA-Z][a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?(-[a-zA-Z0-9][a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?)*" + ] + ) . + +xsd:long + a rdfs:Datatype ; + rdfs:label "long" ; + owl:onDatatype xsd:integer ; + owl:withRestrictions ( + [ + xsd:maxInclusive 9223372036854775807 + ] + [ + xsd:minInclusive -9223372036854775808 + ] + ) . + +xsd:maxExclusive + a rdf:Property , + owl:DatatypeProperty ; + rdfs:comment "The exclusive upper bound of an ordered datatype." ; + rdfs:label "max exclusive" . + +xsd:maxInclusive + a rdf:Property , + owl:DatatypeProperty ; + rdfs:comment "The inclusive upper bound of an ordered datatype." ; + rdfs:label "max inclusive" . + +xsd:minExclusive + a rdf:Property , + owl:DatatypeProperty ; + rdfs:comment "The exclusive lower bound of an ordered datatype." ; + rdfs:label "min exclusive" . + +xsd:minInclusive + a rdf:Property , + owl:DatatypeProperty ; + rdfs:comment "The inclusive lower bound of an ordered datatype." ; + rdfs:label "min inclusive" . + +xsd:negativeInteger + a rdfs:Datatype ; + rdfs:label "negative integer" ; + owl:onDatatype xsd:nonPositiveInteger ; + owl:withRestrictions ( + [ + xsd:maxInclusive -1 + ] + ) . + +xsd:nonNegativeInteger + a rdfs:Datatype ; + rdfs:label "non-negative integer" ; + owl:onDatatype xsd:integer ; + owl:withRestrictions ( + [ + xsd:pattern "[+]?[0-9]+" + ] + [ + xsd:minInclusive 0 + ] + ) . + +xsd:nonPositiveInteger + a rdfs:Datatype ; + rdfs:label "non-positive integer" ; + owl:onDatatype xsd:integer ; + owl:withRestrictions ( + [ + xsd:pattern "(0|-[0-9]+)" + ] + [ + xsd:maxInclusive 0 + ] + ) . + +xsd:normalizedString + a rdfs:Datatype ; + rdfs:comment "The set of strings that do not contain the carriage return (#xD), line feed (#xA) nor tab (#x9) characters." ; + rdfs:label "normalized string" ; + owl:onDatatype xsd:string . + +xsd:pattern + a rdf:Property , + owl:DatatypeProperty ; + rdfs:comment "A regular expression that matches complete valid literals." ; + rdfs:label "pattern" . + +xsd:positiveInteger + a rdfs:Datatype ; + rdfs:label "positive integer" ; + owl:onDatatype xsd:nonNegativeInteger ; + owl:withRestrictions ( + [ + xsd:pattern "[+]?[0-9]*[1-9]+[0-9]*" + ] + [ + xsd:minInclusive 1 + ] + ) . + +xsd:short + a rdfs:Datatype ; + rdfs:label "short" ; + owl:onDatatype xsd:int ; + owl:withRestrictions ( + [ + xsd:maxInclusive 32767 + ] + [ + xsd:minInclusive -32768 + ] + ) . + +xsd:string + a rdfs:Datatype ; + rdfs:comment "A character string." ; + rdfs:label "string" ; + owl:onDatatype xsd:anySimpleType . + +xsd:time + a rdfs:Datatype ; + rdfs:label "time" ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:pattern "(([0-1][0-9])|(2[0-4])):[0-5][0-9]:[0-5][0-9](.[0-9]+)?(Z|[-+][0-2][0-9]:[0-5][0-9])?" + ] + ) . + +xsd:token + a rdfs:Datatype ; + rdfs:comment "The set of strings that do not contain the carriage return (#xD), line feed (#xA) nor tab (#x9) characters, that have no leading or trailing spaces (#x20) and that have no internal sequences of two or more spaces." ; + rdfs:label "token" ; + owl:onDatatype xsd:normalizedString . + +xsd:unsignedByte + a rdfs:Datatype ; + rdfs:label "unsigned byte" ; + owl:onDatatype xsd:unsignedShort ; + owl:withRestrictions ( + [ + xsd:maxInclusive 255 + ] + ) . + +xsd:unsignedInt + a rdfs:Datatype ; + rdfs:label "unsigned int" ; + owl:onDatatype xsd:unsignedLong ; + owl:withRestrictions ( + [ + xsd:maxInclusive 4294967295 + ] + ) . + +xsd:unsignedLong + a rdfs:Datatype ; + rdfs:label "unsigned long" ; + owl:onDatatype xsd:nonNegativeInteger ; + owl:withRestrictions ( + [ + xsd:maxInclusive 18446744073709551615 + ] + ) . + +xsd:unsignedShort + a rdfs:Datatype ; + rdfs:label "unsigned short" ; + owl:onDatatype xsd:unsignedInt ; + owl:withRestrictions ( + [ + xsd:maxInclusive 65535 + ] + ) . + +xsd:whiteSpace + a rdf:Property , + owl:DatatypeProperty ; + rdfs:comment "A string that describes whitespace normalization for a string type." ; + rdfs:label "white space" ; + rdfs:range [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:withRestrictions ( + [ + xsd:pattern "(preserve|replace|collapse)" + ] + ) + ] . -- cgit v1.2.1