From 762e323bef39d297fa19cfc3ef108f56e85a045d Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 9 Sep 2012 05:34:59 +0000 Subject: Use stricter datatype definitions conformant with the XSD and OWL specifications for better validation. --- schemas/xsd.ttl | 261 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 205 insertions(+), 56 deletions(-) (limited to 'schemas/xsd.ttl') diff --git a/schemas/xsd.ttl b/schemas/xsd.ttl index 27f6d4b..aa67f2b 100644 --- a/schemas/xsd.ttl +++ b/schemas/xsd.ttl @@ -1,74 +1,147 @@ -@prefix xsd: . -@prefix rdfs: . +@prefix owl: . @prefix rdf: . +@prefix rdfs: . +@prefix xsd: . + +<> + a owl:Ontology ; + rdfs:comment "XML Schema Datatypes" . xsd:ID a rdfs:Datatype ; - rdfs:subClassOf xsd:anyURI , - xsd:Name . + owl:onDatatype xsd:NCName . xsd:IDREF a rdfs:Datatype ; - rdfs:subClassOf xsd:anyURI , - xsd:Name . + owl:onDatatype xsd:NCName . + +xsd:ENTITY + a rdfs:Datatype ; + owl:onDatatype xsd:NCName . xsd:NCName a rdfs:Datatype ; - rdfs:subClassOf xsd:anyURI , - xsd:Name . + owl:onDatatype xsd:Name . xsd:NMTOKEN a rdfs:Datatype ; - rdfs:subClassOf xsd:token . + owl:onDatatype xsd:token . xsd:Name a rdfs:Datatype ; - rdfs:subClassOf xsd:NMTOKEN . + owl:onDatatype xsd:token . + +xsd:totalDigits + a rdf:Property , + owl:DatatypeProperty ; + rdfs:range xsd:positiveInteger ; + rdfs:comment "The maximum number of decimal digits required to represent a value." . + +xsd:fractionDigits + a rdf:Property , + owl:DatatypeProperty ; + rdfs:range xsd:nonNegativeInteger ; + rdfs:comment "The total number of digits to the right of the decimal point required to represent a value." . xsd:pattern - a rdf:Property ; - rdfs:domain rdfs:Datatype ; - rdfs:range xsd:string ; - rdfs:comment "A regular expression that matches literals of this type." . + a rdf:Property , + owl:DatatypeProperty ; + rdfs:comment "A regular expression that matches complete valid literals." . + +xsd:maxInclusive + a rdf:Property , + owl:DatatypeProperty ; + rdfs:comment "The inclusive upper bound of an ordered datatype." . + +xsd:maxExclusive + a rdf:Property , + owl:DatatypeProperty ; + rdfs:comment "The exclusive upper bound of an ordered datatype." . + +xsd:minInclusive + a rdf:Property , + owl:DatatypeProperty ; + rdfs:comment "The inclusive lower bound of an ordered datatype." . + +xsd:minExclusive + a rdf:Property , + owl:DatatypeProperty ; + rdfs:comment "The exclusive lower bound of an ordered datatype." . + +xsd:QName + a rdfs:Datatype ; + rdfs:comment "XML qualified names." . xsd:anyURI a rdfs:Datatype ; - rdfs:subClassOf xsd:token . + rdfs:comment "URI reference." . xsd:base64Binary a rdfs:Datatype ; - xsd:pattern "(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$" . + rdfs:comment "Base64-encoded arbitrary binary data." ; + owl:withRestrictions ( + [ + xsd:pattern "(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?" + ] + ) . xsd:boolean a rdfs:Datatype ; - xsd:pattern "(true|false)$" . + owl:withRestrictions ( + [ + xsd:pattern "(true|false)" + ] + ) . xsd:byte a rdfs:Datatype ; - rdfs:subClassOf xsd:short ; - xsd:pattern "[0-9A-F][0-9A-F]$" . + owl:onDatatype xsd:short ; + owl:withRestrictions ( + [ + xsd:pattern "[0-9A-F][0-9A-F]" + ] [ + xsd:maxInclusive 127 + ] [ + xsd:minInclusive -128 + ] + ) . xsd:date a rdfs:Datatype ; - xsd:pattern "-?[0-9][0-9][0-9][0-9]([0-9]*)?-(0[1-9]|1[0-1])-([0-3][1-9])([+-][0-1][0-9]:[0-6][0-9])?$" . + owl:withRestrictions ( + [ + xsd:pattern "-?[0-9][0-9][0-9][0-9]([0-9]*)?-(0[1-9]|1[0-1])-([0-3][1-9])([+-][0-1][0-9]:[0-6][0-9])?" + ] + ) . xsd:dateTime a rdfs:Datatype . xsd:decimal a rdfs:Datatype ; - xsd:pattern "[+-]?[0-9]*\\.?[0-9]*$" . + rdfs:comment "A subset of the real numbers, which can be represented by decimal numerals." ; + owl:withRestrictions ( + [ + xsd:pattern "[+-]?[0-9]*\\.?[0-9]*" + ] + ) . xsd:double a rdfs:Datatype ; - xsd:pattern "[+-]?[0-9]*\\.?[0-9]*([eE][-+]?[0-9]+)$" . + rdfs:comment "IEEE double-precision 64-bit floating point." ; + owl:withRestrictions ( + [ + xsd:pattern "[+-]?[0-9]*\\.?[0-9]*([eE][-+]?[0-9]+)" + ] + ) . xsd:duration a rdfs:Datatype . xsd:float a rdfs:Datatype ; - rdfs:subClassOf xsd:double . + rdfs:comment "IEEE single-precision 32-bit floating point." ; + owl:onDatatype xsd:double . xsd:gDay a rdfs:Datatype . @@ -87,86 +160,162 @@ xsd:gYearMonth xsd:hexBinary a rdfs:Datatype ; - xsd:pattern "[0-9A-F]*$" . + rdfs:comment "Hex-encoded arbitrary binary data." ; + owl:withRestrictions ( + [ + xsd:pattern "[0-9A-F]*" + ] + ) . xsd:int a rdfs:Datatype ; - rdfs:subClassOf xsd:long , - xsd:double . + owl:onDatatype xsd:long ; + owl:withRestrictions ( + [ + xsd:maxInclusive 2147483647 + ] [ + xsd:minInclusive -2147483648 + ] + ) . xsd:integer a rdfs:Datatype ; - rdfs:subClassOf xsd:decimal ; - xsd:pattern "[-+]?[0-9]+$" . + owl:onDatatype xsd:decimal ; + owl:withRestrictions ( + [ + xsd:pattern "[-+]?[0-9]+" + ] [ + xsd:fractionDigits 0 + ] + ) . xsd:language a rdfs:Datatype ; - rdfs:subClassOf xsd:NCName , - xsd:ID , - xsd:IDREF ; - xsd:pattern "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*$" . + owl:onDatatype xsd:token ; + owl:withRestrictions ( + [ + xsd:pattern "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*" + ] + ) . xsd:long a rdfs:Datatype ; - rdfs:subClassOf xsd:integer . + owl:onDatatype xsd:integer ; + owl:withRestrictions ( + [ + xsd:maxInclusive 9223372036854775807 + ] [ + xsd:minInclusive -9223372036854775808 + ] + ) . xsd:negativeInteger a rdfs:Datatype ; - rdfs:subClassOf xsd:nonPositiveInteger . + owl:onDatatype xsd:nonPositiveInteger ; + owl:withRestrictions ( + [ + xsd:maxInclusive -1 + ] + ) . xsd:nonNegativeInteger a rdfs:Datatype ; - rdfs:subClassOf xsd:integer ; - xsd:pattern "[0-9]*$" . + owl:onDatatype xsd:integer ; + owl:withRestrictions ( + [ + xsd:pattern "[0-9]*" + ] [ + xsd:minInclusive 0 + ] + ) . xsd:nonPositiveInteger a rdfs:Datatype ; - rdfs:subClassOf xsd:integer ; - xsd:pattern "(0|-[0-9]+)$" . + owl:onDatatype xsd:integer ; + owl:withRestrictions ( + [ + xsd:pattern "(0|-[0-9]+)" + ] [ + xsd:maxInclusive 0 + ] + ) . xsd:normalizedString a rdfs:Datatype ; - rdfs:subClassOf xsd:string . + owl:onDatatype xsd:string ; + rdfs:comment "The set of strings that do not contain the carriage return (#xD), line feed (#xA) nor tab (#x9) characters." . xsd:positiveInteger a rdfs:Datatype ; - rdfs:subClassOf xsd:nonNegativeInteger ; - xsd:pattern "+?[0-9]+$" . + owl:onDatatype xsd:nonNegativeInteger ; + owl:withRestrictions ( + [ + xsd:pattern "[+]?[0-9]+" + ] [ + xsd:minInclusive 1 + ] + ) . xsd:short a rdfs:Datatype ; - rdfs:subClassOf xsd:int , - xsd:float . + owl:onDatatype xsd:int ; + owl:withRestrictions ( + [ + xsd:maxInclusive 32767 + ] [ + xsd:minInclusive -32768 + ] + ) . xsd:string - a rdfs:Datatype . + a rdfs:Datatype ; + rdfs:comment "A character string." . xsd:time a rdfs:Datatype ; - xsd:pattern "[1-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]$" . + owl:withRestrictions ( + [ + xsd:pattern "[1-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]" + ] + ) . xsd:token a rdfs:Datatype ; - rdfs:subClassOf xsd:normalizedString . + owl:onDatatype xsd:normalizedString ; + 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." . xsd:unsignedByte a rdfs:Datatype ; - rdfs:subClassOf xsd:short , - xsd:unsignedShort ; - xsd:pattern "([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$" . + owl:onDatatype xsd:unsignedShort ; + owl:withRestrictions ( + [ + xsd:maxInclusive 255 + ] + ) . xsd:unsignedInt a rdfs:Datatype ; - rdfs:subClassOf xsd:long , - xsd:double , - xsd:unsignedLong . + owl:onDatatype xsd:unsignedLong ; + owl:withRestrictions ( + [ + xsd:maxInclusive 4294967295 + ] + ) . xsd:unsignedLong a rdfs:Datatype ; - rdfs:subClassOf xsd:nonNegativeInteger . + owl:onDatatype xsd:nonNegativeInteger ; + owl:withRestrictions ( + [ + xsd:maxInclusive 18446744073709551615 + ] + ) . xsd:unsignedShort a rdfs:Datatype ; - rdfs:subClassOf xsd:int , - xsd:float , - xsd:unsignedInt . + owl:onDatatype xsd:unsignedInt ; + owl:withRestrictions ( + [ + xsd:maxInclusive 65535 + ] + ) . -- cgit v1.2.1