Re: ISSUE-126 (Revisit Datatypes): The list of normative datatypes should be revisited

On Jul 1, 2008, at 7:22 AM, Boris Motik wrote:

> Hello Alan,
> I agree with most of your observations, with the two differences.
> First, we might need rational constants, mainly because of  
> division: if you divide 1 and 3, you get a number whose  
> representation requires an infinite number of digits. It is true  
> that division is not yet supported in OWL 2; however, organizing  
> the datatype system such that we can easily support such extensions  
> is really beneficial. Even if we donít support any such extensions  
> in the core specification, we make it much easier for people to  
> support them if they want to.

I am mixed on this, mostly because it seems to be speculative design.  
My preference would be to have this be a separate issue.

> Second, I am not sure about the comment regarding preprocessing.  
> The unionOf({"1"^^xsd:float}, {"1"^^xsd:int}) class expression is a  
> valid class expression. It is true that a datatype reasoner needs  
> to determine at one point that the two constants are the same, but  
> this can be done during reasoning.

OK. I wasn't sure if it would be easier to do it up front.

> Note that two constants can be different even though they denote  
> the same value. A constant is a pair consisting of a lexical  
> representation and a datatype URI; hence, two constants are equal  
> if their lexical representation and the datatype URIs are the same,  
> and this is independent from the question whether these constants  
> denote the same data value. Thus, "1"^^xsd:float and "1"^^xsd:int  
> are different constants, but they denote the same data value and  
> everything is fine.

FWIW, I think the use of the term "constant" here is confusing. I  
don't see any reason to not stick with talking about literals (which  
are taken from the lexical space) and values, which are taken from  
the value space. 

> Now I appreciate the points you identified below, and I believe  
> that the last observation might provide us with a simple way of  
> dealing with ISSUE-126 while addressing the problems you outlined.  
> Iíll send a separate e-mail about this later today.
> Regards,
>             Boris
> From: [mailto:public-owl-wg- 
>] On Behalf Of Alan Ruttenberg
> Sent: 01 July 2008 07:16
> To: Boris Motik
> Cc: 'OWL Working Group WG'
> Subject: Re: ISSUE-126 (Revisit Datatypes): The list of normative  
> datatypes should be revisited
> I have been asking around a bit about this proposal and generally  
> the response is positive.
> However, I wonder if the right formulation is to say that floats  
> etc are "synonyms" for xsd:float.
> For example, this raises the question of serialization - you read  
> in a float as "3.5"^^xsd:float and then write it out at  
> "3.5"^^owl:real?
> Rather, could we not tweak it slightly differently and say that we  
> are considering the value space of floats, etc, to be the reals,  
> rather than their specified value space according to XML schema?
> Since I don't think we ever produce new (user visible) literals in  
> OWL reasoning (do we?), adopting this approach would mean the  
> reasoning proceeds as you suggest, but the literals remain as they  
> are.
> Since this would be an internal change, we don't necessarily have  
> to have a user facing real or rational datatype. Not that I think  
> that might be desirable for other reasons, but it can be decoupled  
> from this issue.
> There would still be the issue of overlapping value spaces. The  
> cardinality of unionOf({"1"^^xsd:float}, {"1"^^xsd:int}) would need  
> to be determined to be 1. For this I would think a preprocessing of  
> all the constants in the ontology to determine which were equal  
> would be an efficient way to manage the problem.
> -Alan
> ps. Still thinking about the date types. Carsten points out these  
> papers as possibly relevant.
> TL/abstracts.shtml
> On Jun 19, 2008, at 3:49 AM, Boris Motik wrote:
>>> 4. We introduce a new owl:real datatype. This datatype would allow
>>> for the following types of constants:
>>> - rational numbers written according to
>>> wiki/OWL_Rational
>>> - floating point numbers written in the format as specified in the
>>> definition of xsd:float and xsd:double in the XML Schema
>>> - decimal numbers as written in the format as specified in the
>>> definition of xsd:decimal
>>> - integer numbers as written in the format as specified in the
>>> definition of xsd:integer and related datatypes
>>> Furthermore, we would make xsd:float and xsd:double (and possibly
>>> xsd:decimal as well) synonyms for xsd:real. This would be the only
>>> definition from the XML Schema datatype system: there, some very
>>> large numbers are not members of xsd:float. I believe, though, that
>>> this would bother people in practice.
>>> Finally, we can include xsd:nonPositiveInteger,
>>> xsd:negativeInteger, xsd:long, xsd:int, xsd:short, xsd:byte,
>>> xsd:nonNegativeInteger,
>>> xsd:unsignedLong, xsd:unsignedInt, xsd:unsignedShort,
>>> xsd:unsignedByte, and xsd:positiveInteger with the existing
>>> semantics as
>>> usual.
>>> Regards,
>>>        Boris

Received on Tuesday, 1 July 2008 14:29:00 UTC