- From: Eric Prud'hommeaux <eric@w3.org>
- Date: Mon, 13 Jun 2005 03:47:42 -0400
- To: DAWG public list <public-rdf-dawg@w3.org>
- Message-ID: <20050613074741.GD29143@w3.org>
On Thu, Jun 09, 2005 at 03:31:34PM +0100, Steve Harris wrote:
> Lines: 50
>
>
> Review of http://www.w3.org/2001/sw/DataAccess/rq23/ v1.379
>
> This is a critical issue. I raised it on IRC when reviewing section 11 as
> per last weeks action, but neglected to mail the list and so forgot.
> Apologies.
Yeah, ditto.
> Promotion order is given as:
>
> * xs:double
> * xs:float
> * xs:decimal
I have no particular attachment to the above scheme beyond that XPath
does it and I want to be cool like XPath.
<http://www.w3.org/TR/xpath20/#promotion>
A lot of the functions we use (like numeric-add) are defined in terms
of those types. Given an absurd just-in-time implementation and the
following query:
WHERE { ?who age ?age ; shoeSize ?shoeSize
FILTER (?age + ?shoeSize = 84) }
the query engine sees the plus and pages the on-call query researcher.
He is woken from his slumber to see a page like:
numeric-add("42"^^xs:float, "42"^^xs:integer)
He whips out his trusty web browser to check out the semantics of add.
<http://www.w3.org/TR/rdf-sparql-query/#OperatorMapping>
points to
<http://www.w3.org/TR/xpath-functions/#func-numeric-add>
which defines the opperation in terms of two identically-types
operands. In XPath-land, those two operands were normalized to the
same type by applying XPath's Numeric Type Promotion.
Given that, I guess we could supply our own promotion rules. But I
wonder what wisdom guided their decisions. Until someone from XQuery
can say "we did it for X" and we can confidently decide that Steve's
comments are more important than X, I am
-0
on changing this.
> with types being promoted to the one obove in the list. However xs:float
> does not subsume xs:decimal - according to
> http://www.w3.org/TR/xmlschema-2/#decimal The value space of decimal is
> the set of numbers that can be obtained by multiplying an integer by a
> non-positive power of ten and all minimally conforming processors must
> support decimal numbers with a minimum of 18 decimal digits. This exceeds
> the precision* of xs:float and xs:double in some cases, so the type
> "promotion" may well be lossy.
>
> * Type Epsilon
> integer 1.0
> float 1.0e-5
> double 1.0e-9
> decimal 1.0e-17
>
> My recollection is that we agreed to start with double, dateTime and
> integer (c.f. http://www.w3.org/2001/sw/DataAccess/ftf4.html RESOLVED: to
> address valueTesting by choosing datetime, date, time; date less-than,
> date-greater-than, date-equal; string ops per 1.171; numeric double,
> integer, 9 numeric ops above, per xquery f&o with EricP, KendallC, SteveH
> abstaining), since then we have aquired xs:decimal, which complicates
> matters greatly.
>
> Suggested replacement text:
>
> * xs:double
> * xs:float
> * xs:integer
>
> And replace all occurances of xs:decimal in the text with xs:integer. Drop
> note in A / B entry of Table 11.1.
>
> N.B. xs:float does not subsume xs:integer either, but the overlap is much
> bigger, and this kind of conversion is common in programming laguages so
> will hopefully be less supprising
But integer is lexically derived from decimal:
<http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#decimal-derived-types>
(I don't claim to contradict you, just relaying my confusion.)
--
-eric
office: +81.466.49.1170 W3C, Keio Research Institute at SFC,
Shonan Fujisawa Campus, Keio University,
5322 Endo, Fujisawa, Kanagawa 252-8520
JAPAN
+1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA
cell: +81.90.6533.3882
(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.
Received on Monday, 13 June 2005 07:47:44 UTC