Re: Multiple-Attribute Keys and 1NF

From: David Cressey <>
Date: Thu, 30 Aug 2007 14:26:52 GMT
Message-ID: <MsABi.8798$CO5.4920_at_trndny01>

"JOG" <> wrote in message

> Well consider it this way. If I have the propositions:
> The person named Jim speaks the language English
> The person named Jim speaks the language German
> The person named Brian speaks the language English
> I have three propositions, and hopefully we'd agree there are two
> roles in these propositions: name and speaks_language. So in FOL I
> could write these propositions as:
> [P1] Name(x, Jim) -> speaks_language(x, English)
> [P2] Name(x, Jim) -> speaks_language(x, English)
> [P3] Name(x, Brian) -> speaks_language(x, English)
> Are we agreed up to there? If so then [P1] ^ [P2] gives us (via
> composition):
> Name(x, Jim) -> speaks_language(x, English) ^ speaks_language(x,
> English)
> and we are left with a sentence that has two distinct roles, one of
> which appears twice. All of this sort of thinking has been driven by a
> distaste us having to add a magic 'header' component to a relation
> (probably as a consequence of reading pascal's work), and the desire
> to bring roles back into the equation.

Is the subject of speakers and languages contrived? (I'm at risk of becoming obsessive on the subject of "contrived"). If it is, I'd like to suggest that we return to a classic contrived example for this newsgroup: the subject of pizzas and toppings.

You can, if you like extend the topic to pizzas toppings and cheeses. You can then go to google groups and look up the history of the discussion of the subject of pizzas, toppings, and cheeses in this newsgroup (c.d.t.).

You will find an extensive discussion of the questions that arise when an attribute value can be a set, rather than just a single value. Some of that discussion makes sense to me. Some of it is just pure blather. There are plenty of inputs from the MV sect of the NFNF religion.

My apologies, JOG, if you were a participant in those discussions. My memory fails me. If not, the principal value of recapitulating that example, rather than covering speakers and languages, or cows and colors, or wires and color codes, is that a lot of the responses are already neatly collected in google groups. Those who do not learn from on line discussions are condemned to repeat them. (Apologies to Santayana enthusiasts).

> > But you can
> > certainly assign a set of values to a variable that expects a set of
> > since a set is a value! And you can certainly have a predicate with
> > variables that range over relations and free variables that range over
> > individuals--it's just that the predicate is no longer first order.

See above.

Received on Thu Aug 30 2007 - 16:26:52 CEST

Original text of this message