- From: Boris Motik <boris.motik@comlab.ox.ac.uk>
- Date: Tue, 1 Jul 2008 12:22:53 +0100
- To: "'Alan Ruttenberg'" <alanruttenberg@gmail.com>
- Cc: "'OWL Working Group WG'" <public-owl-wg@w3.org>
- Message-ID: <001801c8db6c$cdcd16a0$7212a8c0@wolf>
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