W3C home > Mailing lists > Public > www-ws-arch@w3.org > May 2003

Re: isa and hasa in UML

From: Francis McCabe <fgm@fla.fujitsu.com>
Date: Fri, 30 May 2003 11:54:18 -0700
Cc: <www-ws-arch@w3.org>
To: "Martin Chapman" <martin.chapman@oracle.com>
Message-Id: <1E4C6414-92D0-11D7-BA7E-000393A3327C@fla.fujitsu.com>

Well, I left out a few details. But if you really want to know...

There are (ASIK) at least 3 ways of defining is-a:

1. Sets (traditional set theory)
2. Mereology (non-traditional set theory: only has sub-sets, does not 
have elements)
3. Implication. (i.e., logical models)

In the case 1 (and in case 2) is-a is defined in terms of subsets. The 
case of the unicorn may seem outlandish but actually represents a real 
problem: the non-flying bird is VERY hard to do this way. The counts-as 
is also v. hard to do.

Case 2 is interesting from an ontology POV as it allows us to model 
water (it seems unreasonable to talk of water having elements but 
subsets of water is very reasonable)

Case 3 is different because it focuses on `what we know' about a topic 
rather than putative representatives of the topic. We construct a set 
of facts that describes what we know; and it becomes a separate matter 
as to whether there are actually any representatives.

We can define is-a logically by declaring that `everything that is true 
of A is also true of B'. The penguin case is a variant: `everything 
that is true of A except anything about flying is also true of B'

The really important relationship (IMO) is the counts-as relationship. 
That is because that is at the heart of both the conformance question 
and the relationship between agents, services, deployed elements etc.

Perhaps the above is more logic than most people want to know about. 
But, we are in the business of defining normative definitions. And, I 
believe, 90% of the confusion about REST (for example) stems from a 
confusion that is really a logic confusion.


On Friday, May 30, 2003, at 11:33  AM, Martin Chapman wrote:

> and how is is-a and has-a as defined in our doc any less or more 
> powerful
> than uml.
> its all about set theory and if you choose to model bad sets thats up 
> to
> you.
> Martin.
>> -----Original Message-----
>> From: www-ws-arch-request@w3.org [mailto:www-ws-arch-request@w3.org]On
>> Behalf Of Cutler, Roger (RogerCutler)
>> Sent: Friday, May 30, 2003 10:43 AM
>> To: Francis McCabe; www-ws-arch@w3.org
>> Subject: RE: isa and hasa in UML
>> This is REALLY discouraging.  I thought that the UML experts in the 
>> room
>> at Rennes were saying that "everybody knows" what has-a means in UML,
>> and all you have to do is strip it out of your favorite undergraduate
>> textbook.
>> I have a strong feeling of distaste for ditching the definition of
>> "has-a" currently in the document, which at least has the virtue that 
>> I
>> can understand and apply it, in favor of a definition that appears to 
>> be
>> like the Indian rope trick -- something that everybody knows exists
>> because somebody else has seen it.
>> -----Original Message-----
>> From: Francis McCabe [mailto:fgm@fla.fujitsu.com]
>> Sent: Friday, May 30, 2003 12:01 PM
>> To: www-ws-arch@w3.org
>> Subject: isa and hasa in UML
>> This is in partial fulfillment of my action item re is-a and has-a
>> w.r.t. UML
>> 0. There is a rather (unintentionally) funny comment in the UML 2.0
>> spec:
>> Semantics
>>    The meanings of the constructs are defined using natural language.
>> ...
>> (This is after a lot of promises of being formal.)
>>    However, UML uses OCL for those cases where natural language is not
>> enough. OCL is similar to a first order predicate calculus. Having 
>> said
>> that, the spec does not use OCL very often; including for the
>> definition of relationships such as generalization (is-a) and
>> association (has-a kind of)
>> 1. As I have indicated earlier, UML does not have a precise notion of
>> is-a. The closest is the generalization relationship. This is defined
>> in 3.50:
>> Generalization is the taxonomic relationship between a more general
>> element and a more specific element that is fully consistent and that
>> adds additional information.
>> A couple of comments:
>> 1. Basing is-a on taxonomics raises some serious logical issues. This
>> is analogous to basing everything on sets: every member of the penguin
>> set is also a member of the bird set.
>> The problem is that it becomes really difficult to talk about weird or
>> abstract sets. Basing is-a on this would lead to the following
>> counter-intuitive result: every unicorn is a yeti. (There are no
>> documented instances of either, so the set of unicorns and yetis is
>> indistinguishable.)
>> A more serious issue, sticking with birds for the moment, is that it 
>> is
>> similarly hard to talk about properties of birds such as flying: we
>> could not express the fact that all birds except penguins fly.
>> An even more serious issue is that we need to capture the following
>> situation:
>> A service has an identifier
>> A Web service is a service
>> A Web service has a URI
>> The Web service's URI counts_as the service identifier
>> It is that counts_as that is beyond the capabilities of UML's
>> generalization. We *could* extend UML's generalization, and that may 
>> be
>> the best overall approach. In fact, we would really need to do that 
>> for
>> all our relationships, use <is-a> and <has-a> and *never* rely on 
>> UML's
>> built-in relationships. <is-a> and <has-a> could probably be defined 
>> in
>> OCL.
>> More to follow....
>> Frank
Received on Friday, 30 May 2003 14:54:58 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 23:05:52 UTC