Re: ACTION-419: Sync with Birte on Datatypes for canonicalisation

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