Re: ISSUE-126 (Revisit Datatypes): A proposal for resolution

On Jul 1, 2008, at 8:15 AM, Boris Motik wrote:

> Hello,
> Here is a proposal, inspired by Alan's earlier observations, for  
> resolving this issue.
> 1. We introduce the owl:real datatype with the value space of all  
> real numbers. We don't add any constants of the form owl:real.

I'm not sure what it means to introduce the datatype. Does this  
necessary have to be named? Can we not just refer to the real numbers  
in the semantics?

> 2. We introduce the owl:rational datatype with the value space of  
> all rational numbers. We add a constant for each rational number
> along the lines of  
> Thus, we would be able to write things such as "1/3"^^owl:rational
> or even "1/1"^^owl:rational.

As I mentioned, I think this should be a separate issue, in the  
interest of making quicker progress on the core technical problem we  
are trying to address.

> 3. We leave xsd:integer and all the derived types as they are.  
> Thus, "1"^xsd:integer is still valid as usual.
> 4. We make xsd:double the subset of real numbers between the  
> minimal double and the maximal double number. We do the same for
> xsd:float. All constants are the same as in XML Schema; thus,  
> "1"^^float and "1.0"^^float are all the same constants.
Denote the same value? (I think that's the language you used in the  
previous email).

> We disallow
> the NaN (not-a-number) constant (allowing NaN would make owl:double  
> not a subset of owl:real).
Would it work to make NaN be equivalent to bottom? This needs a bit  
more thought.
> We are thus staying "almost" true to XML Schema, in thatwe have  
> exactly the same set of constants as in XML Schema. The main change
> is that, in order to facilitate simpler implementations, we make  
> the extension of xsd:double and xsd:float continuous rather than
> discrete.
> 5. We make xsd:decimal the subset of owl:real and we leave all  
> constants as they are. Thus, "1.0"^^xsd:decimal is still a valid
> constant in OWL.
> 6. We disallow the "pattern" facet on all numeric datatypes.
It would be helpful to see whether these are ever usefully used. But  
I concur that they are nasty.

> As I explained in my last e-mail, two constants can be different  
> even though they denote the same value. This elegantly solves the
> problems that Alan mentioned in his last e-mail. For example, if  
> the ontology initially contains "1.0"^^xsd:float, this would be
> read into a constant whose lexical representation is "1.0" and  
> whose URI is xsd:float. Thus, if you write the ontology back from the
> structural spec, the constant would be written out as  
> "1.0"^^xsd:float, and thus the form of the ontology would be  
> preserved.
> The only thing that changes really is that we'd say that the  
> extensions of xsd:double and xsd:float are continuous and not  
> discrete,
> and we'd tweak them (e.g., by removing NaN) to make them subsets of  
> owl:real.
> Please let me know how you feel about this.
> Regards,
> 	Boris

Received on Tuesday, 1 July 2008 14:35:06 UTC