0

I'm trying to build a benchmark for drools business rule system, for that I have to take into account the specialties of the RETE algorithm. The RETE view in Drools eclispe plugin offers the opportunity to display the corresponding RETE net according to a drl. Look the code below, with this code the RETE view works, but if I replace the &&-operator with ||-operator the RETE view shows a NullPointException. Can someone plz explain this behaviour? As I can see the statements are still valid with ||-operator.

EDIT: I try to precise my question. Does the RETE network look the same no matter if || or && is used?

package performance.drools;

declare EvalFact0
   e0_attrib0 : double
   e0_attrib1 : double
end

declare EvalFact1
   e1_attrib0 : double
   e1_attrib1 : double
end

declare EvalFact2
   e2_attrib0 : double
   e2_attrib1 : double
end

declare EvalFact3
   e3_attrib0 : double
   e3_attrib1 : double
end

rule "R0"
when
    $e0 : EvalFact0((e0_attrib0 > 0.187) && (e0_attrib1 > 0.469))
    $e1 : EvalFact1((e1_attrib0 > 0.479) && (e1_attrib1 > 0.706))
    $e2 : EvalFact2((e2_attrib0 > 0.479) && (e2_attrib1 > 0.706))
    $e3 : EvalFact3((e3_attrib0 > 0.479) && (e3_attrib1 > 0.706))
then
       // some action
end
MattRossmann
  • 85
  • 2
  • 7
  • There was a recent discussion on the Drools user list, establishing that the RETE view is broken w.r.t. to showing certain combinations. Maintenance of this (as I call it:) toy is very low priority. – laune Mar 23 '14 at 21:45
  • thx, updated the question, to point out the important aspect. – MattRossmann Mar 24 '14 at 23:47

0 Answers0