Re: Resiliency To New Data Requirements

From: Neo <neo55592_at_hotmail.com>
Date: 4 Aug 2006 09:02:24 -0700
Message-ID: <1154707344.629662.278230_at_h48g2000cwc.googlegroups.com>


> So, which parts of all these are the lambda analogs?

The fundamental part that is an analog of lambda calculus is that dbd's expressions consist of a function and a input which are themselves expressions. Because adhering to this at the user level would make useful expressions extremely long, dbd's NLI (natural language interface) provides various shortcuts.

In dbd, users manage data via expressions. Below are some typical expressions:

(create john like mary)
(select john like *)
(update (select john like mary) to sue)
(delete mary)

In dbd, an expression starts with a "(" and ends with a corresponding ")". Within the parentheses there can be 0 to many elements. Elements are separated by at least one white space. A white space is a space, tab, carriage return or line feed. The first and last elements can be adjacent to the parentheses. Elements are themselves expressions. An expression's first element is a function. The remaining elements are function inputs. An input is optional, if documentation shows it surrounded by square brackets. Once an optional input is omitted, remaining inputs cannot be specified. Functions that accept a variable number of inputs are indicated via three dots. The general format of an expression is:

(function input1 input2 input3 ...)

Expression Shorthands:
Expressions are frequently specified by their shorthand. Shorthands for a string, a word and a named thing are described below:

The expression for the string john is (select 'j 'o 'h 'n). Its shorthands are (str 'john) or simply 'john.

The expression for the word john is (and (select word instance *)
(select * symbolizedBy (select 'j 'o 'h 'n)). Its shorthand is either
(word1st 'john) or (word+ 'john). In dbd, word refers to that which is
spoken, not that which is written. Words are symbolized by a symbol or more typically a string of symbols. This allows a word to be symbolized in multiple languages and have multiple spellings.

The expression for a unique thing named john is approximately:
(select * name (and (select word instance *)

                        (select * symbolizedBy (select 'j 'o 'h 'n))))
The shorthand for this long expression is (. 'john) or simply john. The expression for a unique thing named john b smith is (. 'john 'b 'smith). In dbd, things are named by words, not strings.

If a thing's name is not unique, refer to it via an expression such as:
(and (select person instance *)

       (select * name (word1st 'john))
       (select * age 28))


Thus in above section, the expression (create john like mary) is actually a shorthand for the following:
((. 'create) (. 'john) (. 'like) (. 'mary))

or expanded even further:
(
(and (select function instance *)

       (select * name (and (select word instance *)
                 (select * symbolizedBy (select 's 'e 'l 'e 'c 't))))


(select * name (and (select word instance *)
(select * symbolizedBy (select 'j 'o 'h 'n))))
(select * name (and (select word instance *)
(select * symbolizedBy (select 'l 'i 'k 'e))))
(select * name (and (select word instance *)
(select * symbolizedBy (select 'm 'a 'r 'y))))
) Received on Fri Aug 04 2006 - 18:02:24 CEST

Original text of this message