[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: NPR, Godel, Semantic Web
- From: John Cowan <jcowan@reutershealth.com>
- To: "C. M. Sperberg-McQueen" <cmsmcq@acm.org>
- Date: Tue, 08 May 2001 11:34:56 -0400
C. M. Sperberg-McQueen wrote:
> Sure. Prolog texts don't talk about them in these
> terms (as Goedel sentences), but Prolog texts almost
> always mention, at some point, that depending on
> how you write your predicates some things which
> obviously follow from your program (viewed declaratively)
> cannot in fact be inferred by the Prolog system
> (working procedurally).
But is this a fact expressible *in Prolog*?
I suppose it is, since you can write a meta-circular
Prolog interpreter.
[Prolog example snipped]
> This will (I think -- I'm kind of rusty and haven't
> run this), when provided with a suitable set of facts
> involving 'parent', produce the expected result.
> It will for example, infer that 'abel' is human.
>
> Change the order of the rules for 'human', however,
> to 3412, however, and the system will have trouble
> figuring out even that 'adam' is human.
I fed both versions into GNU Prolog 1.2.1 and it
handled both with no problem.
> append([],L,L).
> append([A|B],C,[A|D]) :- append(B,C,D).
>
> and next the restricted one:
>
> append([],L,L) :- !.
> append([A|B],C,[A|D]) :- append(B,C,D).
>
> The second one works only when at the initial call the
> first two arguments are instantiated and the third is
> possibly not instantiated.
Again, I cannot provoke gprolog into returning the wrong
answer with the second definition, and I tried many cases.
--
There is / one art || John Cowan <jcowan@reutershealth.com>
no more / no less || http://www.reutershealth.com
to do / all things || http://www.ccil.org/~cowan
with art- / lessness \\ -- Piet Hein