equivalentTo / sameClassAs / sameIndividualAs puzzle

From: Dan Brickley (Daniel.Brickley@bristol.ac.uk)
Date: 07/07/01


(I'm unlurking; as RDF Core WG work on RDF Schema is starting up, I'm
hoping to have more time to spend on DAML+OIL stuff too)

So I'm looking at some of the DAML+OIL definitions, while preparing a
new draft of RDF Schema for the RDF Core WG. Reviewing the equivalentTo /
sameClassAs machinery:

DAML+OIL says... (larger excerpt coped below)

    for equivalentTo(X, Y), read X is an equivalent term to Y.
    for sameClassAs(X, Y), read X is an equivalent class to Y.
    cf OIL Equivalent

The axiomatic semantics tells us "sameClassAs is equivalentTo for
classes", yet the two textual definitions differ: the first seems to be
couched as a relationship between _terms_ (that denote the same thing),
whereas the second seems to be couched as a relationship between the
things that terms denote. Given that the latter relation is based on the
former, this seems quirky.

Following the definitional style of equivalentTo, one might expect to
see something like "X _denotes_ an equivalent class to Y"? 

I suspect DAML+OIL inherits some murkiness from RDF here, ie. RDF
mumbles about whether we're describing relationships between pairs of
URI names, or whether between the things those URI names denote. But
whichever way we jump, I'd have expected these two definitions to adopt
the same style. 

I was concerned mostly with the classes case as I'm thinking about the
subClassOf cycles issue. Reading on, same goes for samePropertyAs,
sameIndividualAs; it seems equivalentTo is the odd one out, by talking
about 'terms'. I can't see any interesting difference between
sameIndividualAs and equivalentTo (since everything's a daml:Thing, and
being one-and-the-same-thing-as doesn't really come in multiple
flavours). (I remember seeing discussion on this point before; forgive
me if I'm poking at a recently closed issue). Am I missing something
or could these two be folded together, so that samePropertyAs and
sameClassAs would be defined in terms of sameIndividualAs? 

	To state that objects are the same, a daml:sameIndividualAs element is
	used. (Note that daml:equivalentTo can be also used here, but
	daml:sameIndividual is preferred. To state that objects are distinct, a
	daml:differentIndividualFrom element is used. The situation is different
	for datatype values, where XML SchemaDatatype identity is used.

Some editorial comments: 

	- it would be helpful here to say _why_ daml:sameIndividualAs is 
	  preferred. Does it convey more information?

	- typo: "daml:sameIndividual" instead of "daml:sameIndividualAs"

	- ommission: http://www.daml.org/2001/03/axiomatic-semantics.html
          doesn't assign semantics to (or mention) daml:sameIndividual(As)

I also notice sameIndividualAs has domain and range constraints defined
whereas equivalentTo doesn't (is this something to do with datatypes /

	  <rdfs:domain rdf:resource="#Thing"/>
	  <rdfs:range rdf:resource="#Thing"/>	

...but I'm still having trouble seeing the need for both the
sameIndividualAs and the equivalentTo construct.



Excerpted from http://www.daml.org/2001/03/daml+oil.daml

<Property rdf:ID="equivalentTo"> <!-- equals? equiv? renames? -->
    for equivalentTo(X, Y), read X is an equivalent term to Y.

<Property rdf:ID="sameClassAs">
    for sameClassAs(X, Y), read X is an equivalent class to Y.
    cf OIL Equivalent
  <rdfs:subPropertyOf rdf:resource="#equivalentTo"/>
  <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
  <rdfs:domain rdf:resource="#Class"/>
  <rdfs:range rdf:resource="#Class"/>

This archive was generated by hypermail 2.1.4 : 04/02/02 EST