Home page SourceForge.net Logo
 Home
 Documentation
 To do
 Download
 Project page
 JSR-94

Project description
JRuleEngine is java rule engine, based on Java Specification Request 94, release 1.1.
Please see "Java Rule Engine API - JSR-94" document (file jsr94_spec.pdf) included in JSR-94 distribution: that document explains how to use a library based on these specifications, like this one.

  2008-04-16   Final release 1.3 available
JRuleEngine release 1.3 is available.
The distribution includes jar file library, source files, examples, javadoc and readme.txt installation instructions.

Improved assumption parsing: added "containsatleastone" and "notcontainsanyone" operators.
This distribution contains a fix on evaluating expressions related to Object type arguments.

Click here to download JRuleEngine release 1.3

  2008-03-18   Final release 1.2 available
JRuleEngine release 1.2 is available.
The distribution includes jar file library, source files, examples, javadoc and readme.txt installation instructions.
Improved assumption parsing: now numeric values can be null.

This distribution contains some fixes within forward chaining algorithm, (i) when assumptions return null and (ii) with then having more than one arguments.

  2006-12-06   Final release 1.1 available
JRuleEngine release 1.1 is available.
The distribution includes jar file library, source files, examples, javadoc and readme.txt installation instructions.

This distribution contains a little change on forward chaining algorithm: when a rule is evaluated as a valid rule, the set of "then" actions are now all fired, before the algorithm re-execute all rules from the first rule of the rule set.

  2006-05-16   Final release 1.0 available
JRuleEngine release 1.0 is available.
The distribution includes jar file library, source files, examples, javadoc and readme.txt installation instructions.


What is a rule engine?
A rule engine may be viewed as a sophisticated if/then statement interpreter.
The if/then statements that are interpreted are called rules. The if portions of rules contain conditions such as shoppingCart.totalAmount > 100. The then portions of rules contain actions such as recommendDiscount(5).
The inputs to a rule engine are a rule execution set and some data objects. The outputs from a rule engine are determined by the inputs and may include the original input data objects with possible modifications, new data objects, and side effects such as sendMail('Thank you for shopping').
This library is a forward-chaining rule engine, i.e. the engine implements an execution cycle that allows the action of one rule to cause the condition of other rules to become met. In this way, a cascade of rules may become activated and each rule action executed. Forward-chaining rule engines are suitable for problems that require drawing higher-level conclusions from simple input facts.

Currently JRuleEngine supports stateful and stateless rule sessions. Rules can be retrieved from an XML file or can be stored via JRuleEngine APIs, so rules could be stored in any kind of external storage, like a database.


Community
Public forums:
http://sourceforge.net/forum/?group_id=167772
Mailing lists:
http://sourceforge.net/mail/?group_id=167772

Thanks to...
...all people who download and use this library and would give me any suggestion to improve it.


(c) 2006 by Mauro Carniel