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

From: Hugo Kornelis <hugo_at_pe_NO_rFact.in_SPAM_fo>
Date: Sun, 06 Jun 2004 00:51:37 +0200
Message-ID: <3ch4c09rruruid83ruhek8oaj6bb5enp28_at_4ax.com>


On 5 Jun 2004 12:18:43 -0700, Neo wrote:

>> Would either or both of you consider an arbitrator? ::grin::
>
>I could, if ...
>
>1. "Any hierarchy" means if XDb1 can generate a report for it, then
>RM's should also. "Any hierarchy" includes the class/type hierarchy.

You implemented the ability to generate a report for the class/type hierarchy in a later version, after posting the challenge and after I posted my entry to your challenge. I downloaded "XDb1 beta v4.4.7" from your website on May 20, 6 days after you posted your challenge. That version is unable to generate the ANC report for the class/type hierarchy:

==> (start of copied output)
Common Ancestor Report for 'thing'
ThingX ThingY CmnAnc Dist
Time elapsed: 0 msec
==> (end of copied output)

>2. "Normalized" means either eliminating or replacing redundant things
>(data/schema) within the db with an appropriate non-data dependent
>reference/link (IDs in RM) to the one and only original. And yes I
>consider db schema to be data. And yes I consider symbols to be data.

The challenge was for "using the relational model (...) from normalized (...) data". Many people of great fame have published about normalization in the context of the relational model. Of course, you are entitled to disagree with each and everyone of them. But the fact that your opinion about normalization differs from Codd's doesn't make your definition of normalized data part of the relational model.

If you had explained that your interpretation of "normalization" differs from the interpretations of almost everybody else and if you had provided a clear definition of your definition of normalized in the first message in this thread, then you'd have a point.

>3. "Report from normalized ... data" means the report is not to be
>generated from intermediate results or statistics based on prior runs.

So? Come on, Neo - go on and READ my code!! It's not that hard...

>4. "Solution must be as generic" means among other things that if XDb1
>can handle a particular hierarchy or print a thing's classes and
>attributes on the report, so should the comparable solution.

Since the source code of XDb1 is not public, there's no way that I (or any other person who'd like to take on your challenge) could know what XDb1 can or can't do.

The requirement "the solution must be as generic" in itself is very ambiguous. But in the full context, one can only interpret the words that follow this quite as an explanation of what "as generic" means: "meaning allow the user to create any hierarchy, consisting of different types of things (each type to allow different attributes) and each thing in the hierarchy to have any number of parents."

Both RM#1 and RM#2 allow the user to create any hierarchy (as opposed to XDb1, that allows the user only to choose from a set of predefined hierarchies). Both RM#1 and RM#2 allow these hierarchies to consist of different types of things. And both RM#1 and RM#2 have no limit on the number of parents of any thing in any hierarchy.

>5. An iterative process to reach a fair comparison.

The challenge was not about a comparison.

>Other suggestions:
>6. The "2X slower" was a conservative figure to account for extra
>processing time for multi-user, security, and recovery overhead of dbs
>such as SQL Server; on the other hand XDb1 has the overhead of
>variable data structures. The "2X" should be adjusted appropriately
>for the situation of generating a report from normalized data.

The "2X" should be adjusted ??????????

(Roaring with laughter)

>7. Remove the variability of disk I/O by making measurements for
>activity in RAM only.

Oh yes! Please, do talk with the MS development team. Urge them into adding this option into SQL Server. It will allow me (and others) to speed up many applications I (and others) develop for our customers. (You must have heard of them - they are the folk that DO actually pay!)

>8. Last place pays winner :)

No, it was you who offered to pay "$1000 to the first person who replicates (... etc)"

>Would anybody from Oracle, IBM or FirstSQL like to join?

Why not invite the MS folk as well?

Or could it be (Gasp - NO!) do you really think I'm from MS???

(Roaring with laughter - again)

>From the original post:
>"$1000 to the first person who replicates the equivalent of
>www.xdb1.com/Example/Ex076.asp using the relational model. To claim
>the prize, one needs to produce the equivalent Nearest Common Ancestor
>Report from normalized and NULL-less data and the solution must be as
>generic, meaning allow the user to create any hierarchy, consisting of
>different types of things (each type to allow different attributes)
>and each thing in the hierarchy to have any number of parents. Report
>generation must not be more than 2X slower than XDb1 on equivalent
>hardware."

Well, I'm glad you have kept that message as well.

Do you also have a copy of the original contents of the web site mentioned above? I've seen that you've changed it to reflect the bugs I reported and the changes you made to XDb1 after posting the above message.

To get back to the beginning of the message:

>> Would either or both of you consider an arbitrator? ::grin::
>
>I could, if ...

Apparently, Neo will gladly consider an arbitrator if that arbitrator agrees beforehand to all additional requirements Neo has come up with after posting the challenge.

Tsk tsk tsk tsk.

Let me repeat my previous post:

>Would either or both of you consider an
>arbitrator? ::grin::

Sure. Why not?

Best, Hugo

-- 

(Remove _NO_ and _SPAM_ to get my e-mail address)
Received on Sun Jun 06 2004 - 00:51:37 CEST

Original text of this message