<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Commercial Intelligence &#187; Requirements</title>
	<atom:link href="http://haleyai.com/wordpress/category/requirements/feed/" rel="self" type="application/rss+xml" />
	<link>http://haleyai.com/wordpress</link>
	<description>systems that know and understand and think and learn</description>
	<lastBuildDate>Mon, 30 Jan 2012 19:51:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ron Ross&#8217; Business Rule Concepts</title>
		<link>http://haleyai.com/wordpress/2009/09/28/ron-ross-business-rule-concepts/</link>
		<comments>http://haleyai.com/wordpress/2009/09/28/ron-ross-business-rule-concepts/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 15:06:52 +0000</pubDate>
		<dc:creator>paul@haleyAI.com</dc:creator>
				<category><![CDATA[Business Rules Management]]></category>
		<category><![CDATA[Decision Management]]></category>
		<category><![CDATA[Knowledge Engineering]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Methodology]]></category>
		<category><![CDATA[Ron Ross]]></category>
		<category><![CDATA[SBVR]]></category>

		<guid isPermaLink="false">http://haleyai.com/wordpress/2009/09/28/ron-ross-business-rule-concepts/</guid>
		<description><![CDATA[Ron Ross was kind enough to send me a copy of his recently publishd 3rd edition of his book, Business Rule Concepts.  Ron has been at the forefront of mainstreaming business rule capture for decades.  Personally, I am most fond of his leadership in establishing the Object Management Group&#8217;s Semantics of Business Vocabulary and Rules [...]]]></description>
			<content:encoded><![CDATA[<p>Ron Ross was kind enough to send me a copy of his recently publishd 3rd edition of his book, Business Rule Concepts.  Ron has been at the forefront of mainstreaming business rule capture for decades.  Personally, I am most fond of his leadership in establishing the Object Management Group&#8217;s Semantics of Business Vocabulary and Rules standard (OMG&#8217;s SBVR).  This book is an indispensible backgrounder and introduction to the concepts necessary to effectively manage business rules using this standard.</p>
<p><span id="more-107"></span>By no means is this a book about SBVR.  Rather, it is about the core and critical concepts necessary to understand how  to define an enterprise repository of declarative knowledge covering business.  The unfortunately reality is that the work necessarily suffers from legacy concepts and perspectives, but this is a statement of fact and practicality rather than a negative assessment.  Essentially, my problem with much of the increasingly mainstream marketing and practicing of business rules is precisely the term &#8220;rule&#8221;.  Nonetheless, since the mainstream audience is pre-occupied with the word &#8220;rules&#8221; rather than the word &#8220;knowledge&#8221;, Ron&#8217;s book is &#8211; again &#8211; right on the money for practitioners who want to achieve the benefits of separating models and knowledge from implementations in order to increase the agility of systems and more closely align IT with business needs (all of which he discusses in Chapters 2 and 3).</p>
<p>This edition clearly benefits from the progress in the field and reflects current enterprise objectives that have progressed into the mainstream since Ron began practicing and writing many years ago.  Veterans will quickly recognize and benefit from the simple clarity that Ron brings to the subject.</p>
<p>The critical topics that Ron addresses are the core concepts underlying modeling and linguistics that allow non-technical business analysts (even, perhaps, subject matter experts) to capture unambiguous statements of business definitions, requirements, policies and other &#8220;rules&#8221; in English sentences that are suitable for presentation to and verification by stakeholders.  In addition, in the event knowledge-level standards like SBVR evolve and are adopted by technology (e.g., business rule) vendors, managing such statements will directly impact the operational behavior of business processes, especially where they involve automated decisions, policy enforcement and other forms of governance requiring enforcement.</p>
<p>Although Ron and I have come to a shared view on knowledge capture and management, we have followed different paths.  Ron&#8217;s concern is primarily capture.  Mine extends to and necessarily emphasizes implementation and execution.  Nonetheless, our perspectives on modeling and capture are extremely aligned.  Ron&#8217;s writing on what he calls &#8220;terms&#8221; and &#8220;wordings&#8221; are right on the money.</p>
<p>We have independently arrived at a point where we believe that linguistic expression of business knowledge is much more important (and valuable) than rule-based expressions suitable for execution by rule engines.  In effect, Ron argues and I agree that the knowledge is much more important, durable, and valuable than its executable form or expression.  As a result, I could not more emphatically introduce Ron&#8217;s coverage of how to express models and logic in English.</p>
<p>By the end of Chapter 1, Ron defines what he calls a vocabulary and why  managing  vocabulary is a requirement for managing business knowledge (including definitions, requirements, and policies).   Ron&#8217;s writing on nouns and verbs and how they form the backbone of expression for business knowledge is seminal and accessible to novice and expert practitioner alike.</p>
<p>As more or an artificial intelligence practitioner, I might quibble with the omissions of mass nouns, such as money or time, from his discussion, but these topics will not be missed by anyone but the most forward-looking strategist.   Similarly, the limitation of current standards to wordings involving verbs eliminates coverage of adjectival phrases and results in too many wordings involving the verb &#8220;has&#8221;, at least in my opinion.  For example, wordings like &#8220;a person has an age&#8221; seem arcane, perhaps technical, to me.  Nonetheless, even though my work supports such &#8220;phrasings&#8221;, most of its users still use &#8220;has&#8221; phrasings!  Perhaps this is because I have not taken the time and expended the effort to clarify the concepts that Ron covers so well.  In short, Ron&#8217;s writing is right on target for practitioners given the current state of the art (and standards).  And I can think of no other expert or author who has reduced current practice to such an accessible form.</p>
<p>Chapter 4 clearly explains and motivates the use of sentences as the independent units of business knowledge.  Ron does a good job of introducing the notion of roles as the components linked together within predicates using verbs.  This is fairly abstract material, so I don&#8217;t blame him for avoiding too much depth on the semantics of roles.  Fortunately, other materials, such as the SBVR standard itself, cover these details in greater depth.  So again, the content seems right on for someone entering the field and focused on linguistic modeling, capture and management rather than more formal &#8220;semantics&#8221;. </p>
<p>Ron clearly separates statements defining and relating concepts from requirements.  Not only does he present the material linguistically, he reinforces it with clear graphical presentations of the corresponding models.   Personally, I prefer to mix certain requirements with definitions, as in &#8220;a person has exactly one mother&#8221;,  but this would complicate the graphical presentations.  He also addresses common linguistics, such as passive voice and using verbs (i.e., participles) as adjectives, which I have found to be important concepts that must be brought to practitioners&#8217; attention.  Otherwise, the models become unnecessarily complex or the resulting sentences seem cumbersome, if not stilted.</p>
<p>In places the formality of SBVR shows through.  For example, &#8220;a person must not lease a vehicle the person owns&#8221;.  This reflects linguistic limitations of available tools.  This phrasing reflects &#8220;necessity&#8221; within the underlying logical formalism of SBVR.  In addition, the reiteration of &#8220;the person&#8221; begs for natural language processing that would understand pronouns, such as &#8220;(s)he&#8221;.  Having said that, this is clearly a higher level statement than can currently be understood and implement by most business rule management systems (BRMS), however.  As such, it demonstrates the power of Ron&#8217;s approach and motivates (given most commercial offerings) the separation of capture and management of business knowledge from its expression in business process management systems (BPMS) or BRMS.</p>
<p>Having encountered the notion of logical necessity in the preceding example, it is worth pointing to Ron&#8217;s discussion in Chapter 10.  Externalizing business knowledge from systems requires certain architectures for information systems.  For example, the prohibition of a person leasing a vehicle that (s)he owns requires some action not stated here.  In effect,  a violation of requirements must be anticipated in the runtime architecture.  There are various approaches to this, including runtime exceptions.   Ron demonstrates this approach in Chapter 10 and, if the system incorporates workflow for resolution, he advocates using the end-user accessible form of business knowledge for explanation (in his discussion of guidance within Chapter 2).  More advanced approaches, such as meta-reasoning, and detailed architectural approaches are appropriately left out of this work on capture and management.</p>
<p>Interestingly, in Chapter 7, Ron suggests that business rules should not be expressed within an if-then syntax.  Obviously, this clearly separates Ron&#8217;s methodology from the production rule focus of most commercial BRMS.  It also exposes a gap between SBVR and operational systems.  Ron discusses behavioral rules within the chapter but the gap between requirement and behavior remains unfilled.  This is my most significant concern for the logical approach to knowledge management.   Without a framework by which declarative knowledge can bridge to imperative action, the logical approach falls short of operational relevance.  This is reflected, in my practical viewpoint, by the lack of operational deployment of SBVR. </p>
<p>The principal  challenge remaining for SBVR is to cross the gap from expression into operation.  Aside from linguistic limitations, this is my primary concern for the formal logic approach to knowledge capture and management.   The ideas Ron covers so well are necessary for long-term success in automating managed knowledge, but they are not enough.   Unfortunately, most of the business rule vendors do not adequately address the necessary capabilities that Ron&#8217;s methodology and toolsets handle.  This leaves us with a continuing need for business rule engineers to bridge the gap, manually.</p>
]]></content:encoded>
			<wfw:commentRss>http://haleyai.com/wordpress/2009/09/28/ron-ross-business-rule-concepts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Harvesting business rules from the IRS</title>
		<link>http://haleyai.com/wordpress/2008/03/28/harvesting-business-rules-from-the-irs/</link>
		<comments>http://haleyai.com/wordpress/2008/03/28/harvesting-business-rules-from-the-irs/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 15:36:03 +0000</pubDate>
		<dc:creator>paul@haleyAI.com</dc:creator>
				<category><![CDATA[Business Rules Management]]></category>
		<category><![CDATA[Knowledge Engineering]]></category>
		<category><![CDATA[Knowledge Management]]></category>
		<category><![CDATA[Methodology]]></category>
		<category><![CDATA[Natural Language]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[adjusted gross income]]></category>
		<category><![CDATA[Authority]]></category>
		<category><![CDATA[BRMS]]></category>
		<category><![CDATA[earned income]]></category>
		<category><![CDATA[EIC]]></category>
		<category><![CDATA[eligibility]]></category>
		<category><![CDATA[Haley]]></category>
		<category><![CDATA[IRS]]></category>
		<category><![CDATA[IRS business rules]]></category>
		<category><![CDATA[Natural language business rules]]></category>
		<category><![CDATA[necessary conditions]]></category>
		<category><![CDATA[qualification]]></category>
		<category><![CDATA[rule harvesting]]></category>
		<category><![CDATA[rules training]]></category>
		<category><![CDATA[rules tutorial]]></category>
		<category><![CDATA[sufficient conditions]]></category>

		<guid isPermaLink="false">http://haleyai.com/wordpress/2008/03/28/harvesting-business-rules-from-the-irs/</guid>
		<description><![CDATA[Does your business have logic that is more or less complicated than filing your taxes?
Most business logic is at least as complicated.  But most business rule metaphors are not up to expressing tax regulations in a simple manner.  Nonetheless, the tax regulations are full of great training material for learning how to analyze and capture [...]]]></description>
			<content:encoded><![CDATA[<p>Does your business have logic that is more or less complicated than filing your taxes?</p>
<p>Most business logic is at least as complicated.  But most business rule metaphors are not up to expressing tax regulations in a simple manner.  Nonetheless, the tax regulations are full of great training material for learning how to analyze and capture business rules.</p>
<p>For example, consider the earned income credit (EIC) for federal income tax purposes in the United States.  This tutorial uses the guide for 2003, which is available <a href="http://haleyai.com/pdf/publication596.pdf">here</a>. There is also a cheat sheet that attempts to simplify the matter, available <a href="http://haleyai.com/pdf/pub3524_EITCworksheet.pdf">here</a>. (Or click on the pictures.)</p>
<p><a href="http://haleyai.com/pdf/publication596.pdf"><img width="312" src="http://haleyai.com/wordpress/wp-content/uploads/2008/03/eitc-publication-596-fy-2003.jpg" alt="eitc-publication-596-fy-2003.jpg" height="378" style="width: 256px; height: 344px" /></a><a href="http://haleyai.com/pdf/pub3524_EITCworksheet.pdf"><img width="351" src="http://haleyai.com/wordpress/wp-content/uploads/2008/03/eitc-eligibility-checklist-for-tax-year-2003.jpg" alt="eitc-eligibility-checklist-for-tax-year-2003.jpg" height="885" style="width: 261px; height: 342px" /></a></p>
<blockquote><p><em>What you will see here is typical of what business analysts do to clarify business requirements, policies, and logic.  Nothing here is specific to rule-based programming.  <span id="more-77"></span>If this seems tedious, just rely on someone else to do it.  There is no avoiding it.  Really!  We are certainly able and willing to help, whether to teach your staff or outsource the effort.  Our objective here is not as much to solicit your business but to help those who are new to this succeed.  Specifically, this is for my friend, PS.</em></p></blockquote>
<p align="center"><a href="http://haleyai.com/pdf/publication596.pdf"></a><a href="http://haleyai.com/pdf/pub3524_EITCworksheet.pdf"></a></p>
<p>The EIC publication has the following chapters:</p>
<ul>
<li>Chapter 1. Rules for Everyone</li>
<li>Chapter 2. Rules If You Have a Qualifying Child</li>
<li>Chapter 3. Rules If You Do Not Have a Qualifying Child</li>
<li>Chapter 4. Figuring and Claiming the EIC</li>
<li>Chapter 5. Disallowance of the EIC</li>
<li>Chapter 6. Advance Payment of EIC in 2004</li>
<li>Chapter 7. Detailed Examples</li>
</ul>
<p>For tutorial purposes, we are primarily concerned with the first four chapters.</p>
<h3><strong>Chapter 1. Rules for Everyone</strong></h3>
<p><font color="#0000ff">This chapter discusses Rules 1 through 7. You must meet all seven rules to qualify for the earned income credit. If you do not meet all seven rules, you cannot get the credit and you do not need to read the rest of the publication. </font></p>
<p><font color="#0000ff"><strong>Note</strong>. If you meet all seven rules in this chapter, then read either chapter 2 or chapter 3 (whichever applies) for more rules you must meet.</font></p>
<table border="1" cellPadding="0" cellSpacing="0">
<tr>
<td bgColor="#ffff00" width="37" vAlign="top"></td>
<td bgColor="#ffff00" width="168" vAlign="top"></td>
<td bgColor="#ffff00" width="433" vAlign="top"></td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>1</strong></td>
<td width="168" vAlign="top">AGI Limits</td>
<td width="433" vAlign="top">Adjusted Gross Income (AGI) Must Be Less Than</p>
<ul>
<li>$33,692 ($34,692 for married filing jointly) if you have more than one qualifying child,</li>
<li>$29,666 ($30,666 for married filing jointly) if you have one qualifying child, or</li>
<li>$11,230 ($12,230 for married filing jointly) if you do not have a qualifying child.</li>
</ul>
</td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>2</strong></td>
<td width="168" vAlign="top">Social Security Number</td>
<td width="433" vAlign="top">You Must Have a Valid Social Security Number</td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>3</strong></td>
<td width="168" vAlign="top">Married Person&#8217;s Filing</td>
<td width="433" vAlign="top">Your Filing Status Cannot Be &#8220;Married Filing Status Separately&#8221;</td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>4</strong></td>
<td width="168" vAlign="top">Nonresident Alien</td>
<td width="433" vAlign="top">You Must Be a U.S. Citizen or Resident Alien All Year</td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>5</strong></td>
<td width="168" vAlign="top">Foreign Earned Income</td>
<td width="433" vAlign="top">You Cannot File Form 2555 or Form 2555-EZ</td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>6</strong></td>
<td width="168" vAlign="top">Investment Income</td>
<td width="433" vAlign="top">Your Investment Income Must Be $2,600 or Less</td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>7</strong></td>
<td width="168" vAlign="top">Earned Income</td>
<td width="433" vAlign="top">You Must Have Earned Income</td>
</tr>
</table>
<p>What should we do with these rules if we are trying to capture them in a formal manner that can support decision making, such as using a business rules engine?</p>
<p>First, consider whether these are rules or conditions.  What are their implications?  That is, if we state them as &#8220;if-then&#8221; rules, what comes after the then?</p>
<p>Try completing the following sentences:</p>
<ul>
<li>If you have a valid social security number then &#8230;</li>
<li>If your filing status cannot be &#8220;married filing status separately&#8221; then&#8230;</li>
<li>If you must be a U.S. citizen or resident all year then&#8230;</li>
</ul>
<p>Each of these have a different problem!  None of them is the beginning of a useful rule.  There is no legitimate conclusion from any of them! </p>
<p>The problem is that these are necessary conditions, not rules.  You must meet each of them in order to qualify for the EITC.  Meeting any one of them is not sufficient.  In fact, meeting all of them is not sufficient!  The note above indicates that other rules must also be considered.  (Note that the IRS forgot to mention chapter 4!  Think about the staggering amount of money the IRS probably spent on their publication.  Your business requirements documents are likely to have many more errors, unfortunately.)</p>
<h3><strong>Rules have consequences!</strong></h3>
<p>The consequence of each of these rules is not that you qualify for the EIC.  In fact, these rules do not have consequences!  These are conditions.  To make them rules we need to realize that their conclusions can only be that we do not qualify for the EIC.  Then, we can write these rules as follows:</p>
<ol>
<li>If your adjusted gross income is not below the limit &#8230; then you do not qualify for the EIC.</li>
<li>If you do not have a valid social security number then you do not qualify for the EIC.</li>
<li>If you are married and filing separately then you do not qualify for the EIC.</li>
<li>If you were not a US citizen or resident alien all year then you do not qualify for the EIC.</li>
<li>If you are filing form 2555 or 2555-EZ then you do not qualify for the EIC.</li>
<li>If you had investment income over $2,600 then you do not qualify for the EIC.</li>
<li>If you do not have earned income then you do not qualify for the EIC.</li>
</ol>
<p>Of course the limitations on adjusted gross income are more complicated and need to be dealt with, but we will get to that after discussing what just happened a bit more.</p>
<p>Notice how we had to flip the logic in each of the conditions.  This is a common activity for knowledge engineers.  It can also a common source of error.  It would be much better if we did not have to do this.  Unfortunately, the &#8220;if-then&#8221; metaphor or most business rules management systems require us to do so.  It would be much better if we could avoid the double negation of negating conditions and negating conclusions.  For example, wouldn&#8217;t it be nice to write:</p>
<ul>
<li>You qualify for the EIC
<ol>
<li>only if your adjusted gross income is less than the limit&#8230;</li>
<li>only if you have a valid social security number</li>
<li>only if you are not married and filing separately</li>
<li>only if you were a US citizen or resident alien all year</li>
<li>only if you do not file form 2555 or 2555-EZ</li>
<li>only if your investment income was $2,600 or less</li>
<li>only if you had earned income</li>
</ol>
</li>
</ul>
<p>This is much closer to the original form and much more reliable.  Unfortunately it is <strong>wrong</strong>!</p>
<p>First, there is no implication here.  Each of these is necessary but not sufficient for the deduction that you qualify for the EIC.  In chapter 4, for example, the IRS gets around to saying that there are limits on earned income!</p>
<p>The fact is that all of these statements must be true in order to qualify, but even if they are all are, you may not be qualified.  This could be more easily expressed as follows:</p>
<ul>
<li>You do not qualify for the EIC
<ol>
<li>unless your adjusted gross income is less than the limit&#8230;</li>
<li>unless you have a valid social security number</li>
<li>unless you are not married and filing separately</li>
<li>unless you were a US citizen or resident alien all year</li>
<li>unless you do not file form 2555 or 2555-EZ</li>
<li>unless your investment income was $2,600 or less</li>
<li>unless you had earned income</li>
</ol>
</li>
</ul>
<p>Here we have avoided negating the conditions but we have retained the negative conclusion.  This is indicated by the fact that none of the conditions is sufficient for the positive conclusion.</p>
<blockquote><p><em>Think carefully about whether a statement is a condition or a rule and whether the conclusions of the rule should be stated positively or negatively.</em></p></blockquote>
<p>We&#8217;ll come back to the AGI limitations, but note that they are forward references to chapter 2!</p>
<h3><strong>Chapter 2. Rules If You Have a Qualifying Child</strong></h3>
<p><font color="#0000ff">If you have met all the rules in chapter 1, use this chapter to see if you have a qualifying child. This chapter discusses Rules 8 through 10. You must meet all three of those rules, in addition to the rules in chapters 1 and 4, to qualify for the earned income credit with a qualifying child.</font></p>
<p><font color="#0000ff"><strong>Note</strong>. You must file Form 1040 or Form 1040A to claim the EIC with a qualifying child. (You cannot file Form 1040EZ.) You must also complete Schedule EIC and attach it to your return. If you meet all the rules in chapter 1 and this chapter, read chapter 4 to find out what to do next.</font></p>
<p><font color="#0000ff"><strong>No qualifying child</strong>. If you do not meet Rule 8, you do not have a qualifying child. Read chapter 3 to find out if you can get the earned income credit without a qualifying child.</font></p>
<table border="1" cellPadding="0" cellSpacing="0">
<tr>
<td bgColor="#ffff00" width="37" vAlign="top"></td>
<td bgColor="#ffff00" width="168" vAlign="top"></td>
<td bgColor="#ffff00" width="433" vAlign="top"></td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>8</strong></td>
<td width="168" vAlign="top">Qualifying Child</td>
<td width="433" vAlign="top">Your Child Must Meet the Relationship, Age, and Residency Tests</td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>9</strong></td>
<td width="168" vAlign="top">Qualifying Child of More Than One Person</td>
<td width="433" vAlign="top">Your Qualifying Child Cannot Be Used By More Than One Person To Claim the EIC</td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>10</strong></td>
<td width="168" vAlign="top">Qualifying Child of Another Person</td>
<td width="433" vAlign="top">You Cannot Be a Qualifying Child of Another<strong> </strong>Person</td>
</tr>
</table>
<p>This chapter is a bit trickier in that it begins to talk about children, which is plural.  The introduction is misleading because we are not simply determining whether we have a qualifying child but which of our children qualify.  For example, our adjusted gross income limitation is higher if we have more than one.  In addition, the relationship, age and residency tests also tricky.  We&#8217;ll come back to those after chapter 4.</p>
<p>What are the conclusions that we are trying to reach in this chapter?</p>
<p>Try completing the following sentences:</p>
<ul>
<li>If your child meets the relationship, age, and residency tests then&#8230;</li>
<li>If your qualifying child cannot be used by more than one person to claim the EIC then&#8230;</li>
<li>If you cannot be a qualifying child of another person then&#8230;</li>
</ul>
<p>Now it is clearly tempting to try to write the first of these as:</p>
<ul>
<li>If your child meets the relationship, age, and residency tests then your child qualifies.</li>
</ul>
<p>But this is not really true if another person claims your child or you as a qualifying child, right?</p>
<p>Also, what happens if you have two children, both of whom satisfy the relationship, age, and residency tests?  Suppose only one of them can be used as a qualify child by someone else.  How many qualifying children do you have if you cannot be claimed as a qualifying child by anyone else?</p>
<p>This may seem complicated, but it is a common problem.  Let&#8217;s look at the answer first and then figure out how to get to it more easily.</p>
<p>In this chapter we are trying to determine which of our children qualify.  That is:</p>
<ul>
<li>A child of yours qualifies 
<ol>
<li>Only if the child meets the relationship test.</li>
<li>Only if the child meets the age test.</li>
<li>Only if the child meets the residency test.</li>
<li>Only if the child cannot be used by more than one person to claim the EIC</li>
<li>Only if you do not a qualifying child of someone else</li>
</ol>
</li>
</ul>
<p>Note that this expression has eliminated the use of the word &#8220;qualifying&#8221; within rules 9 and 10.</p>
<p>The IRS has some additional language on who can use a child to claim the EIC that exposes additional flaws in their expression. </p>
<blockquote><p><font color="#0000ff">You can choose which person will claim the EIC. If you and someone else have the same qualifying child, you and the other person(s) can decide who will claim the credit using that qualifying child. But if you and the other person(s) cannot agree and more than one person claims the credit using the same child, the tie-breaker rule (explained in Table 2, next) applies. If the other person is your spouse and you file a joint return, this rule does not apply.</font></p></blockquote>
<p>And here is the table of tie-breaker rules:</p>
<table border="1" cellPadding="0" cellSpacing="0">
<tr>
<td bgColor="#ffff00" width="379" vAlign="top"><strong>IF more than one person claims the EIC using the same child and .</strong></td>
<td bgColor="#ffff00" width="259" vAlign="top"><strong>THEN</strong></td>
</tr>
<tr>
<td width="379" vAlign="top"><strong>Only one of the persons is the child&#8217;s parent </strong></td>
<td width="259" vAlign="top">Only the parent can treat the child as a qualifying child.</td>
</tr>
<tr>
<td width="379" vAlign="top"><strong>Two of the persons are the child&#8217;s parent, and they do not file a joint return together</strong></td>
<td width="259" vAlign="top">Only the parent with whom the child lived the longest during the year can treat the child as a qualifying child.</td>
</tr>
<tr>
<td width="379" vAlign="top"><strong>Two of the persons are the child&#8217;s parent, the child lived with each parent the same amount of time during the year, and the parents do not file a joint return together</strong></td>
<td width="259" vAlign="top">Only the parent with the highest adjusted gross income (AGI) can treat the child as a qualifying child</td>
</tr>
</table>
<p>So the IRS would have better stated rule 9 in some other way, but it is hard to formulate!  The IRS introduced the notion of a child who passes the three tests to get closer to a reasonably simple expression but still failed.  Let&#8217;s try their approach:</p>
<ul>
<li>A child of yours passes the qualification tests 
<ol>
<li>If and only if the child meets the relationship test</li>
<li>If and only if the child meets the age test</li>
<li>If and only if the child meets the residency test</li>
</ol>
</li>
</ul>
<p>Note that this is still not right since the IRS anticipates that a child may pass these tests for more than one person.  Also, the relationship test will not simply involve you, but any person that a child might qualify for and, as demonstrated in the tie-breaker table, the residency test also considers who the child resides with. Therefore, we should re-write the preceding inference as:</p>
<ul>
<li>A person&#8217;s child passes the qualification tests 
<ol>
<li>If and only if the child meets the relationship test for the person</li>
<li>If and only if the child meets the age test</li>
<li>If and only if the child meets the residency test for the person</li>
</ol>
</li>
</ul>
<p>Now, we can clarify the IRS&#8217; logic, as in:</p>
<ul>
<li>A person&#8217;s child qualifies
<ol>
<li>Only if the child passes the qualification tests for the person</li>
<li>Unless the child passes the qualification tests for another person
<ol>
<li>Unless the two people file a joint return together</li>
<li>Unless the other person agrees that the first person can claim the child as qualifying</li>
<li>Unless the first person wins the tie breaker for the child versus the other person</li>
</ol>
</li>
</ol>
</li>
<li>A person wins the tie-breaker for a child versus another person 
<ol>
<li> If the first person is the child&#8217;s parent
<ol>
<li>Unless the other person is the child&#8217;s parent
<ol>
<li>Unless the child lived with the first person longer</li>
<li>If the child lived with each person for the same amount of time
<ol>
<li>Unless the first person has the higher adjusted gross income</li>
<li>If the second person has the higher adjusted gross income</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ul>
<p>Note the last two, most nested conditions are harmlessly redundant.  (The regulations did not seem clear for two people with the same AGI.) </p>
<p>Of course, there are other means of expressing the same logic, as in:</p>
<ul>
<li>A person wins the tie-breaker for a child versus another person
<ol>
<li>Only if the first person is the child&#8217;s parent</li>
<li>Unless the other person is the child&#8217;s parent
<ol>
<li>Unless the child lived with the first person longer</li>
<li>If the other person has a higher adjusted gross income</li>
<li>If the child lived with the other person longer</li>
</ol>
</li>
</ol>
</li>
</ul>
<p>All of these forms can be automated by some commercial BRMS while the tables require a lot more intelligence and interpretation to understand.  All the knowledge that it takes to decipher the conditions in one column versus the conclusions in the other and that they are sequential in application top to bottom is too much for today&#8217;s software.</p>
<p>Finally, the rules in chapter 2 should infer which of your children qualify.  If you have no children, they will not apply, obviously.  If you have two children, there may be zero, one or two that qualify.  Then, the rules that refer to how many qualifying children you have will work.</p>
<p>Don&#8217;t worry about sequencing your rules for now &#8211; just realize that inferences build on each other.  <strong>Rely on it.</strong></p>
<h2><strong>Chapter 3. Rules If You Do Not Have a Qualifying Child</strong></h2>
<p><font color="#0000ff">Use this chapter if you do not have a qualifying child and have met all the rules in chapter 1. This chapter discusses Rules 11 through 14. You must meet all four of those rules, in addition to the rules in chapters 1 and 4, to qualify for the earned income credit without a qualifying child.</font></p>
<p><font color="#0000ff">Note. You can file Form 1040, Form 1040A, or Form 1040EZ to claim the EIC without a qualifying child. If you meet all the rules in chapter 1 and this chapter, read chapter 4 to find out what to do next.</font></p>
<table border="1" cellPadding="0" cellSpacing="0">
<tr>
<td bgColor="#ffff00" width="37" vAlign="top"></td>
<td bgColor="#ffff00" width="168" vAlign="top"></td>
<td bgColor="#ffff00" width="433" vAlign="top"></td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>11</strong></td>
<td width="168" vAlign="top">Age</td>
<td width="433" vAlign="top">You Must Be at Least Age 25 but Under Age 65</td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>12</strong></td>
<td width="168" vAlign="top">Dependent of Another Person</td>
<td width="433" vAlign="top">You Cannot Be the Dependent of Another Person</td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>13</strong></td>
<td width="168" vAlign="top">Qualifying Child of Another Person</td>
<td width="433" vAlign="top">You Cannot Be a Qualifying Child of Another Person</td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>14</strong></td>
<td width="168" vAlign="top">Main Home in United States</td>
<td width="433" vAlign="top">You Must Have Lived in the United States More Than Half of the Year</td>
</tr>
</table>
<p>Try the same approach as we have taken in prior chapters.  Think about the conclusions of these rules by trying to complete the following:</p>
<ul>
<li>If you are at least age 25 but under age 65 then&#8230;</li>
<li>If you cannot be the dependent of another person then&#8230;</li>
<li>If you cannot be a qualifying child of another person then&#8230;</li>
<li>If you must have lived in the United States more than half the year then&#8230;</li>
</ul>
<p>The conclusions are not that you qualify for the EIC.  As in the first chapter, their logic is negative.  If you don&#8217;t meet these conditions and you have no qualifying children, then you are not qualified for the EIC.</p>
<ul>
<li>If you do not have a qualifying child then you do not qualify for the EIC
<ol>
<li>If you are under 25 years old</li>
<li>If you are over 65 years old</li>
<li>If you are a dependent of another person</li>
<li>If you are a qualifying child of another person</li>
<li>If you have lived in the United States less than half the year.</li>
</ol>
</li>
</ul>
<p>Note that as we experienced in the first chapter, however, we have had to negate the conditions.  Fortunately, I think they read better so I won&#8217;t belabor the point.</p>
<h3><strong>Chapter 4. Figuring and Claiming the EIC</strong></h3>
<p><font color="#0000ff">You must meet one more rule to be eligible to claim the EIC.</font></p>
<table border="1" cellPadding="0" cellSpacing="0">
<tr>
<td bgColor="#ffff00" width="37" vAlign="top"></td>
<td bgColor="#ffff00" width="168" vAlign="top"></td>
<td bgColor="#ffff00" width="433" vAlign="top"></td>
</tr>
<tr>
<td width="37" vAlign="top"><strong>15</strong></td>
<td width="168" vAlign="top">Earned Income Limits</td>
<td width="433" vAlign="top">Your Earned Income Must Be Less Than:</p>
<ul>
<li>$33,692 ($34,692 for married filing jointly) if you have more than one qualifying child,</li>
<li>$29,666 ($30,666 for married filing jointly) if you have one qualifying child, or</li>
<li>$11,230 ($12,230 for married filing jointly) if you do not have a qualifying child.</li>
</ul>
</td>
</tr>
</table>
<p>The earned income limitations are similar to the adjusted gross income limitations in the first chapter in that they vary by filing status and the number of qualifying children.  This could be easily and appropriately coded in two lookup tables.  <strong>Not everything has to be a rule!</strong></p>
<p>Without further ado, I give you the Earned Income Limits:</p>
<table border="1" cellPadding="0" cellSpacing="0">
<tr>
<td bgColor="#ffff00" width="213" vAlign="top">
<p align="center"><strong>Qualifying Children</strong></p>
</td>
<td bgColor="#ffff00" width="213" vAlign="top"><strong>Filing Jointly</strong></td>
<td bgColor="#ffff00" width="213" vAlign="top"><strong>Not Filing Jointly</strong></td>
</tr>
<tr>
<td bgColor="#ffff00" width="213" vAlign="top">
<p align="center"><strong>0</strong></p>
</td>
<td bgColor="#7fff00" width="213" vAlign="top">$12,230</td>
<td bgColor="#7fff00" width="213" vAlign="top">$11,230</td>
</tr>
<tr>
<td bgColor="#ffff00" width="213" vAlign="top">
<p align="center"><strong>1</strong></p>
</td>
<td bgColor="#3fff00" width="213" vAlign="top">$30,666</td>
<td bgColor="#3fff00" width="213" vAlign="top">$29,666</td>
</tr>
<tr>
<td bgColor="#ffff00" width="213" vAlign="top">
<p align="center"><strong>&gt;1</strong></p>
</td>
<td bgColor="#7fff00" width="213" vAlign="top">$34,692</td>
<td bgColor="#7fff00" width="213" vAlign="top">$33,692</td>
</tr>
</table>
<p>Then we can write that:</p>
<ul>
<li>You do not qualify for the EIC
<ol>
<li>unless your income is less than your earned income limit</li>
</ol>
</li>
<li>Your earned income limit is the amount stored in the Earned Income Limits table for the number of your children that qualify and your filing status.</li>
</ul>
<p>I would repeat this for adjusted gross income, but lo and behold &#8211; they are the same!</p>
<h3><strong>The EIC in a nutshell</strong></h3>
<p>The total logic of the earned income tax credit (excluding the relationship, age, and residency tests for a qualify child) could be expressed as:</p>
<ul>
<li>A person&#8217;s child qualifies
<ol>
<li>Only if the child passes the qualification tests for the person</li>
<li>Unless the child passes the qualification tests for another person
<ol>
<li>Unless the two people file a joint return together</li>
<li>Unless the other person agrees that the first person can claim the child as qualifying</li>
<li>Unless the first person wins the tie breaker for the child versus the other person</li>
</ol>
</li>
</ol>
</li>
<li>A person wins the tie-breaker for a child versus another person
<ol>
<li>If the first person is the child&#8217;s parent
<ol>
<li>Unless the other person is the child&#8217;s parent
<ol>
<li>Unless the child lived with the first person longer</li>
<li>If the child lived with each person for the same amount of time
<ol>
<li>Unless the first person has the higher adjusted gross income</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
<li>You do not qualify for the EIC
<ol>
<li>unless you have a valid social security number</li>
<li>unless you are not married and filing separately</li>
<li>unless you were a US citizen or resident alien all year</li>
<li>unless you do not file form 2555 or 2555-EZ</li>
<li>unless your investment income was $2,600 or less</li>
<li>unless you have a qualifying child
<ol>
<li>If you are under 25 or over 65 years old</li>
<li>If you are a dependent of another person</li>
<li>If you are a qualifying child of another person</li>
<li>If you have lived in the United States less than half the year.</li>
</ol>
</li>
<li>unless your adjusted gross income is less than your earned income limit</li>
<li>unless your earned income is less than your earned income limit</li>
</ol>
</li>
<li>Your earned income limit is the amount stored in the Earned Income Limits table for the number of your children that qualify and your filing status.</li>
</ul>
<h3><strong>Qualifying Children</strong></h3>
<p>The relationship, age, and residency tests of the EIC are described in laborious detail on pages 11 to 14 of <a href="http://haleyai.com/pdf/publication596.pdf">publication 596</a>.  Here&#8217;s what the say, albeit with much more &#8220;effort&#8221;:</p>
<ul>
<li>A child passes the relationship test for you
<ol>
<li>If the child is your son, daughter, adopted child, or stepchild or descendent of any of these.</li>
<li>If the child is your foster child
<ol>
<li>Only if the child is placed with you by an authorized placement agency</li>
<li>Only if you care for the child as you would your own child</li>
</ol>
</li>
<li>Unless the child is married at the end of the year
<ol>
<li>Unless you can claim as an exemption
<ol>
<li>Unless you cannot claim the child&#8217;s exemption because you gave that right to another parent of the child
<ol>
<li>If you completed form 8332 or a similar written statement</li>
<li>If you did so in a written agreement prior to 1985</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
<li>A child passes the age test for you
<ol>
<li>If the child was under 19 years old at the end of the year</li>
<li>If the child was a full time student under 24 at the end of the year who lived with you in the United States for more than half the year.</li>
<li>If the child was permanently and totally disabled at any time during the year.</li>
</ol>
</li>
<li>A child passes the residency test for you
<ol>
<li>If the child lived with you in the United States for more than half the year.</li>
</ol>
</li>
</ul>
<p>And there are further details about what it means to be a full-time student or to reside in the United States (including provisions for US territories, military personnel stationed elsewhere, kidnapping, homelessness, and death).  There is even one universally applicable rule buried in the details:</p>
<ul>
<li>A child does not qualify unless the child has a valid social security number unless the child was born and died within the year.</li>
</ul>
<p>If any reader has a question about how to handle the details within the EIC, please leave a comment or send email. </p>
<p>I&#8217;ll finish up with one finer point.  The phrase &#8220;or descendent of any of these&#8221; is a bit complicated for the natural language processing logic in current BRMS.  In order to get the expressed logic clear enough that it can be automated with today&#8217;s technology, it would be better to rephrase as follows:</p>
<p>A child passes the relationship test for you</p>
<ul>
<li>A child passes the relationship test for you
<ol>
<li>If the child is your legal child.</li>
<li>If the child is a descendent of your legal child</li>
</ol>
</li>
<li>A child is your legal child
<ol>
<li>if the child is your son, daughter, adopted child or stepchild.</li>
</ol>
</li>
</ul>
<p>For those who are familiar with Authority, you can see that these rules are essentially executable once the vocabulary and phraseology is defined.  Although SBVR is not as         expressive today, I hope it develops to be so capable, even if it takes Microsoft&#8217;s &#8220;embrace and extend&#8221; approach.</p>
]]></content:encoded>
			<wfw:commentRss>http://haleyai.com/wordpress/2008/03/28/harvesting-business-rules-from-the-irs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rules are not enough.  Knowledge is core to reuse.</title>
		<link>http://haleyai.com/wordpress/2008/02/22/rules-are-not-enough-knowledge-is-core-to-reuse/</link>
		<comments>http://haleyai.com/wordpress/2008/02/22/rules-are-not-enough-knowledge-is-core-to-reuse/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 14:14:39 +0000</pubDate>
		<dc:creator>paul@haleyAI.com</dc:creator>
				<category><![CDATA[Business Process Management]]></category>
		<category><![CDATA[Business Rules Management]]></category>
		<category><![CDATA[Decision Management]]></category>
		<category><![CDATA[Knowledge Management]]></category>
		<category><![CDATA[Ontology]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[ACORD]]></category>
		<category><![CDATA[BPM]]></category>
		<category><![CDATA[decision services]]></category>
		<category><![CDATA[EDM]]></category>
		<category><![CDATA[FIX]]></category>
		<category><![CDATA[knowledge]]></category>
		<category><![CDATA[logic]]></category>
		<category><![CDATA[MISMO]]></category>
		<category><![CDATA[PRR]]></category>
		<category><![CDATA[RIF]]></category>
		<category><![CDATA[SBVR]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[vocabulary]]></category>
		<category><![CDATA[XBRL]]></category>

		<guid isPermaLink="false">http://haleyai.com/wordpress/2008/02/22/rules-are-not-enough-knowledge-is-core-to-reuse/</guid>
		<description><![CDATA[James Taylor&#8217;s blog today on rules being core to BPM and SOA in which he discussed reuse had a particularly strong impact on me following a trip yesterday.  During a meeting with the insurance and retail banking practice leaders at a large consulting firm, we looked for synnergies between applications related to investment and applications [...]]]></description>
			<content:encoded><![CDATA[<p align="left">James Taylor&#8217;s blog <a target="_blank" href="http://www.edmblog.com/weblog/2008/02/business-rules.html">today</a> on rules being core to BPM and SOA in which he discussed reuse had a particularly strong impact on me following a trip yesterday.  During a meeting with the insurance and retail banking practice leaders at a large consulting firm, we looked for synnergies between applications related to investment and applications related to risk.  Of course, during that conversation, we discussed whether operational rules could be usefully shared across these currently siloed areas, but we landed up discussing what they had in common in terms of business concepts, definitions, and fundamental truths or enterprise wide governance.  It was clear to us that this was the most fruitful area to develop core, reusable knowledge assets. </p>
<p>In his post, James agrees with the Butler Group&#8217;s statement:</p>
<blockquote><p>Possibly the most important aspect of a rules repository, certainly in respect of the stated promise of BPM, Service Oriented Architecture (SOA), and BRMS, is the ability for the developer to re-use rules within multiple process deployments.</p></blockquote>
<p>I have several problems with this statement:<span id="more-53"></span></p>
<ol>
<li>I don&#8217;t think it&#8217;s the most important aspect.</li>
<li>I don&#8217;t think the possibility of re-use is being realized.</li>
<li>I  think current tools&#8217; facilitation of re-use is limited.</li>
</ol>
<p>The most important aspect of a repository is the reuse of knowledge, not just rules.  The types of knowledge that are most easily reused are:</p>
<ol>
<li>the <u>vocabulary</u> (e.g., nouns, verbs and adjectives) and what they mean in the domain</li>
<li>the <u>taxonomy</u> of concepts and how they are refered to using (primarily) nouns and adjectives</li>
<li>the <u>ontology</u> of concepts, which is the taxonomy plus relationships between concepts, and how they are referenced using nouns, verbs and adjectives</li>
<li>the <u>definitions</u> of derived concepts in terms of formulas or equations or constraints that define the truth without respect to process, state, or event</li>
<li>the <u>rules</u> that specify behavior, regulation, governance, or policy</li>
</ol>
<p>And their re-use decreases in the same order.  Industry specific standards, like ACORD or MISMO of FIX or XBRL, for example, stop at 2 or 3.  Logical formalism address 4 but are used more rarely than business rules.  The SBVR standard, although it stands for the semantics of business vocabulary and rules, actually stops at 4.  It&#8217;s rules are logical definitions and constraints, not business rules that take action, resulting in state transitions, data modifications, or other side-effects.</p>
<p>The use of SBVR or simply ontology is quite limited in today&#8217;s BRMS/BPM markets.  There is simply too little emphasis on separating semantic models and business vocabularies using logic and ontology.  Most BRMS/BPM platforms are fixated on behavior and process, rather than truth and knowledge. </p>
<p>Sure, clever enterprise architects and systems analyts can engineer rules so that they are useful in more than one application, but this is not the typical result of a business rules application.  I do agree that encapsulating decisions within services is a more viable way of realizing re-use, but that is an architectural result (i.e., an SOA benefit), not a benefit of a rules repository.</p>
<p>I have blogged repeatedly (see the requirements category, for example) about the limitations of current tools with regard to vocabulary, separating ontology from implementation, and managing definitions and functional requirements in the natural form.  Current BRMS tools are generally limited to an if-then mentality that makes them inadequate for managing knowledge.  If-then metaphors force knowledge to be expressed and organized relative to how it is used.  This fundamentally and inherently limits its reusability.</p>
<p>Just to drive this home, if you are technically inclined, take a look at the standard developed by the vendors, PRR.  It will become immediately apparent that their focus is on rules at the operational rather than the knowledge level.  RIF, on the other hand, evolved from the logic community to address the requirements of the semantic web.  In this regard it is much more like SBVR.  It makes up for its vocabularly weaknesses with much more ontological and logical strength.  Nonetheless, RIF, like SBVR, is more at level 4 than level 5. </p>
<p>Another way of looking at this is that the models more than the rules are interchangeable.  This misses that logical rules are very reusable, but it is in accordance with the 80/20 rule.  In BPM, for example, the model is shared across processes.  With decision management, the model should also be shared across decisions.  The easiest rules to share across decisions are those that are true, not those that determine what to do.  </p>
<p>Practically speaking, put rules that determine what to do in a services that share what is true. </p>
<p>[ratings]</p>
]]></content:encoded>
			<wfw:commentRss>http://haleyai.com/wordpress/2008/02/22/rules-are-not-enough-knowledge-is-core-to-reuse/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Elicitation and Management of Rules, Requirements and Decisions</title>
		<link>http://haleyai.com/wordpress/2008/01/08/elicitation-and-management-of-rules-requirements-and-decisions/</link>
		<comments>http://haleyai.com/wordpress/2008/01/08/elicitation-and-management-of-rules-requirements-and-decisions/#comments</comments>
		<pubDate>Tue, 08 Jan 2008 20:35:17 +0000</pubDate>
		<dc:creator>paul@haleyAI.com</dc:creator>
				<category><![CDATA[Business Rules Management]]></category>
		<category><![CDATA[Decision Management]]></category>
		<category><![CDATA[Methodology]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[ambiguity]]></category>
		<category><![CDATA[analyst]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[BRMS]]></category>
		<category><![CDATA[completeness]]></category>
		<category><![CDATA[consistency]]></category>
		<category><![CDATA[Corticon]]></category>
		<category><![CDATA[elicitation]]></category>
		<category><![CDATA[Haley]]></category>
		<category><![CDATA[Ilog]]></category>
		<category><![CDATA[Natural Language]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[Ruleburst]]></category>
		<category><![CDATA[SBVR]]></category>
		<category><![CDATA[vocabulary]]></category>
		<category><![CDATA[Word]]></category>

		<guid isPermaLink="false">http://haleyai.com/wordpress/2008/01/08/elicitation-and-management-of-rules-requirements-and-decisions/</guid>
		<description><![CDATA[A manager of an enterprise architecture group recently asked me how to train business analysts to elicit or harvest rules effectively. We talked for a bit about the similarities in skills between rules and requirements and agreed that analysts will fail to understand rules as they fail to understand requirements.
For example, just substitute rules in [...]]]></description>
			<content:encoded><![CDATA[<p>A manager of an enterprise architecture group recently asked me how to train business analysts to elicit or harvest rules effectively. We talked for a bit about the similarities in skills between rules and requirements and agreed that analysts will fail to understand rules as they fail to understand requirements.</p>
<p>For example, just substitute rules in the historical distribution of requirements failures:<sup>[1]</sup></p>
<ul>
<li>34% Incorrect requirements</li>
<li>24% Inadequate requirements</li>
<li>22% Ambiguous requirements</li>
<li>9% Inconsistent requirements</li>
<li>4% Poor scoping of requirements</li>
<li>4% Transcription errors in requirements</li>
<li>3% New or changing requirements</li>
</ul>
<p><span id="more-33"></span></p>
<p>So the problem is not training analysts to capture rules but helping them understand that rules and requirements are two sides of the same coin, especially when focusing on the functional needs of clients<sup>[2]</sup>. Of course, when we focus on functional requirements and rules in the modern age, we expect new or changing rules and requirements to lead to more failure.</p>
<p>Note that these percentages hold from the era of waterfall development. There have been improvements from iterative, spiral, and other rapid application development methodologies. RAD helps correct, expose and disambiguate requirements by exposing development obstacles or functional inadequacies earlier, but RAD does not improve the process of elicitation directly.</p>
<p>Today, especially concerning functional requirements and business rules, change is both pervasive and chronic while agility is critical. That is, maintaining correct, adequate, unambiguous, and consistent requirements has become a real-time challenge. Change occurs asynchronously and more rapidly than even the shortest plausible RAD iteration.</p>
<p>Fortunately, rule-based technology can address change directly &#8211; if the rules are accurate, adequate, and unambiguous<sup>[3]</sup>. Regrettably, the same cannot yet be said for functional requirements (yet), as discussed <a href="/wordpress/2008/01/03/when-rules-meet-requirements/">here</a>.</p>
<p>Still, key questions and points are apparent, particularly considering agility:</p>
<ul>
<li>How do incorrect rules or requirements persist?</li>
<li>How can inadequacies be exposed in real-time?</li>
<li>Can ambiguity be avoided in real-time?</li>
<li>Can inconsistency be exposed in real-time?</li>
</ul>
<p>In each case, if the answer is &#8220;not completely&#8221; or, worse, &#8220;not at all&#8221;, is there a coping strategy?</p>
<p>In the following sections, we examine correctness, adequacy, ambiguity, and consistency. As will become apparent, with some understanding and technique, in addition to use cases, eliciting rules and requirements can be accomplished much more effectively.</p>
<h3><strong>Correctness</strong></h3>
<p>How can an analyst know if a rule or requirement is correct? In some cases, it may be evident. And in some such evident cases, the analyst will nonetheless be mistaken. Nonetheless, the &#8220;self-evident&#8221; criterion is useful and generally reliable. But when an analyst is less than certain, how is correctness established?</p>
<p>The fact that incorrect rules or requirements persist into development or production in so many cases is evidence that correctness is typically established poorly. How does this happen?</p>
<p>The answer must be simple. It must be the case that too few knowledgeable people considered the requirement before it passed into development. Alternatively, perhaps some such requirements are too complex for human contemplation? Or perhaps the requirement was ambiguous, which we discuss separately below.</p>
<p>If an unambiguous requirement is incorrect, it must be either too complex or it must not have been considered enough by enough knowledgeable people. If too complex and considered by enough knowledgeable people, however, it would naturally be clarified and broken down. No matter how complex, if enough people understood it, failure would not be at the requirements stage but in implementation.</p>
<p>An unambiguous and yet incorrect requirement is almost certainly a result of inadequate collaboration. There are organizational and technical reasons that typically result in such poor collaboration.</p>
<p>Organizationally, the requirements process may flow from stakeholders and subject matter experts to application developers in a waterfall process. Literally, the organization expects the analyst to understand their needs and communicate them to others, not clarify them, seemingly ad infinitum, back to the stakeholders and SMEs. The organization resists investing their attention into iterative dialogue and review. The organization, perhaps unwittingly, seeks to minimize its up-front investment and ongoing commitment.</p>
<p>Technically, the tools or techniques used by analysts to capture and &#8211; more importantly &#8211; present rules and requirements back to stakeholders and SMEs alienate them. Ideally, the results of elicitation would be so clearly documented and presentable that reviewers could comfortably read and return marked up copy between sequential meetings or drafts. In reality, analysts tend to produce complex spreadsheets or documents with four or more levels and many cross references.</p>
<p>Such spreadsheets and documents are typically structured in a manner that is not intuitive to the reviewers. And the prose within such documents is typically composed with technical jargon or stilted prose rather than almost axiomatic statements expressed unambiguously in grammar familiar to authoritative and knowledgeable reviewers.</p>
<p>In practice, these organizational and technical realities result in documents that cannot be more than cursorily examined and excessive reliance on conversation and perception.</p>
<p>The result is the persistence of incorrect rules and requirements.</p>
<p>The cure is to ensure that the presentable form of captured requirements is easy to understand and can be reviewed without explanation.</p>
<p>This has many corollaries, of course! I will offer a few here:</p>
<ol>
<li>Minimize the need to present or teach how to interpret what is to be reviewed.</li>
<li>Minimize cross-references between sentences, paragraphs, sections, etc.</li>
<li>Seek sign off at the level of sentences rather than on a section or chapter.</li>
</ol>
<p>In addition to making elicited knowledge more perspicuous and subject to more collaborative review, every analyst knows that use cases are facilitate elicitation. Use cases not only assist with correcting rules or requirements, but identifying missing or inconsistent rules and requirements. So we cover the challenges of adequacy and consistency before discussing how use cases can be used more effectively. If you want to focus on this immediately, see my prior comments about requirements in <a href="/wordpress/2007/12/20/business-rules-process-management/">this</a> post.</p>
<h3><strong>Inadequacy</strong></h3>
<p>A collection of rules and requirements can be inadequate only if they are incomplete. That is, if all relevant rules and requirements are correctly understood, they cannot be collectively inadequate. So avoiding inadequacy is achieving coverage or completeness. Put another way, you will achieve adequacy when you are certain you know everything there is to know (at least &#8220;within scope&#8221;)!</p>
<p>Perhaps it is intuitively obvious that adequacy is something to seek but that we must cope with inadequacy. We cope with it by trying to identify it and minimize it, but we must also, at times, realize that we cannot resolve a situation at hand, and cope with that fact.</p>
<p>To reiterate:</p>
<ul>
<li>Try to identify incompleteness before moving to development or production</li>
<li>Cope with incompleteness when it is identified, especially during production</li>
<li>Once identified, seek the rule(s) or requirement(s) to eliminate incompleteness</li>
</ul>
<p>But how can we &#8220;identify&#8221; incompleteness?</p>
<p>Two approaches come to mind:</p>
<ol>
<li>Use an exhaustive, technical approach that covers EVERY possibility.</li>
<li>Determine when the rules and requirements produce no outcome for a use case.</li>
</ol>
<p>In the first case, a technical approach is to use nested tables to map every possible combination of input variables to an outcome value. This is equivalent to a decision tree on a vector of singly-valued inputs.<sup>[4]</sup> Alternatively, a spreadsheet metaphor does not feel as constraining but requires programmatic coverage analysis.<sup>[5]</sup> In each case, expressiveness has been sacrificed in order to <em><u>analytically</u></em> ensure completeness.</p>
<p>If the stakeholders and SMEs agree that all their rules and functional requirements (e.g., business policies and regulations) are based on a finite collection of singly-valued variables, such authoring and analytic techniques may be effective. Unfortunately, doing so violates the previous guideline about presentation being effective without training. Nonetheless, for fairly simple, closed problems, such approaches may pan out.</p>
<p>The problem with starting out with a limiting metaphor is that it may become an obstacle during elicitation. Consider whether it would make sense to tell stakeholders that you were going to reduce everything that they told you to flowcharts for their review. Why would you be more comfortable telling them that you are going to reduce everything they tell you to a forest of decision trees or a catalog of decision tables?</p>
<p>I recommend that analysts keep using the tools they understand.<sup>[6]</sup></p>
<blockquote><p>For the most part, this means Microsoft Word or, perhaps, a requirements management system, such as IBM&#8217;s Rational ReqPro, many of which use Word as the front-end to a collaborative, repository-based capability.</p></blockquote>
<p>Unfortunately, Word does not support analysts in their work and RMS have not advanced to the point of business rules management systems.<sup>[7]</sup> Specifically, RMS do not address the problems of ambiguity or transcription errors, such as by enforcing grammaticality using defined vocabulary as in BRMS. BRMS arguably support analyst tasks more effectively than Word or RMS, but they do handle only rules, not requirements!<sup>[8]</sup></p>
<p>The second alternative mentioned above for identifying inadequacy is to identify cases for which the rules and requirements gathered produce no result. As mentioned above, use cases effectively expose incorrect or inconsistent rules or requirements in addition to missing (i.e., inadequate) requirements.</p>
<blockquote><p>The key in each case is to determine the outcome or outcomes, if any, indicated by the rules and requirements elicited so far. Ideally, this will be done well in advance of development or deployment into production.</p></blockquote>
<p>Unfortunately, determining the outcome(s) for use cases is typically a mental exercise rather than automated. These mental exercises require comprehension and consideration hundreds or thousands of rules and functional requirements at once. They are clearly error prone. In many situations, their use is limited to the development phase, during which discrepancies between outcomes facilitate additional requirements or corrections.</p>
<p>In order for use cases to be more effective at eliciting more adequate and correct requirements, it is necessary for simulation to be more automatic than mental and to occur more before development or deployment than is typical. Simulation before programming is a capability of some BRMS<sup>[9]</sup> but is not facilitated by Word or RMS.</p>
<p>BRMS can simulate use cases without requiring code to the extent that use cases and rules are &#8220;understood&#8221;. If the form they understand is presentable without explanation to stakeholders and SMEs, a BRMS may be an adequate RMS for use by analysts.<sup>[10]</sup></p>
<p>I don&#8217;t think the market is there yet, however. The market needs more natural language analysis applied to requirements, in particular. Specifically, the vocabulary and phraseology used in rules and requirements needs to be managed.<sup>[11]</sup> Without understanding the meaning of the words used in rules or requirements it is clearly not possible to understand the sentences that use them. Beyond the meaning of words or phrases, more natural language analysis of clauses and sentences is required to discern the plausible logical interpretations of each captured rule or requirement.<sup>[12]</sup></p>
<h3><strong>Ambiguity</strong></h3>
<p>Most analysts do not apply natural language processing technology as discussed above to ensure that the rules or requirements they have captured are grammatical and use only defined vocabulary. Until they do, ambiguity will be extremely difficult to eliminate.</p>
<p>Microsoft Word may appear almost good enough here. It does a good job of flagging grammatical errors based on a grammar of English and knowledge of the parts of speech a large vocabulary. Unfortunately, Word&#8217;s grammar check cannot be limited to the domain of discourse relevant to a particular problem. You can&#8217;t stop someone from introducing requirements involving gorillas using Word. And Word won&#8217;t complain about grammatical nonsense, such as &#8220;He at piece of Pennsylvania&#8221;.</p>
<p>Analysts need (B)RMS tools that identify rules and requirements that are not grammatical or that use undefined vocabulary (including misspellings) or that use vocabulary or phrases within sentences that are not understood. Such sentences may or may not make sense. If they do make sense, the tool needs to acquire the meaning of that construct before it will be able to deduce the plausible meanings of sentences that use it.</p>
<p>The plausible meaning or logical interpretations of a sentence are what it might mean in a formal, rigorous, &#8220;interpretable&#8221; sense. Ambiguity arises when the sentence(s) that express a rule or requirement have more than one plausible interpretation. If an analyst has taken the first step of applying natural language analysis this second step will flag requirements that have zero or multiple plausible interpretations.</p>
<p>If a rule or requirement has zero plausible interpretations it cannot be simulated automatically. In practice, this may result in a delay in verifying its correctness, as discussed above, or in detecting inconsistencies, as will be discussed below.</p>
<p>If a rule or requirement has multiple plausible interpretations any or all of them can be simulated automatically using a logic or rules engines. Typically, this execution is limited to rules using a rules engine. Authority, for example, understands rules expressed in English, and will complain if they are grammatical using only defined vocabulary and phrasings, but ambiguous nonetheless.</p>
<blockquote><p>The technology to extend Word-like grammar checking to Authority-like understanding may not be obvious but is nonetheless straightforward. This step will substantially improve requirements and modeling processes.</p></blockquote>
<p>In the event that a rule is expressed in grammatical sentences that are unambiguously understood, Authority can generate and interpret rules using Haley&#8217;s Eclipse rule syntax and engine. By also capturing use cases in Authority, the correctness, adequacy and consistency of rules can be determined based on outcomes that are simulated using automation rather than mentally.</p>
<blockquote><p>The technology to extend Authority-like simulation of rules to include requirements involves either more production rule generation or the use of logical theorem provers. These steps will substantially improve the requirements process by identifying incorrect, inadequate, and incomplete requirements before implementation.</p></blockquote>
<p>RMS will eventually incorporate disambiguation but it will be longer before they incorporate automatic simulation. BRMS are better positions to move in this direction but are not adequate for direct use by analysts in capturing requirements at this time. In addition, there is too much coupling between the RMS capabilities of rules vendors and their proprietary business rules engines (BRE). Until BRMS vendors actually support (rather than simply endorse) emerging standards, my recommendation to separate RMS and BRE decisions will remain in force.</p>
<p>I truly hope that Ruleburst continues in the direction I set out in Authority and extends its natural language understanding to requirements in addition to rules. Regrettably, I did not have the opportunity to demonstrate the generation of logic or the use of theorem proving for requirements before they bought the assets of &#8220;my&#8221; former company. Therefore, I suspect that they will remain in just a BRMS and leave this opportunity.</p>
<p>Wouldn&#8217;t it be great if IBM did this for Rational ReqPro?</p>
<h3><strong>Inconsistency</strong></h3>
<p>In this article we are addressing the failures in eliciting requirements first cited above. Incorrect, inadequate, and ambiguous requirements were cited as 80% of the problem and we have discussed that the impact of changing functional requirements and rules was underestimated. According to the Pareto Principle, therefore, we might ignore inconsistency.<sup>[13]</sup> However, the framework we have discussed above addresses inconsistency so directly that it can be tackled with little additional effort.</p>
<p>The challenge for an analyst during elicitation shifts from an initial emphasis on simply acquiring correct rules and requirements, where almost anything new is welcome, to focusing on inadequacies where there is enough content that fleshing it out rather than building it up takes priority. As the content containing rules and requirements becomes substantially correct and increasingly adequate use cases and simulation become increasingly important to identify residual errors and inadequacies, as well as inconsistencies.</p>
<p>As discussed above, relying exclusively on mental simulation results in more incorrect requirements and less adequate requirements entering development or production. Iterative development methodologies reduce but cannot eliminate the resulting increases in costs and time to market that risk projects and lower ROI.</p>
<h3><strong>Simulation without Implementation</strong></h3>
<p>Using automatic simulation of use cases, as first discussed above, the outcomes for each case can be determined by interpreting rules and functional requirements prior to development or deployment into production. For each simulated use case, the outcomes fall into one of the following:</p>
<ol>
<li>No outcome is determined.</li>
<li>A single outcome is determined.</li>
<li>Multiple outcomes are determined.</li>
</ol>
<p>For the purpose of discussion, assume that the business process at hand involves a number of decisions and that the expected or correct decisions for each use case are known by the business analyst or can be determined given the results of simulation by the stakeholders or SMEs.</p>
<p>In the first case, the absence of a decision, inconsistency is not the problem. An incorrect rule or functional requirement is possible but it is more likely that one is missing. In this case, simulation will facilitate elicitation.</p>
<p>In the second case, the outcome is either expected or unexpected. In either case, it may be correct or incorrect. If authorities determine, upon reflection given a use case, that an expected outcome is incorrect, one or more rules or requirements are usually incorrect. Otherwise, there is an inadequacy (i.e., an omission). Quite frequently, authorities determine that an unexpected outcome is in fact incorrect, typically arising from an incorrect or missing rule or requirement.</p>
<p>In either case, the ability to review the chain of reasoning that produced an errant decision for a use case with authorities is a very effective and focusing elicitation tool.</p>
<p>Regrettably, most analysts have little experience with such effective elicitation until the latter iterations of traditional software development processes. This is one of the early improvements that can be realized from augmenting analysts with tools to capture and simulate functional requirements and rules.</p>
<p>In the third case, where simulation produces multiple outcomes for a single decision given a use case, the outcomes are typically in conflict. That is, they are inconsistent and, by implication, rules or requirements must be inconsistent.</p>
<h3><strong>Theory versus Practice</strong></h3>
<p>Before diving in to the use of simulation and elicitation to avoid inconsistency, we should discuss the notion of resolving inconsistencies. Unlike avoidance, resolution implies tolerance for inconsistency. Resolving inconsistency is practical. Avoiding inconsistency, however desirable, is not &#8211; in general &#8211; practical.</p>
<p>Most commercial business rule engines (BRE) are based on production rules. Conflict resolution has been addressed since the early beginnings of this technology.<sup>[14]</sup> Conflict resolution has since matured to a notion of deliberation in which decisions are considered before action is taken.<sup>[15]</sup><sup>[16]</sup></p>
<p>Avoiding inconsistent rules and requirements requires extreme and onerous precision in the specification of conditions and exceptions. Resolving inconsistencies typically involves some type of scoring function, which may be as simple as a priority, or preferences, which may be levels of stratification, pair-wise, or even higher level rules and requirements (sometimes called &#8220;meta&#8221; knowledge).</p>
<p>For example, if a customer qualifies for multiple loans from various lenders, clarifying conditions and exceptions such that only one loan from a single lender is selected would be impractical. Instead, meta-knowledge about the respective benefits of alternative loans might order specific recommendations or result in a single, high scoring recommendation.</p>
<p>Technical analysts tend to place far too much emphasis on reducing decisions to a single outcome without deliberation. There are requirements and then there are requirements. Or, some rules are made to be broken. OMG goes as far as to anticipate this with the notion of an enforcement level on requirements captured using its <a target="_blank" href="http://www.omg.org/docs/dtc/06-03-02.pdf">SBVR</a> standard.</p>
<h3><strong>Inconsistency in Practice</strong></h3>
<p>Let us now return to the analyst given a use case for which simulation produces multiple outcomes for a single decision. Each of such outcomes can be reviewed as if it was the only outcome. That is, each outcome is either correct or incorrect. Any outcome that is incorrect would indicate incorrectness or inadequacy as previously discussed.</p>
<p>Perhaps, after eliminating all errant outcomes through further elicitation, there remains only a single correct outcome will be reached by subsequent simulation. If subsequent simulation results in no outcome, we are back to the first case discussed above, which may involve further incorrectness or inadequacy. Alternatively, if subsequent simulation still results in multiple outcomes, none of which is judged as objectively wrong, there may be heuristics or preferences rather than strict rules or requirements to be elicited.</p>
<h3><strong>Organization and Architecture for Agility</strong></h3>
<p>I have discussed previously that practical applications cannot avoid incomplete or inconsistent knowledge. This is further discussed and reflected in the references on conflict resolution, deliberation, and stratification given in the footnotes cited above. It also needs to be reflected in an agile, iterative organizational process and in the architecture of information systems.</p>
<p>Take it is a given that a new, modified, or missing rule or functional requirement will arise after a system is in production. Take it as a given that a case will arise during production use for which no outcome, an errant outcome, or multiple, possibly conflicting outcomes result given correct automation of rules and requirements reasonably deployed. What are the risks and the processes of improvement?</p>
<p>Rules or requirements mapped into code typically result in action without deliberation. That is, if multiple outcomes might be indicated, only the first will result. In other words, the implementation of rules and requirements is typically incapable of detecting inconsistent requirements.</p>
<p>By using an engine to interpret requirements deliberatively in an architecture that logs outcomes, including multiple potential outcomes, elicitation of the knowledge that will avoid such inconsistencies in the future becomes possible. In cases that produce no outcome, elicitation of the additional knowledge necessary (including clarifications of incorrect knowledge) can also be facilitated. And by auditing cases for which single outcomes are reached, discovery of additional or errant knowledge can be accomplished at a controlled level of effort.</p>
<p>The ability to facilitate elicitation has development and organizational implementations.</p>
<p>To the extent that newly elicited rules and requirements can be automated without programming, as is commonly the case for rules using BRMS, elicitation post production becomes more viable economically.</p>
<p>In addition, the auditable use of rules and requirements can be combined with performance metrics to analyze and tune or learn rules, requirements, heuristics and preferences, some of which may produce enough insight to lead to new business models.</p>
<p>Such architecture effectively becomes a source of use cases but the organization has to remain engaged in the analytic and elicitation process after the rules and requirements have gone into production to receive a business benefit beyond the development impact.</p>
<hr SIZE="1" width="33%" align="left" /><sup>[1]</sup> &#8220;Getting the Requirements Right.&#8221; in EDP ANALYZER (Vol. 15, No. 7) as quoted <a target="_blank" href="http://blogs.ittoolbox.com/pm/irm/archives/defining-information-requirements-5023">here</a><sup>[2]</sup> rather than non-functional requirements, as discussed in <a href="/wordpress/2008/01/03/when-rules-meet-requirements/">this</a> post<sup>[3]</sup> see <a href="/wordpress/2007/12/20/business-rules-process-management/">this</a> regarding consistency<sup>[4]</sup> Ilog shows a nice version of the decision tree/table approach <a target="_blank" href="http://www.ilog.fr/image.cfm?name=DecisionTable.jpg">here</a>.<sup>[5]</sup> e.g., as shown in this image of <a target="_blank" href="http://static.flickr.com/170/403224428_2162c642de.jpg">Corticon</a> or this video from <a target="_blank" href="http://www.haley.com/members/tabular_rules_demos/Tabular%20Rules%20Coverage.html">Haley</a>.<sup>[6]</sup> as discussed concerning Haley and Ruleburst <a href="/wordpress/2007/12/05/process-vs-decisions/">here</a> in response to comments on <a target="_blank" href="http://www.intelligententerprise.com/blog/archives/2007/11/consolidation_h.html">this</a><sup>[7]</sup> for more on RMS versus BRMS, specifically concerning rules and requirements, see <a href="/wordpress/2008/01/03/when-rules-meet-requirements/">this</a><sup>[8]</sup> ibid</p>
<p><sup>[9]</sup> one of the advances we made circa 2000 at <a target="_blank" href="http://www.haley.com/members/pdf/AnalzyingRuleChangeThroughSimulation.pdf">Haley</a> and since by <a target="_blank" href="http://www.ilog.com/download/docs/DS-JRulesRSM.pdf">Ilog</a>, among others</p>
<p><sup>[10]</sup> Unfortunately, as discussed previously <a href="/wordpress/2008/01/03/when-rules-meet-requirements/">here</a>, BRMS do not handle requirements (yet).</p>
<p><sup>[11]</sup> OMG&#8217;s Semantics of Business Vocabulary and Rules (<a target="_blank" href="http://www.omg.org/docs/dtc/06-03-02.pdf">SBVR</a>) recognizes this but, excluding <a target="_blank" href="http://www.intelligententerprise.com/showArticle.jhtml?articleID=188101078">Haley</a>, I am not aware of any (B)RMS that manages the vocabulary and phraseology used in rules or requirements and their formal, ontological meaning.</p>
<p><sup>[12]</sup> Ruleburst still presents a white paper on how we did this at Haley for rules <a target="_blank" href="http://www.haley.com/pdf/NaturalLanguageInterface.pdf">here</a>.</p>
<p><sup>[13]</sup> i.e., <a target="_blank" href="http://management.about.com/cs/generalmanagement/a/Pareto081202.htm">the 80/20 rule</a></p>
<p><sup>[14]</sup> <a target="_blank" href="http://portal.acm.org/citation.cfm?id=1045343.1045364">Production system conflict resolution strategies</a></p>
<p><sup>[15]</sup> <a target="_blank" href="http://ai.eecs.umich.edu/soar/sitemaker/docs/misc/SoarRBSComparison.pdf">Soar: A Comparison with Rule-based Systems</a> or <a target="_blank" href="http://www-personal.umich.edu/~rickl/Documents/cognitive-theory-soar.pdf">Cognitive Theory, SOAR</a></p>
<p><sup>[16]</sup> there have been similar pragmatic developments in the logic community, as in <a target="_blank" href="http://dbpubs.stanford.edu:8090/pub/showDoc.Fulltext?lang=en&amp;doc=1994-15&amp;format=pdf&amp;compression=&amp;name=1994-15.pdf">stratification</a> and <a target="_blank" href="http://www.mit.edu/~bgrosof/paps/ecra-sclp-ruleml-092903.pdf">courteous logic</a>, albeit without tolerance of inconsistent logic</p>
]]></content:encoded>
			<wfw:commentRss>http://haleyai.com/wordpress/2008/01/08/elicitation-and-management-of-rules-requirements-and-decisions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When Rules Meet Requirements</title>
		<link>http://haleyai.com/wordpress/2008/01/03/when-rules-meet-requirements/</link>
		<comments>http://haleyai.com/wordpress/2008/01/03/when-rules-meet-requirements/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 18:53:17 +0000</pubDate>
		<dc:creator>paul@haleyAI.com</dc:creator>
				<category><![CDATA[Business Rules Management]]></category>
		<category><![CDATA[Methodology]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Rules Engines]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[Authority]]></category>
		<category><![CDATA[BMM]]></category>
		<category><![CDATA[BRE]]></category>
		<category><![CDATA[BRMS]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[elicitation]]></category>
		<category><![CDATA[Forrester]]></category>
		<category><![CDATA[Haley]]></category>
		<category><![CDATA[OMG]]></category>
		<category><![CDATA[OWL]]></category>
		<category><![CDATA[Ruleburst]]></category>
		<category><![CDATA[SBVR]]></category>
		<category><![CDATA[vocabulary]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://haleyai.com/wordpress/2008/01/03/when-rules-meet-requirements/</guid>
		<description><![CDATA[I am working on some tutorial material for business analysts tasked with eliciting and harvesting rules using some commercial business rules management systems (BRMS). The knowledgeable consumers of this material intuitively agree that capturing business rules should be performed by business analysts who also capture requirements. They understand that the clarity of rules is just [...]]]></description>
			<content:encoded><![CDATA[<p>I am working on some tutorial material for business analysts tasked with eliciting and harvesting rules using some commercial business rules management systems (BRMS). The knowledgeable consumers of this material intuitively agree that capturing business rules should be performed by business analysts who also capture requirements. They understand that the clarity of rules is just as critical to successful application of BRMS as the clarity of requirements is to &#8220;whirlpool&#8221; development.<sup>[1]</sup>  But they are frustrated by the distinct training for requirements versus rules. They believe, and I agree, that unification of requirements and rules management is needed.</p>
<p>Consider these words from Forrester:</p>
<blockquote><p>One might argue that Word documents, email, phone calls, and stakeholder meetings alone are adequate for managing rules. In fact, that is the methodology currently used for most projects in a large number of IT shops. However, this informal, ad hoc approach doesn&#8217;t ensure rigorous rules definition that is communicated and understood by all parties. More importantly, it doesn&#8217;t lend itself to managing the inevitable rules changes that will occur throughout the life of the project. The goal must be to embrace and manage change, not to prevent it. <sup>[2]</sup></p></blockquote>
<p>But note that Forrester used the word &#8220;requirements&#8221; everywhere I used &#8220;rules&#8221; above!</p>
<p><span id="more-32"></span></p>
<p>The fact is, BRMS vendors target business analysts, promising that they can capture and maintain rules externalized from application infrastructure. But BRMS vendors do not support capturing and maintaining requirements.</p>
<p>A better vision would unify rules with requirements in a single framework of understanding and within a single management tool. Otherwise, rules will remain downstream from functional requirements and use cases in the development process. Consequently, business rule management systems (BRMS) would always be at least one step removed from business analysis &#8211; and, therefore, end users.<sup>[3]</sup></p>
<p>Until BRMS vendors do support requirements, business analysts will continue to use word processors, spreadsheets, or requirements management software. And for the most part, they will do so instead of &#8211; rather than in addition to &#8211; using a BRMS.</p>
<p>There are many thoughts on how to elicit business rules and requirements.<sup>[4]</sup><sup>[5]</sup><sup>[6]</sup><sup>[7]</sup><sup>[8]</sup> </p>
<p>Surprisingly, there is substantial confusion on the relationships between rules and requirements.</p>
<p>For example, some have written:<sup> <sup>[9]</sup> </sup></p>
<ol>
<li>rules are not requirements<sup>[10]</sup></li>
<li>rules cannot be managed using requirements tools</li>
<li>rules must reference requirements which must not reference rules</li>
</ol>
<p>A distinction should be made between functional and non-functional requirements (as in ISO 9126<sup>[11]</sup> and according to NASA<sup>[12]</sup>). When we use rules we are most concerned with functional requirements.<sup>[13]</sup> The positions stated above seem to reflect a perspective: that rules are an implementation of functional requirements.<sup>[14]</sup> For example, that rules exist to clarify how to comply with requirements or how to behave when requirements are not satisfied (e.g., during a business process<sup>[15]</sup>).</p>
<p>In order to realize their marketing promise, BRMS need to advance to include direct support for functional requirements. Ideally, this support will eliminate the need to translate such requirements into rules. At a minimum it should support mapping back and forth between related rules and requirements, perhaps by supporting the OMG mappings between concepts like <em>means</em> (e.g., directives, including policies and rules) and <em>ends</em> (e.g., objectives), as in the Business Motivation Model.<sup>[16]</sup></p>
<p>Supporting relationships between rules and requirements should not <em><u>require</u></em> relationships between them, however. Sometimes a policy may exist without a clear underlying requirement. Although theoretically, perhaps, there should be some underlying requirement for every rule, uncovering it may not be productive. Moreover, as discussed below, the distinction between rules and requirements is artificial in many cases.</p>
<p>When integrating rules and requirements into a single framework, care should be taken to support all the natural results of business analysis. In addition to rules and requirements, business analysts also uncover definitions of vocabulary and underlying concepts.</p>
<p>Vocabulary definitions are mostly ontological<sup>[17]</sup>, such as mapping nouns onto taxonomic concepts or defining what it means when an adjective is used with a noun. This is why I designed Haley Systems&#8217; Authority to manage such vocabulary and ontologies. Regrettably, the software did not yet eliminate the need to translate requirements into rules before it was acquired by Ruleburst. With it, Ruleburst is ahead of other vendors who do not manage ontologies and vocabularies explicitly, but there is still a problem.<sup>[18]</sup></p>
<p>Current BRMS technology is not able to implement requirements directly. Current BRMS need a human to analyze a requirement and translate it into sometimes many rules that use the words &#8220;if&#8221; and &#8220;then&#8221; instead of words like &#8220;must&#8221; that are so common in requirements. This leads rule technologists to say things like, &#8220;a rule may reference a requirement&#8221; but &#8220;a requirement is not a rule&#8221;, as cited above.</p>
<p>One would think that OMG standards in rules could be supported by the BRMS vendors who contributed to them. Surprisingly, what SBVR<sup>[19]</sup>calls a rule is beyond the capabilities of current BRMS (as also discussed <a href="/wordpress/2007/12/31/missing-goals-and-requirements-in-business-rules/">here</a>). For example, most rules technologists would have trouble &#8220;coding&#8221; the SBVR rule: &#8220;each rental car always has exactly one vehicle identification number&#8221;. The rules technologist might say that this was a definition, not a rule or requirement.</p>
<p>Business analysts, such as those involved at OMG, are alienated by such discrimination.</p>
<p>And they are right to be alienated. What if a service request provides two VINs? Or zero? Does the statement <em><u>change</u></em> from a definition to a requirement or some rules?</p>
<p>Vendor support for requirements (or simply SBVR) rather than just rules involves &#8211; at a minimum &#8211; generating rules that invoke an exception mechanism when a requirement is violated (as also discussed <a href="/wordpress/2007/12/20/business-rules-process-management/">here</a>). Generating rules that avoid premature exceptions is a significant challenge, however, particularly when information may be missing (including when it is accumulated over time, such as across multiple submissions of web forms).</p>
<p>For example, given the requirement that &#8220;an ad on the back page of the New York Times Magazine must be full-page color&#8221;, it may be preferable to deduce the (permitted) color or size of a back page ad rather than indicate an exception if the size or color is unspecified. Today&#8217;s BRMS do not assist users with such rules nor do they relate them to such requirements. All such translations and any such mappings are strictly manual.</p>
<blockquote><p>The looming battle in RMS involves the clarification and automated implementation of requirements and less codification of rules.</p></blockquote>
<p>As you might surmise, I find this area presents some very interesting opportunity&#8230;</p>
<p>The line between requirements and rules needs to be clarified. Perhaps it needs to be erased. Consider that not every requirement must use the word &#8220;must&#8221;. During analysis, for example, a business concept might be similar to the concept of an orphan. A business analyst could capture this as any of &#8220;an orphan has no parents&#8221;, &#8220;a person without parents is an orphan&#8221;, &#8220;if a person has no parents then the person is an orphan&#8221;, &#8220;a person is an orphan if the person has no parents&#8221;, or &#8220;an orphan must have no parents&#8221;, among other alternatives. Some of these appear to be definitions, some requirements, and some rules. Yet they are all the same from the standpoint of stakeholders and less technical analysts.</p>
<p>Should software help clarify and unify such typical results of business analysis or should the burden be borne by humans in a waterfall process that distances natural expression of &#8220;requirements&#8221; from technical definitions and implementing &#8220;rules&#8221;?</p>
<p>Obviously, I believe the former.</p>
<p>In addition to previous recommendations to manage rules in a BRE-independent manner, I hope the following provides additional help in planning for the integration of requirements, definitions, and rules as the market evolves:</p>
<ol>
<li>Contemplate the extent to which your rule analysts are distinct from your requirements analysts and discern why if that difference is significant.</li>
<li>Adopt methodologies that are consistent with best practices in requirements capture, analysis, and management rather than over-emphasizing rule-specific approaches.</li>
<li>Understand where rule/requirement convergence and vendor independence is headed. Specifically consider SBVR (e.g., look at the video or document <a target="_blank" href="http://wiki.jboss.org/wiki/Wiki.jsp?page=RulesSBVR">here</a>). To a lesser degree consider <a target="_blank" href="http://www.eurobizrules.org/Uploads/Files/De_20Saint_20Marie_2c_20Chr_1.pdf">PRR</a> and <a target="_blank" href="http://www.w3.org/2001/sw/">semantic web activity</a>.</li>
<li>Consider managing rules and requirements outside a BRMS using requirements management software or as discussed <a href="/wordpress/2007/12/11/skills-for-eliciting-harvesting-and-managing-knowledge-semantics-vocabulary-and-business-rules/">here</a>. Also consider the functionality of requirements management software (e.g., <a target="_blank" href="http://www-306.ibm.com/software/rational/offerings/reqanalysis.html">Rational</a>) or BRMS that is not provided by an unassisted word processor or spreadsheet (e.g., as Ruleburst still presents <a target="_blank" href="http://www.haley.com/brmsoverview/authority_word_excel.html">here</a>).</li>
</ol>
<hr SIZE="1" width="33%" align="left" /><sup>[1]</sup> i.e., any form of waterfall development (e.g., iterative or spiral) where implementation is required after rules or requirements are captured or modified<br />
<sup>[2]</sup> <a target="_blank" href="ftp://ftp.software.ibm.com/software/rational/web/reports/roirm.pdf">Achieving ROI with Rational Requirements Management Tools</a><br />
<sup>[3]</sup>Note that the limitations of BRMS discussed here are even worse for Complex Event Processing vendors since ease of authoring is much less advanced in the CEP market.<br />
<sup>[4]</sup> <a target="_blank" href="http://www.omg.org/docs/ad/02-12-18.pdf">Classification and Representation of Business Rules</a><br />
<sup>[5]</sup> <a target="_blank" href="http://www.haley.com/members/pdf/Methodology_HaleyAuthority.pdf">Methods for Managing Business Rules with Haley Authority</a><br />
<sup>[6]</sup> <a target="_blank" href="http://www.emeraldinsight.com/Insight/ViewContentServlet?Filename=Published/EmeraldFullTextArticle/Articles/1570110402.html">A roadmap for the elicitation of business rules in information systems projects</a><br />
<sup>[7]</sup> <a target="_blank" href="http://tynerblain.com/blog/2007/09/13/elicitation-techniques-2/">Elicitation Techniques for Processes, Rules, and Requirements</a><br />
<sup>[8]</sup> The Unified Process Inception Phase: Best Practices in Implementing the UP (<a target="_blank" href="http://books.google.com/books?id=olU9708J3YsC&amp;pg=PA99&amp;lpg=PA99&amp;dq=eliciting+business+rules&amp;source=web&amp;ots=gGnxBfP9jW&amp;sig=UEEwhpfkjtBlbgHeDJlGCbpFa1I">page 99</a> and <a target="_blank" href="http://www.ebgconsulting.com/Pubs/Articles/CapturingBusinessRules-Gottesdiener.pdf">here</a>)<br />
<sup>[9]</sup> <a target="_blank" href="http://qrdn.brmsblog.com/2007/09/06/blinded-by-requirements-dont-miss-those-business-rules">Blinded by Requirements &#8211; Don&#8217;t Miss those Business Rules</a><br />
<sup>[10]</sup> <a target="_blank" href="http://www.edmblog.com/weblog/2007/03/1_more_thing_ci.html">1 MORE thing CIOs should know about requirements</a><br />
<sup>[11]</sup> ISO 9126 re <a target="_blank" href="http://www.issco.unige.ch/projects/ewg96/node55.html#SECTION00610000000000000000">Functionality, Reliability, Usability, Efficiency, Maintainability, and Portability</a><br />
<sup>[12]</sup> ISO 9126 plus <a target="_blank" href="http://satc.gsfc.nasa.gov/support/STC_APR96/qualtiy/stc_qual.html">Flexibility, Clarity, Resilience, Generality, Reusability and Economy</a><br />
<sup>[13]</sup> <a target="_blank" href="http://www.bredemeyer.com/use_cases.htm">Functional Requirements and Use Cases</a><br />
<sup>[14]</sup> <a target="_blank" href="http://process-transformation.blogspot.com/2007/10/requirements-vs-process-and-rules.html">Requirements vs Process and Rules</a><br />
<sup>[15]</sup> <a target="_blank" href="http://www.ebizq.net/blogs/decision_management/2007/10/requirements_business_process.php">Requirements, business process and business rules</a><br />
<sup>[16]</sup>OMG&#8217;s Business Motivation Model (<a target="_blank" href="http://www.businessrulesgroup.org/second_paper/BRG-BMM.pdf">BMM</a>).<br />
<sup>[17]</sup> as in the Web Ontology Language (<a target="_blank" href="http://www.w3.org/TR/owl-features/">OWL</a>)<br />
<sup>[18]</sup>Note that OWL and SBVR address some of these issues but not vocabulary. Ruleburst does not address the issues discussed <a href="/wordpress/2007/12/31/missing-goals-and-requirements-in-business-rules/">here</a>.<br />
<sup>[19]</sup>OMG&#8217;s Semantics of Business Vocabulary and Rules (<a target="_blank" href="http://en.wikipedia.org/wiki/Semantics_of_Business_Vocabulary_and_Rules">SBVR</a>)&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://haleyai.com/wordpress/2008/01/03/when-rules-meet-requirements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Missing Goals and Requirements in Business Rules</title>
		<link>http://haleyai.com/wordpress/2007/12/31/missing-goals-and-requirements-in-business-rules/</link>
		<comments>http://haleyai.com/wordpress/2007/12/31/missing-goals-and-requirements-in-business-rules/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 20:13:30 +0000</pubDate>
		<dc:creator>paul@haleyAI.com</dc:creator>
				<category><![CDATA[Business Rules Management]]></category>
		<category><![CDATA[Formal Logic]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Rules Engines]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[chaining]]></category>
		<category><![CDATA[goals]]></category>
		<category><![CDATA[inference]]></category>
		<category><![CDATA[logic]]></category>
		<category><![CDATA[PRR]]></category>
		<category><![CDATA[Rete]]></category>
		<category><![CDATA[SBVR]]></category>

		<guid isPermaLink="false">http://haleyai.com/wordpress/2007/12/31/missing-goals-and-requirements-in-business-rules/</guid>
		<description><![CDATA[Both of the following statements are true, but the first is more informative:

Business Rules Management Systems (BRMS) typically produce forward chaining production rules that are interpreted by[1] a business rules engine (BRE) based on the Rete Algorithm.
BRMS typically generate rules that are interpreted by a BRE.

First, dropping the word &#8220;production&#8221; before &#8220;rules&#8221; loses information. BRMS [...]]]></description>
			<content:encoded><![CDATA[<p>Both of the following statements are true, but the first is more informative:</p>
<ol>
<li>Business Rules Management Systems (BRMS) typically produce forward chaining production rules that are interpreted by<sup>[1]</sup> a business rules engine (BRE) based on the Rete Algorithm.</li>
<li>BRMS typically generate rules that are interpreted by a BRE.</li>
</ol>
<p>First, dropping the word &#8220;production&#8221; before &#8220;rules&#8221; loses information. BRMS do not typically generate rules that are not production rules. Consider, for example, the BRMS vendors involved in the OMG effort produced the Production Rule Representation (PRR) standard. The obvious question is:</p>
<ul>
<li>What is different about production rules?</li>
</ul>
<p>Second, dropping the words &#8220;based on the Rete Algorithm&#8221; loses information. The dominant rules vendors and open-source engines are all based on the Rete Algorithm.</p>
<ul>
<li>Why does the Rete Algorithm matter?</li>
</ul>
<p>Third, dropping the word &#8220;chaining&#8221; before &#8220;rules&#8221; loses information. Chaining refers to the sequential application of rules, as in a chain where each link is the application of one rule and links are tied together by their interaction. But:</p>
<ul>
<li>Why does chaining matter?</li>
</ul>
<p>Fourth, dropping the word &#8220;forward&#8221; before &#8220;chaining&#8221; loses information. Forward chaining reacts to information without requiring goals. This begs the question:</p>
<ul>
<li>Don&#8217;t goals matter?</li>
</ul>
<p><span id="more-31"></span></p>
<h3>What is different about production rules?</h3>
<p>In a system where rules are not productions, new knowledge must be positioned within the existing knowledge. In the worst case, the cost of adding a new rule is proportional to the existing number of rules. That is, the cost of acquiring new knowledge increases as knowledge accumulates. The ability to improve at constant cost is the basis of agility that comes from using production rules to implement business rules.</p>
<p>The term comes from <a target="_blank" href="http://www.aw-bc.com/catalog/academic/product/0,1144,0321462254,00.html">automata theory</a>, in which the rules that define a formal language are called &#8220;productions&#8221;. The important thing about productions is that the formal language they define does not depend on their order.</p>
<p>For example, changing the order of rules expressed in <a target="_blank" href="http://www.columbia.edu/acis/history/backus.html">Backus</a> Normal Form (<a target="_blank" href="http://www.cs.man.ac.uk/~pjj/bnf/bnf.html#BNF">BNF</a>) will not change the definition of a language (e.g., <a target="_blank" href="http://www.cs.stevens.edu/~badri/cs616/pas_bnf.html">Pascal</a>). This is distinct from &#8220;if-then-else&#8221; statements in procedural languages where order is clearly relevant.</p>
<p>Also consider that the order of logical formula does not matter to a theorem prover.<sup>[2]</sup></p>
<p>Procedural rules (including if-then-else statements in procedural languages and decision trees) are less agile. The effort required to codify them increases as the amount of pre-existing code increases.</p>
<blockquote><p>The irrelevance of order is the critical ingredient of agility.</p></blockquote>
<p>Focus on truth. Minimize context.</p>
<h3>Why does the Rete Algorithm matter?</h3>
<p>The agility of production rules would be less practical if performance degraded as more rules were added. For a practical business rule system, performance must scale less than linearly with respect to the number of rules. That is, if doubling the number of rules always cut performance in half, the applicability of rules might be limited. Ideally, adding a rule would have zero impact on performance.</p>
<p>I&#8217;ve written about these topics many times<sup>[3]</sup> and there is plenty available on the Web<sup>[4]</sup>.</p>
<p>Essentially, in Rete, the conditions or antecedents of rules correspond to SQL queries. Rather than check rules by running a sequence of queries against data, however, Rete compiles queries into a pattern matching network through which data flows. Performance of the first approach would clearly be linear in the number of rules (queries). The worst case performance of Rete can also degrade linearly as rules are added, but the expected performance is less since Rete effectively ignores conditions that are not satisfied by data.</p>
<p>Decades or experiments and commercial use have demonstrated that Rete typically scales up with performance that degrades far less than linearly. Here is the technically accurate statement:</p>
<blockquote><p>The expected performance of the Rete Algorithm is asymptotically independent of the number of rules.</p></blockquote>
<p>In practice, adding a hundredth or ten thousandth rule will have immeasurable impact.</p>
<p>Rete matters only because it implements unordered rules in an efficient and scalable manner. If you can implement rules without ordering them some other way, great &#8211; but consider chaining, too.</p>
<h3>Why does chaining matter?</h3>
<p>Chaining refers to the sequential application of rules, as in a chain where each link is the application of one rule and links are tied together by their interaction.</p>
<blockquote><p>Without chaining, inference is impractical.</p></blockquote>
<p>Chaining is a key distinction between implementing rules using an engine versus in procedural code. A rules engine can string inferences together to reach conclusions involving several steps, where each step is expressed in a rule. Procedural languages provide no support for reaching intermediate conclusions and building further upon them.</p>
<blockquote><p>Without chaining, a system cannot be intelligent.</p></blockquote>
<p>Chaining is your greatest source of leverage for semantics and intelligence. By writing statements<sup>[5]</sup> that are true you can leverage deduction. Doing so makes all your statements less verbose and more reliable.</p>
<h3>Don&#8217;t Goals Matter?</h3>
<p>Backward chaining involves working backwards from goals to the current state of the world. Therefore, backward chaining requires a goal. Problem solving involves goals.<sup>[6]</sup></p>
<p>Forward chaining involves working forward from the current state of the world. Forward chaining does not require goals. Forward chaining is behavioral and &#8211; without goals &#8211; strictly reactive.</p>
<p>Unlike artificial intelligence and logical rule systems, PRR and all but one BRE based on the Rete Algorithm are limited to forward chaining.</p>
<p>Forward chaining systems are inherently limited to &#8220;if&#8221; and &#8220;then&#8221;. When the &#8220;if&#8221; is satisfied they want to conclude or execute what comes after the &#8220;then&#8221;. Which &#8220;ifs&#8221; are satisfied, is determined or driven by data, of course.</p>
<p>Unfortunately, the data-driven aspect of forward chaining is often confused with the data-driven nature of the Rete Algorithm. The fact that the Rete Algorithm is data driven has nothing to do with whether it can support backward chaining.<sup>[7]</sup> The lack of support for goals in the business rules market is the issue, not the Rete Algorithm.</p>
<p>I have previously supported backward chaining using the Rete Algorithm. The details are available on-line<sup>[8]</sup>, from Haley Systems, or by request. More vendors need to step up their support in this area. The open-source community is actually ahead of most!</p>
<p>Support for backward chaining will allow business to use more logical deduction without as much need to indicate when to perform or how to control inference. Subgoaling will focus inference. This will encourage and facilitate increasingly large and sustainable repositories of knowledge.</p>
<p>Even with improved deductive capabilities using backward chaining, BRMS will remain inadequate for requirements, however.</p>
<h3>Why can&#8217;t BRMS handle requirements?</h3>
<p>In order to support emerging standards from OMG<sup>[9]</sup> and W3C<sup>[10]</sup>, BRMS need to handle logic that is not limited to the &#8220;if-then&#8221; or &#8220;A implies B&#8221; form of rules. Such statements include definitions and constraints<sup>[11]</sup>; or, more generally, requirements.</p>
<p>Requirements do not fit the &#8220;if then&#8221; paradigm of today&#8217;s business rules systems. They do not pose any challenge to logic systems, however. Current rules technology requires an antecedent. A formula in the predicate calculus does not.<sup>[12]</sup></p>
<p>This results in all sorts of distortions in the business rules market. Worst among them, in my opinion, is the distinction between requirements management and rules management on which I will post shortly.</p>
<hr SIZE="1" width="33%" align="left" /><sup>[1]</sup> i.e., runtime code uses a rule engine to determine and apply applicable rules<br />
<sup>[2]</sup> e.g., theorem provers and other logic systems, such as <a target="_blank" href="http://flora.sourceforge.net/aboutHiLog.php">HiLog</a> or <a target="_blank" href="http://flora.sourceforge.net/">Flora</a><br />
<sup>[3]</sup> e.g., <u>Answers to Common Questions about AI</u> in the early nineties, which I found on-line <a target="_blank" href="http://www.thefreelibrary.com/Answers+to+common+questions+about+AI-a0147823459">here</a>.<br />
<sup>[4]</sup> A summary and key references on the Rete Algorithm are available <a target="_blank" href="http://en.wikipedia.org/wiki/Rete_algorithm">here</a>.<br />
<sup>[5]</sup> I say statements instead of rules because truth is often definitional without using the word &#8220;if&#8221;.<br />
<sup>[6]</sup> In general, a partial order. See the <a target="_blank" href="http://ai.eecs.umich.edu/cogarch0/common/theory/prob.html">Problem Space Hypothesis</a>.<br />
<sup>[7]</sup> There are rudimentary capabilities for subgoaling in JESS and Drools, each of which uses Rete.<br />
<sup>[8]</sup> see <a target="_blank" href="http://ntrs.nasa.gov/search.jsp?R=795536&amp;id=1&amp;qs=N%3D4294777715">Data Driven Backward Chaining</a> (formerly <u>Opportunistic Backward Chaining </u>in IJCAI 87).<br />
<sup>[9]</sup> OMG&#8217;s Semantics of Business Vocabulary and Rules (<a target="_blank" href="http://www.omg.org/docs/dtc/06-03-02.pdf">SBVR</a>)<br />
<sup>[10]</sup> W3C&#8217;s <a target="_blank" href="http://www.w3.org/2005/rules/wiki/RIF_Working_Group">RIF</a> and <a target="_blank" href="http://www.w3.org/TR/owl-features/">OWL</a> and other <a target="_blank" href="http://www.w3.org/2001/sw/">semantic web activity</a><br />
<sup>[11]</sup> e.g., referential integrity<br />
<sup>[12]</sup> On the other hand, logic systems cannot handle the practical, action-oriented aspects of business rules.</p>
]]></content:encoded>
			<wfw:commentRss>http://haleyai.com/wordpress/2007/12/31/missing-goals-and-requirements-in-business-rules/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

