Re: On Formal IS-A definition

From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Mon, 03 May 2010 19:42:54 -0300
Message-ID: <4bdf5177$0$12440$9a566e8b_at_news.aliant.net>


Reinier Post wrote:

> Tegiri Nenashi wrote:
>

>>On Apr 29, 2:31 pm, r..._at_raampje.lan (Reinier Post) wrote:
>>
>>>Tegiri Nenashi wrote:
>>>
>>>[...]
>>>
>>>
>>>>Animals = [Name]
>>>>          bear
>>>>          sheep
>>>>          wolf
>>>>;
>>>
>>>>Carnivores2 = [Name Prey]
>>>>             bear deer
>>>>             wolf sheep
>>>>             wolf deer
>>>>;
>>>
>>>>I suggest that we still have "Carnivores2" IS-A "Animals". Do you
>>>>agree?
>>>
>>>No.  I've never seen this.  The naming of Carnivores2
>>>is strange: it should name what each tuple stands for,
>>>but a carnivore isn't always represented by a single tuple.
>>
>>Just to remove any confusion about Carnivores2 name origin:
>>1. It is plural because of convention to name relations as sets of
>>things
>>2. The number two is version number designed to distinguish this
>>relation from Carnivores1

>
> I didn't comment on those points.
>
>
>>Perhaps you are not comfortable with the idea than more than one tuple
>>of Carnivores2 might represent each "entity"?

>
> That's what I wrote, didn't I? It's strange. It's very unusual.
> It doesn't fit in with ER modelling, for instance.
>
>
>>At this moment I can't
>>suggest a convincing argument other than vague intuition that database
>>theory should deviate from explicit mentioning tuples (and attributes,
>>for that matter, either). All information should be presented in terms
>>of constraints, expressed in relational algebra terms.

>
> Thus far I can agree with you: naming isn't really part of
> the modelling mathematically, and using strange names doesn't
> make a model any more correct or incorrect in mathematical terms.
>
> But this isn't my main argument against your interpretation
> of IS-A. THe main argument is the following.
>
>
>>>Suppose we have
>>>
>>> Herbivores = [Name Foodtype]
>>>              deer  grass
>>>              rabbit grass
>>>              rabbit carrots
>>>
>>>and
>>>
>>> Vegetables = [Foodtype]
>>>              grass
>>>              carrots
>>>
>>>Would you say that Herbivores IS-A Animals?
>>>What about Herbivores IS-A Foodtype?  If not, why not?
>>
>>Wouldn't
>>
>>Vegetables = [Name]
>>              grass
>>             carrots
>>
>>be a more appropriate choice? Then, we can combine Animals and
>>Vegetables into LivingThings. Attribute naming seems to be a tricky
>>subject in Relational Model...

>
> I was trying to sidestep the issue of attribute (re)naming here,
> because it is beside the main point of the example, which is that
> according to your definition, the same relation (Herbivores)
> has two different IS-A relations, one with Animals and
> one with Vegetables. I know multiple inheritance in
> programming languages tends to be used in just this kind
> of way (with "mixin classes" for instance) but I think with
> such a notion the name "IS-A" is just wrong. It's fine to have
> your proposed notion but give it a different name: call it a role
> or something. A Herbivore just isn't a Vegetable.
>
> I know this is again an argument about naming, but this time
> it's about the name "is a" itself.

I thought Clinton settled this whole issue already. Cigar anyone? Received on Tue May 04 2010 - 00:42:54 CEST

Original text of this message