W3C home > Mailing lists > Public > public-rif-wg@w3.org > March 2006

Re: On production rules and phase I&II

From: Peter F. Patel-Schneider <pfps@inf.unibz.it>
Date: Wed, 08 Mar 2006 11:28:27 -0500 (EST)
Message-Id: <20060308.112827.96809180.pfps@research.bell-labs.com>
To: bry@ifi.lmu.de
Cc: public-rif-wg@w3.org

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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:33:27 GMT