Warning:
This wiki has been archived and is now read-only.

Datatype Disjointness Details

From OWL
Jump to: navigation, search

For the short version, see: Datatype Disjointness.

The following is a summary of the background to the OWL Working Group's decision on the disjointness of numeric datatypes. It was prepared by Ian Horrocks (OWL Working Group co-chair) on the 30th May, 2009.


The WG had initially decided not to make numeric datatypes disjoint. It was, however, always a contentious issue, with several WG members arguing strongly against the decision (see, e.g., minutes of the 28 July, 2008 F2F meeting in Cambridge MA), but eventually being persuaded not to oppose the majority view.

After receiving two adverse LC comments ([1], [2]) and negative feedback from implementers the WG decided to reconsider the issue. There was an extensive discussion at the F2F on 23 February 2009. Many members of the WG expressed the opinion that the above mentioned comments and feedback, as well as the benefits of compatibility with XSD, RIF and existing implementations (such as Jena and Pellet), were very strong arguments in favour of disjointness. Some WG members wanted to consult with their organisations, so a vote on the issue was postponed. At the 11 March 2009 teleconf the WG again discussed the issue, and the opinion in favour of disjointness was overwhelming; it was resolved (12 for and 1 against) to make all base datatypes, including owl:real, xsd:float and xsd:double, disjoint as per XSD.

The objection to this decision from Alan Ruttenberg is summarised in [3]. It should be pointed out that this summary fails to mention that the revised decision was also motivated by implementation reports (in particular from Boris Motik, who reported that implementing the non-disjoint design turned out to be very difficult in practice), existing implementation practice (it was reported that both Jena and Pellet implement disjoint datatypes), and more careful consideration from potential implementers (e.g., after consultation with colleagues about their OWL Prime implementation, the Oracle rep revised his position to be in favour of disjointness).

In his argument, Alan refers to "a published paper describing a technique for efficiently comparing floats to integers". In fact the cited paper shows how to compare two floats by interpreting them as integers, which is not the same thing. No one is claiming that such a comparison is infeasible --- what is being said is that, based on implementation efforts to date, the difficulties involved in such a comparison may be a serious disincentive to implementers. This is likely to result in fewer and/or non-standard implementations, which will certainly not be more useful to OWL users.

Alan's objection also refers to and email from Dave Peterson regarding XSD's stance on disjointness. It is claimed that "Peterson's response supports the notion that XSD type disjointness does not necessarily apply to OWL". However, this seems to overstate what can be understood from the email. Peterson confirms that XSD value spaces are disjoint, but isn't sure if OWL needs identity or equality. Even if it is assumed that equality rather than identity is what is needed (which is by no means clear), what Peterson says is:

"XSD says that for its purposes, it chooses to define its
equality and order relation in such-and-such a way.  But it
explicitly says that adopters of the datatypes should feel
free to redefine equality and order (among other things) as
they see fit.  What more can we say?  It's pretty clear that
Alan, for example, expects a different equality from that
chosen by XSLT/XQuery.  We clearly can't satisfy all users."

In other words, the spec does allow for adopters to redefine equality, but the result would then be inconsistent with the definitions chosen by XSD and XSLT/XQuery. So, disjointness is still be needed in order to be consistent with XSD, even if it isn't strictly needed for conformance.