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. 


 



BRMS Benchmarks - Decision Camp 2014

Greetings:

Once again we will be covering BRMS Benchmarks, this time at Decision Camp 2014 in San Jose, CA.  I covered most of the BRMS Benchmarks in a previous article (above). The new benchmarks for 2014 come from a series of benchmarks known as “NP complete” benchmarks where NP stands for Non-deterministic Polynomial-time.  We have started using these this year, (3Q2014) since we have found that Manners and/or Waltz to be either (1) easy to cheat or (2) that the benchmark fires only one or two rules over and over.  Manners is guilty on both accounts.  So, this year we have include both the Clique Problem and the Vertex Cover Problem for starters.  Later we can expand this to other NP Complete problems. 

Either of these problems can be converted to Java or C syntax but, for starters, I plan on implementing these in Drools, Jess, CLIPS, Smarts, ODM and Blaze Advisor.  That should be enough for comparisons for this year.  Dr. Forgy has been kind enough to have already provided the initial code for these two NP-Complete problems in OPS syntax that we should be able to convert to Java, C/C++ or C#.   Or BASIC for that matter.  If you would like to work on the OPS syntax, here is his suggested code for the LHS of the rules.  If you do work on it, and would like to submit your code without copyrights (except for Apache Copyrights) for the presentation (with appropriate credit, of course) then please send to me.  Thanks.

-----------
CLIQUES:
(find (size 4))
(node (number ?n1))
(node (number ?n2&:(> ?n2 ?n1)))
(edge (from ?n1) (to ?n2))
(node (number ?n3&:(> ?n3 ?n2)))
(edge (from ?n1) (to ?n3))
(edge (from ?n2) (to ?n3))
(node (number ?n4&:(> ?n4 ?n3)))
(edge (from ?n1) (to ?n4))
(edge (from ?n2) (to ?n4))
(edge (from ?n3) (to ?n4))

VERTEX COVER:
(find (size 4))
(node (number ?n1))
(node (number ?n2&:(> ?n4 ?n3)))
(node (number ?n3&:(> ?n3 ?n2)))
(node (number ?n4&:(> ?n4 ?n3)))
(NOT (edge (from ?x&~?n1&~?n2&~?n3&~?n4)))

These assume that every link between two nodes is represented by two edge objects, one for each direction.
----------

Shalom,
jco

Tuesday, June 24, 2014

"The Loved One"

Greetings:

