- From: Christopher Welty <welty@us.ibm.com>
- Date: Fri, 22 Oct 2004 14:42:24 -0400
- To: ewallace@cme.nist.gov
- Cc: public-swbp-wg@w3.org, rector@cs.man.ac.uk
- Message-ID: <OF52482E1C.5B45997B-ON85256F35.0061FDD9-85256F35.0066C241@us.ibm.com>
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