Re: Resiliency To New Data Requirements

From: Jay Dee <ais01479_at_aeneas.net>
Date: Sat, 05 Aug 2006 01:34:52 GMT
Message-ID: <0BSAg.51201$u11.46250_at_tornado.ohiordc.rr.com>


Neo wrote:
>>... illustrate what all the chicken scratching and ju-ju are doing...

I read the previous post...

>
> Ok, we can do this by extending a prior example posted by you in "Poll:
> Expert user vs. Internals Expert". Below you used Tutorial D(?) to
> model that Bob and JayDee are sages, and Neo is a jerk, and that Bob's
> state is on, and Neo's state is off.
>
> var sage real relation { name char } key { name } ;
> sage += relation {tuple { name 'Bob' }, tuple { name 'JayDee' } };
>
> var jerk real relation { name char } key { name } ;
> jerk += relation {tuple { name 'Neo' } } ;
>
> var state real relation { name char, state char } key { name } ;
> state += relation {tuple { name 'Bob', state 'on' }, tuple { name
> 'Neo', state 'off' } } ;
>
>
> Below is dbd's roughly equivalent script:
> (new 'bob 'sage)
> (new 'jayDee 'sage)
> (new 'neo 'jerk)
>
> (new 'on 'state)
> (new 'off 'state)
>
> (create bob state on)
> (create neo state off)

...and recognize that that these are expressions comprised elements; new and create are functions and everything else is an input. But I really don't know what the results of those functions are. Are the, perhaps, operations that have no results? I don't know. (I might have convinced myself that I knew enough about what create and new did in order to follow along, but when they're both necessary: I'm confused.)

> Now JayDee, could you to extend your initial example to match dbd's
> extension below:
>
> (; Find bob's relationship to sage)
> (; Finds class)
> (select bob * sage)
>
> (; Find sage's relationship to bob)
> (; Finds instance)
> (select sage * bob)

See, the train really leaves the tracks here: what are those stars? (let along, what is that function?)

> (; Represent that classifications sages and jerks are opposites)
> (new 'opposite 'verb)
> (create sage opposite jerk)
> (create jerk opposite sage)

Say, what? Again with the new and create. And, from previous posts, I remember that verbs are relators; is verb a magic word? Why were there no (new 'sage 'adj) and (new 'jerk 'adj) and (new 'state 'noun) above?

Do expect me to code

var opposite real relation {this char, that char} key {this, that} ; opposite += relation {

	tuple {this 'sage', that 'jerk},
	tuple {this 'jerk', that 'sage'} } ;

Well, I won't. The values in such a relation correspond to the names of relation variables. [When does a design become self-aware? What critical threshold must be surpassed? Yes, you in the back; Seamode, is it?]

And I don't expect the database to know that something is "opposite" of something. Tuples represent things that are different simply because they're different and relations represent sets of things that are different simply because they're different. The database can keep up with that and can find various values that are the same or different. But whether they're antonyms, homonyms, synonyms, or Christmas hymns doesn't have anything to do with what the database can deduce.

> (; Find things whose classification is opposite of neo's)
> (; Finds bob and jayDee)
> (select (select (select neo class *) opposite *) instance *)

Class? Instance?
>
> (; Represent that states on and off are opposites)
> (; Note: the verb/relator opposite already exists in db)

[See, I got that part right!]

> (create on opposite off)
> (create off opposite on)
>
> (; Find things whose state is opposite of neo's)
> (; Finds bob)
> (select * state (select (select neo state *) opposite *))

And here the train plunges into the abyss. I parse this as an expression comprised of the elements:

    ^ the function select and three inputs

            ^ a magic star
              ^ a noun
                    ^ an expression comprised of
                     ^ the function select and three inputs
                            ^ an expression...
                                                 ^ a verb
                                                          ^

but I have no way to interpret this.

Lets back up:

nouns are _____.
verbs are _____.
adjectives are _____.
function new takes two inputs and does _____. function create takes three inputs and does _____ yielding _____. function select takes three inputs and does _____ yielding _____. stars mean _____.

> Note: currently, dbd doesn't implement functions such as NOT, min, max,
> avg, sum, total, etc in it's select statements thus examples are
> limited to queries without them.
>
Received on Sat Aug 05 2006 - 03:34:52 CEST

Original text of this message