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

Re: "recursive rules" vs "recursive terms"

From: Gary Hallmark <gary.hallmark@oracle.com>
Date: Mon, 18 Dec 2006 11:49:32 -0800
Message-ID: <4586F0CC.60405@oracle.com>
To: Sandro Hawke <sandro@w3.org>
CC: public-rif-wg@w3.org

No, the problem occurs when there is a cycle in the graph where nodes 
are rules and edges are between relation names in the body of a rule and 
the head of a rule.  As Harold pointed out, this can easily be found by 
static analysis of a ruleset.

Note we discussed this same issue in an email thread [1] started by 
Hassan about doing append in production rules.  My solution [2] like my 
factorial solution also used the "trick" of asserting goal facts (which 
I believe but cannot prove is too difficult for an automated RIF tranlator)

[1] http://lists.w3.org/Archives/Public/public-rif-wg/2006Mar/0085.html
[2] http://lists.w3.org/Archives/Public/public-rif-wg/2006Mar/0198.html

Sandro Hawke wrote:

>Can the problem Gary labeled "recursion" be narrowed to only be talking
>about recursive generation of terms?  Recursive references between
>predicates are not a problem in production rules -- it's just when they
>start building larger terms or new terms (ala gensym or math builtins)
>that the engine gets in a loop, right?  (I'm sure there's a better way
>to characterize this kind of rule, but I can't remember a term for it.
>I'm just realizing that the label "recursive" cuts off much more of the
>space than is necessary.)
>       -- Sandro
Received on Monday, 18 December 2006 19:50:29 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:47:41 UTC