- From: Michael Kifer <kifer@cs.sunysb.edu>
- Date: Mon, 18 Dec 2006 13:41:08 -0500
- To: Bijan Parsia <bparsia@cs.man.ac.uk>
- Cc: Sandro Hawke <sandro@w3.org>, Gary Hallmark <GARY.HALLMARK@oracle.com>, W3C RIF WG <public-rif-wg@w3.org>
> On 18 Dec 2006, at 13:50, Michael Kifer wrote: > > [snip] > > There is no need to define dialects for any kind of restrictions. > > All you need is that the target rule system would be able to raise an > > exception and say that it doesn't support something particular in a > > given > > dialect (like recursion, function symbols, etc.). This is actually > > easy to > > do using the semantically preserving mappings into dialects. > [snip] > > Michael, isn't the need being voiced the need for a canonical way to > identify these subsets, esp. for the purpose of conformance? I.e., if > system A spits out a document with recursive rules, it is, of course, > possible so say, "Hey, this can't be properly consumed by systems B, > C, and D since they only support RIF Core with recursion free > rules" (and presumably, one would like to be able to look this up > instead of trying it with each of systems B, C, and D). But then "RIF > Core with recursion free rules" effectively becomes a profile. (Same > with Datalog, same with relational.) It happens to be a profile > wanted by various vendors of rule systems. Why *not* sensibly name > such profiles? Yes. But I think we should first define something simpler and avoid proliferation of profiles/dialects. In my prev msg (response to Sandro) I repeated (and elaborated on) one formal definition of compliance, which enable exchange and doesn't require profiles. http://lists.w3.org/Archives/Public/public-rif-wg/2006Dec/0096.html I am not against profiles per se. I am just saying that they are a convenience. (It is predicated by the need for vendors to have technical people who would be able to define profiles correctly.) > > Forgetting conformance for a moment, isn't this a useful thing? Even > for exchange? At least, in the sense that it makes it a little easier > to specify what you actually can exchange. It is useful in an ideal world. But this just pushes the argument into how profiles should look like (= a repeat of the current discussion at a different level) > It is true that specifying conformance levels encourages users to > demand, well, conformance. So, I think the problem people have with a > semantic superset of what they currently handle being a conformance > target is that that opens them up to people demanding that they > extend their tools to handed that semantic superset (which, in this > case, I confess I was surprised that there was an issue). > > Now, IIRC, your suggested conformance clause was one way, i.e., to > conform, you just need to generate rules only in RIF Core: > > """I think systems should be compliant if they provide a semantic- > preserving > mapping to a RIF dialect (or dialects). That's all. Again, RIF is > supposed > to be for exchange.""" > > But I think people were looking for two way conformance, i.e., > A system is a conforming RIF dialect foo processor if it can > generate *or (in principle) consume* documents which are expressed in > dialect foo. You are right. But this should be called differently. Conformance should be something like what I described. It sets the bar low and enables exchange. Then we can also have another notion, probably "implementing" a RIF dialect. This would mean that there is a semantics-preserving mapping from the dialect to the rule system. (There also is a round-trip issue for the mappings from and to the dialect, but we should leave it for dessert.) > So, to take the PR example, if I only generate recursion free RIF > core rules, I'm likely to not be able to consume recursive RIF Core > rules. But then I'm a conforming RIF Core generator, but not > processor. But then the conformance level only can tell me that I can > expect my generated rules to be correctly consumed by a "complete" > RIF Core processor....though it won't tell me that I can consume them > correctly! Or which other engines that support the recursion free > subset can consume my rules. Yes, a combination of the notions of "compliance" and "implements" is probably going to do the trick. regards --michael > > Cheers, > Bijan. > > P.S., All this is pace that, due to implementation choices, bugs, > etc. it's most likely the case that even for recursion free rules, > not every system which supports recursion free rules can process all > recursion free rule sets. So, some weaseling is required. >
Received on Monday, 18 December 2006 18:41:37 UTC