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
>

Reply via email to