The Mandarax Project

Mandarax is an open source java class library for deduction rules. It provides an infrastructure for defining, managing and querying rule bases. Choose Mandarax for the following reasons:

  1. Mandarax is pure OO, not a translation of a prolog interpreter from c to java. The design is flexible and open, making use of well-known design patterns such as factory, adapter, singleton , strategy and others.

  2. Mandarax is based on backward reasoning. This fits perfectly in a computing landscape based on a pull model (e.g. a transaction initiated from a web site). Data (e.g., from relational databases) can be integrated on the fly at query time, no replication is necessary (see the manual for a more detailed discussion of "Mandarax vs. RETE").

  3. The easy integration of all kinds of data sources. E.g., database records can be easily integrated as sets of facts and reflection is used in order to integrate functionality available in the object model. Other data sources (like EJB, data returned by web services etc) can be integrated as well.

  4. Mandarax includes a comprehensive library of pre-defined predicates and functions.

  5. Mandarax contains a reference implementation of an inference engine. This engine is very flexible: unification algorithm, loop checking algorithm and selection policy can be configured.

  6. Rule bases can be made persistent using the XKB module. This module stored rules and other knowledge in a format similar to RuleML. The Mandarax team itself is part of the RuleML initiative working on a XML standard for rules. Export and import of RuleML rule bases is supported.

  7. Mandarax is well documented and there are various QA measures in place. Events are logged using the apache log4j framework, and there is a re-usable set of test cases for mandarax core functionalities.

  8. Mandarax is free and open source. The software license used is the GNU lesser general public license, making the software suitable for both open-source and commercial projects.

  9. Mandarax knowledge bases can be queried as relational databases using the mandarax jdbc driver.

  10. Extensions are available including graphical user interface components (swing and servlet/jsp tag based) and other add-ons. See links for details.