Re: Asymmetry of Domain and Range in OWL

Evan,

My message was meant for the working group and not for the note.  The 
language certainly requires more clarity for the note.

The OO people you have been hearing may not go back this far, but slot is 
indeed an OO term, it was the term used in smalltalk and in CLOS.  If you 
search around enough, you'll find it still used.  In fact, each new 
language seems to have decided to invent a new term. I have heard the 
following terms all used to mean variations on this:

attribute, property, field, slot, member [variable], association, 
relation, feature, ...

I submit that none of these will quite satisfy all the OO community, but 
we should pick something and try to use it consistently.  I suspect it 
would be better to stick with property, since that is what we use.

Finally, and importantly, OO subclass is NOT subsumption, which was 
precisely my point.  It is almost subsumption, but there is this subtle 
difference. This is what the note needs to make clear.  There is no way, 
in first-order logic, OWL, or RDF to characterize the notion of "the class 
used when an object was created".  This is not closed vs. open world, nor 
monotonicity, it is unique to the OO paradigm and can't be represented or 
simulated using the semantics of FOL, OWL, or RDF, because that 
information (what class was used when an object was created) is not 
treated differently from any other class an object is an instance of.

-Chris

Dr. Christopher A. Welty, Knowledge Structures Group
IBM Watson Research Center, 19 Skyline Dr., Hawthorne, NY  10532     USA   
 
Voice: +1 914.784.7055,  IBM T/L: 863.7055, Fax: +1 914.784.7455
Email: welty@watson.ibm.com, Web: 
http://www.research.ibm.com/people/w/welty/



ewallace@cme.nist.gov 
10/22/2004 12:04 PM

To
rector@cs.man.ac.uk, Christopher Welty/Watson/IBM@IBMUS
cc
public-swbp-wg@w3.org
Subject
Re: Asymmetry of Domain and Range in OWL







Some comments on Chris Welty's recent characterization of OO vs OWL:

First: I have never heard an OO person talk about "slots."  That is 
a Frame language term that just didn't make it into recent OO languages
or tools.  I don't care about its use in our discussions, but we should
use terms like "attributes" in our notes that are aimed at an audience 
with an OO background.

Second: The quote below needs to be stated a bit more carefully.  What it
should say is that a *direct* instance of C1 cannot have a value for 
the attribute "name" (note - later in the email Chris does use careful 
language like this).  An instance of C2 is also an instance of C1 in any 
OO 
language that I have used.  I have seen KR people make false claims about
OO ideas like Abstract classes because they didn't understand that OO 
inheritance is subsumption.

> ...What this means in an OO language is that if I 
>create an instance of C1 (the superclass), it (the instance) CANNOT have 
a 
>value for the slot "name". 

I have been calling the characteristic of OO languages that Chris is 
highlighting here 'comprehensiveness.'  In summary, it means that all 
instances
can only have characteristics (type, attributes, relations, or methods) 
that 
have been defined (asserted) for them either by direct declaration or 
inheritance.  The monotonic open world of RDF and OWL license all kinds of 

inferences that are surprising to people who are used to working with
these comprehensive languages.  The situation is even worse for people who 
are 
only familiar with more restrictive OO languages such as JAVA (which 
forbids
multiple inheritance, amongst other things).

-Evan

Received on Friday, 22 October 2004 18:53:02 UTC