[jboss-svn-commits] JBL Code SVN: r19223 - labs/jbossrules/branches/irooskov_docs/drools-docs/drools-docs-referenceguide/en/Chapter-Rule_Engine.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Mar 25 02:30:57 EDT 2008
Author: irooskov at redhat.com
Date: 2008-03-25 02:30:57 -0400 (Tue, 25 Mar 2008)
New Revision: 19223
Modified:
labs/jbossrules/branches/irooskov_docs/drools-docs/drools-docs-referenceguide/en/Chapter-Rule_Engine/Section-What_is_a_Rule_Engine.xml
labs/jbossrules/branches/irooskov_docs/drools-docs/drools-docs-referenceguide/en/Chapter-Rule_Engine/Section-Why_use_a_Rule_Engine.xml
Log:
began editing the reference guide
Modified: labs/jbossrules/branches/irooskov_docs/drools-docs/drools-docs-referenceguide/en/Chapter-Rule_Engine/Section-What_is_a_Rule_Engine.xml
===================================================================
--- labs/jbossrules/branches/irooskov_docs/drools-docs/drools-docs-referenceguide/en/Chapter-Rule_Engine/Section-What_is_a_Rule_Engine.xml 2008-03-25 00:35:56 UTC (rev 19222)
+++ labs/jbossrules/branches/irooskov_docs/drools-docs/drools-docs-referenceguide/en/Chapter-Rule_Engine/Section-What_is_a_Rule_Engine.xml 2008-03-25 06:30:57 UTC (rev 19223)
@@ -12,47 +12,46 @@
such as Neural Networks, Genetic Algorithms, Decision Trees, Frame Systems
and Expert Systems. Knowledge representation is the area of A.I. concerned
with how knowledge is represented and manipulated. Expert Systems use
- Knowledge representation to facilitate the codification of knowledge into
- a knowledge base which can be used for reasoning - i.e. we can process
- data with this knowledge base to infer conclusions. Expert Systems are
+ knowledge representation to facilitate the codification of knowledge into
+ a knowledge base which can be used for reasoning; for instance data can be processed with this knowledge base to infer conclusions. Expert Systems are
also known as Knowledge-based Systems and Knowledge-based Expert Systems
and are considered 'applied artificial intelligence'. The process of
developing with an Expert System is Knowledge Engineering. EMYCIN was one
- of the first "shells" for an Expert System, which was created from the
- MYCIN medical diagnosis Expert System. Where-as early Expert Systems had
- their logic hard coded, "shells" separated the logic from the system,
+ of the first <emphasis>shells</emphasis> for an Expert System, which was created from the
+ MYCIN medical diagnosis Expert System. Whereas early Expert Systems had
+ their logic hard coded, <emphasis>shells</emphasis> separated the logic from the system,
providing an easy to use environment for user input. Drools is a Rule
Engine that uses the Rule Based approached to implement an Expert System
and is more correctly classified as a Production Rule System.</para>
- <para>The term "Production Rule" originates from formal grammar - where it
- is described as "an abstract structure that describes a formal language
+ <para>The term <firstterm>Production Rule</firstterm> originates from formal grammar, where it
+ is described as <citation>an abstract structure that describes a formal language
precisely, i.e., a set of rules that mathematically delineates a (usually
- infinite) set of finite-length strings over a (usually finite) alphabet"
+ infinite) set of finite-length strings over a (usually finite) alphabet</citation>
(<ulink
- url="http://en.wikipedia.org/wiki/Formal_grammar">wikipedia</ulink>).</para>
+ url="http://en.wikipedia.org/wiki/Formal_grammar">Wikipedia</ulink>).</para>
- <para>Business Rule Management Systems build additional value on top of a
- general purpose Rule Engines by providing, business user focused, systems
+ <para>Business Rule Management Systems (BRMS) build additional value on top of a
+ general purpose Rule Engines by providing, business user focused systems
for rule creation, management, deployment, collaboration, analysis and end
user tools. Further adding to this value is the fast evolving and popular
- methodology "Business Rules Approach", which is helping to formalize the
+ methodology <emphasis>Business Rules Approach</emphasis>, which is helping to formalize the
role of Rule Engines in the enterprise.</para>
<para>The term Rule Engine is quite ambiguous in that it can be any system
that uses rules, in any form, that can be applied to data to produce
outcomes; which includes simple systems like form validation and dynamic
- expression engines. The book "How to Build a Business Rules Engine (2004)"
+ expression engines. The book <citetitle>How to Build a Business Rules Engine (2004)</citetitle>
by Malcolm Chisholm exemplifies this ambiguity. The book is actually about
how to build and alter a database schema to hold validation rules. The
book then shows how to generate VB code from those validation rules to
- validate data entry - while a very valid and useful topic for some, it
+ validate data entry and while a very valid and useful topic for some, it
caused quite a surprise to this author, unaware at the time in the
subtleties of Rules Engines differences, who was hoping to find some
hidden secrets to help improve the Drools engine. JBoss jBPM uses
expressions and delegates in its Decision nodes; which control the
- transitions in a Workflow. At each node it evaluates there is a rule set that
- dictates the transition to undertake - this is also a Rule Engine. While a
+ transitions in a Workflow. At each node it evaluates the rule set that
+ dictates the transition to undertake; this is also a Rule Engine. While a
Production Rule System is a kind of Rule Engine and also an Expert System,
the validation and expression evaluation Rule Engines mentioned previously
are not Expert Systems.</para>
@@ -66,10 +65,12 @@
conclusions which result in actions. A Production Rule is a two-part
structure using First Order Logic for knowledge representation.</para>
- <programlisting>when
+<screen>
+when
<conditions>
then
- <actions></programlisting>
+ <actions>
+</screen>
<para>The process of matching the new or existing facts against Production
Rules is called <indexterm>
@@ -110,7 +111,7 @@
marketing where, unlike the original published Rete Algorithm, no details
of the implementation are published. This makes questions such as "Does
Drools implement Rete III?" nonsensical. The most common enhancements are
- covered in "Production Matching for Large Learning Systems (Rete/UL)"
+ covered in <citetitle>Production Matching for Large Learning Systems (Rete/UL)</citetitle>
(1995) by Robert B. Doorenbos.</para>
<para>The Rules are stored in the <indexterm>
@@ -139,11 +140,11 @@
enforce truthfulness - called Truth Maintenance. A logical relationship can
be declared by actions which means the action's state depends on the
inference remaining true; when it is no longer true the logical dependent
- action is undone. The "Honest Politician" is an example of Truth
+ action is undone. The <emphasis>Honest Politician</emphasis> is an example of Truth
Maintenance, which always ensures that hope can only exist for a
democracy while we have honest politicians.</para>
- <programlisting>
+<screen>
when
an honest Politician exists
then
@@ -158,17 +159,17 @@
Hope does not exist
then
print "Democracy is Doomed"
-</programlisting>
+</screen>
<para>There are two methods of execution for a Production Rule Systems -
Forward Chaining and Backward Chaining; systems that implement both are
called Hybrid Production Rule Systems. Understanding these two modes of
operation are key to understanding why a Production Rule System is
different and how to get the best from them. Forward chaining is
- 'data-driven' and thus reactionary - facts are asserted into the working
+ <emphasis>data-driven</emphasis> and thus reactionary. Facts are asserted into the working
memory which results in one or more rules being concurrently true and
- scheduled for execution by the Agenda - we start with a fact, it
- propagates and we end in a conclusion. Drools is a forward chaining
+ scheduled for execution by the Agenda. Starting with a fact, it
+ propagates and ends in a conclusion. Drools is a forward chaining
engine.</para>
<figure>
@@ -182,13 +183,12 @@
</mediaobject>
</figure>
- <para>Backward chaining is 'goal-driven', meaning that we start with a
- conclusion which the engine tries to satisfy. If it can't it then searches
- for conclusions that it can, known as 'sub goals', that will help satisfy
- some unknown part of the current goal - it continues this process until
+ <para>Backward chaining is <emphasis>goal-driven</emphasis>, meaning that the engine starts with a
+ conclusion that is tried to be satisfied. If it cannot be, then the engine searches
+ for conclusions that it can, known as <emphasis>sub goals</emphasis>, that will help satisfy
+ some unknown part of the current goal. This process is continued until
either the initial conclusion is proven or there are no more sub goals.
- Prolog is an example of a Backward Chaining engine; Drools will be adding
- support for Backward Chaining in its next major release.</para>
+ Drools will be adding support for Backward Chaining in its next major release.</para>
<figure>
<title>Backward Chaining</title>
Modified: labs/jbossrules/branches/irooskov_docs/drools-docs/drools-docs-referenceguide/en/Chapter-Rule_Engine/Section-Why_use_a_Rule_Engine.xml
===================================================================
--- labs/jbossrules/branches/irooskov_docs/drools-docs/drools-docs-referenceguide/en/Chapter-Rule_Engine/Section-Why_use_a_Rule_Engine.xml 2008-03-25 00:35:56 UTC (rev 19222)
+++ labs/jbossrules/branches/irooskov_docs/drools-docs/drools-docs-referenceguide/en/Chapter-Rule_Engine/Section-Why_use_a_Rule_Engine.xml 2008-03-25 06:30:57 UTC (rev 19223)
@@ -2,7 +2,7 @@
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
]>
<section>
- <title>Why use a Rule Engine?</title>
+ <title>Why to use a Rule Engine</title>
<para>Some frequently asked questions:</para>
@@ -24,7 +24,7 @@
</listitem>
</orderedlist>
- <para>We will attempt to address these questions below.</para>
+ <para>These questions are addressed below.</para>
<section>
<title>Advantages of a Rule Engine</title>
More information about the jboss-svn-commits
mailing list