Re: Issues with the logical consistency of The Third Manifesto

From: Jonathan Leffler <jleffler_at_earthlink.net>
Date: Sun, 14 Nov 2004 06:29:25 GMT
Message-ID: <4196FB0A.4030902_at_earthlink.net>


Marshall Spight wrote:
> "Ja Lar" <ingen_at_mail.her> wrote :

>>I would like to hear opinions about Maurice Gittens paper 'A critical
>>reading of the Third Manifesto'  (available at http://www.gits.nl/).

>
>
> I thought it wasn't very well written; I didn't like the way he
> breaks up the article, so that a lot of paragraphs are on a
> page by themselves; he uses too many commas.

I didn't see the paragraphs on their own page. The way Gittens uses commas is not idiomatic in English, but English is (almost certainly) not his native tongue. Cut him a little slack.

> Oh, you wanted an opinion on the *substance* of the article?
>
> Well, I skimmed it; it was very wordy. Any critique of D&D's
> "First Great Bluder" is okay in my book; their whole idea
> is weak. It's pretty funny to hear them complain about how there
> is no single definition of what an object is, and then conclude
> that objects aren't tuple. How did they conclude that without
> a definition of what an object is? In any event, it's pretty
> clear that D&D don't really understand OOP; look at this
> week's dbdebunk, in which a very interesting letter is posted
> about some aspects of language design involving objects and
> relations, and Date says he pretty much doesn't understand
> the interesting parts.
>
> OTOH I think the author really misses the point on his
> critique of the Second Great Blunder. (Shall we just
> call them 1GB and 2GB?) Pointerless programming is
> a big win.

To quote from the Gittens document - discussing 1GB:

<quote section="2.1" footnotes="omitted"> The reason given [in TTM] to substantiate the claim that object classes and domains are determined to be the same thing is presented as the fact that for both, domains and object classes, it holds that their values are manipulated by operators defined for the type in question. However, the same argument can be made for relations. Is it not the case that relations values are manipulated by a set of operators defined specifically for their types. Yes, relation types have a set of pre-defined operators, does this make them logically different from a specific class of domains which have a pre-designated set of operators? No, it does not! OK, since this argumentation is said to be informal, the author proceeded to seek out, the formal arguments presented, for labeling the first great blunder as such. Apart from reiterations of the alleged rst great blunder, no such argument has currently been found by the author. Additionally, Date and Darwen, seem to assume that there is one so-called right way, in which objects and relations should be integrated. Does not the discipline of logic dictate that one must prove, that there exists only one right way, before one could even claim to provide the one right way? Is it not possible that there are different ways, each with its own merit, to achieve the integration between objects and relations? </quote>

That gives a flavour of the text and its verbosity. I've not read the whole document, but this seems to be the meat of the debunking of the 1GB, and it is not very compelling to me.

Q1: "relation values are manipulated by [...] operators defined specifically for their types"?

A1: No, relations are manipulated by generic operators, not by operators defined for a specific relation. That is, the JOIN operator is not tied to a single pair of relations. The JOIN operator in TTM works on any pair of relations (subject only fixing up name/type clashes in the attributes via the RENAME operator). That is *not* an operation defined specifically for any particular pair of relations.

Q2: "does this make them logically different from a specific class of domains which have a pre-designated set of operators"?

A2: Assuming that "class of domains" is merely a verbose way of saying "domains", then I think the answer is: Yes, the relational operators are quite different from the operators associated with a TTM type. The generic nature of the JOIN operator is very different from the type-specific operations associated with a type (such as the 'plus' operator associated with a numeric type).

A2-b: If the "class of domains" really does mean a grouping of different domains, then there is no definition of what this means, nor any explanation of how the domains are similar.

Q3: "Is it not possible that there are different ways [...] to achieve the integration between objects and relations"?"

A3: Possibly, but you (Gittens) would need to demonstrate what these alternatives are, and why the alternatives have merits. And that, I think, Gittens signally fails to do - certainly in the opening four pages of the thirteen-page document.

So, I disagree with Gittens' claimed demolition of 1GB - I do not consider that he has proved his point at all.

[Personally, I consider the issue of (paraphrased) "if a relation type is a domain, then which operators apply to a projection of the relation" to be very strong support for D&D's claim that the 1GB is indeed a great blunder. If someone would explain how this question is resolved, I would reconsider, but in the absence of such an explanation, I regard that as sufficient to demolish the 'domain = relvar' equation which is the heart of 1GB. I consider that there are other strong arguments too (for instance: domains are invariant but relation variables are not), but we can discuss those after you've dealt with this one.]

-- 
Jonathan Leffler                   #include <disclaimer.h>
Email: jleffler_at_earthlink.net, jleffler_at_us.ibm.com
Guardian of DBD::Informix v2003.04 -- http://dbi.perl.org/
Received on Sun Nov 14 2004 - 07:29:25 CET

Original text of this message