Re: A Normalization Question

From: Ralph Becket <rafe_at_cs.mu.oz.au>
Date: 22 Jul 2004 18:16:47 -0700
Message-ID: <3638acfd.0407221716.387e1eb_at_posting.google.com>


neo55592_at_hotmail.com (Neo) wrote in message news:<4b45d3ad.0407211939.47e9bebd_at_posting.google.com>...
> In the above (doctored), the schema (which is also data) has a
> redunancy. Both tables are representing Subject/Verb/Object
> relationships. They should be in one table.

You're right:

event name subject verb object


thingA        john       takes      final
thingB        john       receives   95
thingC        thingA     causes     thingB

> In the above (doctored), the schema (which is also data) has a
> redunancy.

Are you aware of the term "referential transparency"? Do you really believe that

    2 + 2

and

    let x = 2 in x + x

*denote* different things? (Note, I am *not* asking about syntactic structure.)

> Where/how would one store the following:
> ((john take final) cause (john receive 95)) VerbX ObjectY.

(I have no idea what VerbX and ObjectY mean here.)

If you're asking about how we describe relationships with more than two arguments, all we have to do is have one table with n + 1 columns for each relationship of arity n, then for each relationship instance put the relationship name in the first column and its corresponding arguments in the subsequent columns. Then we need to agree on the meanings of names. As a consequence we need a means of disambiguating semantically different things that coincidentally happen to have the same name in English, such as the name "Brown" and the colour "Brown". Two ways of doing this are (1) context: we know from the type of a given argument position of a given relation whether "Brown" must denote a name or a colour or a particular spelling and (2) by simply giving them different symbolic names that just happen to elsewhere be realated to the same spelling.

  • Ralph
Received on Fri Jul 23 2004 - 03:16:47 CEST

Original text of this message