views:

486

answers:

3

I'm currently designing a Java application where a Rule engine could be useful. Where is a good place I can learn about how to use them, how they work, how to implement them, see samples, etc.?

+9  A: 

The Drools documentation includes a lot of useful, general purpose information. Especially chapter 2, which covers rule engine basics, knowledge representation, etc. It also includes a nice recommended reading list for coming up to speed on rule engines and expert systems.

For most rule engines, a basic understanding of the rete algorithm usually comes in handy for writing efficient rules. I have personally found the Doorenbos paper referenced in the Wikipedia article to be the clearest technical explanation.

Also, here is a list of open source rule engines in Java.

Dave Ray
Ah thanks for the Rete article. I've been trying to find a good article to help wrap my brain around that.
Daddy Warbox
Nice answer. Got trigged to find a .Net impementation of Rete and Drools http://droolsdotnet.codehaus.org/ +1
Kb
Thanks. For every Java project, it seems there's a .Net implementation not far behind ... poor Java :)
Dave Ray
@Keb - About 3 years ago I used NxBRE for a .NET project. https://sourceforge.net/projects/nxbre/. Nothing fancy but it did the trick for me.
bmatthews68
+2  A: 

I found this site pretty helpful. Are you looking at building your own, or using a 3rd party library?

rally25rs
I'd consider building my own if it helped me learn how to use them better in some way. Otherwise a third party one ought to be fine.
Daddy Warbox
+3  A: 

You might want to read "Should I use a Rules Engine?" from Martin Fowler's blog.

I have worked on a project where we built our own (very simple) rules engine, with the intention to move to a general rule engine when things got too complicated. Never reached that point though, the system has been running happily with the simple homegrown engine for several years now.

Pieter Kuijpers
I highly recommend that entry as well -- correlates well with my experiences.
StaxMan