drools

drools is an augmented implementation of Forgy's Rete algorithm tailored for the object-oriented language of Java. Adapting Rete to an object-oriented interface allows for more natural expression of business rules with regards to business objects.

Rete-OO

The drools engine uses a modified form of the Rete algorithm called the Rete-OO algorithm. Internally it operates using the same concepts and methods as Forgy's original but adds some node types required for seemless integration with an object-oriented language.

Semantics Provider Interface & Framework

At the core, drools is purely a Rete-OO algorithmic engine. The engine works in terms of very abstracted concepts, such as Conditions , ObjectTypes and Extractors . Concrete semantic modules are used to bind application-specific semantics tightly to the internals of the algorithmic engine.

Currently, drools supports three semantic modules: Java , Python , and Jelly .