Re: Storing data and code in a Db with LISP-like interface
Date: 29 Apr 2006 14:28:54 -0700
>> Food Judge Example C using dbd (db for dummies) follows...
> Alvin: ...I will not have the time to provide you with detailed [LISP/]Prolog equivalents. From what I've seen both can easily do the above...
:) OK, I'll just raise my concerns directly rather then verifying them
via Example C. Below are items that I am concerned will limit Prolog's
ability to represent things in as general/flexible/systematic a manner
as dbd for AI-type apps:
like (john, mary).
hate (john, bob).
like (john, mary).
This limitation is very similar to that in RM where new data requirements cause a wave of changes in schema, data, scripts, code, etc. Consider what changes take place if the third fact is not known/added until after the first two are known/stored/coded against.
2b) A thing with no name will have to be given a name anyway such as no_name. This is similar to the NULL problem in RM. Now the the andriod will think a thing's name is actually no_name unless additional rules are added. If handled as such, what if droid actually encounters something named no_name? And how to handle additional unnamed things? no_name2, no_name3, ...?
2c) Two atoms can't have the same name so the atoms for cat and person
named mary might be mary_cat and mary_person and this leads to
redundant data as shown below. I won't explain the pitfalls of
redundancy as volumes have been written on it already with respect to
In comparsion when dbd represents a person named john, consider what it
Thus when one sees the "john" in dbd script, it is translated to
approximatley the following query:
(first (select (first (select (select 'j' 'o' 'h' 'n') symbolizes *))
Thus when one sees the "john" in dbd script, it is translated to approximatley the following query:
(first (select (first (select (select 'j' 'o' 'h' 'n') symbolizes *))nameOf *)) Received on Sat Apr 29 2006 - 23:28:54 CEST