Thursday, June 26, 2014

Where Can I Find a Good Rulebase ?

Greetings:
[Updated 10 July 2014]
[Updated 20 July 2014]

Basically, this is a major part of Chapter Four of our new book that should be coming out the first of next year.  If you work for one of these products or companies and I have made an error, please contact me at jco@kbsc.com rather than making a comment here.  Thanks,


Shareware

-        C/C++, LISP, et. al.  Most of the early AI engines were written in List Processor (LISP) language that, while very descriptive and modular, was, nevertheless, quite slow.  There were also many that were written in languages such as BASIC, Pascal, C/C++ and even in COBOL.  However, very few of those were commercial engines.  LISP was a beautiful language (except for the over use of the parenthesis) and was the darling of most of the academia.  Nevertheless, LISP was so exceedingly slow that there were LISP machines dedicated to doing only one job; running programs in LISP.  Most of the early (and even some of the later incarnations) of the Production Systems rulebase programs were written in LISP.

-        Common LISP Reasoner : The Common Lisp Reasoner extends the Common Lisp Object System (CLOS) to incorporate a powerful rule language suitable for all kinds of reasoning tasks, vanilla XML and RDF/XML interfaces, and support for a variety of AI-related applications, such as scheduling, planning and diagnosis.  The main site is http://sourceforge.net/projects/reasoner/?source=pdlp and the download site is http://sourceforge.net/projects/reasoner/files/latest/download?source=pdlp .

-        CLIPS (C-Language Interface to Production Systems): Written mainly by Gary Riley (when he was still at NASA) it was one of the first to have book associated with just one particular RuleBased System:  Girratano and Riley, Introduction to Expert Systems.  The syntax is still OPS-style but it will run almost any Jess rulebase if the classes are re-written into C/C++ syntax.  It also has many, many FORTRAN-like subroutines because that was what NASA wanted at the time.  This can still be obtained free from http://sourceforge.net/projects/clipsrules/?source=directory.  Also available are

o   CLIPS with Lock Support: CLIPS is a forward-chaining rule-based programming language written in C that also provides procedural and object-oriented programming facilities.  CLIPS is probably one of the first implementations of a “modern-langauge” Rulebase outside of OPS environments.  It can be found at http://sourceforge.net/projects/clipswl/?source=directory  

