Links - Java Open Source Inference Engines
Feb 3 2009: reflections on the power of modern marketing in selecting rule engines.
Sun appears to be serious about open sourcing the Java Development Kit and Virtual Machine, so it is time to consider Java as an environment for implementing Open Source rule and inference engines.
As an interpreted language, the performance and resource consumption of client and server-side solutions will probably be a critical design factor, particularly as Java-based rule engines tend to aspire to enterprise-level applications.
An interesting and increasingly mature Semantic Web inference engine is Pellet OWL DL reasoner. From the Pellet Features section:
Pellet supports reasoning with the full expressivity of OWL-DL (SHOIN(D) in Description Logic jargon) and has been extended to support OWL 1.1 (the DL SROIQ(D)). OWL 1.1 adds the following language constructs to OWL DL:
* qualified cardinality restrictions
* complex subproperty axioms (between a property and a property chain)
* local reflexivity restrictions
* reflexive, irreflexive, symmetric, and anti-symmetric properties
* disjoint properties
* user-defined datatypesPellet also provides reasoning with the following features from OWL Full:
* inverse functional datatype properties
* vocabulary sharing between individuals, classes, and properties (using the punning semantics of OWL 1.1)
Note that the subjects are properties and vocabularies rather than rules and processes.
Feb 3 2009:
It's interesting to note that in the article from the Computer Business Review titled The 10 Best Open Source Rules Engines, every one of the ten is implemented in Java.
Isn't it a bit hard to imagine that none of the "best" are implemented in other languages. C and C++ are inherently faster than Java and are far more suitable to implementing standard logic algorithms than Java. Prominent among the missing is the venerable and well-supported CLIPS rule engine.
Another factor is the lack of business rule management capabilities. Many of the "10 best" depend on Java language constructs rather than using a proper rules language, although some have rule language front ends ( with a heavy hit on performance ). They still tend to be programmer-oriented than business-oriented solutions and can be as difficult to maintain and slow to respond to business changes as other business applications.
Caveat emptor. The Java Lobby is active and powerful ... look carefully at performance and business rule management requirements before taking the leap.