- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Wed, 25 Mar 2009 18:47:56 +0000
- To: RIF WG <public-rif-wg@w3.org>
We had a useful but not fully conclusive discussion on this at the last telecon and tried to clarify our terminology. I felt afterwards we didn't quite have it right so here's an attempt to articulate that. There are actually three notions of "equality" buried in here. (1) Identity. Two literals are identical if they correspond to the same value in the value space. (2) Equality. XSD defines algorithms for equality which mean that two non-identical points in a given value space can be equal. However, for XSD this equality is restricted to be within a datatype[1] and so doesn't include the "1"^^xsd:int = "1.0"^^xsd:float case. (3) Equivalence[3]. XPath F&0 defines equality operators (a different notion from the mathematical equality functions which characterize the XSD value spaces). These can span multiple datatypes, specifically numeric-equal does. This is the one that does type promotion and permits "1"^^xsd:int = "1.0"^^xsd:float. Now, in XML Schema 1.0, which is the version we current reference in DTB, equality and identity are the same[2]. So the issues we were worrying about in the telecon don't apply. In XML Schema 1.1 some datatypes have a non-identity equality. Specifically xsd:dateTime and float/double. Though with float/double the exceptions (-0 = +0, Nan != NaN) are perhaps not so interesting. For OWL then they define xsd:dateTimeStamp to have a value space corresponding to a timeline instead of following the XML Schema 1.1 structural model and so for OWL's definition identity and equality coincide again. So my contention is that the way literal-not-equal is defined in DTB at present (non-identity) corresponds to the equality notion in OWL for all the relevant datatypes and I keep my preference for options 2 or 1 [4]. This contention is trivially true if we stick to XML Schema 1.0 because there is no distinction between equality and identity there. If we move to XML Schema 1.1 (is there a proposal to do this? I assume so) there are differences but the main problematic datatype is not included in OWL[5]. Dave [1] http://www.w3.org/TR/xmlschema11-2/#value-space "For purposes of this specification, the value spaces of primitive datatypes are disjoint, even in cases where the abstractions they represent might be thought of as having values in common." [2] http://www.w3.org/TR/xmlschema11-2/#value-space "Note: In the prior version of this specification (1.0), equality was always identity. This has been changed to permit the datatypes defined herein to more closely match the "real world" datatypes for which they are intended to be used as transmission formats." [3] I don't know what a good name for this is so I'm using "equivalence" for now. You could call it "programmatic equality" or "pragmatic equality" or something. [4] http://lists.w3.org/Archives/Public/public-rif-wg/2009Mar/0076.html [5] OK, that does leave the corner cases of float/double (-0 = +0, Nan != NaN) I haven't checked how OWL handle these. If those are the only differences then I personally don't care either way. -- Hewlett-Packard Limited Registered Office: Cain Road, Bracknell, Berks RG12 1HN Registered No: 690597 England
Received on Wednesday, 25 March 2009 18:48:50 UTC