If I understand in my pre-caffeinated state, then I think what you are saying is:
We start off with NO "Something" in WM. The rule "R" fires. We add "Something" to WM nothing happens We remove "Something" from WM The rule "R" fires again. ** Now in ReteOO ** will happen. In LEAPS it does not? Well, the answer is allways: WWJD: What Would Jess Do ? I am thinking the ReteOO way is what I would intuitively expect, as there is no "fire only once" in the contract of the rule. On 4/26/06, Alexander Bagerman <[EMAIL PROTECTED]> wrote: > > All, > While going through fixing logical assertion tests for leaps I > realized that I might not be able to support behavior for rules with > no positive conditions in the way RETEOO does. Please do not skip the > rest of the email saying "that's ok, leaps is experimental" :-) > > Here is an issue - loop / no loop tests rely on multiple activation of > the rules that have the following structure: > rule "r" > when > not Something > then > ... > end > > You would expect this rule to fire only once but in reality (RETEOO > reality) it fires first time its "when" section is valid (even if > there was not ever blocking facts) and than every time when rule goes > from "have blocking facts can not fire" to "ok, last blocking fact is > removed, I can fire now". Does it break a paradime that states that > rule can fire only once on same conditions? Let's say I have one more > condition in "when" section like that: > rule "r" > when > someFact is matching condition > and not Something > then > ... > end > > I would expect this rule to fire only once, even if it goes from "have > blocking facts can not fire" to "ok, last blocking fact is removed, I > can fire now" multiple times assuming that someFact was not retracted. > > What are your thoughts on it? > > -Alex >
