- From: Ed Barkmeyer <edbark@nist.gov>
- Date: Tue, 07 Mar 2006 15:13:54 -0500
- To: Francois Bry <bry@ifi.lmu.de>
- CC: public-rif-wg@w3.org
François, I wrote: >>That is, you want 3 kinds of RIF rules: >> >>a) "deduction rules", generally having the semantics >> FROM <antecedent> CONCLUDE <consequent assertion> >>where the <consequent assertion> is to be recorded in the KB for >>future use. you wrote: > Basically yes. But "to be recorded in the KB for future use" is not the > only way to proceed. This is called "materialization". This is only one > of the possible approaches. Another one is to re-evaluate the rules by > need. THis second approach might be preferable in two cases: when > re-evaluating is more efficient than storing and when some data (e.g. > facts or A-boxes) the deduction rule refer are updated. I agree that materialization is an implementation strategy. You are correct that there are multiple semantically equivalent strategies, assuming that the ruleset attaches no semantic significance to explicit ordering (and related "meta-rules" ideas). I really meant to contrast "directed inferencing" ("deduction rules") with "directed consistency testing" ("normative rules"). >>b) "normative rules", generally having the semantics >> WHEN <antecedent> REQUIRE <consequent assertion> >>where the <consequent assertion> must (at the point of this >>evaluation) already be recorded in the KB; > > again, replace "recorded in the KB" by "implied by the KB" and this is > fine with me. Yes. This would seem to represent a test that some other inference rules have also been satisfied, but in most cases, it represents a test that the corresponding assertions are present or absent. (Materialization may make assertion and inference indistinguishable.) It should also be noted that you only need normative rules if you have constraints on the syntax that prevents the contrapositive from being stated as a "deductive rule". E.g. WHEN p(x) REQUIRE q(x) is IF NOT q(x) CONCLUDE NOT p(x) but "NOT q(x)" may be an invalid antecedent or "NOT p(x)" may be an invalid consequent. Alternatively, you need normative rules only if that is the only notion of "consistency" the Rules engine enforces. (This is a property derived from their database origins.) >>c) "reactive rules", ... > > Not really so. The reactive rule should consider instances, so as to > reduce the evaluation costs. If a normative rule says > all x p(x) => q(x) or r(x) > and r(y) is removed, then the reactive rule to be evaluated is: > ON remove r(y) CHECK (p(y) => q(y)) > Note that y is bound by the event "remove r(y)". Thank you for this clarification. I completely misunderstood "reactive rules". It seems to me that identifying "all x p(x) => q(x) or r(x)" as a "normative rule", however, is sufficient. I would expect the semantics of "normative rule" to imply that an engine should reevaluate the rule whenever an inference asserts a new p(x) or contradicts a q(x) or r(x). So why would I need "ON remove r(y) CHECK (p(y) => q(y))"? This seems to be a direction for some specific implementation strategy. (Technically, "remove r(y)" does not "contradict" r(y), unless r has NAF semantics. But it clearly requires the proof of "q(y) or r(y)" to be redeveloped.) Further, I am concerned about the semantics of "remove". I assume that we are here considering remove to be a well-defined "action" on the KB, as distinct from an "Event" that would take us into the land of Event-Condition-Action rules. And even so, the "remove" action requires RIF semantics to include explicit non-monotonic behaviors (as distinct from purely implicit non-monotonic behavior associated with "time of evaluation"). Does some Use Case make "remove" a clear requirement? Otherwise, this is a pure implementation strategy for managing "change" in the KB. And it is very dependent on a notion of "postulates" -- assertions that CANNOT be deduced -- and on having a concept of "difference in state" and on other elements of the implementation strategy (materialization, ordering, etc.). I agree that this is what production rule engines do, but I would worry about standardizing much of this. >>If I understand you correctly, the syntax of these three kinds of >>rules may be very similar, > > yes. Especially the "condition" or "rule antecedent" parts. > >>but they must be distinguishable. > > Some other parts, especially "events" like "remove r(y)" are specific to > reactive rules. OK. But what I meant was that I cannot determine whether IF <antecedent> THEN <consequent> is a "deductive rule" or a "normative rule" from such a syntax, when the consequent is an "assertion". To distinguish them, I would need two keywords, e.g. THEN and CHECK. >>Further, do I understand that you intend to permit the receiving >>engine to interpret one of these rules with one of the other >>semantics, where that re-interpretation is consistent with its own >>reasoning algorithms? > > No. I was not referring to different semantics. I was speaking of > different reasoners - for the same semantics. OK, good. This is a distinction in rule semantics. (And I agree. The allowable models will be different.) >>I do agree that one might exchange the (b) form and allow some >>interpretation of the (c) kind. The issue, of course, is whether the >>semantics permit or prohibit the creation of an "inconsistent" KB. > > Pragmatics suggests that it should permit - marking it as > "inconsistent". As in DBs. I agree, but the concept of "inconsistent" now means two things: - there is an explicit or implied contradiction: p(x) AND NOT p(x), or - some normative rule has been violated. I think these are only equivalent if the semantics of the normative rule is the contrapositive, or you have NAF semantics for the relevant predicates. In DBs, the only notion of "consistent" is that the normative rules are satisfied. >>(BTW, it seems to me that in a distributed rules evaluation scenario, >>the idea of an overall-inconsistent KB has to be supported. > > I agree! I think the "rules" world expects this, and deals with the ideas of "repair" and "remediation" (although I do *not* suggest these for RIF), whereas for "distributed ontologies", much care must be taken to avoid it. >>It strikes me that we may get very close to implementation issues in >>defining the semantics of rulesets (as the interchange between Bijan >>and François suggests) or we may get perilously close to >>distinguishing the purpose of the exchange. > > Maybe. If we don't, my thesis is that RIF will remain an interesting > academic exercise - something I can live with. But could the WG live > with it? And if we do, will Dr. FrankenRIF be able to live with his monster? Regards, -Ed -- Edward J. Barkmeyer Email: edbark@nist.gov National Institute of Standards & Technology Manufacturing Systems Integration Division 100 Bureau Drive, Stop 8263 Tel: +1 301-975-3528 Gaithersburg, MD 20899-8263 FAX: +1 301-975-4482 "The opinions expressed above do not reflect consensus of NIST, and have not been reviewed by any Government authority."
Received on Tuesday, 7 March 2006 20:14:05 UTC