Re: Demo: Modelling Cost of Travel Paths Between Towns

From: Neo <neo55592_at_hotmail.com>
Date: 30 Nov 2004 12:20:21 -0800
Message-ID: <4b45d3ad.0411301220.2c74aad_at_posting.google.com>


> > [Query "SELECT %.age & %.name=john;" works regardless of schema changes]
> > You are right, I don't see any advantages either.
>
> Then what is your point bringing up Xdb2 in this group?

To make sure that there is no advantage in representing things in a manner such that related code/query are resilient to unanticipated changes in schema.

> It really is about selling isn't it.

Yes, its really about selling, see www.xdb2.com/selling.asp for details.

> > ... What does "logically less complex" mean?
>
> Logically both queries perform the same operation.
> If you don't understand that comment, then there isn't much you are
> going to get out of this discussion.

You are correct, I didn't understand the comment. But now I understand what "logically less complex" means since "Logically both queries perform the same operation".  

> > Does your solution handle the following cases
> > without NULLs or redundancies:
> > 1. Things with no name and multiple names.
> > 2. Things with no age and multiple ages.
> > 3. Things with no name or age.
> > 4. Things with same name(s) and age(s).
> > 5. Things with variable number of classifications (ie martian and
> > plutonian).
 

> Why should I not use NULLs? No reason that I can see.

I can't see any reason either since you don't see one. I guess it is wrong to mix C.J. Date's theories with actual practice.

> Look, why don't you try this: Load Xdb2 with some real data (say a
> gigabyte or so would be a nice start), and build a real application on
> top for a real customer.

Sorry but XDb2 is only for non-real data. For proof, see thread titled "Database planning - Hierarchical problem" in comp.database.theory

> While there are changes in production systems, they do not go to the
> extend you seem to propose.

The extent to which changes go to in production systems can vary and tend to extend more in AI-type apps. For example, your system designer (nature/god) didn't know in advance your current language or profession.

> IOW, what kind of application systems is Xdb2 supposed to solve.

Possibly very small and insignificant AI-type apps. Possibly none.

> [XDb2] doesn't seem to be data management.

You are correct XDb2 doesn't manage data. It only creates, selects, updates and deletes things currently. (www.xdb2.com/nli/default.asp)

> And if as you said above, there isn't any advantage
> of Xdb2, why should I even consider using it over an RDBMS.

You shouldn't. You should use RDBMS. Please use it in thread titled "Database planning - Hierarchical problem" in comp.database.theory

> Let's see in summary: Xdb2 has NO basis in theory

You are correct. None what so ever.

> Xdb2 has a new unproven syntax,

Your are correct, it has a new unproven syntax (www.xdb2.com/NLI/default.com).

> Xdb2 has minor possible advantage in space saving.

I haven't specifically asserted this.

> I still think RDBMS is the better choice.

I think you are right. In the mean time, below shows how XDb2 handles some of the above cases without requiring changes to original query.

// Martian with no name or age

CREATE *martian.cls = thing; // Create a martian class
CREATE *;                    // Create a thing
CREATE it.cls = martian;     // Classify it as a martian

// Martian with multiple names
CREATE *;                    // Create a thing
CREATE it.cls = martian;     // Classify it as a martian
CREATE it.name = +john;
CREATE it.name = +luke;

// Thing with multiple classes and multiple ages CREATE *plutonian.cls = thing;
CREATE *;

CREATE it.cls = martian;
CREATE it.cls = plutonian;
CREATE it.name = +john;
CREATE it.age = +10;
CREATE it.age = +"-3.14";

// Two Venutians with same name and age
CREATE *venutian.cls = thing;

CREATE *;

CREATE it.cls = venutian;
CREATE it.name = +john;
CREATE it.age = +very old;

CREATE *;

CREATE it.cls = venutian;
CREATE it.name = +john;
CREATE it.age = +very old;

// Execute original query
// (still works regardless of things represented) SELECT %.age & %.name=john; Received on Tue Nov 30 2004 - 21:20:21 CET

Original text of this message