o   CLIPSwl is a modified project based on CLIPS(C Language Integrated Production System)(https://sourceforge.net/projects/clipsrules/), a public domain open-source software tool for building expert systems. CLIPS(ver. 6.24) is unsafe when access simultaneously occurs at the same environment, because the environment data of CLIPS are not protected for simultaneous access.

We modified the CLIPS (ver. 6.24) to support lock/unlock functions in a flexible way.
CLIPSwl doesn't use complicated logic such as platform-independent mutex,
but newly defines 4 abstract functions (i.e. using function pointers) for allocating, acquiring, releasing and deallocating locks of the environment data.
Users may define their own functions that fit for their system by using their platform-dependent mutex.  My Note:  CLIPS 6.24 is significantly slower than CLIPS 6.3.

CLIPSwl also support the safe string-related functions treating the rules,
and refining the warning parts of the code when compiling with gnu g++ compiler.

o   CLIPS Editor: An editor just for CLIPS: http://sourceforge.net/projects/clipseditor/?source=directory

o   Interface to CLIPS Library: clipsmm is a C++ interface to the CLIPS libray, a C library for developing expert systems. http://sourceforge.net/projects/clipsmm/?source=directory

o   DCLIPS or OO-CLIPS: Implementation of Rete pattern-matching algorithm, with scripting language based on COOL (CLIPS Object Oriented Language): http://sourceforge.net/projects/clips-sharp/?source=directory

(Comments by Gary Riley - 20 July 2014)  It was written mainly by myself and Brian Dantes.
I think Programming Expert Systems in OPS5, http://www.amazon.com/Programming-Expert-Systems-Ops5-Addison-Wesley/dp/0201106477, predated CLIPS as the first book associated with a particular language.
I'm not sure what the "many, many FORTRAN-like subroutines" statement is referring to. Being able to integrate with languages used operationally with NASA, such as C and FORTRAN, was a key goal for CLIPS, but  having FORTRAN-like subroutines, whatever that means, was never a consideration.

 (jco) Many of the sub-routines are FORTRAN-like and seem designed for engineers.  "Seem" being the operative word.
 

-        DROOLS (Dynamic Rule Object Oriented Language System - http://drools.jboss.org ) has the distinction of being one of the few (only one of which we are aware) XML-based rulebased systems and uses Java as it’s shell.  Source code is available.  Drools uses a slightly modified version of the Rete algorithm called the Rete-OO algorithm.  This has to do with root-nodes available in XML as part of OO languages.  However, one should also remember that anything to do with XML (at the time of this writing) also has a name space problem.  Meaning that there are many times that the same name can NOT be used, even with proper name space declaration.  In 2013 Mark Proctor (Drools inventor and project lead for JBoss) changed the main algorithm to a more OO approach and he is still dealing with the consequences as of the time of this writing.

-        Intelligent Agents for LISP -∫: Lisa is a production rule system for Common Lisp, whose purpose is to provide a foundation for the development of "intelligent" applications. Lisa employs a modern CLOS implementation of Rete and is based on CLIPS and Jess.

-        Jess (Java Expert System Shell - http://herzberg.ca.sandia.gov/jess/ )  is the brainchild of Dr. Ernest Freidman-Hill of Sandia labs. Initially, Dr. Friedman-Hill did some work on optimization of the Rete algorithm and it was quite fast for its time.  However, it has not improved much over the years and, as a result, seems to be lagging behind ReteNT, OPSJ, Blaze Advisor, ODM and Drools in terms of speed.  Source code is available but there is a charge for commercial use of the product with certain export limits for used outside the USA.  Dr. Freidman-Hill maintains an email list of Jess users and is quite quick in his response time on answers to questions; sometimes within seconds, but usually within a few hours and within 24 hours the very most.

o   There is a fuzzy logic addendum for Jess that can be obtained for a nominal charge from Bob Orchard, http://www.iit.nrc.ca/IR_public/fuzzy/fuzzyJToolkit2.html .  Please contact Bob.Orchard@nrc-cnrc.gc.ca for more details on Jess Fuzzy logic.  .

-        JEOPS: Jave Extended OPS: 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.  The main page is http://sourceforge.net/projects/jeops/?source=pdl and the download link is http://sourceforge.net/projects/jeops/files/latest/download?source=recommended .

-        JLisa – Intelligent Agenst for LISP: JLisa, "Java Lisp-based Intelligent Software Agents", is based on Lisa, http://lisa.sourceforge.net/, a production rule system similar to Jess. It runs in java through ABL, armed-bear Lisp.  It can be found at and the download link is http://sourceforge.net/projects/jlisa/files/latest/download?source=recommended .

-        JRule Engine : The project consists of a library based on Java Specification Request 94, release 1.1, i.e. is a java rule engine. Please refer to "Java Rule Engine API - JSR-94" document (file jsr94_spec.pdf) included in JSR-94 distribution. The main page (from IBM – NOT JRules nor ODM) is at http://sourceforge.net/projects/jruleengine/?source=pdlp and is still downloadable at http://sourceforge.net/projects/jruleengine/files/latest/download?source=files .

-        JxBRE - Light-weight Java based Business Rules Engine (BRE) that uses XML as a way to control process flow for an application in an external entity. Soon to comply to JSR 94.  The home site is http://sourceforge.net/projects/jxbre/ and the download site is http://sourceforge.net/projects/jxbre/files/latest/download .

-        NxBRE is a lightweight Business Rule Engine (aka Rule Based Engine) for the .NET platform, composed of a forward-chaining inference engine and an XML-driven flow control engine. It supports RuleML 0.9 Naf Datalog and Visio 2003 modeling.  Their home page is at http://sourceforge.net/projects/nxbre/?source=recommended but I could not find anything that said anything about the Rete Algorithm.

Commercial

-        Aion is one of the elders statesmen of the industry.  It is most designed for mainframe applications.  Wikipedia describes it as such but thier website, http://en.wikipedia.org/wiki/Cleverpath_AION_Business_Rules_Expert , tells a different story.  They have many rulebase tools and even a Java interface as well as a C/C++ interface.  Further, Aion seems to be an IBM company in disguise.  Colossus, a computer program, developed by Computer Sciences Corporation, is the insurance industry’s leading expert system for assisting adjusters in the evaluation of bodily injury claims (aka "pain and suffering"). Colossus helps adjusters reduce variance in payouts on similar bodily injury claims through objective use of industry standard rules.  Kirk Wilson and Michael Parish are award winning Aion developers who have done much to advance the use of the tool within various industries.

-        Fair Isaac Corporation “Blaze Advisor” was originally founded as Neuron Data in about 1984 with their flagship product, Nexpert, a true full-opportunistic, backward-chaining rulebased system written in C.  Later, the product moved to the OO world with C++.  With the advent of Java in 1986-87, ND developed their version of a forward-chaining system called Advisor.  The original version, like Nexpert, did not use Rete but a home-grown version of an optimizer.  Version 2, introduced as a beta product in mid-1988 and as the full-blown version in February of 1989, did use the an updated version of the Rete algorithm.  By this time, the company was already moving to become public and had replaced the original founders with IBM-type corporate figure heads. 

o   When the company went public in April of 2000, they changed the name to Blaze Software to try to move away from the Artificial Intelligence stigma and toward a more business-like approach, though how in the world a corporate name like “Blaze” was supposed to do this one can hardly imagine.  At any rate, the company was bought by Brokat, a web consulting company in Germany for $585 million straight stock swap.  All this before the six-month lock-out period expired for the original stockholders.   With the stock market already in a downward spiral, Brokat never had a chance and they eventually sold the Blaze Advisor rulebase system, along with the personnel and software, to HNC.  HNC then sold it off to Fair Isaac Corporation (FICO) where it is at this time. 

o   Commercially, the Blaze Advisor is the Cadillac of all the rulebased systems; meaning that it has all of the comforts of home but at an extremely high price.  Before the acquisition of Rules Power, which gave FICO the Rete 2, aka Rete III, algorithm, it has the worst benchmarks on Solaris systems .  However, BlazeAdvisor performed with the best of the systems (except for OPSJ) on Windows NT, Win2K, Windows XP  and Windows 7/8.  Today, it ranks #3, right behind OPSJ-ReteNT (#10 and Sparkling Logic SMARTS (#2). 

-        ILOG JRules, now IBM ODM:  ILOG originally started in Paris, France (like Neuron Data) in 1987 and opened and office in Mountain View, CA, shortly thereafter.  The company was bought by IBM in 2009 and the product name was changed to IBM ODM (Optimized Decision Manager.)  The main link is http://www-01.ibm.com/software/info/ilog/ .  Originally the breadth of the ILOG products were (shown as IBM products for the main description):
·       IBM WebSphere ILOG JRules, a business rule management system (BRMS) that enables both business and IT users to write and maintain the logic applied by applications that automatically implement decisions.
·       IBM ILOG CPLEX, optimization software for mathematical programming
·       IBM ILOG JViews, a visualization development system based on Java and supported with add-ons for Gantt charts, graphs, maps and diagrams
·       IBM ILOG Elixir component sets for Adobe AIR and Adobe Flex platforms
·       ILOG Solver was considered the market leader in commercial constraint programming software as of 2006.[1]  
  • InRule: [InRule Marketing Blurb] A Microsoft Certified Gold Partner, InRule Technology has been delivering InRule, another .NET Business Rule Management System for the Microsoft platform, since 2002.  InRule Technology helps you turn your rules into measureable IT and business results by making it easy to align the logic of core applications with ever-changing marketplace and customer needs.  InRule Technology is trusted by hundreds of organizations for mission-critical and customer-facing applications.   [There was a major meeting of InRule with the National WIC in Dallas, TX, on 21 September 2013.
-        (PST) OPSJ is the latest invention of Dr. Charles Forgy, the inventor of the Rete Algorithm in about 1989. (Forgy-79)  The Rete algorithm has been credited with making commercialization of rulebased systems possible (Girratano-98) and has since been superceded by the proprietary Rete 2 algorithm.  Dr. Forgy also laid the ground work for Rete systems with CLIPS/R2 (a C/C++ version of CLIPS that uses the Rete 2 algorithm) and with OPS/R2, a LISP-based system that uses Rete 2.  (Yes, Dr. Forgy is also one of the authors of this book.)

o   OPSJ was delivered to the world in 1998 and is, at the time of the writing of this book, at version level 6.  It is still without peer in terms of speed and smallness of footprint, meaning that the runtime engine takes only about 100KB or less.  The speed has to do with the Rete 2 algorithm that optimizes memory space required and number of objects examined.  The size has to do with the absence of any API (at this time) and that OPSJ is a superset of Java rather than just using the Java engine.
o   Since that time, in about 2010, Dr. Forgy introduced Rete-NT.  This version of the Rete Algorithm can be used with almost any forward-chaining rulebase and is 10 times faster than Rete-2 (OPSJ) or Rete-III (Blaze Advisor) when using large datasets and complex rulebase queries such as those for Homeland Security and other massive applications.

-        Pega Systems used to have an independent rulebase system but has since rolled it back into their overall product system.

-        Sparkling Logic SMARTS : These are the new kids on the block.  The company is composed mostly of former FICO VP’s, tool designer and engineers along with a smattering of  former ILOG folks.  SMARTS is actually really cool with the way the basic rules, predictive analytics, decision tables, decision trees and decision graphs all work seamlessly.  They have a thing called a “Red Pen” and “Blue Pen” – the former being the rulebase and the other being the predictive analytics part of the tool.  I would that everyone would do this so that I did not have to bring one down in order to bring up the other.  Besides all of that, SMARTS uses the Rete-NT algorithm, the latest andgreatest from Dr. Charles Forgy, and ranks in performance on very large rulesets/datasets right behind OPSJ-Rete-NT. 


 



No comments: