From 7b954f5667e82de1b64984a9aeb26b8ebb5cab81 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 8 Mar 2021 23:25:35 -0500 Subject: WIP: Validation --- schemas/rdf.ttl | 2 +- schemas/rdfs.ttl | 2 +- schemas/xsd.ttl | 98 ++++++++++++++++---------------------------------------- 3 files changed, 30 insertions(+), 72 deletions(-) (limited to 'schemas') diff --git a/schemas/rdf.ttl b/schemas/rdf.ttl index 5ef93450..bd9a6738 100644 --- a/schemas/rdf.ttl +++ b/schemas/rdf.ttl @@ -2,7 +2,7 @@ @prefix rdfs: . @prefix owl: . - +rdf: rdfs:comment "The RDF Vocabulary (RDF)" ; a owl:Ontology ; rdfs:seeAlso . diff --git a/schemas/rdfs.ttl b/schemas/rdfs.ttl index 43c51e58..a266b972 100644 --- a/schemas/rdfs.ttl +++ b/schemas/rdfs.ttl @@ -2,7 +2,7 @@ @prefix rdfs: . @prefix owl: . - +rdfs: rdfs:comment "The RDF Schema vocabulary (RDFS)" ; a owl:Ontology ; rdfs:seeAlso . diff --git a/schemas/xsd.ttl b/schemas/xsd.ttl index 46f6793a..82a9ccf0 100644 --- a/schemas/xsd.ttl +++ b/schemas/xsd.ttl @@ -3,41 +3,10 @@ @prefix rdfs: . @prefix xsd: . - +xsd: a owl:Ontology ; rdfs:comment "XML Schema Datatypes" . -xsd:ID - a rdfs:Datatype ; - owl:onDatatype xsd:NCName . - -xsd:IDREF - a rdfs:Datatype ; - owl:onDatatype xsd:NCName . - -xsd:ENTITY - a rdfs:Datatype ; - owl:onDatatype xsd:NCName . - -xsd:NCName - a rdfs:Datatype ; - owl:onDatatype xsd:Name . - -xsd:NMTOKEN - a rdfs:Datatype ; - owl:onDatatype xsd:token . - -xsd:Name - a rdfs:Datatype ; - owl:onDatatype xsd:token . - -xsd:totalDigits - a rdf:Property , - owl:DatatypeProperty ; - rdfs:range xsd:positiveInteger ; - rdfs:label "total digits" ; - rdfs:comment "The maximum number of decimal digits required to represent a value." . - xsd:fractionDigits a rdf:Property , owl:DatatypeProperty ; @@ -75,10 +44,6 @@ xsd:minExclusive rdfs:label "min exclusive" ; rdfs:comment "The exclusive lower bound of an ordered datatype." . -xsd:QName - a rdfs:Datatype ; - rdfs:label "XML qualified name" . - xsd:anyURI a rdfs:Datatype ; rdfs:label "URI reference" . @@ -89,7 +54,7 @@ xsd:base64Binary 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: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] *= *=)))?" ] ) . @@ -98,7 +63,7 @@ xsd:boolean rdfs:label "boolean" ; owl:withRestrictions ( [ - xsd:pattern "(true|false)" + xsd:pattern "(true|false|0|1)" ] ) . @@ -109,7 +74,8 @@ xsd:byte owl:withRestrictions ( [ xsd:maxInclusive 127 - ] [ + ] + [ xsd:minInclusive -128 ] ) . @@ -119,7 +85,7 @@ xsd:date rdfs:label "date" ; owl:withRestrictions ( [ - xsd:pattern "-?[0-9][0-9][0-9][0-9]([0-9]*)?-(0[1-9]|1[0-2])-([0-3][0-9])([+-]([0-1][0-9]|2[0-3]):[0-5][0-9])?" + 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])?" ] ) . @@ -133,7 +99,7 @@ xsd:decimal rdfs:comment "A subset of the real numbers, which can be represented by decimal numerals." ; owl:withRestrictions ( [ - xsd:pattern "[+-]?[0-9]*\\.?[0-9]*" + xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?" ] ) . @@ -143,7 +109,7 @@ xsd:double rdfs:comment "IEEE double-precision 64-bit floating point." ; owl:withRestrictions ( [ - xsd:pattern "[+-]?[0-9]*\\.?[0-9]*([eE][-+]?[0-9]+)?" + xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?" ] ) . @@ -157,28 +123,13 @@ xsd:float rdfs:comment "IEEE single-precision 32-bit floating point." ; owl:onDatatype xsd:double . -xsd:gDay - a rdfs:Datatype . - -xsd:gMonth - a rdfs:Datatype . - -xsd:gMonthDay - a rdfs:Datatype . - -xsd:gYear - a rdfs:Datatype . - -xsd:gYearMonth - a rdfs:Datatype . - xsd:hexBinary a rdfs:Datatype ; rdfs:label "hex binary" ; rdfs:comment "Hex-encoded arbitrary binary data." ; owl:withRestrictions ( [ - xsd:pattern "[0-9A-F]*" + xsd:pattern "([0-9A-Fa-f][0-9A-Fa-f])*" ] ) . @@ -189,7 +140,8 @@ xsd:int owl:withRestrictions ( [ xsd:maxInclusive 2147483647 - ] [ + ] + [ xsd:minInclusive -2147483648 ] ) . @@ -201,7 +153,8 @@ xsd:integer owl:withRestrictions ( [ xsd:pattern "[-+]?[0-9]+" - ] [ + ] + [ xsd:fractionDigits 0 ] ) . @@ -212,7 +165,7 @@ xsd:language owl:onDatatype xsd:token ; owl:withRestrictions ( [ - xsd:pattern "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*" + 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]?)*" ] ) . @@ -223,7 +176,8 @@ xsd:long owl:withRestrictions ( [ xsd:maxInclusive 9223372036854775807 - ] [ + ] + [ xsd:minInclusive -9223372036854775808 ] ) . @@ -244,8 +198,9 @@ xsd:nonNegativeInteger owl:onDatatype xsd:integer ; owl:withRestrictions ( [ - xsd:pattern "[0-9]*" - ] [ + xsd:pattern "[+]?[0-9]+" + ] + [ xsd:minInclusive 0 ] ) . @@ -257,7 +212,8 @@ xsd:nonPositiveInteger owl:withRestrictions ( [ xsd:pattern "(0|-[0-9]+)" - ] [ + ] + [ xsd:maxInclusive 0 ] ) . @@ -274,8 +230,9 @@ xsd:positiveInteger owl:onDatatype xsd:nonNegativeInteger ; owl:withRestrictions ( [ - xsd:pattern "[+]?[0-9]+" - ] [ + xsd:pattern "[+]?[0-9]*[1-9]+[0-9]*" + ] + [ xsd:minInclusive 1 ] ) . @@ -287,7 +244,8 @@ xsd:short owl:withRestrictions ( [ xsd:maxInclusive 32767 - ] [ + ] + [ xsd:minInclusive -32768 ] ) . @@ -302,7 +260,7 @@ xsd:time rdfs:label "time" ; owl:withRestrictions ( [ - xsd:pattern "[1-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]" + 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])?" ] ) . @@ -338,7 +296,7 @@ xsd:unsignedLong owl:onDatatype xsd:nonNegativeInteger ; owl:withRestrictions ( [ - xsd:maxInclusive 18446744073709551615 + xsd:maxInclusive "18446744073709551615"^^xsd:unsignedLong ] ) . -- cgit v1.2.1