RDF mapping of datarange complements brings problem for DL/Full relationship

[cc'ed Jeremy, since he brought this point up at last telco]
[slightly related to ISSUE-124, but should be regarded as distinct issue]

Note: This mail serves as a base for the discussion in this week's telco.
According to the agenda, we will discuss:

[[
    Issue 124:
    [...]
    Michael's concern: Why not relative to whole domain
    - including individials?
]]

(Just to be clear: I did not suggest to extend the complements
of dataranges to the "whole" domain in OWL DL. This would
make no sense. I only stated that in *OWL Full* the complement
actually *is* relative to the whole domain, and that this
difference between DL and Full may lead to problems.
I write this mail here to show such a problem.)

Summary:
--------

The current RDF mapping for datarange complements brings us the situation
that OWL 2 DL will have entailments, which are /not/ OWL 2 Full entailments.
In OWL 1, every OWL DL entailment was also an OWL Full entailment, so there
would now be a deviation from this relationship between DL and Full.

A remedy is to change the RDF mapping by introducing a new URI dedicated
to datarange complements.

Detailed description:
---------------------

In OWL 2 DL, the semantics for the complement of a datarange DR is given by

  (1) rdfs:Literal \ DR

i.e. all datavalues except those within DR. So the following entailment
holds in OWL 2 DL:

  (2) {} |= SubClassOf(
              AllValuesFrom( dp ComplementOf(xsd:string) )
              AllValuesFrom( dp rdfs:Literal )
            )

for a given data property dp.

The current RDF mapping of datarange complements is:

  (3a) _:x rdf:type rdfs:Datatype
  (3b) _:x owl:complementOf T(DR)

OWL 1 Full (and thus also OWL 2 Full) already specifies semantics for triples
with 'owl:complementOf' as their predicates, such as the one in (3b).
This leads to the following OWL Full semantics for the complement of a
datarange DR:

  (4) owl:Thing \ DR

Note that in OWL Full we have:

  (5) SubClassOf( rdfs:Literal owl:Thing )

This means that (2) is *not* an entailment in OWL Full, since there are models 
for which the complement of xsd:string has instances outside rdfs:Literal.

Note: This observation even holds if there are comprehension principles
in OWL 2 Full.

! Proposal: The problem can easily be solved by having a special
RDF mapping for datarange complements, e.g.:

  (6a) _:x rdf:type rdfs:Datatype
  (6b) _:x owl:datatypeComplementOf y

Regards,
Michael

Received on Tuesday, 3 June 2008 21:03:38 UTC