W3C RIF: "recursive rules" vs "recursive terms"

Sandro - PR rules are not explicitly referenced at runtime (ie they may be named for rule management, but not for execution). So they cannot "recurse" and I cannot build logical recursive definitions using PR.  

Recursive behaviour of the rule engine is often a "bug" in the rule definition (eg see http://docs.codehaus.org/display/DROOLS/FAQ#FAQ-InfiniteRecursion ). 

My question (rhetorical at this stage is): why would I want to do recursion? Some problems are best defined in terms of "rules" that reference themselves (c.f "clever programming techniques" as implied in http://blogs.msdn.com/ericlippert/archive/2004/07/21/189974.aspx ). Recursion may be common in logic systems, but in PR systems (mostly implementing business rules), it is so rare I am not aware of any commercially successful PR system that provides it. [On a side note I see that there is a mention of "recursive rules" in SBVR - eg in http://www.omg.org/news/whitepapers/Markus_Business_rules.pdf - but I'm not sure how this maps / is expected to map to an executable context, ie 1 rule or many ...]

Note by the way that none (as far as I can see) of the example rules in the use cases in http://www.w3.org/2005/rules/wg/wiki/UCR include recursion. 

Note also our previous discussions on recursion -  http://lists.w3.org/Archives/Public/public-rif-wg/2006Mar/0106.html 

PS: Not sure if the above answers your question, though. 

Paul Vincent
TIBCO - ETG/Business Rules 
 


-----Original Message-----
From: public-rif-wg-request@w3.org [mailto:public-rif-wg-request@w3.org] On Behalf Of Sandro Hawke
Sent: 18 December 2006 18:28
To: public-rif-wg@w3.org
Subject: "recursive rules" vs "recursive terms"



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:21:41 UTC