[rules-users] Beginner looking for help with some Drools/Rule concepts

Kabe kabriel at gmail.com
Thu Jan 11 01:32:27 EST 2007


Hi, i've been attempting to use Drools/JBossRules (3.0.5) in a project i'm
working on and i've run into a few issues that i could use some help with.
For the most part i'm struggling with design patterns on how to structure my
facts and my programs object model.

I'm struggling a bit with how to properly introduce my object model into the
working memory. For example, lets say i have an object model such as:

   Car(
      Engine(
         boolean : running
      ) : engine,
      color,
      Door(
         boolean : open
      )[]:doors
   )[] : cars

This would model a list of cars and some fields such as engine, color, and
doors. Now how would i create a rule that would return every car with a
running engine? I can't seem to figure out how to correctly reference a
field of a field of a fact. i would want to do something like Car(
engine.running == true ) or Car( Engine( running == true ) ) but that
doesn't work. I can't make the Engine itself a fact because it has to be a
field of the Car, and i can't give the car a field that holds the state of
the engine because then that breaks encapsulation and makes the Car class
very bloated with the state of all of its many components.

Is there a way to do this correctly? i could use a real messy predicate or
something like this:

$car : Car()
eval( isCarRunning( $car ) )

But then what is the point of using Rete? doesn't that just equate down to
about the same amount of work if i just put this in some standard java
if/else code?

Thanks for the help,

....
Kabe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070110/15deb6d3/attachment.html 


More information about the rules-users mailing list