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

From: Neo <neo55592_at_hotmail.com>
Date: 4 Jun 2004 10:57:52 -0700
Message-ID: <4b45d3ad.0406040957.25e2e2d_at_posting.google.com>


> we were discussing my entry to the $1000 challenge you set for
> a nearest common ancestor report using the relational model.
> Would this be a good time to repeat my bank account number?

Because RM solutions (1 and 2) thus far aren't nearly as normalized or generic as XDb1's, they fail under a broader scope of data. Below is such data:

Enter a small hierarchy of 3 things, where god is the parent of an unnamed person, and god is also the parent of a person with three names (string 'john', integer 100, decimal 3.14). In a broader scope, the data represents a thing that doesn't have an attribute and a thing that has an attribute with three values, each of different type.

Below is XDb1's script to model the above hierarchy (in older versions, the equivalent can be entered via the GUI or API):

string isa thing.
integer isa thing.
decimal isa thing.

john isa name.
john isa string.

100 isa name.
100 isa integer.

3.14 isa name.
3.14 isa decimal.

god isa thing.

person isa thing.

* isa person.        (an unnamed person)
* parent god.        (equal to '* isChildOf god.')

* isa person.        (another unnamed person)
*'s name is john.

*'s name is 100.
*'s name is 3.14.

*'s parent god.

Right-clicking on god and selecting 'Anc Report' generates the following where the unnamed thing's classes (and attributes, if any) are printed, and all values for name of the second person are printed.

Common 'parent' Report for 'god'

ThingX   ThingY          CmnAnc  Dist
person   john 100 3.14   god        2

Time Elapsed: 0.906550 msec

RM solutions thus far, lack the normalization and genericness to represent the above data. If RM's solution could be updated to accommodate the above, we will be one step closer to making a fairer comparison. Received on Fri Jun 04 2004 - 19:57:52 CEST

Original text of this message