{"id":1169,"date":"2018-04-02T13:54:55","date_gmt":"2018-04-02T18:54:55","guid":{"rendered":"http:\/\/haleyai.com\/wordpress\/?p=1169"},"modified":"2018-07-13T18:28:03","modified_gmt":"2018-07-13T23:28:03","slug":"confessions-of-a-production-rule-vendor-part-2","status":"publish","type":"post","link":"http:\/\/haleyai.com\/wordpress\/2018\/04\/02\/confessions-of-a-production-rule-vendor-part-2\/","title":{"rendered":"Confessions of a production rule vendor (part 2)"},"content":{"rendered":"<p>Going on 5 years ago, I wrote <a href=\"http:\/\/haleyai.com\/wordpress\/2013\/06\/22\/confessions-of-a-production-rule-vendor-part-1\/\">part 1<\/a>.\u00a0 Now, finally, it\u2019s time for the rest of the story.<\/p>\n<p><!--more-->The bottom line to this story:<\/p>\n<ul>\n<li><span style=\"text-decoration: underline;\">It\u2019s time to trade rule technology dating back to the 80\u2019s for state of the art AI.<\/span><\/li>\n<\/ul>\n<p>The dominant rule\/policy\/decisioning systems are \u201cproduction rule systems\u201d.\u00a0 Wikipedia defines a \u201cproduction rule system\u201d as follows:<\/p>\n<ul>\n<li>A <strong>production system<\/strong> (or <strong>production rule system<\/strong>) is a computer program typically used to provide some form of artificial intelligence, which consists primarily of a set of rules about behavior. These rules, termed <strong>productions<\/strong>, are a basic representation found useful in automated planning, expert systems and action selection. A production system provides the mechanism necessary to execute productions in order to achieve some goal for the system.<\/li>\n<\/ul>\n<p>Note the reference to out-of-favor \u201cexpert systems\u201d and the lack of anything about reasoning&#8230;<\/p>\n<p>The timeline below, which stops at the point of part 1, is intended to emphasize the following:<\/p>\n<ol>\n<li>80\u2019s technology dominates business rules, policy automation, and decision management<\/li>\n<li>artificial intelligence (AI) and natural language processing (NLP) have improved dramatically<\/li>\n<li>logical reasoning technology has advanced while production rule technology remains stagnant<\/li>\n<\/ol>\n<p>It has more specific themes related to deep NLP, knowledge acquisition, and reasoning technology that the most competent AI systems all involve.\u00a0 Although not critical to the point of this confession, the advances in Prolog technology since XSB, Flora-2, and SILK are notable.<a href=\"#_ftn1\">[1]<\/a> More recently, deep learning is being applied to logical reasoning technology (for example see this <a href=\"https:\/\/github.com\/tensorflow\/deepmath\">Google Research<\/a>).<\/p>\n<p>Let\u2019s pick up the story after this 30+ year timeline:<\/p>\n<ul>\n<li>1981 Carnegie Mellon <a href=\"At%20the%20same%20time,%20Vulcan%20was%20developing%20SILK%20to%20address%20limitations%20in%20the%20Knowledge%20Machine%20used%20by%20AURA%20to%20answer%20advanced%20placement%20(AP)%20questions%20in%20science,%20engineering,%20technology,%20and%20math%20(STEM).\">OPS5<\/a> \u2013 non-logical, forward-chaining, production rule system<\/li>\n<li>1982 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Fifth_generation_computer\">Japan\u2019s 5<sup>th<\/sup> generation computer challenge<\/a> \u2013aims to build Prolog super-computers<\/li>\n<li>1983 AI startups: Carnegie Group, Intellicorp, Teknowledge, Inference Corp<\/li>\n<li>1983 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Warren_Abstract_Machine\">Prolog WAM<\/a> \u2013 Warren Abstract Machine compiles logic programming language<\/li>\n<li>1984 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Cyc\">MCC Cyc<\/a> \u2013 acquisition of common sense knowledge project begins<\/li>\n<li>1984 Inference Corp ART \u2013forward\/backward Automated Reasoning Tool (LISP)<a href=\"#_ftn2\">[2]<\/a><\/li>\n<li>1985 <a href=\"https:\/\/en.wikipedia.org\/wiki\/CLIPS\">NASA CLIPS<\/a> \u2013forward-chaining clone of Inference\u2019s ART for IBM PCs (C)<\/li>\n<li>1985 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Neuron_Data\">Neuron Data Nexpert<\/a> \u2013 expert system shell for Apple PCs<\/li>\n<li>1988 <a href=\"https:\/\/mitpress.mit.edu\/books\/core-language-engine\">SRI CLE<\/a> \u2013deep NLP: unification-based grammar &amp; under-specified semantics<\/li>\n<li>1989 <a href=\"http:\/\/www.ai.sri.com\/~stickel\/\">SRI PTTP<\/a> \u2013 Prolog Technology Theorem Prover<\/li>\n<li>1990 <a href=\"http:\/\/haleyai.com\/wordpress\/2008\/02\/20\/haley-art-syntax-lives-on-in-open-source-java-rules\/\">Haley Eclipse<\/a> \u2013 forward &amp; backward chaining (C\/C++)<\/li>\n<li>1994 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Cyc\">Cycorp Cyc<\/a> \u2013 encyclopedic ontology &amp; logical inference engine spins out of MCC<\/li>\n<li>1995 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Jess_(programming_language)\">Sandia JESS<\/a> \u2013 Java clone of CLIPS<\/li>\n<li>1995 <a href=\"https:\/\/en.wikipedia.org\/wiki\/XSB\">XSB Prolog SLG<\/a> \u2013 improved Prolog with tabling<\/li>\n<li>1996 <a href=\"https:\/\/en.wikipedia.org\/wiki\/ILOG\">Ilog JRules<\/a> \u2013forward chaining (Java)<\/li>\n<li>1997 <a href=\"https:\/\/nyuscholars.nyu.edu\/en\/publications\/xsb-a-system-for-efficiently-computing-well-founded-semantics\">XSB Prolog WFS<\/a>\u2013 incorporates \u201c<a href=\"https:\/\/en.wikipedia.org\/wiki\/Well-founded_semantics\">well-founded semantics<\/a>\u201d<\/li>\n<li>1998 <a href=\"http:\/\/haleyai.com\/documents\/Authority_Tutorial.pdf\">Haley Authority<\/a> \u2013 deep NLP translates English into production rules<\/li>\n<li>1998 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Attempto_Controlled_English\">Zurich ACE<\/a> \u2013Attempto Controlled English for logic programming<\/li>\n<li>2000 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Flora-2\">SUNY FLora-2<\/a> \u2013 higher-order, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Defeasible_logic\">defeasible logic<\/a> based on XSB Prolog<\/li>\n<li>2002 <a href=\"http:\/\/www.fico.com\/en\/products\/fico-blaze-advisor-decision-rules-management-system\">Fair Isaac Blaze Advisor<\/a>\u2013 via acquisition of Neuron Data via Brokat via HNC<\/li>\n<li>2004 <a href=\"https:\/\/www.aaai.org\/ojs\/index.php\/aimagazine\/article\/download\/1783\/1681\">Vulcan Project Halo<\/a> \u2013 Cyc, SRI, et al take advanced placement tests using logic<\/li>\n<li>2005 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Semantics_of_Business_Vocabulary_and_Business_Rules\">OMG SBVR<\/a> \u2013 standard based on the logic of English beyond BRMS vendors<\/li>\n<li>2006 <a href=\"https:\/\/www.redhat.com\/en\/technologies\/jboss-middleware\/decision-manager\">Red Hat Decision Manager<\/a> \u2013 via acquisition of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Drools\">JBoss Drools<\/a><\/li>\n<li>2007 <a href=\"https:\/\/dl.acm.org\/citation.cfm?id=1557781\">C&amp;C and Boxer<\/a> \u2013 deep NLP translates English into first-order logic<a href=\"#_ftn3\">[3]<\/a><\/li>\n<li>2008 Microsoft Bing \u2013 acquires deep NLP of <a href=\"http:\/\/www2.parc.com\/isl\/groups\/nltt\/xle\/\">Xerox XLE<\/a> by way of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Powerset_(company)\">Powerset<\/a><\/li>\n<li>2008 <a href=\"https:\/\/www.oracle.com\/applications\/oracle-policy-automation\/index.html\">Oracle Policy Automation (OPA)<\/a> \u2013 via acquisition of Haley<\/li>\n<li>2009 <a href=\"https:\/\/www.ibm.com\/automation\/software\/business-rules-management\">IBM Operational Decision Manager<\/a> \u2013 via acquisition of Ilog<\/li>\n<li>2010 <a href=\"http:\/\/silk.semwebcentral.org\/\">Vulcan SILK<\/a>\u2013 enhanced Flora-2 and XSB Prolog for deep question answering<\/li>\n<li>2011 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Watson_(computer)\">IBM Watson<\/a> \u2013 deep NLP for simple QA versus Jeopardy champions<\/li>\n<li>2012 <a href=\"http:\/\/haleyai.com\/wordpress\/linguist%e2%84%a2\/\">Automata Linguist<\/a> \u2013 deep NLP translates textbook English into SILK knowledge<\/li>\n<li>2013 <a href=\"https:\/\/www.nytimes.com\/2018\/02\/28\/technology\/paul-allen-ai-common-sense.html\">Allen Institute for AI<\/a> \u2013 zigs to deep learning and zags back to \u201ccommon sense\u201d<\/li>\n<li>2013 <a href=\"http:\/\/haleyai.com\/wordpress\/2013\/06\/22\/confessions-of-a-production-rule-vendor-part-1\/\">Part 1 of this article<\/a><\/li>\n<\/ul>\n<p>Part 1 addresses the logical inadequacies of production rule systems.\u00a0 It also addresses their inability to implement what the community specified in the SBVR standard.\u00a0 This is further discussed and graphically presented in a subsequent post on <a href=\"http:\/\/haleyai.com\/wordpress\/2013\/09\/13\/requirements-for-logical-reasoning\/\">requirements for logical reasoning<\/a>.<\/p>\n<p>At the time of Part 1, I hoped Vulcan would release SILK to the public.\u00a0\u00a0 SILK was experimental but promising.\u00a0 Vulcan\u2019s funding over 5 years led to significant improvements in Flora and XSB, some of which were also incorporated into Cyc. \u00a0Among them were a transformation of extended first-order logic into Flora-2 code (which is an extended form of Prolog). \u00a0There was also a nice explanation facility, as shown below for a question answered with knowledge captured using the Linguist.<a href=\"#_ftn4\">[4]<\/a><\/p>\n<p>If you take even a cursory look at other articles here, it should be clear that the <a href=\"http:\/\/haleyai.com\/wordpress\/linguist%e2%84%a2\/\">Linguist<\/a> can generate sophisticated logic.\u00a0 So, I was most concerned with the functionality of SILK\u2019s transform.\u00a0 Unfortunately, Vulcan never released SILK, so this part 2 was delayed until a replacement developed.<a href=\"#_ftn5\">[5]<\/a><\/p>\n<p>By the end of 2013, <a href=\"http:\/\/coherentknowledge.com\/\">Coherent Knowledge<\/a> had formed to develop Ergo, a successor to SILK.\u00a0 But starting from Flora and XSB meant that much of what had been developed in SILK had to be recreated by a smaller team.\u00a0 It took Coherent a few years to get to the point that we could target their product, Ergo.<\/p>\n<p>We could not rely solely on our Coherent friends, however.\u00a0 We had no practical alternative but to develop an alternative.\u00a0 Now we can translate English into various theorem proving systems and into Flora or XSB (and, of course, Ergo).<\/p>\n<ul>\n<li>We can do this for any rule- or axiom-based technology (e.g., <a href=\"https:\/\/en.wikipedia.org\/wiki\/Web_Ontology_Language\">W3C OWL<\/a>, <a href=\"http:\/\/www.cs.cmu.edu\/~sef\/scone\/\">CMU SCONE<\/a>, and <a href=\"http:\/\/www.cs.miami.edu\/~tptp\/\">TPTP provers<\/a>, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Common_Logic\">ISO Common Logic<\/a>, <a href=\"https:\/\/en.wikipedia.org\/wiki\/CycL\">CycL<\/a>, etc.).<\/li>\n<li>If you are interested, we could also generate production rules, such as for the <a href=\"http:\/\/haleyai.com\/wordpress\/2008\/02\/20\/haley-art-syntax-lives-on-in-open-source-java-rules\/\">ART\/CLIPS syntax<\/a> or other systems listed above.<\/li>\n<\/ul>\n<p>For details, see <a href=\"http:\/\/haleyai.com\/wordpress\/2018\/04\/02\/simply-logical-english\/\" target=\"_blank\">Simply Logical English<\/a>.<\/p>\n<p>We have already done so for most of those listed here and welcome the opportunity to work with others to make the Linguist work for them.\u00a0 For example, Intel funded the work that produces OWL and SCONE.<\/p>\n<p>Here is what you need to know:\u00a0 The Linguist makes it easy to eliminate all ambiguity from completely natural English.<\/p>\n<ol>\n<li>all sources of ambiguity become readily apparent and are easily resolved\n<ul>\n<li>no linguistic or logical skills beyond mere literacy are required<\/li>\n<li>very good for business analysis and knowledge engineers<\/li>\n<li>great for linguistic and logic education and experts<\/li>\n<li>it\u2019s generally available under a public-use license<\/li>\n<\/ul>\n<\/li>\n<li>Machine translation of English into logic is fast, easy, and reliable.\u00a0 Doing so by hand is painstaking and error prone.\n<ul>\n<li>highly skilled experts take time to translate even simple English into logic or rules<\/li>\n<li>the resulting \u201ccode\u201d is likely to suffer from errors of omission or expression<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>As for automating the knowledge in a business process, intelligent agent, or QA system, we target any of the following:<\/p>\n<ol>\n<li>Theorem proving yields the most powerful reasoning.\n<ol>\n<li>but it typically fails miserably given inconsistent axioms (i.e., rules)<\/li>\n<\/ol>\n<\/li>\n<li>XSB Prolog provides more powerful reasoning than production systems.\n<ol>\n<li>it can handle logical inconsistences unlike theorem provers<\/li>\n<li>it is more practical and easier to use than other Prologs<\/li>\n<\/ol>\n<\/li>\n<li> Flora offers more robustness and usability than XSB alone.<\/li>\n<\/ol>\n<p>Overall, we recommend Flora and XSB.<a href=\"#_ftn6\">[6]<\/a><\/p>\n<ul>\n<li>XSB Prolog is commercial, open-source.\u00a0 It has been used in IBM Watson and by U.S. Customs.<\/li>\n<li>Flora-2 is academic, open-source.\u00a0 It has been used by Vulcan SILK, in <a href=\"https:\/\/sunflower.csl.sri.com\/\">SRI\u2019s Sunflower<\/a>, and others.<\/li>\n<\/ul>\n<hr size=\"1\" \/><a href=\"#_ftnref1\">[1]<\/a> All the while, Cyc advances&#8230;<\/p>\n<p><a href=\"#_ftnref2\">[2]<\/a> The author was Chief Scientist and Doug Lenat of Cyc was scientific advisor<\/p>\n<p><a href=\"#_ftnref3\">[3]<\/a> via under-specified semantic representation (USR) resulting from a unification-based grammar (CCG)<\/p>\n<p><a href=\"#_ftnref4\">[4]<\/a> Explanations provided by SILK for questions answered using knowledge captured by the Linguist:<\/p>\n<p><a href=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/SILKexplanation1.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1171\" title=\"SILKexplanation1\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/SILKexplanation1.gif\" alt=\"\" width=\"618\" height=\"229\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/SILKexplanation1.gif 618w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/SILKexplanation1-300x111.gif 300w\" sizes=\"auto, (max-width: 618px) 100vw, 618px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/SILKexplanation2.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1172\" title=\"SILKexplanation2\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/SILKexplanation2.gif\" alt=\"\" width=\"658\" height=\"202\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/SILKexplanation2.gif 658w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/SILKexplanation2-300x92.gif 300w\" sizes=\"auto, (max-width: 658px) 100vw, 658px\" \/><\/a><\/p>\n<p><a href=\"#_ftnref5\">[5]<\/a> Vulcan kindly permitted us to use SILK towards a concept motivated by <a href=\"http:\/\/inquireproject.com\/\">the Inquire prototype<\/a>.<\/p>\n<p><a href=\"#_ftnref6\">[6]<\/a> at least until there is a modern <a href=\"http:\/\/www.ai.sri.com\/~stickel\/\">PTTP<\/a> with a couple of important features that XSB can now support thanks to Vulcan<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Going on 5 years ago, I wrote part 1.\u00a0 Now, finally, it\u2019s time for the rest of the story.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[72,9,10,12,16,21],"tags":[824,848,687,603,41,847,821,825,845,852,823,83,842,841,828,97,686,882,809,108,109,111,554,542,849,822,154,835,167,820,521,840,179,181,182,185,851,834,211,826,827,214,888,616,552,615,405,231,418,819,238,830,831,836,833,268,843,462,829,846,839,608,832,807,495,497,306,844,838,837,568,559,850,321],"class_list":["post-1169","post","type-post","status-publish","format-standard","hentry","category-business-rules-management","category-decision-management","category-formal-logic","category-knowledge-engineering","category-natural-language","category-rules-engines","tag-5th-generation-computer","tag-ace","tag-ai","tag-allen-institute-for-ai","tag-artificial-intelligence","tag-attempto-controlled-english","tag-automated-reasoning","tag-automated-reasoning-tool","tag-axiomatic-knowledge","tag-carnegie-group","tag-carnegie-mellon","tag-clips","tag-cmu","tag-coherent-knowledge","tag-core-logic-engine","tag-cyc","tag-cycorp","tag-decision-management","tag-deepmind","tag-doug-lenat","tag-drools","tag-eclipse","tag-expert-system","tag-explanation","tag-fair-isaac-blaze-advisor","tag-flora-2","tag-haley","tag-ibm-operational-decision-manager","tag-ilog","tag-inference-engine","tag-inquire","tag-intellicorp","tag-jboss","tag-jess","tag-jrules","tag-knowledge-acquisition","tag-microsoft-bing","tag-nasa","tag-natural-language-processing","tag-neuro-data","tag-nexpert","tag-nlp","tag-ontology","tag-opa","tag-ops5","tag-oracle-policy-automataion","tag-policy-automation","tag-powerset","tag-production-rule","tag-production-system","tag-prolog","tag-prolog-technology-theorem-prover","tag-pttp","tag-red-hat-decision-manager","tag-sandia","tag-sbvr","tag-scone","tag-silk","tag-sri","tag-sri-sunflower","tag-teknowledge","tag-theorem-proving","tag-thousands-of-problems-for-theorem-provers","tag-tptp","tag-under-specified-representation","tag-usr","tag-vulcan","tag-w3c-owl","tag-wam","tag-warren-abstract-machine","tag-watson","tag-well-founded-semantics","tag-xerox-xle","tag-xsb"],"_links":{"self":[{"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/posts\/1169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/comments?post=1169"}],"version-history":[{"count":16,"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/posts\/1169\/revisions"}],"predecessor-version":[{"id":1506,"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/posts\/1169\/revisions\/1506"}],"wp:attachment":[{"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/media?parent=1169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/categories?post=1169"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/tags?post=1169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}