{"id":260,"date":"2010-02-21T18:17:47","date_gmt":"2010-02-21T23:17:47","guid":{"rendered":"http:\/\/haleyai.com\/wordpress\/?p=260"},"modified":"2016-06-09T08:15:31","modified_gmt":"2016-06-09T13:15:31","slug":"ibm-ilog-jrules-for-business-modeling-and-rule-authoring","status":"publish","type":"post","link":"http:\/\/haleyai.com\/wordpress\/2010\/02\/21\/ibm-ilog-jrules-for-business-modeling-and-rule-authoring\/","title":{"rendered":"IBM Ilog JRules for business modeling and rule authoring"},"content":{"rendered":"<p>If you are considering the use of any of the following business rules management systems (BRMS):<\/p>\n<ul>\n<li>IBM Ilog JRules<\/li>\n<li>Red Hat JBoss Rules<\/li>\n<li>Fair Isaac Blaze Advisor<\/li>\n<li>Oracle Policy Automation (i.e., Haley in Siebel, PeopleSoft, etc.)<\/li>\n<li>Oracle Business Rules (i.e., a derivative of JESS in Fusion)<\/li>\n<\/ul>\n<p>you can learn a lot by carefully examining this video <a href=\"http:\/\/www.youtube.com\/watch?v=l_DmDvWR_wM&amp;feature=youtube_gdata\" target=\"_blank\">on decisions using scoring in Ilog<\/a>.\u00a0 (The video is also worth\u00a0considering with respect to\u00a0Corticon since it authors and renders conditions, actions, and if-then rules within a table format.)<\/p>\n<p>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).\u00a0 You will find detailed commentary and insights here, sometimes fairly critical but in places complimentary.\u00a0 JRules is a mature and successful product.\u00a0 (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.)<\/p>\n<p>The video starts by creating a decision table using this dialog:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-261\" title=\"IBM_Ilog_JRules_decision_table_dialog\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image001.png\" alt=\"\" width=\"624\" height=\"210\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image001.png 624w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image001-300x100.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/p>\n<p>Note that the decision reached by the resulting table is labeled but not defined, nor is the information needed to consult the table specified.\u00a0 As it turns out, this table will take an action rather than make a decision.\u00a0 As we will see it will &#8220;set the score of result to a number&#8221;. As we will also see, it references an application.\u00a0 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.<\/p>\n<p><!--more--><\/p>\n<p>Ilog would do well to improve this dialog with a means of specifying the inputs and decisions.\u00a0 In this case, the only required input is an application and the sole output would be the score suggested for the application based on stability at work.\u00a0 Note that this dialog does not even reflect that there is a score for stability at work in the business or decision model used by this application.\u00a0 I think Fair Isaac would do better in this regard and IBM had better designs in the rules connector for WebSphere (before the Ilog acquisition).<\/p>\n<h2>With or Without Then<\/h2>\n<p>Although the video is situated within Ilog&#8217;s tabular metaphor, it demonstrates the typical Ilog rule authoring metaphor, which consists of two components: conditions and actions.\u00a0 Not every rule system is limited to Ilog&#8217;s &#8220;if-then&#8221; functionality, but such production rules (as they are known by computer scientists) dominate the industry.\u00a0 Production rules always have a &#8220;then&#8221;.<\/p>\n<p>If you are interested in more expressiveness and logical power you might consider the &#8220;semantics of business vocabulary and rules&#8221; standard from the Object Management Group (SBVR from OMG) or the &#8220;rule interchange format&#8221; from the World-Wide Web Consortium (RIF from W3C), but not its impoverished &#8220;PRD&#8221; specification.\u00a0 Generally, more linguistic approaches, as in SBVR or Haley\/Ruleburst\/Oracle Policy Automation do not constrain authors to express knowledge only within &#8220;if-then&#8221; constructs.<\/p>\n<p>Programmers tend to underestimate how important this is, not only for functionality, but for usability, especially if the target authors, contributors, authorities, or subject matter experts do not think like computers.\u00a0 For example, how many &#8220;if-then&#8221; statements are in &#8220;the outside back cover of each issue of the magazine must filled with a full-page color advertisement&#8221;?\u00a0 Why force a business analyst, for example, to write down each possibility and lose track of the tree of knowledge from which the forest of rules springs?<\/p>\n<h2>Conditions<\/h2>\n<p>In the following screen, the author has selected the first column and used some invisible keystroke to bring up the &#8220;Condition Column&#8221; dialog shown below for column A:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-263\" title=\"IBM_ILog_JRules_decision_table_1st_column_request_result\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image003.png\" alt=\"\" width=\"370\" height=\"467\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image003.png 370w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image003-237x300.png 237w\" sizes=\"auto, (max-width: 370px) 100vw, 370px\" \/><\/p>\n<p>There are all sorts of things to think about here.<\/p>\n<ol>\n<li>Why is &#8220;request&#8221; or &#8220;result&#8221; in the list?<\/li>\n<li>The model is clearly too simple for a realistic demonstration\n<ol>\n<li>e.g., people, not just borrowers have age<\/li>\n<li>the amount of a request is actually the amount requested on an application<\/li>\n<li>an application may only have a single applicant (as\u00a0 implied by the use of &#8220;the&#8221;)<\/li>\n<\/ol>\n<\/li>\n<li>The model suffers from an impoverished <a href=\"http:\/\/haleyai.com\/wordpress\/tag\/time\/\">understanding of time<\/a>\n<ol>\n<li>the income of a borrower is limited to a single timeframe (e.g., not annually)<\/li>\n<li>the duration of employment is understood only as job seniority\n<ol>\n<li>rules that reference days are not practical<\/li>\n<li>rules that reference years will be awkward<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>The interface would benefit from a better understanding of prepositional and possessive forms\n<ol>\n<li>&lt;a borrower&gt;&#8217;s age, employment, income, or name would be grouped together<\/li>\n<li>&lt;a request&gt;&#8217;s amounts, applicant(s), property\u2026 would be grouped together<\/li>\n<li>people naturally think (and talk) this way\n<ol>\n<li>e.g., a borrower requests an amount<\/li>\n<li>e.g., a request for an amount<\/li>\n<li>e.g., a property is assessed at an amount<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>More generally than just time, the product would benefit from an <a href=\"http:\/\/haleyai.com\/wordpress\/2008\/03\/20\/ontology-of-time-in-progress-amounts-needed\/\">understanding of amounts<\/a>\n<ol>\n<li>the amount of a request is an amount of money<\/li>\n<li>a property is assessed at a monetary value as of some time<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>Leaving the deep issues is necessary to get through this commentary on the video, but before doing so, we should pause and contemplate how deeply these limitations will affect strategic\u00a0 objectives.\u00a0 For example, if the intent of the rules repository is to manage enterprise knowledge, is Ilog adequate?<\/p>\n<h2>Peccadilloes<\/h2>\n<p>The use of &#8220;request&#8221; here is particularly interesting.\u00a0 What request is this talking about?<\/p>\n<p>The truth is, it will take training and experience to comprehend.\u00a0 This is a problem, obviously.<\/p>\n<p>This would better be rendered &#8220;the request&#8221;.\u00a0 Then one would ask &#8220;which request&#8221; and the answer would be that there is some request implicit in the context of these statements, which is indeed the case. \u00a0To go much further would be to probe the wound exposed here, but the interested reader might want to contemplate the difficulties of rendering this as &#8220;a request&#8221;.\u00a0 That metaphor would fail!<\/p>\n<p>More problematic here is the use of the word &#8220;result&#8221;.\u00a0 The use of this word is fatal in my opinion.<\/p>\n<h2>Phrase or clause<\/h2>\n<p>Selecting the phrase &#8220;the applicant of a request&#8221; leads to the following screen, in which the author is selecting &#8220;request&#8221; as a substitution for &#8220;a request&#8221;:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-265\" title=\"IBM Ilog JRules decision table applicant request borrower\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image005.png\" alt=\"\" width=\"373\" height=\"350\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image005.png 373w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image005-300x281.png 300w\" sizes=\"auto, (max-width: 373px) 100vw, 373px\" \/><\/p>\n<p>This raises a few questions:<\/p>\n<ol>\n<li>What does it mean to substitute &#8220;request&#8221; for &#8220;a request&#8221;?<\/li>\n<li>Why is &#8220;is a borrower&#8221; appended after we selected &#8220;the applicant of a request&#8221;?<\/li>\n<\/ol>\n<p>At a minimum, it would make more sense if the author substituted &#8220;the&#8221; for &#8220;a&#8221; before &#8220;request&#8221;.<\/p>\n<p>One thing worth noting here is that there is no understanding.\u00a0 For example:<\/p>\n<ol>\n<li>that applications have applicants<\/li>\n<li>that &#8216;request&#8217; in this context is a synonym for &#8216;application&#8217;<\/li>\n<li>that &#8216;request&#8217; is a noun (or a verb!)<\/li>\n<li>that every applicant has applied<\/li>\n<li>that applications are produced by applicants applying<\/li>\n<li>that applicants are not necessarily borrowers<\/li>\n<\/ol>\n<p>Also note the feedback that the angle-bracketed placeholders need to be filled before the statement can be complete. \u00a0After selecting &#8220;request&#8221;, the following is presented:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-267\" title=\"IBM Ilog JRules decision table applicant request employer borrower\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image007.png\" alt=\"\" width=\"341\" height=\"404\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image007.png 341w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image007-253x300.png 253w\" sizes=\"auto, (max-width: 341px) 100vw, 341px\" \/><\/p>\n<p>Notice that the software things the statement is complete even though a placeholder is unfilled.<\/p>\n<p>Concerning the two prior screens: the word &#8220;condition&#8221; above the sentence &#8220;The statement is complete&#8221; is superfluous in each case, but the sentence does not seem appropriate in either case.\u00a0 In the first case, the sentence seems to be missing something with the angle brackets around &#8220;a borrower&#8221;.\u00a0 In the second case, the sentence is not grammatical.\u00a0 It seems that some determiner is needed before &#8220;employer&#8221; such as &#8220;the applicant&#8217;s&#8221; or &#8220;his\/her&#8221;.\u00a0 But I am still wondering what happened to &#8220;a borrower&#8221; and why it was inserted in the first place\u2026<\/p>\n<h2>Tricks of the trade?<\/h2>\n<p>In the immediately preceding screen, note that the author has highlighted &#8220;is&#8221; and that the drop down includes various alternatives.\u00a0 It is peculiar that with the exception of &#8220;is not&#8221;, replacing &#8220;is&#8221; with any of these would produce a non-grammatical sentence.\u00a0 Also, there is clearly something awkward (or &#8220;clever&#8221;) about &#8220;is employer&#8221;.\u00a0 I generally feel this way whenever the text is not grammatical.<\/p>\n<p>There is something fishy here about this predicate.\u00a0 It is a predicate since it is either true or false (as the video subsequently demonstrates) that an applicant is self employed.\u00a0 Who is &#8220;employer&#8221;?\u00a0 Apparently, in this model, an applicant has a single employer, as in &#8220;each applicant has an employer&#8221; rather than &#8220;each applicant may have some employers&#8221;.\u00a0 Ideally, the system would understand that &#8220;each person may have more than one employer&#8221; and &#8220;a person who applies is an applicant&#8221;.\u00a0 Nonetheless, under the limiting assumption that &#8220;each applicant has precisely one employer&#8221;, why doesn&#8217;t the text read &#8220;is employed by &lt;a employer&gt;&#8221;, where the employer could be further specified as the applicant?<\/p>\n<p>Continuing on, around 1:12 into the video, it is disconcerting to see the software substitute &#8220;is employer&#8221; for &#8220;is a borrower&#8221;, as reflected in the following screen:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-269\" title=\"IBM Ilog JRules decision table applicant request employer\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image009.png\" alt=\"\" width=\"304\" height=\"288\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image009.png 304w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image009-300x284.png 300w\" sizes=\"auto, (max-width: 304px) 100vw, 304px\" \/><\/p>\n<p>Here, the author is completing the dialog by giving the condition a title that will be displayed as the column header.<\/p>\n<h2>Almost text editing<\/h2>\n<p>I suspect that the actual model here has a limitation of one applicant per application and that applicants have a predicate which is true if the applicant is self-employed and that the author specified the text &#8220;employer&#8221; for when the predicate is true.\u00a0 If so, the work to get this column defined is far too tedious.\u00a0 If not, I would prefer that the effort for this column also educated the application as a whole that I could now talk about whether a person is self-employed.<\/p>\n<p>If the author wanted to substitute &#8220;the applicant&#8217;s employer&#8221; for &#8220;a borrower&#8221;, why did the author select &#8220;is&#8221;?\u00a0 Or, if the author selected &#8220;is not&#8221; from the list, would &#8220;a borrower&#8221; remain, as in &#8220;the applicant of a request is not a borrower&#8221; (which appears to be false by definition in this use of the software even though feasible pending approval of a person&#8217;s first or sole outstanding loan).\u00a0 Clearly, there is a design flaw here, both in terms of user interaction and semantics.<\/p>\n<p>Please note that Ilog is working fine.\u00a0 It is getting the job done.\u00a0 My point is that it is not semantic.\u00a0 Semantic means meaning.\u00a0 Ilog does not understand meaning.\u00a0 It doesn&#8217;t understand.\u00a0 It doesn&#8217;t have knowledge.\u00a0 It edits text within a metaphor for authoring if-then rules.\u00a0 As a rule-based programming tool, it is doing quite well.\u00a0 For capturing, managing, leveraging, and automating knowledge, it is simply not even in the ballpark.<\/p>\n<h2>An amount of time<\/h2>\n<p>Moving on, the author selects the second column, somehow indicating that it is a condition column and popping up the dialog, which again informs us that it is for a condition, as shown below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-271\" title=\"IBM Ilog JRules decision table seniority applicant request borrower\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image011.png\" alt=\"\" width=\"407\" height=\"339\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image011.png 407w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image011-300x249.png 300w\" sizes=\"auto, (max-width: 407px) 100vw, 407px\" \/><\/p>\n<p>Here, the author is substituting &#8220;the applicant of a request&#8221; for &#8220;a borrower&#8221; in &#8220;the job seniority in months of a borrower is a number&#8221;.<\/p>\n<p>This is better than the prior edit where only &#8220;is&#8221; was highlighted because the selection will precisely substitute for the highlighted text.\u00a0 But there are other problems, mostly semantic but also functional.<\/p>\n<p>The video suggests that only borrowers have job seniority.\u00a0 If I were considering Ilog for a knowledge automation project, I would want to know if seniority could be defined, in general, of if I have to define the phrase &#8220;job seniority&#8221; instead of understanding that one&#8217;s seniority is proportional to the duration of their employment.\u00a0 This is really a tip of the iceberg on the challenges facing text-chunk editing versus more semantic and natural language business modeling.<\/p>\n<p>I will try not to quibble further with the phrase &#8220;the seniority of an employee&#8221; (which implicitly quibbles, I admit).\u00a0 But the seniority of an employee is an amount of time.\u00a0 Here, I am being forced to specify a number without units, such as years.\u00a0 What if I wanted to compare someone&#8217;s seniority to his or her length of residence of age?\u00a0 Do I have to model each of these using the same unit of time?\u00a0 What if I want to consider these collectively as of some point in time?\u00a0 The approach here suffers from all the problems of defining a database column that holds an integer.\u00a0 There is no semantics or integrity.<\/p>\n<p>If you watch the video you will see that the author has to select &#8220;a request&#8221; after selecting &#8220;the applicant of a request&#8221; and the select &#8220;request&#8221; to produce &#8220;the job seniority in months of the applicant of request&#8221;.\u00a0 I would have preferred to say &#8220;the applicant&#8217;s seniority&#8221; by selecting &#8220;the applicant&#8221; in the first drop-down and &#8220;&#8216;s seniority&#8221; from its cascaded (waterfall) menu.<\/p>\n<p>Nonetheless, the result below is functionally adequate, as admitted above.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-273\" title=\"IBM Ilog JRules decision table seniority applicant request borrower title\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image013.png\" alt=\"\" width=\"451\" height=\"291\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image013.png 451w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image013-300x193.png 300w\" sizes=\"auto, (max-width: 451px) 100vw, 451px\" \/><\/p>\n<p>The column is given a header (which could have been &#8220;Applicant&#8217;s Seniority (in months)&#8221; but note that the statement is indicated as complete again, even though a prior screen had indicated that placeholders should be filled.\u00a0 This is simply a peccadillo of the metaphor which wants a single placeholder to be unspecified.<\/p>\n<h2>Anticipation<\/h2>\n<p>The following screen shows that the author is anticipating rules that will specify ranges of a person&#8217;s tenure with the current employer.\u00a0 That, is the author has conceived of a table with two columns in which a minimum and maximum may be specified.\u00a0 This is a bit forward looking for many potential contributors, but Ilog has other alternatives that do not require such foresight.\u00a0 (Actually, Ilog&#8217;s dual-column range functionality is better than prior generations of this metaphor from \u00a0Corticon or Haley\/Oracle.)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-275\" title=\"IBM Ilog JRules decision table seniority applicant request at least less than \" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image015.png\" alt=\"\" width=\"628\" height=\"466\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image015.png 628w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image015-300x222.png 300w\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" \/><\/p>\n<p>Now this drop down can get pretty long, especially in more than a trivial example such as this, so perhaps Ilog might take a cue from Haley and cascade shared prefixes with waterfall menus, such as by having all the &#8220;is as&#8221; options cascade to the right, for example.\u00a0 There are other user interface niceties and design challenges that have not been met here, too.\u00a0 For example, why does &lt;min&gt; follow &#8220;least&#8221; in one place but not another?\u00a0 And, should there be an adverb before between, such as &#8220;inclusively&#8221;, or not?\u00a0 And why is &#8220;and&#8221; other than for &#8220;between&#8221;?\u00a0 What if I want to say &#8220;is at least \u2026 and less than\u2026&#8221;?\u00a0 And what is this &#8220;null&#8221; thing all about?\u00a0 And what is the difference between &#8220;is&#8221; and &#8220;equals&#8221; or &#8220;is not&#8221; and &#8220;does not equal&#8221;, if they are different?<\/p>\n<p>All these questions raise serious issues that a well educated programmer and experienced Ilog user may not even think about.\u00a0 But they will have an impact or who can use Ilog effectively and on reliability.\u00a0 All the training in the world won&#8217;t keep users from confusing &#8220;is&#8221; or &#8220;equals&#8221;, whether or not they are the same, for example.\u00a0 And &#8220;null&#8221; will cause problems, too, such as whether some is not something other than null if it is null. (I realize that reads poorly, but it is a precise demonstration of the issue.)<\/p>\n<p>After selecting the highlighted choice, the following screen completes the column headings:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-277\" title=\"IBM Ilog JRules decision table seniority applicant request min max title\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image017.png\" alt=\"\" width=\"513\" height=\"463\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image017.png 513w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image017-300x270.png 300w\" sizes=\"auto, (max-width: 513px) 100vw, 513px\" \/><\/p>\n<p>Note that the defaults here are at fault.\u00a0 The subcolumns would much better be titled &#8220;at least&#8221; and &#8220;less than&#8221; since the maximum is excluded but the minimum is inclusive.<\/p>\n<p>After completing this dialog the following shows the misleading range column headings as an action column is being defined:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-279\" title=\"IBM Ilog JRules decision table action column\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image019.png\" alt=\"\" width=\"504\" height=\"476\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image019.png 504w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image019-300x283.png 300w\" sizes=\"auto, (max-width: 504px) 100vw, 504px\" \/><\/p>\n<p>I cringe at this English.\u00a0 Make it a double!-)<\/p>\n<p>First, the &#8220;set&#8221; before each of the attributes is an action, not a decision.\u00a0 Second, it encourages people to think like programmers rather than logically.\u00a0 It would be much better to change each &#8220;set the\u2026 to \u2026&#8221; to &#8220;the\u2026 should be \u2026&#8221;.<\/p>\n<p>Second, the &#8220;make it &lt;a boolean&gt; that \u2026&#8221; is terrible.\u00a0 How about substituting &#8220;\u2026 should be &lt;true or false&gt;&#8221;?\u00a0 Also, Boolean is capitalized in my dictionary.<\/p>\n<p>I don&#8217;t want to touch &#8220;print &lt;a string&gt;&#8221; or &#8220;set &lt;variable&gt; to\u2026&#8221;!<\/p>\n<p>And only the indoctrinated know what to make of &#8220;&lt;a result&gt;&#8221;.<\/p>\n<p>Moving on, the author selects &#8220;set the score of a result to a number&#8221;.\u00a0 Most won&#8217;t know what it means to do this but here is what results:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-281\" title=\"IBM Ilog JRules decision table action column set score\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image021.png\" alt=\"\" width=\"426\" height=\"360\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image021.png 426w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image021-300x253.png 300w\" sizes=\"auto, (max-width: 426px) 100vw, 426px\" \/><\/p>\n<p>Without further ado, the table definition is completed and &#8220;a rule&#8221; is authored, as shown below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-283\" title=\"IBM Ilog JRules self-employed business rule\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image023.png\" alt=\"\" width=\"620\" height=\"126\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image023.png 620w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image023-300x60.png 300w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/p>\n<p>In this metaphor, rows correspond to rules.\u00a0 In other metaphors, columns or even cells may complete rules.<\/p>\n<p>Here, as cells are populated, the text control below the menu bar presents textual feedback on the corresponding condition or action with the rule.\u00a0 Notice above that specifying false in the first column corresponds to &#8220;the applicant of request is employer&#8221;.\u00a0 As discussed above, this would read much better as, &#8220;an applicant is not self-employed&#8221; or, more immediately from Ilog&#8217;s perspective, &#8220;an applicant of the application is not employer&#8221;.<\/p>\n<p>Although the following shows a cell in the score column as highlight, the paraphrasing text concerns the two cells in the middle column:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-285\" title=\"IBM Ilog JRules self-employed business rule less than 36 months\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image025.png\" alt=\"\" width=\"590\" height=\"130\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image025.png 590w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image025-300x66.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>As discussed above, I would prefer that this text read &#8220;no applicant has been with his or her current employer for at least 3 years&#8221;.\u00a0 Changing the assumption that an application has only one applicant would cause all the author&#8217;s work to need re-engineering, however.\u00a0 Nonetheless, as will become apparent in a moment, the model specifies job seniority as being a non-negative number, so the &#8220;at least zero&#8221; is uninformative (generally, amounts of time are not negative).\u00a0 And with any understanding of units, Ilog could render this as &#8220;the seniority of the applicant of the request is less than 3 years&#8221;.<\/p>\n<p>As the table is filled in, the limitations of the column labels becomes more apparent.\u00a0 For example, which row does someone who is not self-employed fall if they have been with the same employer for 36 months?<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-287\" title=\"IBM Ilog JRules self-employed business rule over 6 years\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image027.png\" alt=\"\" width=\"564\" height=\"471\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image027.png 564w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image027-300x250.png 300w\" sizes=\"auto, (max-width: 564px) 100vw, 564px\" \/><\/p>\n<p>Ilog does a nice job merging the range columns to cover at least 6 months, as shown in the cascading pop-up menu above and the resulting screen below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" title=\"IBM Ilog JRules self-employed business rule over 6 years after cascading menu\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image029.png\" alt=\"\" width=\"594\" height=\"187\" \/><\/p>\n<p>Ilog also does a nice job identifying that not all situations are covered by the table as shown by the comment on gaps and the functionality of inserting the missing value(s) in a column:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-291\" title=\"IBM Ilog JRules decision table uncovered gap in partition\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image031.png\" alt=\"\" width=\"485\" height=\"166\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image031.png 485w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image031-300x102.png 300w\" sizes=\"auto, (max-width: 485px) 100vw, 485px\" \/><\/p>\n<p>So the author continues specifying the rules for the self-employed, as reflected below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-293\" title=\"IBM Ilog JRules decision table self-employed business rules\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image033.png\" alt=\"\" width=\"504\" height=\"187\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image033.png 504w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image033-300x111.png 300w\" sizes=\"auto, (max-width: 504px) 100vw, 504px\" \/><\/p>\n<p>The video also shows the insertion of multiple rows in the second column for each cell in the first column. Ilog&#8217;s ability to insert (and collapse) these structures gives it the ability to present such tables as trees and corresponding trees as tables, which is appealing to some users.\u00a0 Overall, I like Ilog&#8217;s layout functionality more than other vendors&#8217; decision table metaphors (although I am aware of approaches that are yet to be commercialized that I like even better).<\/p>\n<p>As we have seen above, and as shown below, Ilog emphasizes (perhaps even relies upon)\u00a0 the rendering of text to clarify the meaning of its decision tables.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-295\" title=\"IBM Ilog JRules decision table business rule language\" src=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image035.png\" alt=\"\" width=\"577\" height=\"237\" srcset=\"http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image035.png 577w, http:\/\/haleyai.com\/wordpress\/wp-content\/uploads\/2010\/02\/image035-300x123.png 300w\" sizes=\"auto, (max-width: 577px) 100vw, 577px\" \/><\/p>\n<p>Here, a paraphrase for the entire rule in the row that holds the cursor (over the row number) is displayed as text.\u00a0 Although this could be expressed more tersely (and perspicuously), it is fine for a technical analyst.\u00a0 Non-technical people, including many business analysts, would be through off by the lack of &#8220;the&#8221; before &#8220;request&#8221;, &#8220;employer&#8221;, and &#8220;result&#8221;, but the most significant questions are what it means to &#8220;set&#8221; and what the meaning or utility of the referenced &#8220;result&#8221; is.\u00a0 Most would also appreciate dropping the semicolon and &#8220;all of the following conditions are true&#8221;, its following colon and the bullets in favor of a simple &#8220;and&#8221;.<\/p>\n<p>To sum it up, I like Ilog&#8217;s decision table metaphor and its supporting functionality, but Ilog does not address linguistics or semantics to an adequate degree for managing and automating requirements, policies, and other knowledge.\u00a0 As I have written elsewhere, I hope IBM addresses these shortcomings in pursuit of a holistic offerings to enable increasingly <a href=\"http:\/\/haleyai.com\/wordpress\/tag\/knowledge-based-enterprise\/\">knowledge-based enterprises<\/a>.\u00a0 As it does so it will also need to address the <a href=\"http:\/\/haleyai.com\/wordpress\/category\/formal-logic\/\">logical weaknesses of current business rule engines<\/a>, \u00a0but understanding knowledge is a prerequisite for automation, even if only through <a href=\"http:\/\/haleyai.com\/wordpress\/2007\/12\/31\/missing-goals-and-requirements-in-business-rules\/\">forward chaining<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/haleyai.com\/wordpress\/2010\/02\/21\/ibm-ilog-jrules-for-business-modeling-and-rule-authoring\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;IBM Ilog JRules for business modeling and rule authoring&#8221;<\/span><\/a><\/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,12,13,16,21],"tags":[441,35,430,431,56,65,422,423,435,882,428,436,109,438,131,154,164,380,167,426,180,181,182,421,887,221,224,425,427,424,404,442,443,434,253,437,258,892,268,433,429,269,432,272,440,439,295,305,307],"class_list":["post-260","post","type-post","status-publish","format-standard","hentry","category-business-rules-management","category-decision-management","category-knowledge-engineering","category-knowledge-management","category-natural-language","category-rules-engines","tag-actions","tag-amounts","tag-applicant","tag-application","tag-blaze-advisor","tag-brms","tag-business-rules-engines","tag-business-rules-management-system","tag-coverage","tag-decision-management","tag-decision-table","tag-decision-trees","tag-drools","tag-employment","tag-fair-isaac","tag-haley","tag-ibm","tag-if-then","tag-ilog","tag-java-expert-system-shell","tag-jboss-rules","tag-jess","tag-jrules","tag-knowledge-based-enterprise","tag-natural-language","tag-omg","tag-oracle","tag-oracle-business-rules","tag-oracle-fusion","tag-oracle-policy-automation","tag-peoplesoft","tag-prd","tag-production-rules","tag-red-hat","tag-rif","tag-rule-language","tag-ruleburst","tag-rules-engines","tag-sbvr","tag-score","tag-scoring-rules","tag-semantics","tag-seniority","tag-siebel","tag-spreadsheets","tag-structure-editing","tag-time","tag-vocabulary","tag-w3c"],"_links":{"self":[{"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/posts\/260","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=260"}],"version-history":[{"count":14,"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/posts\/260\/revisions"}],"predecessor-version":[{"id":853,"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/posts\/260\/revisions\/853"}],"wp:attachment":[{"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/media?parent=260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/categories?post=260"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/haleyai.com\/wordpress\/wp-json\/wp\/v2\/tags?post=260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}