Re: Nearest Common Ancestor Report (XDb1's $1000 Challenge)

From: Neo <neo55592_at_hotmail.com>
Date: 17 May 2004 21:01:58 -0700
Message-ID: <4b45d3ad.0405172001.22a9f33f_at_posting.google.com>


> If ....
> age isa thing.
> 80 isa age.
> john is 80.
>
> weight isa thing.
> 80 isa weight.
> mary is 80.
>
> Since 80 is both an age and a weight, how can XDb1 make sense of this?

In the cases where a name uniquely identifies a thing (ie "35 isa age" and "130 isa weight"), the following simple format can be used:  john is 35.
 mary is 130.

When a name identifies more than one thing (ie "80 isa age" and "80 isa weight") the above statements will cause XDb1 to prompt user with "80 is ambiguous". User than has two option: a) use the GUI to point and click the correct 80, b) use the following unambigious format:  john's age is 80.
 mary's weight is 80.

Note that 80 is not both age and weight. 80 is the name of A weight
80 is also the name of A age.
The name of a thing and the thing the name identifies are two different things.

The above statements create the RM equivalent of the following: (Note: ->XYZ represents appropriate ID)

T_Person
ID Name Age Weight

-- -----  --------   -------------
.  ->John ->Age/80
.  ->Mary            ->Weight/80

T_Age
ID Name
. ->80

T_Weight
ID Name
. ->80

T_Name (This "table" pre exists in XDb1, but is not pre-populated) ID Symbo1 Sym2 Sym3 Sym4 .........

-- ------ ---- ---- ----
.  ->J    ->o  ->h  ->n
.  ->M    ->a  ->r  ->y
.  ->8    ->0

T_Symbol (This "table" pre-exists in XDb1 and is populated) ID Sym
-- ---

.  0
.  ...
.  9
.  a
.  ...
.  z
.  A
.  ...
.  Z

Data in XDb1 is normalized down to atomic symbols.

> I'm not sure if I understand all requirements. You demand you have to
> start from normalized data, but you fail to specify what normal form you
> want: 1NF, 2NF, 3NF, etc.

Replace duplicate things with reference to the orginal using whatever mechanism your environment provides (keys). Received on Tue May 18 2004 - 06:01:58 CEST

Original text of this message