Right now I am watching (with one eye and one ear) "The Loved One" while I write this blog with the other eye and ear.  I do not multi-task very well so I will probably re-write everything later.  (A complete listing of the cast is at the end of this blog so you won't have to go look them up.  My listing is more in order of appearance than alphabetical.)  Anyway, this rather black comedy was made way back in 1965 in B/W by MGM. Everyone (I would hope) knows the legend of Jonathan Winters who, unfortunately, died recently.  I miss him already - he was one of the greatest "du jour" comedians of the time.  I first discovered Robert Morse in "How To Succeed In Business Without Really Trying."  Another classic - but more on that in another blog.

So, when watching the movie, watch for the really cool car in one of the opening scenes when Sir Francis picks up Dennis from the airport.  (See if you can identify it then rather than later.)

Spoiler Alert!!  Go watch the movie THEN come back to my comments.  Otherwise, you will know some of the plot and what is happening.  

Anyway, Sir Francis has been working at the same studio for 31 years. Henry Glenworthy (also played by Jonathan Winters) is first seen pitching a new movie.  Sir Fancis G., of course, is still riding along on his reputation while Henry G. also runs a Pet Cemetary.  (Sound familiar yet?)

In one of the early scenes, just before finding his uncle hanging, Dennis gets a drink of milk from a really old version of a refrigerator, one of which I had in my house in Welling, UK, when I stayed there.  Not exactly the same but really close.  Sometimes we really forget the really nice appliances that we have in the USA - something of which we only become aware when we actually travel abroad and have to use them.  I never did get used to having a refrigerator under the counter rather than eye level.  And the freezer compart was really tiny.  Think of a "dorm fridge" for comparison, only slightly larger.

Whispering Glades is the mortuary - a really old-fashioned view of what was actually a common conception in Hollywood in those days.  It is a parody of another real-world cemetery,  Meaning, extreme opulence, or over-the-top money-poorly-spent to impress the general public. It was drawn from a realy world cemetary, Forest Lawn Memorial Park in Glendale.  But, since the movie was obviously a parody, Forest Lawn could not sue them since it was not directly compared to Forest Lawn.   I  especially liked the part about "The Blessed Reverend Wilbur Glenworthy" descriiption given by the Whispering Glades tour guide (Tab Hunter) at the beginning.  Hilarious!  This was really cool.  I wonder if any of our present-day TV Evangelists have seen this and wonderd, in their hearts, "Could I do this and get away with it?"  Being a Jew myself, it is really cool when the "Old Jew" is turned away.  You probably would not see something like that in any comedy today.  Nor the statues of the nudes (naked men and women) in any PG movie.

Aimée Thanatogenos (played by Anjanette Comer) gives Dennis a tour.  She very aptly plays the air-headed tour guide who knows only what she has been told to say.  

Librace must have given them the expression, "Marvelous!  Simply marvelous!" the world-wide recognition that we use today.  He is absolutely slimy in the role and, having had to bury several of my relatives in the last few years, I could see every one of the casket sales persons in his role. 

Mr. Joyboy (Rod Steiger) is perfect as the mortician.  I have always seen him is really serious roles and is superbly cast in this role, especially when getting Sir Henry ready for burial.  When Mr.Joyboy and


Robert Morse (Dennis Barlow - Poet and Artificial Insemination Donor)
Jonathan Winters  as Henry and Wilbur Glenworthy (Both parts - )
Roddy McDowell as D. J. Junior, BMOC in the movie
Rod Steiger as Mr. Joyboy (Chief embalmer at the mortuary)
James Coburn as the US Customs inspector
Sir John Gielgud as Sir Francis Hensley (Artist, Motion Pictures, etc. - Dennis' uncle)
(Movie Producer)
Robert Easton - Dusty Acres ( )
Robert Morley as Sir Ambrose Ambercrombie
Librace as Mr. Starker (the casket seller)

Enjoy,
Ya'akov

D-Day Reviewed 70 Years Later

Greetings:

June 6, 1944, Zero Hours USA, 0600 UMT:  By this time 70 years ago today, the 82nd and 101st Airborne were already in the air along with their British counterparts, the British 6th Airborne.  The Path Finders had gone along several hours before to mark the landing zones.  What will follow at 0600 (midnight here in the USA) will be the largest naval armada in history that will begin the bombardment of the coast of Normandy in preparation for the landing of between 130K to 150K troops, both airborne and ground assault.  There are many, many movies made about this day:

Time Line:
  • 6/4 1300 : Ike has the men start getting ready for D-Day.  Eisenhower predicts 94% casualties.
  • 6/5 2130 : 82nd and 101st Airborne prepare to board the C-47s for Normandy.
  • 6/5 2300 Airborne are already over the English Channel
  • 6/6 0130 : Paratroopers begin landing behind Omaha and Utah Beaches.  The Airborne units lost over 60 C-47s along with most of the men in the planes that morning due to AA fire.  
  • 6/6 0300 : Initial assault was loaded onto the LC (Landing Craft) from the troop carriers 
  • 6/6 0200 : 5,000 naval vessels move from the UK to Normandy.  This is the largest armada that the world has ever seen.  Over 600,000 men along with the associated tanks, jeeps, mortars, field rifles and trucks are on the way.
  •  6/6 0430 : 115th Reg, 29th Inf Div landing to knock out the big 88mm guns on the beach
  • 6/6 0630 : All forces are landed along a 60-mile front.  The USA landed over 314,000 men on the beach during the first 24 - 48 hours.  Quite an accomplishment for LC that carried on about 20 total men at one time.
  • 6/6 0650 : Rangers land at cliffs of Pointe du Hoc to take out the 88mm guns on the beach
  • 6/6 0830 : Field Marshall Rommel was still at home according to his son wondering if this was the real thing or whether it was just a fake attack since the main attack was expected at Pas de Calais up north of Normandy.  Pas de Calais was the closest point between England and France.
  • 6/6 0900 : Field Marshall Rommel calls for his car to go to Normandy.
  • 6/6 0930 : The beaches are declared as "secured" by the forces.
 Films
Personally, I highly recommend Band of Brothers, The Longest Day and Saving Private Ryan as being some of the more realistic, along with Stalingrad (1993) and Das Boot..  After that, maybe The Big Red One and/or Le Bataillon du ciel.  The best "first" film on D-Day was "The Longest Day" and starred, at the time, everyone who was anyone in Hollywood.  Regardless, the British landed 314K men while the USA landed another 314K men.  All with one goal, to be first to Berlin.  But, that job was left to the Russians because Ike did not want to lose his men in the street battles that would follow and the Russians really wanted Berlin.  After all, the Russians lost more than 20 MILLION people due to WW II.

Anway, shortly, about midnight here, at 0600 GMT, the main battle was started.  There were a lot of politicians there on June 6, 2014, to memorialize the event; most whom have never seen combat - maybe none.  Most have never served in the military, including our own President.  Sad but true.

So, for the D-Day weekend, or any other time, there are your movies.  And you might want to throw in "Kelly's Heroes" and a few others just for good measure.  Remember those who gave all for the rest of the world and eventually defeated the German Nazi strangle-hold on Europe.

Shalom
Yaakov

Friday, June 20, 2014

iPhone, iCloud and Macs

Greetings:

I had a bit of a problem the other day with my iPhone not getting the updates from what I posted to My Calendar on my Mac.  When I accepted an appointment, it went to my Mac but NOT to my iPhone during a subsequent "synch" operation.  So, I called my favorite Mac Geeek, Chelanie Israel in Dallas, aka, Miss Mac.  True.  Most of my problems were with "Dr Appt" and "Webinars" that were not going to my phone to remind me when I was out of the office.  Here was her advice:

"You can click on the 'Dr Appt' On My Mac and go to File -> Export Calendar. It will create and ics file. Put it on your desktop or some directory where you can get to it easily. Then import it and put it into Dr Appt on iCloud. Then unclick and hide the On My Mac calendars and don’t use them, so everything syncs. You’ll want to do the same thing with your Webinars. Looks like you will want to keep the some other events click from On My Mac or move them to the iCloud."

And, voila!  Everything is there on my iPhone the next time that I synched up.  Hope this helps some of you out there if you are also having problems with Calendar.

Ya'akov