Open Source Rule Engines
Решил открыть тему с подборкой движков логического вывода для использования в AReason, AiKernel и, возможно, в других проектах. В качестве кандидитов рассматриваю только движки с открытым исходным кодом.
Drools is an Object-Oriented Rule Engine for Java. 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.
OpenRules is a full-scale open source Business Rules Management Framework. It efficiently uses the power of MS Excel, Eclipse IDE and open source Java libraries to create, deploy, execute, and maintain different rule engines with complex business logic controlled by business analysts.
Mandarax is an open source java class library for deduction rules. It provides an infrastructure for defining, managing and querying rule bases.
SweetRules is a uniquely powerful integrated set of tools for semantic web rules and ontologies, revolving around the RuleML (Rule Markup/Modeling Language) emerging standard for semantic web rules, and supporting also the closely related SWRL (Semantic Web Rule Language), along with the OWL standard for semantic web ontologies, which in turn use XML and, optionally, RDF. (SWRL rules are essentially an expressive subset of RuleML rules.) SweetRules supports the powerful Situated Courteous Logic Programs extension of RuleML, including prioritized conflict handling and procedural attachments for actions and tests. SweetRules' capabilities include semantics-preserving translation and interoperability between a variety of rule and ontology languages (including XSB Prolog, Jess production rules, HP Jena-2, and IBM CommonRules), highly scaleable backward and forward inferencing, and merging of rulebases/ontologies. Procedural attachments can even be WSDL Web Services. SweetRules' pluggability and composition capabilities enable new components to be added relatively quickly. Implemented in Java, SweetRules has a compact codebase (~40K lines of code total for several dozen tools). The SweetRules project is an international, multi-institutional effort, originated and coordinated by the SweetRules group at MIT Sloan led by Benjamin Grosof, and its creation was funded largely by the DAML (DARPA Agent Markup Language) research program which co-pioneered the Semantic Web. SWEET ("Semantic WEb Enabling Technology") is an overall set of tools that Benjamin Grosof's group (with collaborators) has been developing since 2001. Other components in it include the SweetDeal e-contracting system approach and prototype, and the SweetPH system for business process ontologies drawn from the Process Handbook. Hundreds of users have already downloaded SweetRules, inspired in part by its well-received demonstrations in detailed presentations at the DAML Principal Investigators Meeting and the International Semantic Web Conference tutorial program.
Take (aka Mandarax Compiler) consists of a scripting language that can be used to define derivation rules, and a compiler that creates executable Java code and deploys it into running systems. Take is inspired by Mandarax, has a similar API but does not use a separate interpreter "inference engine". The deployment process is very similar to how web servers treat server pages. The result is optimized, reflective and easy to maintain code.
TermWare is a rule processing engine intended for embedding into Java applications. TermWare implements terminal systems concept. Main range of applications:
JRuleEngine is a java rule engine, based on Java Specification Request 94, release 1.1, i.e. Rules can be loaded by an XML file or by means of JRuleEngine APIs, so rules can be stored externally into a database, too. The distribution consists of a library that can be embedded into a java application, so it can be used in any kind of application (web based or not).
JLisa is a powerful framework for building business rules accessible to Java and it is compatible with JSR94 V, the JavaTM Rule Engine API.
JEOPS - The Java Embedded Object Production System
JEOPS is a Java based forward chaining RULE ENGINE. This Rule Engine is used to power up the business process by rules in Java Application Servers, client applications, and Servlets.
Prova (from Prolog+Java) is a rule-based system for Java and agent scripting and information integration extending the Mandarax engine with a proper language syntax and enhanced semantics. The language breaks new ground in combining expressive and declarative programming. It combines natural syntax and typing of Java with Prolog-style rules and database wrappers. Java calls may include both constructor and method calls as wellas access to public variables in classes. Distributed and agent programming transported via JMS or JADE protocols is based on reaction rules specified in a natural syntax. The language makes it easy for agents to engage in concurrent conversations without starting new threads by using reaction and novel inline reaction rules in a very natural and ecoonomic syntax, directly capturing conversations as state machines.
Open Lexicon is a business rules and business process management tool that rapidly develops applications for transaction and process-based applications. It includes a business rules metadata repository, a business rules engine, and a comprehensive web-based UI for managing and testing the busines rules. It also includes process management tools for orchestrating complex interactions within business rules and business objects.
Zilonis provides a Multithreaded Rules Engine platform and a scripting environment for Java based applications. The core of the Zilonis platform is based on a variation of the forward chainning Rete algorithm described in "Rete: A Fast Algorithm for the Many Pattern/ Many Object Pattern Match Problem", Charles L. Forgy, Artificial Intelligence 19(1982), 17-37.). The implementations follows the optimizations and the structure used in the Soar system, and the ones well described in the paper: "Production Matching for Large Learning Systems", Robert B. Doorenbos. 1995 Multithreaded Capabilities A nice feature and contribution from Zilonis, is that it is multithreaded. Because of that, it is easy to reuse a set of rules across several concurrent users in a safe way, without creating copies of the rules and the engine, as you would have to do if you were to use other engines.
Hammurapi Rules is JSR-94 compliant rules engine. With Hammurapi Rules Java developers don't need to learn a new rules language - rules are written in Java. Hammurapi Rules leverages Java language type system and naming conventions to plug rules into its inference engine.
OpenL Tablets is full-fledged open source Business Rules Management System (LGPL license).
Its business friendly approach to rules authoring and management allows to keep executable business rules as close as humanly possible to the original source and to maintain them by Business Analysts.
OpenL Tablets includes:
DTRules is a Decision Table based Rules Engine. Decision Tables are maintained in spreadsheets, and the actions and conditions are specified in a Domain Specific Language. DTRules is a deterministic rules engine (the Decision Tables define exactly the order in which Rules are applied) which makes DTRules very simple and very very fast.
An extremely simple Java Rule Engine (Non-JSR 94) that uses rules you create in Java. Simply create your basic rules, implement the single "passes" method for each, then chain them together in an XML file to create more complex rules.
© AiKernel 2010-2013
24.07.2012 - 13.02.2013