I am a newer to drools, and i find that drools dont optimize the following
case:

<rule1>
   <condition>f.a == "this"</condition>
</rule>

<rule2>
   <condition>f.a == "that"</condition>
</rule>

in my understand, if rule1.condition f.a == "this" is true, then
rule2.condition will be false and without a evaluation.

Maybe we should add some support to the org.drools.spi.Condition two
methods:
1. boolean implies(Condition other)  return true if this condition implies
other condition, so when this condition eval to true, then the other will be
true
2. boolean impliesNot(Condition other) return true if this condition implies
not the other condition, so when this condition eval to true, the other will
be false.

also optimize the rateoo engine to avoid evaluate conditional based on these
methods.

Do you think so?

Reply via email to