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

From: Neo <neo55592_at_hotmail.com>
Date: 4 Jun 2004 11:38:21 -0700
Message-ID: <4b45d3ad.0406041038.2e601d07_at_posting.google.com>


> Of course, I do still expect the $1000 you owe me for fulfilling all
> requirements set forth in your original challenge message. I assume that
> you've already paid and that delays caused by international banking issues
> are the reason that I didn't receive anything yet?

Because RM solutions (1 and 2) thus far aren't 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). 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.

In all the measurements shown below, none of RM's solutions are normalized down to atomic symbols, where as XDb1's are.

Small Report Generation Summary (provided by Hugo)


Solution   Time(ms)  Platform            Notes
---------- --------  ----------          ----------------------------
RM's #1       14.3   1.3 Ghz PC          
RM's #2       11.0   1.3 Ghz PC          
XDb1 4.4.7    16     1.3 Ghz PC          Unoptimized, debug version


Small Report Generation Summary (provided by Neo)



Solution Time(ms) Platform Notes
---------- --------  -----------------  -----------------------------
RM's #1      65.0    500 Mhz Server     
RM's #2      68.9    500 Mhz Server     
RM's #4     152.13   500 Mhz Server     
XDb1 4.4.7   16      500 Mhz Server     Unoptimized, debug version
XDb1 4.5.7    1.632  500 Mhz Server     
XDb1 4.5.9 6.561 233 MHz Pocket PC 32 MB

Large Report (28,940 rows) Generation Summary (provided by Neo)



Solution Time(sec) Platform Notes
---------- --------  -----------------  ----------------------------
RM's #1      15.2    500 Mhz Server     
XDb1 4.5.7    2.9    500 Mhz Server     
XDb1 4.5.9 16.971 233 Mhz PocketPC Received on Fri Jun 04 2004 - 20:38:21 CEST

Original text of this message