Re: [TED] Action-188, ISSUE: production rule systems have "difficulty" with recursive rules in RIF Core

I think there is some cross purpose talk here.

Michael is, of course, correct that you can use a superset of your  
language's functionality to exchange rulesets written in your  
language, since that superset can express those rulesets. Any tool  
consuming rules from your language only has to know the subset of the  
language that corresponds to your language.

But that's the point of having a "restrictive", or exact,  
er.."dialect" (is that the term?) be the object of a conformance  
level, so that you can say any conforming tool for this dialect can  
(more or less) handle any ruleset in that dialect *and not  
(necessarily) more*. (Perhaps, "in principle" is better than "more or  
less".)

Let me make this a bit more concrete (er...in an abstract way :)).  
Let's assume there is a RIF Core that is recursive horn + function  
symbols. Now it's perfectly true that a production rule system (which  
supports, lets say, function symbols but not recursion) can use this  
RIF Core to exchange rules with systems that implement all of RIF  
Core. So too can a datalog system (with recursion but no function  
symbols). But the datalog system and the production rule system  
cannot exchange (arbitrary) rule sets via RIF Core. In fact, to  
exchange with "like" systems, there has to be something in those like  
systems that rejects rulesets with function symbols/recursion. They  
will have it, of course, but it helps to have a name for what they  
check for.

But this suggests to me that RIF Core shouldn't be a common subset,  
but rather that dialects should be able to "extend" RIF Core with  
restrictions *as well as* extensions. That way, RIF Core can be  
"natural" (which I do think is nice) but the conformance levels/ 
dialects can be more exact.

I think, personally, I'd prefer this because I think it's a bit more  
flexible and one doesn't have to worry about *really really* getting  
the intersection right. Having a mechanism for restriction (as well  
as extension) is a bit messier, but it's also useful in dialects  
(e.g., one could say that one's tool supports a certain restriction  
of a common dialect).

Just a thought.

Cheers,
Bijan.

Received on Sunday, 17 December 2006 23:10:05 UTC