- From: Birte Glimm <birte.glimm@comlab.ox.ac.uk>
- Date: Tue, 29 Mar 2011 17:54:08 +0100
- To: Matthew Perry <matthew.perry@oracle.com>
- Cc: Andy Seaborne <andy.seaborne@epimorphics.com>, W3C SPARQL Working Group <public-rdf-dawg@w3.org>
Hm, so "01"^^xsd:integer becomes "1.0"^^xsd:decimal? That's what we do in HermiT since otherwise you wouldn't be able to properly implement OWL reasoning with facets, but then I don't understand the XML Schema Datatypes spec, which seems to suggest that "1" is the canonical form of "01" for integers (definitely not "1.0"). In other places the spec says, however, that derived types inherit the canonical forms from the primitive type and for integer the primitive type is decimal, so from that one could understand "1.0" as decimal to be the canonical representation of integer "01". Birte On 28 March 2011 18:15, Matthew Perry <matthew.perry@oracle.com> wrote: > Hi Andy, > > Yes, we will turn that into xsd:decimal. > > - Matt > > On 3/28/2011 3:28 AM, Andy Seaborne wrote: >> >> Matt, >> >> Does the Oracle normalization turn everything into xsd:decimal so that >> 1+2, where "1"^^xsd:integer and "2"^^xsd:integer occur in the data, is an >> xsd:decimal? It'll show up on BIND but also datatype(). >> >> Andy >> >> On 22/03/11 15:50, Matthew Perry wrote: >>> >>> Hi, >>> >>> Oracle's canonicalization is shown below. Please let me know if you have >>> any questions. >>> >>> Thanks, >>> Matt >>> >>> - URI, Blank Node, Plain Literal => no change >>> - language-tagged literals => normalize lang tag to lowercase >>> >>> - xsd:string => Plain Literal >>> >>> - All the following go to xsd:decimal normalized to remove all leading >>> and >>> trailing zeros. Decimal point is not included if fractional part is zero. >>> xsd:decimal >>> xsd:integer >>> xsd:nonPositiveInteger >>> xsd:negativeInteger >>> xsd:long >>> xsd:int >>> xsd:short >>> xsd:byte >>> xsd:nonNegativeInteger >>> xsd:unsignedLong >>> xsd:unsignedInt >>> xsd:unsignedShort >>> xsd:unsignedByte >>> xsd:positiveInteger >>> >>> - normalize to concat("mantissa", "E", "exponent") >>> (e.g. "100.3"^^<http://www.w3.org/2001/XMLSchema#float => >>> "1.00300003E2"^^<http://www.w3.org/2001/XMLSchema#float>) >>> xsd:double => xsd:double >>> xsd:float => xsd:float >>> >>> - Normalize to Z timezone if timezone is given. >>> Time portion allows at most 9 fractional seconds, which are rounded to >>> 6 fractional seconds with trailing zeros removed. >>> xsd:dateTime => xsd:dateTime >>> xsd:time => xsd:time >>> >>> - xsd:date => xsd:date no change >>> >>> >>> - xsd:boolean => normalize to lowercase "true" or "false" >>> >> > > > -- Dr. Birte Glimm, Room 309 Computing Laboratory Parks Road Oxford OX1 3QD United Kingdom +44 (0)1865 283520
Received on Tuesday, 29 March 2011 16:54:41 UTC