Re: General semantics

From: Nilone <>
Date: Sat, 22 May 2010 05:35:36 -0700 (PDT)
Message-ID: <>

On May 22, 12:44 pm, Clifford Heath <> wrote:
> I'd like to try.

Thanks, I enjoy debating.

> Codd's main insight in the RM is that anything of which
> we can speak must be distinct, that is, it must be identifiable from other
> things, especially other things of the same kind. If we can't distinguish
> a thing, then we can't safely indicate it (make reference to it), so we can
> never be clear of what we speak. Consequently we must require that the
> identity of a thing be intrinsic - it cannot be extrinsic.

I agree since I equate the thing with its identity.

> The fundamental error in OOP is the believe that an OID is a sufficient
> identifier for an object. If the OID is just a memory address, and there
> is no intrinsic identifier contained within the data stored at that location,
> then what happens when the object gets copied? It's a new object, and nothing
> intrinsic to the copy can firmly and forever associate it with the object
> from which it was copied. Consequently you are likely to be constantly falling
> into errors where you have the "wrong" object - meaning the wrong copy.

I don't follow. OO systems relate symbols to OIDs and OIDs to objects so that moving objects require a single update rather than a scan of the entire symbol table. They just don't apply outside the OO symbol table.

> Codd saw that a tuple must contain *within itself* a key. The keyspace
> defines a set, and then all the wonderful mathematics of sets comes into
> play, and that's the RM.
> This idea of intrinsic identity actually comes from formal logic, so is at
> least hundreds of years older than Codd's application of the idea. Yet I
> believe that it was this connection between data and intrinsic identity that
> forms the core of Codd's insight and the main value of the RM - not the
> relational arithmetic or algebra that follows from it.

He understood and distilled a huge volume of logic and mathematics and applied it to a field that lacked insight and rigour. Unfortunately, not much has improved since those days, despite his effort.

> Perhaps that goes some way to explaining why RM and OOP people are always
> going to be at odds? Sure, it's possible to model any OO system using
> relations, and likewise any RM system using objects, but that's not the
> point.

I believe it possible to express any model of OO directly in relational terms. However, I don't agree with the opposite. OO languages contain both a modeling aspect (the OO part) and a computational aspect (e.g. imperative). I see the OO aspect as a proper (and misapplied) subset of the RM, while an RM can be simulated in a Turing-machine equivalent computational system regardless of whether it supports OO or not.

> The point is that *only* when you adopt the policy of requiring intrinsic
> identification do you get formal semantics, which in turn gives you the
> ability to define, detect and avoid errors.
> That's why it's unfortunate that Object Role Modeling uses the term object.
> Since Halpin's formalisation (and not prior, in NIAM - and still not even
> now in Nijssen's CogNIAM!!!), Object Role Modelling has always required
> intrinsic identification. As such, it's firmly in Codd's camp, not OOP's.

Agreed, but OOP has no monopoly on the term. In fact, I appreciate the conflict - we need to override misunderstanding, and not allow it to control the symbols by which we refer to the world. Received on Sat May 22 2010 - 14:35:36 CEST

Original text of this message