- From: Bijan Parsia <bparsia@isr.umd.edu>
- Date: Wed, 8 Mar 2006 08:52:46 -0500
- To: Francois Bry <bry@ifi.lmu.de>
- Cc: public-rif-wg@w3.org
Francois, On Mar 8, 2006, at 5:09 AM, Francois Bry wrote: > Dear All, > > In a former email, I argued that in my opinion the RIF should make it > possible (1) to distinguish between different kinds of rules > ("deduction > rules", "normative rules" and "reactive rulers") Part of my confusion is that, in that email, it seemed as if these rules were all semantically equivalent...i.e., that the ONLY distinguishing factor was the proof theory employed (and that all the proof theories were supposed to be sound and complete for those semantics). > and (2) to specify > different kinds of rule processing methods-- while having a single > delcarative semantics. [snip] If the only motivation (from observable behavior) is performance (another thing I gleaned from your email), then why *is* it important to specify the *method* rather than just specify an engine known-to-be-fast-for-my-ruleset? One possibility I thought of is that, e.g., in several systems (JESS and Jena, for example), you can indicate that some rules are to be evaluated using the backward chainer, rather than a forward chainer. Presumably, if one is sticking to the declarative bit, it makes no difference to the semantics, but can have a dramatic effect on performance. Such performance hints seem like a reasonable thing to preserve, though I would rather not constrain implementors who think they can do better without the hints (i.e., those writing nice, sophisticated optimizers)! > The reasons for this view are that today's pratice, especially the rule > processors used in databases and business rules, require such > distinctions (between kinds of rules) and specificiations (of rule > processing methods). A RIF not having these distinctions (between kinds > of rules) and specificiations (of rule processing methods) would be > more > difficult to deploy and therefore have less chances to be accepted by > practioners. Now this is a totally different reason, afaict. In fact, it almost sounds like a *marketing* (or pragmatics) point. (By which I don't mean to denigrate it, it could be a reasonable point.) By which I mean, if you aren't going to allow observable behavioral differences (i.e., the *semantics* of all these kind of rules is the same and proof theories are required to conform to those semantics), then I don't think these distinctions are substantive and probably don't need to be indicated *in the exchange*. If they *are* subtantive, then I need a example where the rules 1) have the same (declarative?) semantics, 2) have an behavioral difference depending on whether they are marked as one kind of rule rather than another, and 3) have a *further* behavioral difference (other than performance) based on the specified (sound and complete) proof theory. It's not *hard* to meet the 2 and 3 criteria, but *then* I would expect some difference in the semantics of the rules (by which I mean a complete specification of the semantics; it occurs to me that perhaps you are marking out some distinction between "declarative" and "procedural" semantics, and not requiring the latter to be equivalent to the former...which is *fine*, by not how I read what you've said; hence my puzzlement!) Cheers, Bijan.
Received on Wednesday, 8 March 2006 13:52:54 UTC