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

From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Fri, 21 Apr 2006 20:44:02 GMT
Message-ID: <mub2g.63837$VV4.1194075_at_ursa-nb00s0.nbnet.nb.ca>


JOG wrote:

> Bob Badour wrote:
>

>>JOG wrote:
>>
>>
>>>Bob Badour wrote:
>>>
>>>
>>>>JOG wrote:
>>>>
>>>>
>>>>>Bob Badour wrote:
>>>>>
>>>>>
>>>>>>Alvin Ryder wrote:
>>>>>>
>>>>>>
>>>>>>>I agree linked-lists aren't as powerful as the RM but LISP and Prolog
>>>>>>>are not merely about lists.
>>>>>>>
>>>>>>>Both Prolog and LISP can represent information and indeed knowledge
>>>>>>>well beyond the RM, that's why they are popular with the ai community!
>>>>>>
>>>>>>Given the standard definitions of information and knowledge, that's a
>>>>>>rather astounding claim. Do you have anything that might back it up?
>>>>>
>>>>>Prolog models a greater subset of predicate logic than relational
>>>>>theory due to its inclusion of negation and disjunction. As such it has
>>>>>been traditional popular in classic-AI as the basis of inference
>>>>>engines. Whether this allows it to offer a better representation of
>>>>>'knowledge' is up for debate.
>>>>
>>>>[snip]
>>>>Are you suggesting that NOT is not negation or that OR is not
>>>>disjunction?
>>>
>>>
>>>Of course not. I am sure this is a rhetorical question but I cannot
>>>ascertain its point - I think you are referring to relational algebra,
>>>but this is not the same as the use of negation in explicit
>>>declarations such as P(x) || ¬Q(y) (for instance). In RM the user has
>>>to remember this predicate. In Prolog, the program memorises it for
>>>you, for good or for bad. To compare the two is hence comparing apples
>>>and oranges.
>>
>>The point is the relational model basically supports both with the one
>>small requirement that one must specify one's universe. I do not
>>understand what you mean by 'has to remember this predicate'.

>
> I don't agree, but we may be talking at cross purposes - let me explain
> with a trivial example. Take the relation: { (clothing:coat,
> weather:sunny), (clothing:sunglasses, weather:raining) }
>
> I am storing propositions of the nature that if Frank, say, is not
> wearing a coat it is sunny, and if he's is not wearing sunglasses then
> it must be raining (Frank's a bit of a fashion victim). The predicate
> behind the relation is: [¬clothing -> weather], and anyone interacting
> with the db must be aware of this in order to reform my original
> propositions, and so draw appropriate conclusions.
>
> In prolog, however I can state this explicitly and another user will
> not require any external knowledge of the relationship:
>
> weather(sunny) :- /+ clothing(coat)
> weather(rainy) :- /+ clothing(sunglasses)
>
> And there my limited knowledge of logical programming is exhausted.

Okay, I think I see what you mean. Thank you for explaining it to me. Received on Fri Apr 21 2006 - 22:44:02 CEST

Original text of this message