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

From: Neo <neo55592_at_hotmail.com>
Date: 22 May 2004 13:50:44 -0700
Message-ID: <4b45d3ad.0405221250.7da4f093_at_posting.google.com>


> > Among other things, the difference in normalization between the
> > implementations is quite different.
>
> It should not matter HOW my implementation generates the report.

It matters because a non-generic/unnormalized implementation is more likely to experience problems over a broader scope. Here is another example, consider what happens when a thing has no name. Since the provided solution specifically uses a thing's name to represent it and link between tables, the provided solution will fail to represent a non-named thing (ie a person whose name is unknown or doesn't have one).

On the other hand, the XDb1 db's schema (created by the simple english-like script) allows a thing to have 0 to many names. In XDb1's db, the name is an attribute of a thing, the name isn't the thing itself. The easiest way to check this functionality is to unname john in a completed db. To unname john, click thing/person/john twice with a small delay to enable edit mode. Clear out 'john' and press enter. Note, when a thing has no name, XDb1 displays it's secondary classes, if any and its properties, if any, thus after unnaming john, one will see 35, his age. In addition, the report will run as before, except 'john' will be replaced with 'person 35', the unnamed things classes and properties.

If you insist that unnaming a thing is not the same as creating an unnamed thing in the first place, you can create the db with the original script, except replace all instances of the word 'john' with '*'. XDb1's NLI takes '* isa person' to mean, create an unnamed instance of person class. In succeeding statements, '*' continues to refer to the last unnamed thing created (XDb1's NLI is currently far from complete and its GUI or API is required for many operations).

The main point I wanted to emphasize is not what the GUI has or hasn't implemented, but the broader scope afforded by representing data with high degree of flexibility and normalization (replacing redundant things with a suitable ref to the original; things' names are not suitable refs). Received on Sat May 22 2004 - 22:50:44 CEST

Original text of this message