Re: On production rules and phase I&II

From: Francois Bry <bry@ifi.lmu.de>
Subject: Re: On production rules and phase I&II
Date: Wed, 08 Mar 2006 17:18:40 +0100

> Dear Peter,
> 
> We are in a non-terminating loop because the argument Hassan gave does
> not seem to reach you - and you answers do not reach Hassan and me.
> 
> Hassan's point was, as I understand it, that in the production rules you
> give below, there is nothing like a procedure or function call and
> therefore no recursion. Is this tentative explaination helping?
> 
> Regards,
> 
> Francois

Not one tiny little bit.

Rule sets don't have procedure or function calls.  However, some rules are
called "recursive", for example the second rule below:

	ancestor(A, B) :- parent(A, B).
	ancestor(A, B) :- parent(A, X), ancestor(X, B).

(See, for example,
http://en.wikibooks.org/wiki/Programming:Prolog_Recursive_Rules for more about
recursive rules.)

Given that the example above contains a recursive rule, then I see every reason
to state that the pure production rule set

	(p (parent ^parent <x> ^child <y>)
	   -->
	   (make ancestor ^ancestor <x> ^descendant <y>))

 	(p (parent ^parent <x> ^child <y>)
 	   (ancestor ^ancestor <y> ^descendant <z>)
 	   -->
 	   (make ancestor ^ancestor <x> ^descendant <z>))

also contains a recursive rule.

Peter F. Patel-Schneider

Received on Wednesday, 8 March 2006 16:28:51 UTC