Drools is an augmented implementation of Forgy’s Rete algorithm tailored for the Java language. Adapting Rete to an object-oriented interface allows for more natural expression of business rules with regards to business objects. More importantly, Drools provides for declarative logic programming and is flexible enough to match the semantics of your problem domain. The various parts that compose a rule may be extended to lend domain-specific sense to the rule.
TermWare is a programming language, based on concept of term system: set of rewriting rules with actions. It allows to unite logic and imperative programming: TermWare actions can call Java objects via reflection mechanism. The TermWare interpreter provides a Java API, for embedding rule-rewriting into Java applications.
K.U.Leuven JCHR is an embedding of Constraint Handling Rules (CHR) in Java. The multi-paradigmatic integration of declarative, forward chaining CHR rules and constraint (logic) programming within the imperative, OO host language Java offers clear synergetic advantages to the software developer. High performance is achieved through an optimized compilation to Java code. The rule engine is suited for the high-level development of expert systems, constraint solvers, constraint-based algorithms, etc