A summary of the proposal for a datatype system of OWL 2 (ISSUE-126)

Hello,

As a preparation for today's teleconf, I thought it would be good to summarize the current state of the discussion regarding
datatypes in OWL 2. (Of course, this is my understanding, so I apologize in advance if I haven't reflected someone's opinion
correctly.)


1. The list of supported datatypes
===================================

OWL 2 would support the following datatypes in class restrictions. For each datatype, I specify the space of values that it is
interpreted as.

1a. Numeric Datatypes
----------------------

Datatype:    owl:numberPlus
Value space: The set of all real numbers plus NaN, +inf, -inf, and -0.
Facets:      minInclusive, minExclusive, maxInclusive, and maxExclusive
Note 1:      The value +0 is already available in the set of all real numbers.
Note 2:      This is the base datatype for all other numeric datatypes.
Note 3:      The facets are inherited by all numeric datatypes and I don't list them separately.

Datatype:    owl:number
Value space: The set of all real numbers (without NaN, +inf, -inf, and -0).
Note:        The value space is a subset of owl:numberPlus.

Datatype:    owl:rational
Value space: The set of all rational numbers (without NaN, +inf, -inf, and -0).
Note:        The value space is a subset of owl:number.

Datatype:    xsd:integer
Value space: The set of all integers. The value space is the subset of owl:number.
Note:        We would also support all the derivatives of xsd:integer, which I won't list separately.

Datatype:    xsd:float and xsd:double
Value space: The set of all real numbers between the minimum and the maximum float or double,
             plus NaN, +inf, -inf, and -0.
Note 1:      Thus, the value space is a subset of owl:numberPlus, but not of owl:number (because of
             the special values). Note 2:      The value space is NOT discrete.

Datatype:    xsd:decimal
Value space: The subset of owl:number containing all decimal numbers.

1b. String datatypes
---------------------

Datatype:    owl:internationalizedString
Value space: The set of pairs of the form (string,langTag), where langTag is allowed to be empty.
Facets:      length, minLength, maxLength, and pattern
Note:        All facets operate on the string portion of the pair.

Datatype:    xsd:string
Value space: The set of pairs of the form (string,"") (hence, the langTag is the empty string).
Note 1:      The value space of xsd:string is a subset of owl:internationalizedString.
Note 2:      OWL 2 would support all string derivatives, which I won't list separately.
Note 3:      xsd:anyURI is a subset of xsd:string.

1c. Additional datatypes
-------------------------

The value space would be disjoint from all other datatypes.

Datatype:    xsd:boolean
Value space: The set { true, false }.
Facets:      none

Datatype:    xsd:hexBinary
Value space: The set of all finite string of octets (= bytes).
Facets:      length, minLength, maxLength

1d. Time and date
------------------

I leave these open of the moment, as they might require another round of discussion.



2. The list of supported constants
===================================

OWL would support the following constants.

* xsd:integer and all its derivatives
  - A normative implementation would be required only to support constants that fit into 64 bits.

* xsd:decimal
  - A normative implementation would be required only to support constants with 18 decimal digits.
    This is exactly the same as in XML Schema.

* xsd:float and xsd:double
  - These would allow for NaN, +inf, -inf, and -0.

* owl:rational
  - As per http://www.w3.org/2007/OWL/wiki/OWL_Rational

* xsd:string
  - In RDF and functional-style syntax, constants of the form "string"^^xsd:string can be abbreviated
    as "string". 

* owl:internationalizedString
  - The lexical value of these constants is "string@langTag". The language tag is whatever is behind
    the last @ sign.
  - In RDF and functional-style syntax, constants of the form
    "string@langTag"^^owl:internationalizedString can be abbreviated as "string"@langTag.

* xsd:boolean as in XML Schema

* xsd:hexBinary as in XML Schema


Regards,

	Boris

Received on Wednesday, 16 July 2008 16:54:11 UTC