Going on 5 years ago, I wrote part 1. Now, finally, it’s time for the rest of the story.
This is not all that simple of an article, but it walks you through, from start to finish, how we get from English to logic. In particular, it shows how English sentences can be directly translated into formal logic for use with in automated reasoning with theorem provers, logic programs as simple as Prolog, and even into production rule systems.
There is a section in the middle that is a bit technical about the relationship between full logic and more limited systems (e.g., Prolog or production rule systems). You don’t have to appreciate the details, but we include them to avoid the impression of hand-waving
The examples here are trivial. You can find many and more complex examples throughout Automata’s web site.
Consider the sentence, “A cell has a nucleus.”:
If you are considering the use of any of the following business rules management systems (BRMS):
- IBM Ilog JRules
- Red Hat JBoss Rules
- Fair Isaac Blaze Advisor
- Oracle Policy Automation (i.e., Haley in Siebel, PeopleSoft, etc.)
- Oracle Business Rules (i.e., a derivative of JESS in Fusion)
you can learn a lot by carefully examining this video on decisions using scoring in Ilog. (The video is also worth considering with respect to Corticon since it authors and renders conditions, actions, and if-then rules within a table format.)
This article is a detailed walk through that stands completely independently of the video (I recommend skipping the first 50 seconds and watching for 3 minutes or so). You will find detailed commentary and insights here, sometimes fairly critical but in places complimentary. JRules is a mature and successful product. (This is not to say to a CIO that it is an appropriate or low risk alternative, however. I would hold on that assessment pending an understanding of strategy.)
The video starts by creating a decision table using this dialog:
Note that the decision reached by the resulting table is labeled but not defined, nor is the information needed to consult the table specified. As it turns out, this table will take an action rather than make a decision. As we will see it will “set the score of result to a number”. As we will also see, it references an application. Given an application, it follows references to related concepts, such as borrowers (which it errantly considers synonomous with applicants), concerning which it further pursues employment information.
I hope those interested in artificial intelligence enjoy the following paper . I wrote it while Chief Scientist of Inference Corporation. It was published in the International Joint Conference on Artificial Intelligence over twenty years ago.
The bottom line remains:
- intelligence requires logical inference and, more specifically, deduction
- deduction is not practical without a means of subgoaling and backward chaining
- subgoaling using additional rules to assert goals or other explicit approaches is impractical
- backward chaining using a data-driven rules engine requires automatic generation of declarative goals
We implemented this in Inference Corporation’s Automated Reasoning Tool (ART) in 1984. And we implemented it again at Haley a long time ago in a rules langauge we called “Eclipse” years before Java.
Regretably, to the best of my knowledge, ART is no longer available from Inference spin-off Brightware or its further spin-off, Mindbox. To the best of my knowledge, no other business rules engine or Rete Algorithm automatically subgoals, including CLIPS, JESS, TIBCO Business Events (see above), Fair Isaac’s Blaze Advisor, and Ilog Rules/JRules. After reading the paper, you may understand that the resulting lack of robust logical reasoning capabilities is one of the reasons that business rules has not matured to a robust knowledge management capability, as discussed elsewhere in this blog. Continue reading “Goals and backward chaining using the Rete Algorithm”