Re: ISSUE-126 (Revisit Datatypes): A new proposal for the real <-> float <-> double conundrum

This message is in regard to the discussion related to [this](http://lists.w3.org/Archives/Public/public-owl-wg/2008Jul/0101.html 
).

When I was implementing the Cerebra OWL reasoner, I came to the firm  
conclusion that the OWL (1.0) spec was downright broken on this point,  
and I fear we're in danger of breaking OWL 2.0 in exactly the same way.

Putting aside the issue of whether or not it's possible to use (only)  
the XML Schema datatypes to represent meaningful and implementable OWL  
datatype value spaces, I expect that there is consensus that when  
users were writing `xsd:float` and `xsd:double` without values in OWL  
1.0, what they really meant was "any number". No user ever intended to  
restrict the semantic space to a nowhere-dense number line. If the OWL  
spec presupposes that most of our users would a prefer a number line  
which does not include 1/3, my choice as an implementor would be to  
once again ignore the spec and be intentionally non-compliant. Doing  
what all my users want and expect in this case turns out to be way way  
easier than doing what a broken spec would require. Any working group  
who would produce such a spec would clearly be putting their own  
interests (ease of spec authoring and political considerations) above  
their duty to their intended users.

(Note that in the course of the discussion I read on public-owl-wg the  
notions of "dense" and "continuous" seem to have become confused. I  
think the notion of density is probably the only one that makes a  
difference in terms of current OWL semantics, since number  
restrictions can cause inconsistencies in non-dense number lines, but  
continuity is really what users have in their heads.)

The [XML Schema datatype spec](http://www.w3.org/TR/xmlschema-2/) is  
focused on representing particular values, not on classes of values.  
The notion of "value spaces" is used within the spec, but only in  
service of representation of values---note that there's not a single  
value space mentioned which is continuous with respect to the reals,  
nor are such notions as "rationals" defined. This makes sense in terms  
of data serialization (the driving XML use case) and standard  
programming languages (where manipulation of values is the driving use  
case), but OWL is in a very different situation. The primary OWL use  
case is reasoning about the emptiness (or size) of value spaces, and  
the definitions provided in the XML Schema spec do not serve this  
purpose well.

Note that I'm not saying XML Schema is a bad spec; merely that it  
addresses different problems than we have.


I strongly encourage the working group to publish a spec which  
provides for the following types of semantic spaces:

1. A countably infinite, nowhere-dense datatype. I.e. the integers.

2. A countably infinite, dense datatype. I.e. strings.

3. An uncountably infinite, dense, continuous datatype. I.e. the reals.

I don't particularly care what each of these three is called; as long  
as OWL specifies the internal semantics of these three types of  
spaces, then it's straightforward to "implement" the datatypes users  
will actually want in terms of them. But, of course, the ability to  
use XML Schema Datatypes to encode specific values within each of  
these spaces would be quite convenient---and would use the XML Schema  
specification for *exactly* what it's good at.

-rob

Received on Friday, 4 July 2008 18:11:56 UTC