- From: Sandro Hawke <sandro@w3.org>
- Date: Sun, 17 Dec 2006 18:39:26 -0500
- To: Bijan Parsia <bparsia@cs.man.ac.uk>
- Cc: Gary Hallmark <GARY.HALLMARK@ORACLE.COM>, Michael Kifer <kifer@cs.sunysb.edu>, W3C RIF WG <public-rif-wg@w3.org>
> 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). I usually hear this kind of "standard subset of a standard" called a "profile", although I think that term is kind of confusing. I'm okay with saying a dialect could, in theory, be formed as a restriction on some other dialect, even RIF Core. The problem is that we don't get to define a lot of these dialects without confusing the market. We've agreed to define one in Phase 1 and "a handful" in Phase 2. This decision was based (I think) on a sense of how much complexity the market can handle. I can imagine ten years from now getting up to more than a dozen dialects, if things are going very very well for RIF. I think more than two a year would be a mistake. So the debate at hand is about the dialect we pick for Phrase 1 (aka, the RIF Core dialect, aka RIF Core). We did agree in Montenegro and publish in July that "RIF must not require rule systems to be changed; it must be implementable via translators." [1] That seems to imply we need to stick with non-recursive Horn. I guess you're saying this: RIF Core might be recursive Horn, and then in phase 2 we could have a dialect ("RIF Business Core" heh) which is non-recursive Horn. Many rule vendors would just have to wait until then before they could claim compliance. Hmmmm. I guess it could work, but I still lean against it, because I think the market's need for rules is mostly for simple rules, not for logic programming. -- Sandro [1] http://www.w3.org/TR/rif-ucr/#req-translators
Received on Sunday, 17 December 2006 23:40:33 UTC