Re: oneOfDistinct, a proposal for 5.18

Summary: There are problems with oneOfDistinct. I'm not going to be able to
change the semantics document to add it until probably after the F2F.  I'm
also asking that the resolution of the WG be revisited (reopened, [whatever
is the appropriate term].)


From: Dan Connolly <connolly@w3.org>
Subject: oneOfDistinct, a proposal for 5.18 - Unique names assumption
Date: 11 Dec 2002 15:27:52 -0600

[...]

> Several of us liked "allDifferent"
> back on 12Nov, but I'd like the guide editors
> and such to noodle on better names, because it
> doesn't flow very well in context. Let's
> go with oneOfDistinct for now...
> 
> <owl:Class rdf:ID="WineColor">
>   <rdfs:subClassOf rdf:resource="#WineDescriptor"/>
>   <owl:oneOfDistinct rdf:parseType="Collection">
>     <owl:Thing rdf:about="#White"/>
>     <owl:Thing rdf:about="#Rose"/>
>     <owl:Thing rdf:about="#Red"/>
>   </owl:oneOfDistinct>
> </owl:Class>
> 
> I propose that the guide editor take an ACTION
> to integrate that example into the section
> on enumerated classes, salting to taste.
> Mike S, does that make sense?

When revising the semantics document, I came up against a number of
problems with oneOfDistinct.  It looks benign in the above context, but
consider the following to situations:

<owl:Class rdf:ID="foo">
  <rdfs:subClassOf>
    <owl:intersectionOf rdf:parsetype="Collection">
     <owl:Restriction>
       <owl:onProperty rdf:resource="#child" />
       <owl:allValuesFrom>
         <owl:intersectionOf rdf:parsetype="Collection">
           <owl:Class rdf:about="#RichPeople" />
	   <owl:oneOf rdf:parsetype="Collection">
	     <owl:Person rdf:about="#John"/>
	     <owl:Person rdf:about="#Susan"/>
	   </owl:oneOf>
         </owl:intersectionOf>
       </owl:allValuesFrom>
     </owl:Restriction>
     <owl:Restriction>
       <owl:onProperty rdf:resource="#child" />
       <owl:minCardinality rdf:datatype="xsd:nonNegativeInteger">2
       </owl:minCardinality>
     </owl:Restriction>
    </owl:intersectionOf>
  </rdfs:subClassOf>
</owl:Class>

<owl:Class rdf:ID="bar">
  <rdfs:subClassOf>
    <owl:Restriction>
      <owl:onProperty rdf:resource="#child" />
      <owl:allValuesFrom>
        <owl:intersectionOf rdf:parsetype="Collection">
          <owl:Class rdf:about="#RichPeople" />
	  <owl:oneOfDistinct rdf:parsetype="Collection">
	    <owl:Person rdf:about="#John"/>
	    <owl:Person rdf:about="#Susan"/>
	  </owl:oneOf>
        </owl:intersectionOf>
      </owl:allValuesFrom>
    </owl:Restriction>
  </rdfs:subClassOf>
</owl:Class>

The first example doesn't say anything about John or Susan.  However, the
second does - it says that they are disjoint.  This changes the intuition
that descriptions are just descriptions, and adds an assertional component
to them.  This affects just about every piece of the semantics document,
and requires a close re-examination of the correspondence proofs.  I won't
have time to do this before the Face-to-Face.


There is an alternative, however, which I think is preferable in some ways.

OWL could have something like

<owl:AllDistinct rdf:parseType="Collection">
  <owl:Person rdf:about="#John"/>
  <owl:Person rdf:about="#Susan"/>
</owl:AllDisjoint>

This is not a description, and thus does not cause the problems of
oneOfDistinct.

I propose reopening the decision in the telecom yesterday, and propose
replacing oneOfDistinct with AllDistinct as above.

Peter F. Patel-Schneider
Bell Labs Research

Received on Friday, 20 December 2002 10:21:16 UTC