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

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.

 

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. 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.

 

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: public-owl-wg-request@w3.org [mailto:public-owl-wg-request@w3.org] 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.

 

http://www.pms.ifi.lmu.de/mitarbeiter/ohlbach/homepage/publications/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 http://www.w3.org/2007/OWL/

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 11:24:31 UTC