Re: Resiliency To New Data Requirements
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)
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))))) Received on Fri Aug 04 2006 - 18:02:24 CEST
(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))))