Re: Storing data and code in a Db with LISP-like interface

From: Neo <neo55592_at_hotmail.com>
Date: 2 May 2006 15:40:51 -0700
Message-ID: <1146609651.801033.46930_at_v46g2000cwv.googlegroups.com>


> Some of those qualities - as I understood them - reminded me of prolog. You downloaded it, and played with it. I hope you get some refinement of/reflection on your ideas from that.

For one thing, I now understand why it appear I am re-inventing Prolog. Having seen Prolog, I hope to distill its most basic features and integrate them when I start focusing on data processing rather than just representing.

> OTOH I would also appreciate it if you would stop making false assertions as to what other systems can't do.

I will state it again and demo it with examples: dbd's method of representing things is more general/flexible/systematic than Prolog in a few areas.:

  1. The data represented in a Prolog function's name is not as flexible/systematic. It cannot be systematically selected, renamed, unnamed, named multiple times, etc as in dbd. In dbd, when representing "john like mary", like is a thing just like john and mary and can be select via "select john * mary". Please show how in Prolog. ( I see below you needed to restructure your orignal script).
  2. In Prolog, an atom must be named. Thus creating an unnamed atom is impossible and results in situation such as an atom named "un_named". So the droid thinks it actual name is "un_named" unless told to ignore it, but then what if he meets ups with a thing actually named "un_named". Also adding multiple names to an atom is inherently different than the first name embedded in the atom. This is unsystematic. All names for a things are represented systematically in dbd.
  3. Prolog is similar to RM in that new data requirements can impact existing schema/scripts more so than dbd. See the example where I extended "john likes mary" twice once with "like opposite hate" and another time with "reverse similar opposite". In each case it impacted the prior prolog script, while it did not affect dbd.
  4. In Prolog, one cannot add new data/function on the fly (as far as I can tell). One must edit the script, recompile it and reload it into memory. Ddb can do it on the fly.

> You might read it as just: Please be specific when stating what you want to know. See below

Sometimes the actual examples conveys my thoughts more accurately :)

> You had demos of dbd's previous incarnation at a site, but it seems down.

I had to relinquish it to the proper owner of the xdb trademark :( and was moved to another site which currently doesn't have the version I am demo-ing here.

> You have created vocabulary of your own - it isn't allways easy to see what needs some translation. I can't read your mind and I did not read all your previous posts. It helps if you are specific about the information needs. I took some of your statements rather literal to bitplumb the following:

thing(john).            % John is a thing to represent.
thing(mary).            % Mary is a thing to represent.
thing(like).            % Like is a thing to represent.
thing(relationship(john, like, mary)).
                        % The relationship "john like mary"
                        % is a thing to represent.

?- thing(relationship(john, Relator_Verb, mary)). Relator_Verb = like ;

Sometimes the best way is to look at the dbd script which shows the above is similar but not equivalent. For example, john and mary are persons, and person is a thing. Also it does not represent relationship which now appears in the prolog code.

Ok, so now you have restructured your original data to determine the relator between john and mary, but now how do I access the relator/relationship between john and thing. mary and thing, like and thing. What is the relationship/relator between "john, verb, mary" and relationship. What is the relator/relationship between thing and (relationship(john, like, mary)). At first you will immediately say those are obvious. Try replacing them with letters. Also why are various things and relationships being reprsented with different methods. It is unsystematic and difficult for an AI or driod-like app to figure out. Can it use the same rules here on new data? See prior post on this very same topic.

>>  Enter the following relationships in prolog:
>> class (john, person).        meaning one of john's class is person
>> instance (person, john).     meaning one of person's instance is john

> Are you stating the same fact in two ways or are these two facts?

Your question is difficult to answer as the word "fact" has no meaning in dbd's method of representing things. Received on Wed May 03 2006 - 00:40:51 CEST

Original text of this message