[jboss-svn-commits] JBL Code SVN: r13709 - labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Jul 22 13:59:58 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-07-22 13:59:58 -0400 (Sun, 22 Jul 2007)
New Revision: 13709

Added:
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/conditional_elements.png
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/infixAnd.png
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/infixAnd.svg
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/infixOr.png
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/infixOr.svg
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/prefixAnd.png
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/prefixAnd.svg
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/prefixOr.png
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/prefixOr.svg
Modified:
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/Section-Rule.xml
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/conditional_elements.vsd
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/exists.png
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/exists.svg
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/not.png
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/not.svg
   labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/pattern.vsd
Log:
-more language updates


Property changes on: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language
___________________________________________________________________
Name: svn:ignore
   + Thumbs.db
*.~vsd


Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/Section-Rule.xml
===================================================================
--- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/Section-Rule.xml	2007-07-22 15:32:06 UTC (rev 13708)
+++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/Section-Rule.xml	2007-07-22 17:59:58 UTC (rev 13709)
@@ -218,8 +218,8 @@
     </example>
   </section>
 
-  <section>
-    <title id="RuleLanguage-LHS">Left Hand Side (when)</title>
+  <section id="RuleLanguage-ConditionalElements">
+    <title>Left Hand Side (when) Conditional Elements</title>
 
     <para>The Left Hand Side (LHS) is a common name for the conditional part
     of the rule. It consists of zero or more Conditional Elements. If the LHS
@@ -260,1094 +260,1112 @@
 end</programlisting>
     </example>
 
-    <section id="RuleLanguage-ConditionalElements">
-      <title>Conditional Elements</title>
+    <para>Conditional elements work on one or more Columns (which were
+    described above). The most common one is "and" which is implicit when you
+    have multiple Columns in the LHS of a rule that are not connected in
+    anyway. Note that an 'and' cannot have a leading declaration binding like
+    'or' - this is obvious when you think about it. A declaration can only
+    reference a single Fact, when the 'and' is satisfied it matches more than
+    one fact - which fact would the declaration bind to?</para>
 
-      <para>Conditional elements work on one or more Columns (which were
-      described above). The most common one is "and" which is implicit when
-      you have multiple Columns in the LHS of a rule that are not connected in
-      anyway. Note that an 'and' cannot have a leading declaration binding
-      like 'or' - this is obvious when you think about it. A declaration can
-      only reference a single Fact, when the 'and' is satisfied it matches
-      more than one fact - which fact would the declaration bind to?</para>
+    <section>
+      <title>Pattern</title>
 
-      <section>
+      <para>The Pattern element is the most important Conditional Element. The
+      entity relationship diagram below provides an overview of the various
+      parts that make up the Pattern's constraints and how they work together;
+      each is then covered in more detail with rail road diagrams and
+      examples.</para>
+
+      <figure>
+        <title>Pattern Entity Relationship Diagram</title>
+
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="patternER.svg" format="SVG"
+                       role="" />
+          </imageobject>
+
+          <imageobject>
+            <imagedata align="center" fileref="patternER.png" format="PNG"
+                       role="" />
+          </imageobject>
+        </mediaobject>
+      </figure>
+
+      <para>At the top of the ER diagram you can see that the pattern consists
+      of zero or more constriants and has an optional pattern binding. The
+      rail road diagram below shows the syntax for this.</para>
+
+      <figure>
         <title>Pattern</title>
 
-        <para>The Pattern element is the most important Conditional Element.
-        The entity relationship diagram below provides an overview of the
-        various parts that make up the Pattern's constraints and how they work
-        together; each is then covered in more detail with rail road diagrams
-        and examples.</para>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="pattern.svg" format="SVG"
+                       role="" />
+          </imageobject>
 
-        <figure>
-          <title>Pattern Entity Relationship Diagram</title>
+          <imageobject>
+            <imagedata align="center" fileref="pattern.png" format="PNG"
+                       role="" />
+          </imageobject>
+        </mediaobject>
+      </figure>
 
-          <mediaobject>
-            <imageobject>
-              <imagedata align="center" fileref="patternER.svg" format="SVG"
-                         role="" />
-            </imageobject>
+      <para>At the simplest, with no constraints, it simply matches against a
+      type, in the following case the type is "Cheese". This means the pattern
+      will match against all Cheese objects in the Working Memory.</para>
 
-            <imageobject>
-              <imagedata align="center" fileref="patternER.png" format="PNG"
-                         role="" />
-            </imageobject>
-          </mediaobject>
-        </figure>
+      <example>
+        <title>Pattern</title>
 
-        <para>At the top of the ER diagram you can see that the pattern
-        consists of zero or more constriants and has an optional pattern
-        binding. The rail road diagram below shows the syntax for this.</para>
+        <programlisting>Cheese( )</programlisting>
+      </example>
 
-        <figure>
-          <title>Pattern</title>
+      <para>To be able to refer to the matched object use a pattern binding
+      variable such as '$c'. While this example variable is prefixed with a $
+      symbol, it is optional, but can be useful in complex rules as it helps
+      to more easily differentiation between variables and fields.</para>
 
-          <mediaobject>
-            <imageobject>
-              <imagedata align="center" fileref="pattern.svg" format="SVG"
-                         role="" />
-            </imageobject>
+      <example>
+        <title>Pattern</title>
 
-            <imageobject>
-              <imagedata align="center" fileref="pattern.png" format="PNG"
-                         role="" />
-            </imageobject>
-          </mediaobject>
-        </figure>
+        <programlisting>$c : Cheese( )</programlisting>
+      </example>
 
-        <para>At the simplest, with no constraints, it simply matches against
-        a type, in the following case the type is "Cheese". This means the
-        pattern will match against all Cheese objects in the Working
-        Memory.</para>
+      <para>Inside of the Pattern parenthesis is where all the action happens.
+      A constraint can be either a Field Constraint, Inline Eval (called a
+      predicate in 3.0) or a Constraint Group. Constraints can be seperated by
+      the following symboles ',', '&amp;&amp;' or '||'.</para>
 
-        <example>
-          <title>Pattern</title>
+      <figure>
+        <title>Constraints</title>
 
-          <programlisting>Cheese( )</programlisting>
-        </example>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="constraints.svg" format="SVG"
+                       role="" />
+          </imageobject>
 
-        <para>To be able to refer to the matched object use a pattern binding
-        variable such as '$c'. While this example variable is prefixed with a
-        $ symbol, it is optional, but can be useful in complex rules as it
-        helps to more easily differentiation between variables and
-        fields.</para>
+          <imageobject>
+            <imagedata align="center" fileref="constraints.png" format="PNG"
+                       role="" />
+          </imageobject>
+        </mediaobject>
+      </figure>
 
-        <example>
-          <title>Pattern</title>
+      <figure>
+        <title>Constraint</title>
 
-          <programlisting>$c : Cheese( )</programlisting>
-        </example>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="constraint.svg" format="SVG"
+                       role="" />
+          </imageobject>
 
-        <para>Inside of the Pattern parenthesis is where all the action
-        happens. A constraint can be either a Field Constraint, Inline Eval
-        (called a predicate in 3.0) or a Constraint Group. Constraints can be
-        seperated by the following symboles ',', '&amp;&amp;' or '||'.</para>
+          <imageobject>
+            <imagedata align="center" fileref="constraint.png" format="PNG"
+                       role="" />
+          </imageobject>
+        </mediaobject>
+      </figure>
 
-        <figure>
-          <title>Constraints</title>
+      <figure>
+        <title>Group Constraint</title>
 
-          <mediaobject>
-            <imageobject>
-              <imagedata align="center" fileref="constraints.svg" format="SVG"
-                         role="" />
-            </imageobject>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="constraintGroup.svg"
+                       format="SVG" role="" />
+          </imageobject>
 
-            <imageobject>
-              <imagedata align="center" fileref="constraints.png" format="PNG"
-                         role="" />
-            </imageobject>
-          </mediaobject>
-        </figure>
+          <imageobject>
+            <imagedata align="center" fileref="constraintGroup.png"
+                       format="PNG" role="" />
+          </imageobject>
+        </mediaobject>
+      </figure>
 
+      <para>',' and '&amp;&amp;' when used without '||' are equivalent;. ','
+      is provided as a less verbose '&amp;&amp;' connective for more simple
+      field constraints.</para>
+
+      <example>
+        <title>Equivalent connectives</title>
+
+        <programlisting>Cheese( type == "stilton", price &lt; 10 ) // valid
+Cheese( type == "stilton" &amp;&amp; price &lt; 10 ) valid</programlisting>
+      </example>
+
+      <para>However only '&amp;&amp;' can be used with '||'.</para>
+
+      <example>
+        <title>Not Equivalent connectives</title>
+
+        <programlisting>Cheese( type == "stilton", price &lt; 10 || age == "mature" ) // invalid
+Cheese( type == "stilton" &amp;&amp; price &lt; 10 || age == "mature") // valid</programlisting>
+      </example>
+
+      <para>Constraints can be grouped using parenthesis; notice from the
+      railroad and the ER diagram that this provides a recursive nature to the
+      use of constraints in a Pattern.</para>
+
+      <example>
+        <title>Grouping with Parenthesis</title>
+
+        <programlisting>Cheese( type == "stilton", ( price &lt; 10 || age == "mature" ) ) // valid
+Cheese( type == "stilton" &amp;&amp; ( price &lt; 10 || age == "mature" ) ) // valid</programlisting>
+      </example>
+
+      <section>
+        <title>Field Constraints</title>
+
+        <para>A Field constraint specifies a restriction to be used on a field
+        name; the field name can have an optional variable binding.</para>
+
         <figure>
-          <title>Constraint</title>
+          <title>fieldConstraint</title>
 
           <mediaobject>
             <imageobject>
-              <imagedata align="center" fileref="constraint.svg" format="SVG"
-                         role="" />
+              <imagedata align="center" fileref="fieldConstraint.svg"
+                         format="SVG" role="" />
             </imageobject>
 
             <imageobject>
-              <imagedata align="center" fileref="constraint.png" format="PNG"
-                         role="" />
+              <imagedata align="center" fileref="fieldConstraint.png"
+                         format="PNG" role="" />
             </imageobject>
           </mediaobject>
         </figure>
 
+        <para>There are three types of restrictions; Single Value Restriction,
+        Compount Value Restriction and Multi Restrictoin.</para>
+
         <figure>
-          <title>Group Constraint</title>
+          <title>restriction</title>
 
           <mediaobject>
             <imageobject>
-              <imagedata align="center" fileref="constraintGroup.svg"
-                         format="SVG" role="" />
+              <imagedata align="center" fileref="restriction.svg" format="SVG"
+                         role="" />
             </imageobject>
 
             <imageobject>
-              <imagedata align="center" fileref="constraintGroup.png"
-                         format="PNG" role="" />
+              <imagedata align="center" fileref="restriction.png" format="PNG"
+                         role="" />
             </imageobject>
           </mediaobject>
         </figure>
 
-        <para>',' and '&amp;&amp;' when used without '||' are equivalent;. ','
-        is provided as a less verbose '&amp;&amp;' connective for more simple
-        field constraints.</para>
+        <para>A field is an accessible method on the object. If your model
+        objects follow the java bean pattern, then fields are exposed using
+        "getXXX" or "isXXX" methods (these are methods that take no arguments,
+        and return something). You can access fields either by using the
+        bean-name convention (so "getType" can be accessed as "type").</para>
 
-        <example>
-          <title>Equivalent connectives</title>
+        <para>For example, refering to our Cheese class, the following :
+        Cheese(type == ...) uses the getType() method on the a cheese
+        instance. You can also access non getter methods, like "toString()" on
+        the Object for instance (in which case, you do Cheese(toString == ..)
+        - you use the full name of the method with correct capitalisation, but
+        not brackets). Do please make sure that you are accessing methods that
+        take no parameters, and are in-fact "accessors" (as in, they don't
+        change the state of the object in a way that may effect the rules -
+        remember that the rule engine effectively caches the results of its
+        matching inbetween invocations to make it faster).</para>
 
-          <programlisting>Cheese( type == "stilton", price &lt; 10 ) // valid
-Cheese( type == "stilton" &amp;&amp; price &lt; 10 ) valid</programlisting>
-        </example>
+        <section>
+          <title>JavaBeans as facts</title>
 
-        <para>However only '&amp;&amp;' can be used with '||'.</para>
+          <para>A field is an accessible method on the object. If your model
+          objects follow the java bean pattern, then fields are exposed using
+          "getXXX" or "isXXX" methods (these are methods that take no
+          arguments, and return something). You can access fields either by
+          using the bean-name convention (so "getType" can be accessed as
+          "type") - we use the standard jdk Introspector class to do this
+          mapping.</para>
 
-        <example>
-          <title>Not Equivalent connectives</title>
+          <para>For example, refering to our Cheese class, the following :
+          Cheese(type == ...) uses the getType() method on the a cheese
+          instance. If a field name cannot be found it will resort to calling
+          the name as a no argument method; "toString()" on the Object for
+          instance can be used with Cheese(toString == ..) - you use the full
+          name of the method with correct capitalisation, but not brackets. Do
+          please make sure that you are accessing methods that take no
+          parameters, and are in-fact "accessors" (as in, they don't change
+          the state of the object in a way that may effect the rules -
+          remember that the rule engine effectively caches the results of its
+          matching inbetween invocations to make it faster).</para>
+        </section>
 
-          <programlisting>Cheese( type == "stilton", price &lt; 10 || age == "mature" ) // invalid
-Cheese( type == "stilton" &amp;&amp; price &lt; 10 || age == "mature") // valid</programlisting>
-        </example>
-
-        <para>Constraints can be grouped using parenthesis; notice from the
-        railroad and the ER diagram that this provides a recursive nature to
-        the use of constraints in a Pattern.</para>
-
-        <example>
-          <title>Grouping with Parenthesis</title>
-
-          <programlisting>Cheese( type == "stilton", ( price &lt; 10 || age == "mature" ) ) // valid
-Cheese( type == "stilton" &amp;&amp; ( price &lt; 10 || age == "mature" ) ) // valid</programlisting>
-        </example>
-
         <section>
-          <title>Field Constraints</title>
+          <title>Values</title>
 
-          <para>A Field constraint specifies a restriction to be used on a
-          field name; the field name can have an optional variable
-          binding.</para>
+          <para>The field constraints can take a number of values; including
+          literal, qualifiedIdentifier (enum), variable and
+          returnValue.</para>
 
           <figure>
-            <title>fieldConstraint</title>
+            <title>literal</title>
 
             <mediaobject>
               <imageobject>
-                <imagedata align="center" fileref="fieldConstraint.svg"
-                           format="SVG" role="" />
+                <imagedata align="center" fileref="literal.svg" format="SVG" />
               </imageobject>
 
               <imageobject>
-                <imagedata align="center" fileref="fieldConstraint.png"
-                           format="PNG" role="" />
+                <imagedata align="center" fileref="literal.png" format="PNG" />
               </imageobject>
             </mediaobject>
           </figure>
 
-          <para>There are three types of restrictions; Single Value
-          Restriction, Compount Value Restriction and Multi
-          Restrictoin.</para>
-
           <figure>
-            <title>restriction</title>
+            <title>qualifiedIdentifier</title>
 
             <mediaobject>
               <imageobject>
-                <imagedata align="center" fileref="restriction.svg"
-                           format="SVG" role="" />
+                <imagedata align="center" fileref="qualifiedIdentifier.svg"
+                           format="SVG" />
               </imageobject>
 
               <imageobject>
-                <imagedata align="center" fileref="restriction.png"
-                           format="PNG" role="" />
+                <imagedata align="center" fileref="qualifiedIdentifier.png"
+                           format="PNG" />
               </imageobject>
             </mediaobject>
           </figure>
 
-          <para>A field is an accessible method on the object. If your model
-          objects follow the java bean pattern, then fields are exposed using
-          "getXXX" or "isXXX" methods (these are methods that take no
-          arguments, and return something). You can access fields either by
-          using the bean-name convention (so "getType" can be accessed as
-          "type").</para>
+          <figure>
+            <title>variable</title>
 
-          <para>For example, refering to our Cheese class, the following :
-          Cheese(type == ...) uses the getType() method on the a cheese
-          instance. You can also access non getter methods, like "toString()"
-          on the Object for instance (in which case, you do Cheese(toString ==
-          ..) - you use the full name of the method with correct
-          capitalisation, but not brackets). Do please make sure that you are
-          accessing methods that take no parameters, and are in-fact
-          "accessors" (as in, they don't change the state of the object in a
-          way that may effect the rules - remember that the rule engine
-          effectively caches the results of its matching inbetween invocations
-          to make it faster).</para>
+            <mediaobject>
+              <imageobject>
+                <imagedata align="center" fileref="identifier.svg"
+                           format="SVG" />
+              </imageobject>
 
-          <section>
-            <title>JavaBeans as facts</title>
+              <imageobject>
+                <imagedata align="center" fileref="identifier.png"
+                           format="PNG" />
+              </imageobject>
+            </mediaobject>
+          </figure>
 
-            <para>A field is an accessible method on the object. If your model
-            objects follow the java bean pattern, then fields are exposed
-            using "getXXX" or "isXXX" methods (these are methods that take no
-            arguments, and return something). You can access fields either by
-            using the bean-name convention (so "getType" can be accessed as
-            "type") - we use the standard jdk Introspector class to do this
-            mapping.</para>
+          <figure>
+            <title>returnValue</title>
 
-            <para>For example, refering to our Cheese class, the following :
-            Cheese(type == ...) uses the getType() method on the a cheese
-            instance. If a field name cannot be found it will resort to
-            calling the name as a no argument method; "toString()" on the
-            Object for instance can be used with Cheese(toString == ..) - you
-            use the full name of the method with correct capitalisation, but
-            not brackets. Do please make sure that you are accessing methods
-            that take no parameters, and are in-fact "accessors" (as in, they
-            don't change the state of the object in a way that may effect the
-            rules - remember that the rule engine effectively caches the
-            results of its matching inbetween invocations to make it
-            faster).</para>
-          </section>
+            <mediaobject>
+              <imageobject>
+                <imagedata align="center" fileref="returnValue.svg"
+                           format="SVG" />
+              </imageobject>
 
-          <section>
-            <title>Values</title>
+              <imageobject>
+                <imagedata align="center" fileref="returnValue.png"
+                           format="PNG" />
+              </imageobject>
+            </mediaobject>
+          </figure>
 
-            <para>The field constraints can take a number of values; including
-            literal, qualifiedIdentifier (enum), variable and
-            returnValue.</para>
+          <para>You can do checks against fields that are or maybe null, using
+          == and != as you would expect, and the literal "null" keyword, like:
+          Cheese(type != null). If a field is null the evaluator will not
+          throw an expception and will only return true if the value is a null
+          check. Coercion is always attempted if the field and the value are
+          of different types; exceptions will be thrown if bad coercions are
+          attempted. i.e. if "ten" is provided as a string in a number
+          evaluator, where as "10" would coerce to a numeric 10. Coercion is
+          always in favour of the field type and not the value type.</para>
+        </section>
 
-            <figure>
-              <title>literal</title>
+        <section>
+          <title>Single Value Restriction</title>
 
-              <mediaobject>
-                <imageobject>
-                  <imagedata align="center" fileref="literal.svg" format="SVG" />
-                </imageobject>
+          <figure>
+            <title>singleValueRestriction</title>
 
-                <imageobject>
-                  <imagedata align="center" fileref="literal.png" format="PNG" />
-                </imageobject>
-              </mediaobject>
-            </figure>
+            <mediaobject>
+              <imageobject>
+                <imagedata align="center" fileref="singleValueRestriction.svg"
+                           format="SVG" role="" />
+              </imageobject>
 
-            <figure>
-              <title>qualifiedIdentifier</title>
+              <imageobject>
+                <imagedata align="center" fileref="singleValueRestriction.png"
+                           format="PNG" role="" />
+              </imageobject>
+            </mediaobject>
+          </figure>
 
-              <mediaobject>
-                <imageobject>
-                  <imagedata align="center" fileref="qualifiedIdentifier.svg"
-                             format="SVG" />
-                </imageobject>
+          <section>
+            <title>Operators</title>
 
-                <imageobject>
-                  <imagedata align="center" fileref="qualifiedIdentifier.png"
-                             format="PNG" />
-                </imageobject>
-              </mediaobject>
-            </figure>
-
             <figure>
-              <title>variable</title>
+              <title>Operators</title>
 
               <mediaobject>
                 <imageobject>
-                  <imagedata align="center" fileref="identifier.svg"
+                  <imagedata align="center" fileref="operator.svg"
                              format="SVG" />
                 </imageobject>
 
                 <imageobject>
-                  <imagedata align="center" fileref="identifier.png"
+                  <imagedata align="center" fileref="operator.png"
                              format="PNG" />
                 </imageobject>
               </mediaobject>
             </figure>
 
-            <figure>
-              <title>returnValue</title>
+            <para>Valid operators are dependent on the field type. Generally
+            they are self explanatory based on the type of data: for instance,
+            for date fields, "&lt;" means "before" and so on. "Matches" is
+            only applicable to string fields, "contains" and "not contains" is
+            only applicable to Collection type fields. These operators can be
+            used with any value and coercion to the correct value for the
+            evaluator and filed will be attempted, as mention in hte "Values"
+            secion.</para>
 
-              <mediaobject>
-                <imageobject>
-                  <imagedata align="center" fileref="returnValue.svg"
-                             format="SVG" />
-                </imageobject>
+            <simplesect>
+              <title>Matches Operator</title>
 
-                <imageobject>
-                  <imagedata align="center" fileref="returnValue.png"
-                             format="PNG" />
-                </imageobject>
-              </mediaobject>
-            </figure>
+              <para>Matches a field against any valid Java <indexterm>
+                  <primary>regular expression</primary>
+                </indexterm>Regular Expression. Typically that regexp is a
+              String, but variables that resolve to a valid regexp are also
+              allowed.</para>
 
-            <para>You can do checks against fields that are or maybe null,
-            using == and != as you would expect, and the literal "null"
-            keyword, like: Cheese(type != null). If a field is null the
-            evaluator will not throw an expception and will only return true
-            if the value is a null check. Coercion is always attempted if the
-            field and the value are of different types; exceptions will be
-            thrown if bad coercions are attempted. i.e. if "ten" is provided
-            as a string in a number evaluator, where as "10" would coerce to a
-            numeric 10. Coercion is always in favour of the field type and not
-            the value type.</para>
-          </section>
+              <example>
+                <title>Regular Expression Constraint</title>
 
-          <section>
-            <title>Single Value Restriction</title>
+                <programlisting>Cheese( type matches "(Buffulo)?\\S*Mozerella" )</programlisting>
+              </example>
+            </simplesect>
 
-            <figure>
-              <title>singleValueRestriction</title>
+            <simplesect>
+              <title>Not Matches Operator</title>
 
-              <mediaobject>
-                <imageobject>
-                  <imagedata align="center"
-                             fileref="singleValueRestriction.svg" format="SVG"
-                             role="" />
-                </imageobject>
+              <para>Any valid Java <indexterm>
+                  <primary>regular expression</primary>
+                </indexterm>Regular Expression can be used to match String
+              fields. Returns true when the match is false. Typically that
+              regexp is a String, but variables that resolve to a valid regexp
+              are also allowed.</para>
 
-                <imageobject>
-                  <imagedata align="center"
-                             fileref="singleValueRestriction.png" format="PNG"
-                             role="" />
-                </imageobject>
-              </mediaobject>
-            </figure>
+              <example>
+                <title>Regular Expression Constraint</title>
 
-            <section>
-              <title>Operators</title>
+                <programlisting>Cheese( type not matches "(Buffulo)?\\S*Mozerella" )</programlisting>
+              </example>
+            </simplesect>
 
-              <figure>
-                <title>Operators</title>
+            <simplesect>
+              <title>Contains Operator</title>
 
-                <mediaobject>
-                  <imageobject>
-                    <imagedata align="center" fileref="operator.svg"
-                               format="SVG" />
-                  </imageobject>
+              <para><literal>'contains'</literal> is used to check if a
+              field's <indexterm>
+                  <primary>Collection</primary>
+                </indexterm>Collection contains the specified value.</para>
 
-                  <imageobject>
-                    <imagedata align="center" fileref="operator.png"
-                               format="PNG" />
-                  </imageobject>
-                </mediaobject>
-              </figure>
+              <example>
+                <title>Contains with Collections</title>
 
-              <para>Valid operators are dependent on the field type. Generally
-              they are self explanatory based on the type of data: for
-              instance, for date fields, "&lt;" means "before" and so on.
-              "Matches" is only applicable to string fields, "contains" and
-              "not contains" is only applicable to Collection type fields.
-              These operators can be used with any value and coercion to the
-              correct value for the evaluator and filed will be attempted, as
-              mention in hte "Values" secion.</para>
-
-              <simplesect>
-                <title>Matches Operator</title>
-
-                <para>Matches a field against any valid Java <indexterm>
-                    <primary>regular expression</primary>
-                  </indexterm>Regular Expression. Typically that regexp is a
-                String, but variables that resolve to a valid regexp are also
-                allowed.</para>
-
-                <example>
-                  <title>Regular Expression Constraint</title>
-
-                  <programlisting>Cheese( type matches "(Buffulo)?\\S*Mozerella" )</programlisting>
-                </example>
-              </simplesect>
-
-              <simplesect>
-                <title>Not Matches Operator</title>
-
-                <para>Any valid Java <indexterm>
-                    <primary>regular expression</primary>
-                  </indexterm>Regular Expression can be used to match String
-                fields. Returns true when the match is false. Typically that
-                regexp is a String, but variables that resolve to a valid
-                regexp are also allowed.</para>
-
-                <example>
-                  <title>Regular Expression Constraint</title>
-
-                  <programlisting>Cheese( type not matches "(Buffulo)?\\S*Mozerella" )</programlisting>
-                </example>
-              </simplesect>
-
-              <simplesect>
-                <title>Contains Operator</title>
-
-                <para><literal>'contains'</literal> is used to check if a
-                field's <indexterm>
-                    <primary>Collection</primary>
-                  </indexterm>Collection contains the specified value.</para>
-
-                <example>
-                  <title>Contains with Collections</title>
-
-                  <programlisting>CheeseCounter( cheeses contains "stilton" ) //contains with a String literal
+                <programlisting>CheeseCounter( cheeses contains "stilton" ) //contains with a String literal
 CheeseCounter( cheeses contains $var ) //contains with a variable</programlisting>
-                </example>
-              </simplesect>
+              </example>
+            </simplesect>
 
-              <simplesect>
-                <title>not containts</title>
+            <simplesect>
+              <title>not containts</title>
 
-                <para><literal>'not contains'</literal> is used to check if a
-                field's <indexterm>
-                    <primary>Collection</primary>
-                  </indexterm>Collection does not contains an object.</para>
+              <para><literal>'not contains'</literal> is used to check if a
+              field's <indexterm>
+                  <primary>Collection</primary>
+                </indexterm>Collection does not contains an object.</para>
 
-                <example>
-                  <title>Literal Constraints with Collections</title>
+              <example>
+                <title>Literal Constraints with Collections</title>
 
-                  <programlisting>CheeseCounter( cheeses not contains "cheddar" ) //contains with a String literal
+                <programlisting>CheeseCounter( cheeses not contains "cheddar" ) //contains with a String literal
 CheeseCounter( cheeses not contains $var ) //contains with a variable</programlisting>
-                </example>
-              </simplesect>
+              </example>
+            </simplesect>
 
-              <simplesect>
-                <title>memberof</title>
+            <simplesect>
+              <title>memberof</title>
 
-                <para><literal>'memberof' is used to check if a field is a
-                member of a collection; that collection must be be a
-                variable.</literal></para>
+              <para><literal>'memberof' is used to check if a field is a
+              member of a collection; that collection must be be a
+              variable.</literal></para>
 
-                <example>
-                  <title>Literal Constraints with Collections</title>
+              <example>
+                <title>Literal Constraints with Collections</title>
 
-                  <programlisting>CheeseCounter( cheese memberof $matureCheeses )</programlisting>
-                </example>
-              </simplesect>
+                <programlisting>CheeseCounter( cheese memberof $matureCheeses )</programlisting>
+              </example>
+            </simplesect>
 
-              <simplesect>
-                <title>not memberof</title>
+            <simplesect>
+              <title>not memberof</title>
 
-                <para><literal>'not memberof' is used to check if a field is
-                not a member of a collection; that collection must be be a
-                variable.</literal></para>
+              <para><literal>'not memberof' is used to check if a field is not
+              a member of a collection; that collection must be be a
+              variable.</literal></para>
 
-                <example>
-                  <title>Literal Constraints with Collections</title>
+              <example>
+                <title>Literal Constraints with Collections</title>
 
-                  <programlisting>CheeseCounter( cheese not memberof $matureCheeses )</programlisting>
-                </example>
-              </simplesect>
-            </section>
+                <programlisting>CheeseCounter( cheese not memberof $matureCheeses )</programlisting>
+              </example>
+            </simplesect>
+          </section>
 
-            <section>
-              <title>Literal Restrictions</title>
+          <section>
+            <title>Literal Restrictions</title>
 
-              <para>Literal restrrictions are the simplest for of restrictions
-              and evaluate a field against a specified literal; numeric, date,
-              string and boolean.</para>
+            <para>Literal restrrictions are the simplest for of restrictions
+            and evaluate a field against a specified literal; numeric, date,
+            string and boolean.</para>
 
-              <figure>
-                <title>literalRestriction</title>
+            <figure>
+              <title>literalRestriction</title>
 
-                <mediaobject>
-                  <imageobject>
-                    <imagedata align="center" fileref="literalRestriction.svg"
-                               format="SVG" />
-                  </imageobject>
+              <mediaobject>
+                <imageobject>
+                  <imagedata align="center" fileref="literalRestriction.svg"
+                             format="SVG" />
+                </imageobject>
 
-                  <imageobject>
-                    <imagedata align="center" fileref="literalRestriction.png"
-                               format="PNG" />
-                  </imageobject>
-                </mediaobject>
-              </figure>
+                <imageobject>
+                  <imagedata align="center" fileref="literalRestriction.png"
+                             format="PNG" />
+                </imageobject>
+              </mediaobject>
+            </figure>
 
-              <para>Literal Restrictions using the '==' operator, provide for
-              faster execution as we can index using hashing to improve
-              performance;</para>
+            <para>Literal Restrictions using the '==' operator, provide for
+            faster execution as we can index using hashing to improve
+            performance;</para>
 
-              <simplesect>
-                <title>Numeric</title>
+            <simplesect>
+              <title>Numeric</title>
 
-                <para>All standard java numeric primitives are
-                supported.</para>
+              <para>All standard java numeric primitives are supported.</para>
 
-                <example>
-                  <title>Numeric Literal Restriction</title>
+              <example>
+                <title>Numeric Literal Restriction</title>
 
-                  <programlisting>Cheese( quantity == 5 )</programlisting>
-                </example>
-              </simplesect>
+                <programlisting>Cheese( quantity == 5 )</programlisting>
+              </example>
+            </simplesect>
 
-              <simplesect>
-                <title>Date</title>
+            <simplesect>
+              <title>Date</title>
 
-                <para>The date format "dd-mmm-yyyy" is supported by default.
-                You can customise this by providing an alternative date format
-                mask as a System property ("drools.dateformat" is the name of
-                the property). If more control is required, use the predicate
-                constraint.</para>
+              <para>The date format "dd-mmm-yyyy" is supported by default. You
+              can customise this by providing an alternative date format mask
+              as a System property ("drools.dateformat" is the name of the
+              property). If more control is required, use the predicate
+              constraint.</para>
 
-                <example>
-                  <title>Date Literal Restriction</title>
+              <example>
+                <title>Date Literal Restriction</title>
 
-                  <programlisting>Cheese( bestBefore &lt; "27-Oct-2007" )</programlisting>
-                </example>
-              </simplesect>
+                <programlisting>Cheese( bestBefore &lt; "27-Oct-2007" )</programlisting>
+              </example>
+            </simplesect>
 
-              <simplesect>
-                <title>String</title>
+            <simplesect>
+              <title>String</title>
 
-                <para>Any valid Java String is allowed.</para>
+              <para>Any valid Java String is allowed.</para>
 
-                <example>
-                  <title>String Literal Restriction</title>
+              <example>
+                <title>String Literal Restriction</title>
 
-                  <programlisting>Cheese( type == "stilton" )</programlisting>
-                </example>
-              </simplesect>
+                <programlisting>Cheese( type == "stilton" )</programlisting>
+              </example>
+            </simplesect>
 
-              <simplesect>
-                <title>Boolean</title>
+            <simplesect>
+              <title>Boolean</title>
 
-                <para>only true or false can be used. 0 and 1 are not
-                recognised, nor is <literal>Cheese ( smelly )</literal> is not
-                allowed</para>
+              <para>only true or false can be used. 0 and 1 are not
+              recognised, nor is <literal>Cheese ( smelly )</literal> is not
+              allowed</para>
 
-                <example>
-                  <title>Boolean Literal Restriction</title>
-
-                  <programlisting>Cheese( smelly == true )</programlisting>
-                </example>
-              </simplesect>
-
-              <simplesect>
-                <title>Qualified Identifier</title>
-
-                <para>Enums can be used as well, both jdk1.4 and jdk5 style
-                enums are supported - for the later you must be executing on a
-                jdk5 environment.</para>
-
-                <example>
-                  <title>Boolean Literal Restriction</title>
-
-                  <programlisting>Cheese( smelly == SomeClass.TRUE )</programlisting>
-                </example>
-              </simplesect>
-            </section>
-
-            <section>
-              <title>Bound Variable Restriction</title>
-
-              <figure>
-                <title>variableRestriction</title>
-
-                <mediaobject>
-                  <imageobject>
-                    <imagedata align="center"
-                               fileref="variableRestriction.svg" format="SVG" />
-                  </imageobject>
-
-                  <imageobject>
-                    <imagedata align="center"
-                               fileref="variableRestriction.png" format="PNG" />
-                  </imageobject>
-                </mediaobject>
-              </figure>
-
-              <para>Variables can be bound to Facts and their Fields and then
-              used in subsequent Field Constraints. A bound variable is called
-              a <indexterm>
-                  <primary>declaration</primary>
-                </indexterm>Declaration. Valid operators are determined by the
-              type of the field being constrained; coersion will be attempted
-              where possible. Bound Variable Restrictions using '==' operator,
-              provide for very fast execution as we can index using hashing to
-              improve performance.</para>
-
               <example>
-                <title>Bound Field using '==' operator</title>
+                <title>Boolean Literal Restriction</title>
 
-                <programlisting>Person( likes : favouriteCheese )
-Cheese( type == likes )</programlisting>
-
-                <para>'likes' is our variable, our Declaration, that is bound
-                to the favouriteCheese field for any matching Person instance
-                and is used to constrain the type of Cheese in the following
-                Pattern. Any valid java variable name can be used, including
-                '$'; which you will often see used to help differentiate
-                declarations from fields. The exampe below shows a declaration
-                bound to the Patterns Object Type instance itself and used
-                with a 'contains' operator, note the optional use of '$' this
-                time.</para>
+                <programlisting>Cheese( smelly == true )</programlisting>
               </example>
+            </simplesect>
 
-              <example>
-                <title>Bound Fact using 'contains' operator</title>
+            <simplesect>
+              <title>Qualified Identifier</title>
 
-                <programlisting>$stilton : Cheese( type == "stilton" )
-Cheesery( cheeses contains $stilton )</programlisting>
-              </example>
-            </section>
+              <para>Enums can be used as well, both jdk1.4 and jdk5 style
+              enums are supported - for the later you must be executing on a
+              jdk5 environment.</para>
 
-            <section>
-              <title>Return Value Restriction</title>
-
-              <figure>
-                <title>returnValueRestriction</title>
-
-                <mediaobject>
-                  <imageobject>
-                    <imagedata align="center"
-                               fileref="returnValueRestriction.svg"
-                               format="SVG" />
-                  </imageobject>
-
-                  <imageobject>
-                    <imagedata align="center"
-                               fileref="returnValueRestriction.png"
-                               format="PNG" />
-                  </imageobject>
-                </mediaobject>
-              </figure>
-
-              <para>A <indexterm>
-                  <primary>Return Value</primary>
-                </indexterm>Return Value restrriction can use any valid Java
-              primitive or object. Avoid using any Drools keywords as
-              Declaration identifiers. Functions used in a Return v</para>
-
-              <para>Value Restriction must return time constant results.
-              Previously bound declarations can be used in the expression.
-              </para>
-
               <example>
-                <title>Return Value Restriction</title>
+                <title>Boolean Literal Restriction</title>
 
-                <programlisting>Person( girlAge : age, sex == "F" )
-Person( age == ( girlAge + 2) ), sex == 'M' )
-</programlisting>
+                <programlisting>Cheese( smelly == SomeClass.TRUE )</programlisting>
               </example>
-            </section>
+            </simplesect>
           </section>
 
           <section>
-            <title>Compound Value Restriction</title>
+            <title>Bound Variable Restriction</title>
 
-            <para>The compound value restriction is used where there is more
-            than one possible value, currently only the 'in' and 'not in'
-            evaluators support this. The operator takes a parenthesis enclosed
-            comma seperated list of values, which can be a variable, literla,
-            return value or qualified identifier.The 'in' and 'not in'
-            evaluators are actually sugar and are rewriten as a multi
-            restriction list of != and == restrictions.</para>
-
             <figure>
-              <title>compoundValueRestriction</title>
+              <title>variableRestriction</title>
 
               <mediaobject>
                 <imageobject>
-                  <imagedata align="center"
-                             fileref="compoundValueRestriction.svg"
-                             format="SVG" role="" />
+                  <imagedata align="center" fileref="variableRestriction.svg"
+                             format="SVG" />
                 </imageobject>
 
                 <imageobject>
-                  <imagedata align="center"
-                             fileref="compoundValueRestriction.png"
-                             format="PNG" role="" />
+                  <imagedata align="center" fileref="variableRestriction.png"
+                             format="PNG" />
                 </imageobject>
               </mediaobject>
             </figure>
 
-            <para></para>
+            <para>Variables can be bound to Facts and their Fields and then
+            used in subsequent Field Constraints. A bound variable is called a
+            <indexterm>
+                <primary>declaration</primary>
+              </indexterm>Declaration. Valid operators are determined by the
+            type of the field being constrained; coersion will be attempted
+            where possible. Bound Variable Restrictions using '==' operator,
+            provide for very fast execution as we can index using hashing to
+            improve performance.</para>
 
             <example>
-              <title>Compound Restriction using 'in'</title>
+              <title>Bound Field using '==' operator</title>
 
-              <programlisting>Person( $cheese : favouriteCheese )
-Cheese( type in ( "stilton", "cheddar", $cheese )
-</programlisting>
+              <programlisting>Person( likes : favouriteCheese )
+Cheese( type == likes )</programlisting>
+
+              <para>'likes' is our variable, our Declaration, that is bound to
+              the favouriteCheese field for any matching Person instance and
+              is used to constrain the type of Cheese in the following
+              Pattern. Any valid java variable name can be used, including
+              '$'; which you will often see used to help differentiate
+              declarations from fields. The exampe below shows a declaration
+              bound to the Patterns Object Type instance itself and used with
+              a 'contains' operator, note the optional use of '$' this
+              time.</para>
             </example>
+
+            <example>
+              <title>Bound Fact using 'contains' operator</title>
+
+              <programlisting>$stilton : Cheese( type == "stilton" )
+Cheesery( cheeses contains $stilton )</programlisting>
+            </example>
           </section>
 
           <section>
-            <title>Multi Restriction</title>
+            <title>Return Value Restriction</title>
 
-            <para>Multi restriction allows you to place more than restriction
-            on a field using the '&amp;&amp;' or '||' restriction connectives,
-            grouping via parenthesis is also allowed; which adds a recursive
-            nature to this restriction.</para>
-
             <figure>
-              <title>multiRestriction</title>
+              <title>returnValueRestriction</title>
 
               <mediaobject>
                 <imageobject>
-                  <imagedata align="center" fileref="multiRestriction.svg"
-                             format="SVG" role="" />
+                  <imagedata align="center"
+                             fileref="returnValueRestriction.svg" format="SVG" />
                 </imageobject>
 
                 <imageobject>
-                  <imagedata align="center" fileref="multiRestriction.png"
-                             format="PNG" role="" />
+                  <imagedata align="center"
+                             fileref="returnValueRestriction.png" format="PNG" />
                 </imageobject>
               </mediaobject>
             </figure>
 
-            <figure>
-              <title>restrictionGroup</title>
+            <para>A <indexterm>
+                <primary>Return Value</primary>
+              </indexterm>Return Value restrriction can use any valid Java
+            primitive or object. Avoid using any Drools keywords as
+            Declaration identifiers. Functions used in a Return v</para>
 
-              <mediaobject>
-                <imageobject>
-                  <imagedata align="center" fileref="restrictionGroup.svg"
-                             format="SVG" role="" />
-                </imageobject>
+            <para>Value Restriction must return time constant results.
+            Previously bound declarations can be used in the
+            expression.</para>
 
-                <imageobject>
-                  <imagedata align="center" fileref="restrictionGroup.png"
-                             format="PNG" role="" />
-                </imageobject>
-              </mediaobject>
-            </figure>
-
-            <para></para>
-
             <example>
-              <title>Multi Restriction</title>
+              <title>Return Value Restriction</title>
 
-              <programlisting>Person( age &gt; 30 &amp;&amp; &lt; 40 ) // simple multi restriction using a single &amp;&amp;
-Person( age ( (&gt; 30 &amp;&amp; &lt; 40) || (&gt; 20 &amp;&amp; &lt; 20) ) ) // more complex multi restriction using groupings of multi restrictions
-Person( age &gt; 30 &amp;&amp; &lt; 40 || location == "london" ) // mixing muti restrictions with constraint connectives</programlisting>
+              <programlisting>Person( girlAge : age, sex == "F" )
+Person( age == ( girlAge + 2) ), sex == 'M' )
+</programlisting>
             </example>
           </section>
         </section>
 
         <section>
-          <title>Inline Eval Constraints</title>
+          <title>Compound Value Restriction</title>
 
+          <para>The compound value restriction is used where there is more
+          than one possible value, currently only the 'in' and 'not in'
+          evaluators support this. The operator takes a parenthesis enclosed
+          comma seperated list of values, which can be a variable, literla,
+          return value or qualified identifier.The 'in' and 'not in'
+          evaluators are actually sugar and are rewriten as a multi
+          restriction list of != and == restrictions.</para>
+
           <figure>
-            <title>Inline Eval Expression</title>
+            <title>compoundValueRestriction</title>
 
             <mediaobject>
               <imageobject>
-                <imagedata align="center" fileref="inlineEvalConstraint.svg"
-                           format="SVG" />
+                <imagedata align="center"
+                           fileref="compoundValueRestriction.svg" format="SVG"
+                           role="" />
               </imageobject>
 
               <imageobject>
-                <imagedata align="center" fileref="inlineEvalConstraint.png"
-                           format="PNG" />
+                <imagedata align="center"
+                           fileref="compoundValueRestriction.png" format="PNG"
+                           role="" />
               </imageobject>
             </mediaobject>
           </figure>
 
-          <para>A <indexterm>
-              <primary>Predicate</primary>
-            </indexterm>inline-eval constraint can use any valid dialect
-          expression as long as it evaluated to a primitive boolean - avoid
-          using any Drools keywords as Declaration identifiers. Any previous
-          bound variable, from the current or previous pattern, can be used;
-          autovivification is also used to auto create field binding
-          variables. When an identifier is found that is not a current
-          variable the builder looks to see if the identifier is a field on
-          the current object type, if it is the field is auto created as a
-          variable of the same name; this is autovivification of field
-          varables inside of inline evals.</para>
+          <para></para>
 
-          <para>This example will find all pairs of male/femal people where
-          the male is 2 years older than the female; the girlAge variable is
-          auto created as part of the autovivification process.</para>
-
           <example>
-            <title>Return Value operator</title>
+            <title>Compound Restriction using 'in'</title>
 
-            <programlisting>Person( girlAge : age, sex = "F" )
-Person( eval( girlAge == boyAge + 2 ), sex = 'M' )
+            <programlisting>Person( $cheese : favouriteCheese )
+Cheese( type in ( "stilton", "cheddar", $cheese )
 </programlisting>
           </example>
         </section>
 
         <section>
-          <title>Nested Accessors</title>
+          <title>Multi Restriction</title>
 
-          <para>Drools does allow for nested accessors in in the field
-          constraints using the MVEL accessor graph notation. Field
-          constraints involving nested accessors are actually re-written as an
-          MVEL dialect inline-eval. Care should be taken when using nested
-          accessors as the Working Memory is not aware of any of the nested
-          values, and do not know when they change; they should be considered
-          immutable while any of their parent references are inserted into the
-          Working Memory. If you wish to modify a nested value you should
-          remove he parent objects first and re-assert afterwards. If you only
-          have a single parent at the root of the graph you, when in the MVEL
-          dialect, you can use the 'modify' keyword and its block setters to
-          write the nested accessor assingments while retracting and inserting
-          the the root parent object as required. Nested accessors can be used
-          either side of the operator symbol.</para>
+          <para>Multi restriction allows you to place more than restriction on
+          a field using the '&amp;&amp;' or '||' restriction connectives,
+          grouping via parenthesis is also allowed; which adds a recursive
+          nature to this restriction.</para>
 
-          <example>
-            <title>Nested Accessors</title>
+          <figure>
+            <title>multiRestriction</title>
 
-            <programlisting>$p : Person( ) 
-Pet( owner == $p, age &gt; $p.children[0].age ) // Find a pet who is older than their owners first born child</programlisting>
+            <mediaobject>
+              <imageobject>
+                <imagedata align="center" fileref="multiRestriction.svg"
+                           format="SVG" role="" />
+              </imageobject>
 
-            <para>is internally rewriten as an MVEL inline eval:</para>
+              <imageobject>
+                <imagedata align="center" fileref="multiRestriction.png"
+                           format="PNG" role="" />
+              </imageobject>
+            </mediaobject>
+          </figure>
 
-            <programlisting>$p : Person( ) 
-Pet( owner == $p, eval( age &gt; $p.children[0].age ) ) // Find a pet who is older than their owners first born child</programlisting>
+          <figure>
+            <title>restrictionGroup</title>
+
+            <mediaobject>
+              <imageobject>
+                <imagedata align="center" fileref="restrictionGroup.svg"
+                           format="SVG" role="" />
+              </imageobject>
+
+              <imageobject>
+                <imagedata align="center" fileref="restrictionGroup.png"
+                           format="PNG" role="" />
+              </imageobject>
+            </mediaobject>
+          </figure>
+
+          <para></para>
+
+          <example>
+            <title>Multi Restriction</title>
+
+            <programlisting>Person( age &gt; 30 &amp;&amp; &lt; 40 ) // simple multi restriction using a single &amp;&amp;
+Person( age ( (&gt; 30 &amp;&amp; &lt; 40) || (&gt; 20 &amp;&amp; &lt; 20) ) ) // more complex multi restriction using groupings of multi restrictions
+Person( age &gt; 30 &amp;&amp; &lt; 40 || location == "london" ) // mixing muti restrictions with constraint connectives</programlisting>
           </example>
         </section>
       </section>
 
       <section>
-        <title>'and'</title>
+        <title>Inline Eval Constraints</title>
 
         <figure>
-          <title>and</title>
+          <title>Inline Eval Expression</title>
 
           <mediaobject>
             <imageobject>
-              <imagedata align="center" fileref="and.svg" format="SVG" role="" />
+              <imagedata align="center" fileref="inlineEvalConstraint.svg"
+                         format="SVG" />
             </imageobject>
 
             <imageobject>
-              <imagedata align="center" fileref="and.png" format="PNG" role="" />
+              <imagedata align="center" fileref="inlineEvalConstraint.png"
+                         format="PNG" />
             </imageobject>
           </mediaobject>
         </figure>
 
-        <para>valid children : and, or, not, exists, column</para>
+        <para>A <indexterm>
+            <primary>Predicate</primary>
+          </indexterm>inline-eval constraint can use any valid dialect
+        expression as long as it evaluated to a primitive boolean - avoid
+        using any Drools keywords as Declaration identifiers. the expression
+        must be time constant. Any previous bound variable, from the current
+        or previous pattern, can be used; autovivification is also used to
+        auto create field binding variables. When an identifier is found that
+        is not a current variable the builder looks to see if the identifier
+        is a field on the current object type, if it is the field is auto
+        created as a variable of the same name; this is autovivification of
+        field varables inside of inline evals.</para>
 
+        <para>This example will find all pairs of male/femal people where the
+        male is 2 years older than the female; the girlAge variable is auto
+        created as part of the autovivification process.</para>
+
         <example>
-          <title>Column</title>
+          <title>Return Value operator</title>
 
-          <programlisting>Cheese( cheeseType : type ) &amp;&amp; Person( favouriteCheese == cheeseType )
-Cheese( cheeseType : type ) and Person( favouriteCheese == cheeseType )</programlisting>
+          <programlisting>Person( girlAge : age, sex = "F" )
+Person( eval( girlAge == boyAge + 2 ), sex = 'M' )
+</programlisting>
         </example>
       </section>
 
       <section>
-        <title>'or'</title>
+        <title>Nested Accessors</title>
 
-        <figure>
-          <title>or</title>
+        <para>Drools does allow for nested accessors in in the field
+        constraints using the MVEL accessor graph notation. Field constraints
+        involving nested accessors are actually re-written as an MVEL dialect
+        inline-eval. Care should be taken when using nested accessors as the
+        Working Memory is not aware of any of the nested values, and do not
+        know when they change; they should be considered immutable while any
+        of their parent references are inserted into the Working Memory. If
+        you wish to modify a nested value you should remove he parent objects
+        first and re-assert afterwards. If you only have a single parent at
+        the root of the graph you, when in the MVEL dialect, you can use the
+        'modify' keyword and its block setters to write the nested accessor
+        assingments while retracting and inserting the the root parent object
+        as required. Nested accessors can be used either side of the operator
+        symbol.</para>
 
-          <mediaobject>
-            <imageobject>
-              <imagedata align="center" fileref="or.svg" format="SVG" role="" />
-            </imageobject>
+        <example>
+          <title>Nested Accessors</title>
 
-            <imageobject>
-              <imagedata align="center" fileref="or.png" format="PNG" role="" />
-            </imageobject>
-          </mediaobject>
-        </figure>
+          <programlisting>$p : Person( ) 
+Pet( owner == $p, age &gt; $p.children[0].age ) // Find a pet who is older than their owners first born child</programlisting>
 
-        <para>valid children : and, or, not, exists, column</para>
+          <para>is internally rewriten as an MVEL inline eval:</para>
 
-        <example>
-          <title>or</title>
+          <programlisting>$p : Person( ) 
+Pet( owner == $p, eval( age &gt; $p.children[0].age ) ) // Find a pet who is older than their owners first born child</programlisting>
+        </example>
+      </section>
+    </section>
 
-          <programlisting>Person( sex == "f", age &gt; 60 ) || Person( sex == "m", age &gt; 65 )
-Person( sex == "f", age &gt; 60 ) or Person( sex == "m", age &gt; 65 )
+    <section>
+      <title>'and'</title>
+
+      <para>The 'and' Conditional Element is used to group together other
+      Conditional Elements. The root element of the LHS is an implicit
+      prefixAnd and doesn't need to be specified. Drools supports both prefix
+      and infix; although prefix is the preferred option as grouping is
+      implicit which avoids confusion.</para>
+
+      <figure>
+        <title>prefixAnd</title>
+
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="prefixAnd.svg" format="SVG"
+                       role="" />
+          </imageobject>
+
+          <imageobject>
+            <imagedata align="center" fileref="prefixAnd.png" format="PNG"
+                       role="" />
+          </imageobject>
+        </mediaobject>
+      </figure>
+
+      <para></para>
+
+      <example>
+        <title>prefixAnd</title>
+
+        <programlisting>(and Cheese( cheeseType : type )
+     Person( favouriteCheese == cheeseType ) )
 </programlisting>
-        </example>
+      </example>
 
-        <figure>
-          <title>or</title>
+      <example>
+        <title>implicit root prefixAnd</title>
 
-          <mediaobject>
-            <imageobject>
-              <imagedata align="center" fileref="or_with_binding.svg"
-                         format="SVG" />
-            </imageobject>
+        <programlisting>when
+     Cheese( cheeseType : type )
+     Person( favouriteCheese == cheeseType )</programlisting>
+      </example>
 
-            <imageobject>
-              <imagedata align="center" fileref="or_with_binding.png"
-                         format="PNG" />
-            </imageobject>
-          </mediaobject>
-        </figure>
+      <para>Infix 'and' is supported along with explicit grouping with
+      parenthesis, should it be needed. The '&amp;&amp;' symbol, as an
+      alternative to 'and', is deprecated although it is still supported in
+      the syntax for legacy support reasons.</para>
 
-        <example>
-          <title>or with binding</title>
+      <figure>
+        <title>infixAnd</title>
 
-          <programlisting>pensioner : ( Person( sex == "f", age &gt; 60 ) or Person( sex == "m", age &gt; 65 ) )</programlisting>
-        </example>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="infixAnd.svg" format="SVG"
+                       role="" />
+          </imageobject>
 
-        <para>The 'or' conditional element results in multipe rule generation,
-        called sub rules, for each possible logically outcome. the example
-        above would result in the internal generation of two rules. These two
-        rules work independently within the Working Memory, which means both
-        can match, activate and fire - there is no shortcutting.</para>
+          <imageobject>
+            <imagedata align="center" fileref="infixAnd.png" format="PNG"
+                       role="" />
+          </imageobject>
+        </mediaobject>
+      </figure>
 
-        <para>The best way to think of the OR conditional element is as a
-        shortcut for generating 2 additional rules. When you think of it that
-        way, its clear that for a single rule there could be multiple
-        activations if both sides of the OR conditional element are
-        true.</para>
-      </section>
+      <example>
+        <title>infixAnd</title>
 
-      <section>
-        <title>'eval'</title>
+        <programlisting>Cheese( cheeseType : type ) and Person( favouriteCheese == cheeseType ) //infixAnd
+(Cheese( cheeseType : type ) and (Person( favouriteCheese == cheeseType ) or Person( favouriteCheese == cheeseType  ) ) //infixAnd with grouping</programlisting>
+      </example>
+    </section>
 
-        <figure>
-          <title>eval</title>
+    <section>
+      <title>'or'</title>
 
-          <mediaobject>
-            <imageobject>
-              <imagedata align="center" fileref="eval.svg" format="SVG"
-                         role="" />
-            </imageobject>
+      <para>The 'or' Conditional Element is used to group together other
+      Conditional Elements. Drools supports both prefix and infix; although
+      prefix is the preferred option as grouping is implicit which avoids
+      confusion. The behaviour of the 'or' Conditional Element is different
+      than the '||' connective for constraints and restrictions in field
+      constraints. The engine actually has no understanding of 'or'
+      Conditional Elements, instead via a number of different logic
+      transformations the rule is re-written as a number of subrules; the rule
+      now has a single 'or' as the root node and a subrule per logical
+      outcome. Each subrule can activate and fire like any normal rule, there
+      is no special behaviour or interactions between the subrules - this can
+      be most confusing to new rule authors.</para>
 
-            <imageobject>
-              <imagedata align="center" fileref="eval.png" format="PNG"
-                         role="" />
-            </imageobject>
-          </mediaobject>
-        </figure>
+      <figure>
+        <title>prefixOr</title>
 
-        <para>valid children : none</para>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="orPrefix.svg" format="SVG"
+                       role="" />
+          </imageobject>
 
-        <para>Eval is essentially a catch all which allows any semantic code
-        (that returns a primitive primitive boolean) to be executed. This can
-        refer to variables that were bound in the LHS of the rule, and
-        functions in the rule package. An eval should be the last conditional
-        element in the LHS of a rule. You can have multiple evals in a rule.
-        Generally you would combine them with some column constraints.</para>
+          <imageobject>
+            <imagedata align="center" fileref="prefixOr.png" format="PNG"
+                       role="" />
+          </imageobject>
+        </mediaobject>
+      </figure>
 
-        <para>Evals cannot be indexed and thus are not as optimal as using
-        Field Constraints. However this makes them ideal for being used when
-        functions return values that change over time, which is not allowed
-        within Field Constraints. An Eval will be checked each time if all the
-        other conditions in the rules are met.</para>
+      <example>
+        <title>prefixOr</title>
 
-        <para>For folks who are familiar with Drools 2.x lineage, the old
-        Drools paramater and condition tags are equivalent to binding a
-        variable to an appropriate type, and then using it in an eval
-        node.</para>
+        <programlisting>(or Person( sex == "f", age &gt; 60 )
+    Person( sex == "m", age &gt; 65 )
+</programlisting>
+      </example>
 
-        <example>
-          <title>eval</title>
+      <para>Infix 'or' is supported along with explicit grouping with
+      parenthesis, should it be needed. The '||' symbol, as an alternative to
+      'or', is deprecated although it is still supported in the syntax for
+      legacy support reasons.</para>
 
-          <programlisting>p1 : Parameter() 
-p2 : Parameter()
-eval( p1.getList().containsKey(p2.getItem()) )
-eval( isValid(p1, p2) ) //this is how you call a function in the LHS - a function called "isValid"</programlisting>
-        </example>
-      </section>
+      <figure>
+        <title>infixOr</title>
 
-      <section>
-        <title>'not'</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="infixOr.svg" format="SVG"
+                       role="" />
+          </imageobject>
 
-        <figure>
-          <title>not</title>
+          <imageobject>
+            <imagedata align="center" fileref="infixOr.png" format="PNG"
+                       role="" />
+          </imageobject>
+        </mediaobject>
+      </figure>
 
-          <mediaobject>
-            <imageobject>
-              <imagedata align="center" fileref="not.svg" format="SVG" role="" />
-            </imageobject>
+      <example>
+        <title>infixAnd</title>
 
-            <imageobject>
-              <imagedata align="center" fileref="not.png" format="PNG" role="" />
-            </imageobject>
-          </mediaobject>
-        </figure>
+        <programlisting>Cheese( cheeseType : type ) or Person( favouriteCheese == cheeseType ) //infixOr
+(Cheese( cheeseType : type ) or (Person( favouriteCheese == cheeseType ) and Person( favouriteCheese == cheeseType  ) ) //infixOr with grouping</programlisting>
+      </example>
 
-        <para>valid children: Column</para>
+      <para>The 'or' Conditional Element also allows for optional pattern
+      binding; which means each resulting subrule will bind it's pattern to
+      the pattern binding.</para>
 
-        <para>'not' is first order logic's Existential Quantifier and checks
-        for the non existence of something in the Working Memory. Currently
-        only Columns may be nested in a 'not' but future versions of will
-        allow 'and' and 'or' to be nested.</para>
+      <example>
+        <title>or with binding</title>
 
-        <example>
-          <title>No Busses</title>
+        <programlisting>pensioner : (or Person( sex == "f", age &gt; 60 ) 
+                Person( sex == "m", age &gt; 65 ) )</programlisting>
 
-          <programlisting>not Bus()</programlisting>
-        </example>
+        <para>Explicit binding on each Pattern is also allowed.</para>
 
-        <example>
-          <title>No red Busses</title>
+        <programlisting>(or pensioner : Person( sex == "f", age &gt; 60 ) 
+    pensioner : Person( sex == "m", age &gt; 65 ) )</programlisting>
+      </example>
 
-          <programlisting>not Bus(color == "red")
-not ( Bus(color == "red", number == 42) ) //brackets are optional</programlisting>
-        </example>
-      </section>
+      <para>The 'or' conditional element results in multipe rule generation,
+      called sub rules, for each possible logically outcome. the example above
+      would result in the internal generation of two rules. These two rules
+      work independently within the Working Memory, which means both can
+      match, activate and fire - there is no shortcutting.</para>
 
-      <section>
-        <title>'exists'</title>
+      <para>The best way to think of the OR conditional element is as a
+      shortcut for generating 2 additional rules. When you think of it that
+      way, its clear that for a single rule there could be multiple
+      activations if both sides of the OR conditional element are true.</para>
+    </section>
 
-        <figure>
-          <title>exists</title>
+    <section>
+      <title>'eval'</title>
 
-          <mediaobject>
-            <imageobject>
-              <imagedata align="center" fileref="exists.svg" format="SVG" />
-            </imageobject>
+      <figure>
+        <title>eval</title>
 
-            <imageobject>
-              <imagedata align="center" fileref="exists.png" format="PNG" />
-            </imageobject>
-          </mediaobject>
-        </figure>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="eval.svg" format="SVG" role="" />
+          </imageobject>
 
-        <para>valid children: Column</para>
+          <imageobject>
+            <imagedata align="center" fileref="eval.png" format="PNG" role="" />
+          </imageobject>
+        </mediaobject>
+      </figure>
 
-        <para>'exists' is first order logic's Existential Quantifier and
-        checks for the existence of something in the Working Memory. Think of
-        exist as meaning "at least one..". It is different from just having
-        the Column on its own. If you had the column on its on, its kind of
-        like saying "for each one of...". if you use exist with a Column, then
-        the rule will only activate once regardless of how much data there is
-        in working memory that matches that condition.</para>
+      <para>Eval is essentially a catch all which allows any semantic code
+      (that returns a primitive primitive boolean) to be executed. This can
+      refer to variables that were bound in the LHS of the rule, and functions
+      in the rule package. Over use of eval reduces the declarativess of your
+      rules and can result in a poor performing engine. While 'evals' can be
+      used anywhere in the Pattern the best practice is to add it as the last
+      conditional element in the LHS of a rule. </para>
 
-        <para>Currently only Columns may be nested in a 'exists' but future
-        versions of will allow 'and' and 'or' to be nested.</para>
+      <para>Evals cannot be indexed and thus are not as optimal as using Field
+      Constraints. However this makes them ideal for being used when functions
+      return values that change over time, which is not allowed within Field
+      Constraints. </para>
 
-        <example>
-          <title>Atleast one Bus</title>
+      <para>For folks who are familiar with Drools 2.x lineage, the old Drools
+      paramater and condition tags are equivalent to binding a variable to an
+      appropriate type, and then using it in an eval node.</para>
 
-          <programlisting>exists Bus()</programlisting>
-        </example>
+      <example>
+        <title>eval</title>
 
-        <example>
-          <title>Atleast one red Bus</title>
+        <programlisting>p1 : Parameter() 
+p2 : Parameter()
+eval( p1.getList().containsKey(p2.getItem()) )
+eval( isValid(p1, p2) ) //this is how you call a function in the LHS - a function called "isValid"</programlisting>
+      </example>
+    </section>
 
-          <programlisting>exists Bus(color == "red")</programlisting>
-        </example>
-      </section>
+    <section>
+      <title>'not'</title>
 
-      <section>
-        <title>'group'</title>
+      <figure>
+        <title>not</title>
 
-        <figure>
-          <title>group</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="not.svg" format="SVG" role="" />
+          </imageobject>
 
-          <mediaobject>
-            <imageobject>
-              <imagedata align="center" fileref="group.svg" format="SVG"
-                         role="" />
-            </imageobject>
+          <imageobject>
+            <imagedata align="center" fileref="not.png" format="PNG" role="" />
+          </imageobject>
+        </mediaobject>
+      </figure>
 
-            <imageobject>
-              <imagedata align="center" fileref="group.png" format="PNG"
-                         role="" />
-            </imageobject>
-          </mediaobject>
-        </figure>
+      <para>'not' is first order logic's Existential Quantifier and checks for
+      the non existence of something in the Working Memory. Brackets are
+      optional. Think of 'not' as meaning "there must be none of...".</para>
 
-        <para>Grouping is similar to using parentheses in algebra, it makes
-        the order of operations explicit.</para>
+      <example>
+        <title>No Busses</title>
 
-        <example>
-          <title>Example of groups</title>
+        <programlisting>not Bus()</programlisting>
+      </example>
 
-          <programlisting>...
-( 
-  Message( status == Message.HELLO ) and Message(message != null) 
-      or Message(status == null)  
-)
-...</programlisting>
-        </example>
-      </section>
+      <example>
+        <title>No red Busses</title>
+
+        <programlisting>not Bus(color == "red")
+not ( Bus(color == "red", number == 42) ) //brackets are optional
+not ( Bus(color == "red") and Bus(color == "blue")) // not with nested 'and' infix used here as ony two patterns</programlisting>
+      </example>
     </section>
+
+    <section>
+      <title>'exists'</title>
+
+      <figure>
+        <title>exists</title>
+
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center" fileref="exists.svg" format="SVG" />
+          </imageobject>
+
+          <imageobject>
+            <imagedata align="center" fileref="exists.png" format="PNG" />
+          </imageobject>
+        </mediaobject>
+      </figure>
+
+      <para>'exists' is first order logic's Existential Quantifier and checks
+      for the existence of something in the Working Memory. Think of exist as
+      meaning "at least one..". It is different from just having the Pattern
+      on its own; which is more like saying "for each one of...". if you use
+      exist with a Pattern, then the rule will only activate once regardless
+      of how much data there is in working memory that matches that
+      condition.</para>
+
+      <example>
+        <title>Atleast one Bus</title>
+
+        <programlisting>exists Bus()</programlisting>
+      </example>
+
+      <example>
+        <title>Atleast one red Bus</title>
+
+        <programlisting>exists Bus(color == "red")
+exists ( Bus(color == "red", number == 42) ) //brackets are optional
+exists ( Bus(color == "red") and Bus(color == "blue")) // not with nested 'and' infix used here as ony two patterns</programlisting>
+      </example>
+    </section>
   </section>
 
   <section>

Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/conditional_elements.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/conditional_elements.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/conditional_elements.vsd
===================================================================
(Binary files differ)

Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/exists.png
===================================================================
(Binary files differ)

Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/exists.svg
===================================================================
--- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/exists.svg	2007-07-22 15:32:06 UTC (rev 13708)
+++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/exists.svg	2007-07-22 17:59:58 UTC (rev 13709)
@@ -1,34 +1,39 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 exists.svg Page-1 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" xmlns:xlink="http://www.w3.org/1999/xlink" width="3.14355in" height="0.244444in" viewBox="0 0 226.336 17.6" xml:space="preserve" color-interpolation-filters="sRGB" class="st6" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" version="1.0" contentScriptType="text/ecmascript" contentStyleType="text/css">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 exists.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="3.6165in"
+		height="0.538941in" viewBox="0 0 260.388 38.8038" xml:space="preserve" color-interpolation-filters="sRGB" class="st6">
 	<v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
 
-	<style type="text/css" xml:space="preserve">
-	
+	<style type="text/css">
+	<![CDATA[
 		.st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
 		.st2 {fill:#000000;font-family:Arial;font-size:0.666664em}
 		.st3 {font-size:1em}
 		.st4 {marker-end:url(#mrkr2-18);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
 		.st5 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
 		.st6 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
-	
+	]]>
 	</style>
 
 	<defs id="Markers">
 		<g id="lend2">
 			<path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
 		</g>
-		<marker xmlns="http://www.w3.org/TR/xhtml1/transitional" overflow="visible" id="mrkr2-18" class="st5" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto" markerUnits="strokeWidth" preserveAspectRatio="xMidYMid meet">
-			<use xmlns="http://www.w3.org/2000/svg" xlink:href="#lend2" transform="scale(-11.5,-11.5) " xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
+		<marker id="mrkr2-18" class="st5" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+				markerUnits="strokeWidth">
+			<use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
 		</marker>
 	</defs>
 	<g v:mID="0" v:index="1" v:groupContext="foregroundPage">
-		<title content="structured text">Page-1</title>
-		<v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394" v:shadowOffsetY="-8.50394"/>
+		<title>Page-1</title>
+		<v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+				v:shadowOffsetY="-8.50394"/>
 		<v:layer v:name="Flowchart" v:index="0"/>
 		<v:layer v:name="Connector" v:index="1"/>
-		<g id="shape23-1" v:mID="23" v:groupContext="shape" v:layerMember="0" transform="translate(27.8268,-2.13018)">
-			<title content="structured text">Process.154</title>
-			<desc content="structured text">‘exist’</desc>
+		<g id="shape23-1" v:mID="23" v:groupContext="shape" v:layerMember="0" transform="translate(27.6709,-2.13018)">
+			<title>Process.23</title>
+			<desc>‘exists’</desc>
 			<v:custProps>
 				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
 				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -38,12 +43,13 @@
 				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
 			</v:userDefs>
 			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
-			<v:textRect cx="14.8963" cy="10.9302" width="29.8" height="13.3396"/>
-			<rect x="0" y="4.26036" width="29.7926" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
-			<text x="4.9" y="13.33" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3" v:langID="2057">exist</tspan>’</text>		</g>
-		<g id="shape24-5" v:mID="24" v:groupContext="shape" v:layerMember="0" transform="translate(75.6496,-2.13018)">
-			<title content="structured text">Process.155</title>
-			<desc content="structured text">‘(‘</desc>
+			<v:textRect cx="14.8963" cy="32.134" width="29.8" height="13.3396"/>
+			<rect x="0" y="25.4641" width="29.7926" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="2.9" y="34.53" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+						v:langID="2057">exists</tspan>’</text>		</g>
+		<g id="shape24-5" v:mID="24" v:groupContext="shape" v:layerMember="0" transform="translate(75.8054,-25.2241)">
+			<title>Process.24</title>
+			<desc>‘(‘</desc>
 			<v:custProps>
 				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
 				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -53,12 +59,13 @@
 				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
 			</v:userDefs>
 			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
-			<v:textRect cx="10.0047" cy="10.9302" width="20.01" height="13.3396"/>
-			<rect x="0" y="4.26036" width="20.0095" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
-			<text x="6.89" y="13.33" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3" v:langID="2057">(</tspan>‘</text>		</g>
-		<g id="shape25-9" v:mID="25" v:groupContext="shape" v:layerMember="0" transform="translate(166.807,-2.13018)">
-			<title content="structured text">Process.156</title>
-			<desc content="structured text">‘)’</desc>
+			<v:textRect cx="10.0047" cy="32.134" width="20.01" height="13.3396"/>
+			<rect x="0" y="25.4641" width="20.0095" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="6.89" y="34.53" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+						v:langID="2057">(</tspan>‘</text>		</g>
+		<g id="shape25-9" v:mID="25" v:groupContext="shape" v:layerMember="0" transform="translate(203.408,-24.8073)">
+			<title>Process.25</title>
+			<desc>‘)’</desc>
 			<v:custProps>
 				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
 				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -68,32 +75,43 @@
 				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
 			</v:userDefs>
 			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
-			<v:textRect cx="10.0047" cy="10.9302" width="20.01" height="13.3396"/>
-			<rect x="0" y="4.26036" width="20.0095" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
-			<text x="6.89" y="13.33" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3" v:langID="2057">)</tspan>’</text>		</g>
-		<g id="shape26-13" v:mID="26" v:groupContext="shape" v:layerMember="1" transform="translate(57.6193,-1.71339)">
-			<title content="structured text">Dynamic connector.157</title>
-			<path d="M0 10.51 L15.27 10.51" class="st4"/>
+			<v:textRect cx="10.0047" cy="32.134" width="20.01" height="13.3396"/>
+			<rect x="0" y="25.4641" width="20.0095" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="6.89" y="34.53" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+						v:langID="2057">)</tspan>’</text>		</g>
+		<g id="shape26-13" v:mID="26" v:groupContext="shape" v:layerMember="1" transform="translate(57.4634,-8.8)">
+			<title>Dynamic connector.26</title>
+			<path d="M0 38.8 L5.31 38.8 A5.31496 5.31496 -180 0 0 10.63 33.49 L10.63 19.57 A3.85604 3.85604 0 0 1 14.49 15.71 L15.58
+						 15.71" class="st4"/>
 		</g>
-		<g id="shape27-19" v:mID="27" v:groupContext="shape" v:layerMember="1;0" transform="translate(0.501054,-2.96391)">
-			<title content="structured text">On-page reference.158</title>
+		<g id="shape27-19" v:mID="27" v:groupContext="shape" v:layerMember="1;0" transform="translate(0.656943,-2.96391)">
+			<title>On-page reference.27</title>
 			<v:userDefs>
 				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
 			</v:userDefs>
 			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
-			<path d="M0 11.76 A5.83609 5.83609 0 1 1 11.67 11.76 A5.83609 5.83609 0 0 1 0 11.76 Z" class="st1"/>
+			<path d="M0 32.97 A5.83609 5.83609 0 1 1 11.67 32.97 A5.83609 5.83609 0 0 1 0 32.97 Z" class="st1"/>
 		</g>
-		<g id="shape29-21" v:mID="29" v:groupContext="shape" v:layerMember="1" transform="translate(12.1732,-1.71339)">
-			<title content="structured text">Dynamic connector.160</title>
-			<path d="M0 10.51 L12.89 10.51" class="st4"/>
+		<g id="shape28-21" v:mID="28" v:groupContext="shape" v:layerMember="1;0" transform="translate(248.476,-2.96391)">
+			<title>On-page reference.28</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<path d="M0 32.97 A5.83609 5.83609 0 1 1 11.67 32.97 A5.83609 5.83609 0 0 1 0 32.97 Z" class="st1"/>
 		</g>
-		<g id="shape30-26" v:mID="30" v:groupContext="shape" v:layerMember="1" transform="translate(186.816,-1.71339)">
-			<title content="structured text">Dynamic connector.161</title>
-			<path d="M0 10.51 L24.85 10.51" class="st4"/>
+		<g id="shape29-23" v:mID="29" v:groupContext="shape" v:layerMember="1" transform="translate(12.3291,-1.71339)">
+			<title>Dynamic connector.29</title>
+			<path d="M0 31.72 L12.58 31.72" class="st4"/>
 		</g>
-		<g id="shape31-31" v:mID="31" v:groupContext="shape" v:layerMember="0" transform="translate(112.676,-2.13018)">
-			<title content="structured text">Process.163</title>
-			<desc content="structured text">column</desc>
+		<g id="shape30-28" v:mID="30" v:groupContext="shape" v:layerMember="1" transform="translate(223.417,-31.4772)">
+			<title>Dynamic connector.30</title>
+			<path d="M0 38.8 L5.31 38.8 A5.31496 5.31496 0 0 1 10.63 44.12 L10.63 55.81 A5.66929 5.66929 -180 0 0 16.3 61.48 L22.3
+						 61.48" class="st4"/>
+		</g>
+		<g id="shape31-33" v:mID="31" v:groupContext="shape" v:layerMember="0" transform="translate(112.676,-2.13018)">
+			<title>Process.31</title>
+			<desc>conditionalElement</desc>
 			<v:custProps>
 				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
 				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -103,24 +121,26 @@
 				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
 			</v:userDefs>
 			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
-			<v:textRect cx="18.9765" cy="10.9302" width="37.96" height="13.3396"/>
-			<rect x="0" y="4.26036" width="37.953" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
-			<text x="6.08" y="13.33" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>column</text>		</g>
-		<g id="shape32-34" v:mID="32" v:groupContext="shape" v:layerMember="1" transform="translate(95.659,-1.71339)">
-			<title content="structured text">Dynamic connector.164</title>
-			<path d="M0 10.51 L14.26 10.51" class="st4"/>
+			<v:textRect cx="36.2367" cy="32.134" width="72.48" height="13.3396"/>
+			<rect x="0" y="25.4641" width="72.4735" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="2.43" y="34.53" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>conditionalElement</text>		</g>
+		<g id="shape32-36" v:mID="32" v:groupContext="shape" v:layerMember="1" transform="translate(95.8149,-31.894)">
+			<title>Dynamic connector.32</title>
+			<path d="M0 38.8 L4.89 38.8 A4.8872 4.8872 0 0 1 9.77 43.69 L9.77 58.35 A3.54331 3.54331 -180 0 0 13.32 61.9 L14.1 61.9"
+					class="st4"/>
 		</g>
-		<g id="shape33-39" v:mID="33" v:groupContext="shape" v:layerMember="1" transform="translate(150.629,-1.71339)">
-			<title content="structured text">Dynamic connector.165</title>
-			<path d="M0 10.51 L13.42 10.51" class="st4"/>
+		<g id="shape33-41" v:mID="33" v:groupContext="shape" v:layerMember="1" transform="translate(185.149,-8.8)">
+			<title>Dynamic connector.33</title>
+			<path d="M0 38.8 L5.31 38.8 A5.31496 5.31496 -180 0 0 10.63 33.49 L10.63 19.94 A3.81417 3.81417 0 0 1 14.44 16.13 L15.5
+						 16.13" class="st4"/>
 		</g>
-		<g id="shape28-44" v:mID="28" v:groupContext="shape" v:layerMember="1;0" transform="translate(214.424,-2.96391)">
-			<title content="structured text">On-page reference.159</title>
-			<v:userDefs>
-				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
-			</v:userDefs>
-			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
-			<path d="M0 11.76 A5.83609 5.83609 0 1 1 11.67 11.76 A5.83609 5.83609 0 0 1 0 11.76 Z" class="st1"/>
+		<g id="shape156-46" v:mID="156" v:groupContext="shape" v:layerMember="1" transform="translate(57.4634,-1.71339)">
+			<title>Dynamic connector.156</title>
+			<path d="M0 31.72 L52.45 31.72" class="st4"/>
 		</g>
+		<g id="shape157-51" v:mID="157" v:groupContext="shape" v:layerMember="1" transform="translate(185.149,-1.71339)">
+			<title>Dynamic connector.157</title>
+			<path d="M0 31.72 L60.57 31.72" class="st4"/>
+		</g>
 	</g>
-</svg>
\ No newline at end of file
+</svg>

Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/infixAnd.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/infixAnd.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/infixAnd.svg
===================================================================
--- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/infixAnd.svg	                        (rev 0)
+++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/infixAnd.svg	2007-07-22 17:59:58 UTC (rev 13709)
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 infixAnd.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="3.41681in"
+		height="0.519256in" viewBox="0 0 246.01 37.3865" xml:space="preserve" color-interpolation-filters="sRGB" class="st7">
+	<v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+	<style type="text/css">
+	<![CDATA[
+		.st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+		.st2 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+		.st3 {marker-end:url(#mrkr2-9);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+		.st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+		.st5 {fill:#000000;font-family:Arial;font-size:0.666664em}
+		.st6 {font-size:1em}
+		.st7 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+	]]>
+	</style>
+
+	<defs id="Markers">
+		<g id="lend2">
+			<path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+		</g>
+		<marker id="mrkr2-9" class="st4" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+				markerUnits="strokeWidth">
+			<use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+		</marker>
+	</defs>
+	<g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+		<title>Page-1</title>
+		<v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+				v:shadowOffsetY="-8.50394"/>
+		<v:layer v:name="Flowchart" v:index="0"/>
+		<v:layer v:name="Connector" v:index="1"/>
+		<g id="shape89-1" v:mID="89" v:groupContext="shape" v:layerMember="0" transform="translate(90.7815,-2.13018)">
+			<title>Process.89</title>
+			<desc>CE</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="21.4689" cy="30.7166" width="42.94" height="13.3396"/>
+			<rect x="0" y="24.0468" width="42.9378" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="15.92" y="33.12" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>CE</text>		</g>
+		<g id="shape97-4" v:mID="97" v:groupContext="shape" v:layerMember="1" transform="translate(135.887,-8.8)">
+			<title>Dynamic connector.97</title>
+			<path d="M-2.17 37.39 L3.15 37.39 A5.31496 5.31496 -180 0 0 8.46 32.07 L8.46 21.38 A5.66929 5.66929 -180 0 0 2.79 15.71
+						 L-9.25 15.71" class="st3"/>
+		</g>
+		<g id="shape98-10" v:mID="98" v:groupContext="shape" v:layerMember="1;0" transform="translate(0.24,-2.96391)">
+			<title>On-page reference.98</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<path d="M0 31.55 A5.83609 5.83609 0 1 1 11.67 31.55 A5.83609 5.83609 0 0 1 0 31.55 Z" class="st1"/>
+		</g>
+		<g id="shape99-12" v:mID="99" v:groupContext="shape" v:layerMember="1;0" transform="translate(234.098,-2.96391)">
+			<title>On-page reference.99</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<path d="M0 31.55 A5.83609 5.83609 0 1 1 11.67 31.55 A5.83609 5.83609 0 0 1 0 31.55 Z" class="st1"/>
+		</g>
+		<g id="shape100-14" v:mID="100" v:groupContext="shape" v:layerMember="1" transform="translate(11.9122,-1.71339)">
+			<title>Dynamic connector.100</title>
+			<path d="M0 30.3 L55.03 30.3 L76.11 30.3" class="st3"/>
+		</g>
+		<g id="shape91-19" v:mID="91" v:groupContext="shape" v:layerMember="1" transform="translate(52.2556,-29.7679)">
+			<title>Dynamic connector.91</title>
+			<path d="M0 37.39 L3.76 37.39 A3.75599 3.75599 0 0 1 7.51 41.14 L7.51 52.69 A5.66929 5.66929 -180 0 0 13.18 58.35 L35.77
+						 58.35" class="st3"/>
+		</g>
+		<g id="shape37-24" v:mID="37" v:groupContext="shape" v:layerMember="1" transform="translate(133.719,-15.8866)">
+			<title>Dynamic connector.37</title>
+			<path d="M0 44.47 L24.51 44.47 L97.62 44.47" class="st3"/>
+		</g>
+		<g id="shape79-29" v:mID="79" v:groupContext="shape" v:layerMember="0" transform="translate(100.07,-23.8068)">
+			<title>Process.79</title>
+			<desc>‘and’</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="11.9052" cy="30.7166" width="23.82" height="13.3396"/>
+			<rect x="0" y="24.0468" width="23.8103" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="3.45" y="33.12" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st6"
+						v:langID="2057">and</tspan>’</text>		</g>
+		<g id="shape80-33" v:mID="80" v:groupContext="shape" v:layerMember="1" transform="translate(102.513,-30.4766)">
+			<title>Dynamic connector.80</title>
+			<path d="M-2.44 37.39 L-18.65 37.39 A5.66929 5.66929 -180 0 0 -24.32 43.06 L-24.32 53.39 A5.66929 5.66929 -180 0 0 -18.65
+						 59.06 L-14.49 59.06" class="st3"/>
+		</g>
+		<g id="shape81-38" v:mID="81" v:groupContext="shape" v:layerMember="1" transform="translate(11.9122,-8.8)">
+			<title>Dynamic connector.81</title>
+			<path d="M0 37.39 L5.31 37.39 A5.31496 5.31496 -180 0 0 10.63 32.07 L10.63 21.78 A5.36084 5.36084 0 0 1 15.99 16.42 L18.59
+						 16.42" class="st3"/>
+		</g>
+		<g id="shape48-43" v:mID="48" v:groupContext="shape" v:layerMember="0" transform="translate(33.2638,-23.0981)">
+			<title>Process.48</title>
+			<desc>‘(’</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="9.49589" cy="30.7166" width="19" height="13.3396"/>
+			<rect x="0" y="24.0468" width="18.9918" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="6.39" y="33.12" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st6"
+						v:langID="2057">(</tspan>’</text>		</g>
+		<g id="shape82-47" v:mID="82" v:groupContext="shape" v:layerMember="0" transform="translate(179.673,-23.0981)">
+			<title>Process.82</title>
+			<desc>‘)’</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="9.49589" cy="30.7166" width="19" height="13.3396"/>
+			<rect x="0" y="24.0468" width="18.9918" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="6.39" y="33.12" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st6"
+						v:langID="2057">)</tspan>’</text>		</g>
+		<g id="shape85-51" v:mID="85" v:groupContext="shape" v:layerMember="1" transform="translate(133.719,-8.8)">
+			<title>Dynamic connector.85</title>
+			<path d="M0 37.39 L30.93 37.39 A5.66929 5.66929 -180 0 0 36.6 31.72 L36.6 21.1 A4.67733 4.67733 0 0 1 41.28 16.42 L43.19
+						 16.42" class="st3"/>
+		</g>
+		<g id="shape86-56" v:mID="86" v:groupContext="shape" v:layerMember="1" transform="translate(198.665,-29.7679)">
+			<title>Dynamic connector.86</title>
+			<path d="M0 37.39 L8.5 37.39 A5.66929 5.66929 0 0 1 14.17 43.06 L14.17 52.69 A5.66929 5.66929 -180 0 0 19.84 58.35 L32.67
+						 58.35" class="st3"/>
+		</g>
+	</g>
+</svg>

Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/infixOr.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/infixOr.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/infixOr.svg
===================================================================
--- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/infixOr.svg	                        (rev 0)
+++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/infixOr.svg	2007-07-22 17:59:58 UTC (rev 13709)
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 infixOr.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="5.09525in"
+		height="0.474097in" viewBox="0 0 366.858 34.135" xml:space="preserve" color-interpolation-filters="sRGB" class="st7">
+	<v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+	<style type="text/css">
+	<![CDATA[
+		.st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+		.st2 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+		.st3 {marker-end:url(#mrkr2-9);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+		.st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+		.st5 {fill:#000000;font-family:Arial;font-size:0.666664em}
+		.st6 {font-size:1em}
+		.st7 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+	]]>
+	</style>
+
+	<defs id="Markers">
+		<g id="lend2">
+			<path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+		</g>
+		<marker id="mrkr2-9" class="st4" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+				markerUnits="strokeWidth">
+			<use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+		</marker>
+	</defs>
+	<g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+		<title>Page-1</title>
+		<v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+				v:shadowOffsetY="-8.50394"/>
+		<v:layer v:name="Flowchart" v:index="0"/>
+		<v:layer v:name="Connector" v:index="1"/>
+		<g id="shape39-1" v:mID="39" v:groupContext="shape" v:layerMember="0" transform="translate(211.629,-2.13018)">
+			<title>Process.39</title>
+			<desc>CE</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="21.4689" cy="27.4652" width="42.94" height="13.3396"/>
+			<rect x="0" y="20.7954" width="42.9378" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="15.92" y="29.87" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>CE</text>		</g>
+		<g id="shape40-4" v:mID="40" v:groupContext="shape" v:layerMember="1" transform="translate(256.296,-8.8)">
+			<title>Dynamic connector.40</title>
+			<path d="M-1.73 34.14 L3.59 34.14 A5.31496 5.31496 -180 0 0 8.9 28.82 L8.9 21.38 A5.66929 5.66929 -180 0 0 3.23 15.71
+						 L-9.68 15.71" class="st3"/>
+		</g>
+		<g id="shape42-10" v:mID="42" v:groupContext="shape" v:layerMember="1;0" transform="translate(354.946,-2.96391)">
+			<title>On-page reference.42</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<path d="M0 28.3 A5.83609 5.83609 0 1 1 11.67 28.3 A5.83609 5.83609 0 0 1 0 28.3 Z" class="st1"/>
+		</g>
+		<g id="shape43-12" v:mID="43" v:groupContext="shape" v:layerMember="1" transform="translate(11.9122,-1.71339)">
+			<title>Dynamic connector.43</title>
+			<path d="M0 27.05 L196.96 27.05" class="st3"/>
+		</g>
+		<g id="shape44-17" v:mID="44" v:groupContext="shape" v:layerMember="1" transform="translate(173.103,-27.2252)">
+			<title>Dynamic connector.44</title>
+			<path d="M0 34.14 L3.76 34.14 A3.75599 3.75599 0 0 1 7.51 37.89 L7.51 46.89 A5.66929 5.66929 -180 0 0 13.18 52.56 L35.77
+						 52.56" class="st3"/>
+		</g>
+		<g id="shape45-22" v:mID="45" v:groupContext="shape" v:layerMember="1" transform="translate(254.567,-15.8866)">
+			<title>Dynamic connector.45</title>
+			<path d="M0 41.22 L97.62 41.22" class="st3"/>
+		</g>
+		<g id="shape46-27" v:mID="46" v:groupContext="shape" v:layerMember="0" transform="translate(220.042,-20.5554)">
+			<title>Process.46</title>
+			<desc>‘or’</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="11.9052" cy="27.4652" width="23.82" height="13.3396"/>
+			<rect x="0" y="20.7954" width="23.8103" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="6.57" y="29.87" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st6"
+						v:langID="2057">or</tspan>’</text>		</g>
+		<g id="shape47-31" v:mID="47" v:groupContext="shape" v:layerMember="1" transform="translate(222.922,-27.2252)">
+			<title>Dynamic connector.47</title>
+			<path d="M-2.88 34.14 L-18.21 34.14 A5.66929 5.66929 -180 0 0 -23.88 39.8 L-23.88 46.89 A5.66929 5.66929 -180 0 0 -18.21
+						 52.56 L-14.05 52.56" class="st3"/>
+		</g>
+		<g id="shape67-36" v:mID="67" v:groupContext="shape" v:layerMember="1" transform="translate(11.9122,-8.8)">
+			<title>Dynamic connector.67</title>
+			<path d="M0 34.14 L125.9 34.14 A5.66929 5.66929 -180 0 0 131.57 28.47 L131.57 21.02 A5.31496 5.31496 0 0 1 136.88 15.71
+						 L139.44 15.71" class="st3"/>
+		</g>
+		<g id="shape87-41" v:mID="87" v:groupContext="shape" v:layerMember="0" transform="translate(154.111,-20.5554)">
+			<title>Process.87</title>
+			<desc>‘(’</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="9.49589" cy="27.4652" width="19" height="13.3396"/>
+			<rect x="0" y="20.7954" width="18.9918" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="6.39" y="29.87" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st6"
+						v:langID="2057">(</tspan>’</text>		</g>
+		<g id="shape88-45" v:mID="88" v:groupContext="shape" v:layerMember="0" transform="translate(300.521,-20.5554)">
+			<title>Process.88</title>
+			<desc>‘)’</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="9.49589" cy="27.4652" width="19" height="13.3396"/>
+			<rect x="0" y="20.7954" width="18.9918" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="6.39" y="29.87" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st6"
+						v:langID="2057">)</tspan>’</text>		</g>
+		<g id="shape104-49" v:mID="104" v:groupContext="shape" v:layerMember="1" transform="translate(254.567,-8.8)">
+			<title>Dynamic connector.104</title>
+			<path d="M0 34.14 L30.93 34.14 A5.66929 5.66929 -180 0 0 36.6 28.47 L36.6 20.39 A4.67733 4.67733 0 0 1 41.28 15.71 L43.19
+						 15.71" class="st3"/>
+		</g>
+		<g id="shape105-54" v:mID="105" v:groupContext="shape" v:layerMember="1" transform="translate(319.513,-27.2252)">
+			<title>Dynamic connector.105</title>
+			<path d="M0 34.14 L8.5 34.14 A5.66929 5.66929 0 0 1 14.17 39.8 L14.17 46.89 A5.66929 5.66929 -180 0 0 19.84 52.56 L32.67
+						 52.56" class="st3"/>
+		</g>
+		<g id="shape151-59" v:mID="151" v:groupContext="shape" v:layerMember="1;0" transform="translate(0.24,-2.96391)">
+			<title>On-page reference.151</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<path d="M0 28.3 A5.83609 5.83609 0 1 1 11.67 28.3 A5.83609 5.83609 0 0 1 0 28.3 Z" class="st1"/>
+		</g>
+		<g id="shape153-61" v:mID="153" v:groupContext="shape" v:layerMember="0" transform="translate(37.7568,-20.5554)">
+			<title>Process.153</title>
+			<desc>patternBinding</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="27.8469" cy="27.4652" width="55.7" height="13.3396"/>
+			<rect x="0" y="20.7954" width="55.6937" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="2.05" y="29.87" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>patternBinding</text>		</g>
+		<g id="shape154-64" v:mID="154" v:groupContext="shape" v:layerMember="1" transform="translate(11.9122,-8.8)">
+			<title>Dynamic connector.154</title>
+			<path d="M0 34.14 L5.31 34.14 A5.31496 5.31496 -180 0 0 10.63 28.82 L10.63 21.38 A5.66929 5.66929 0 0 1 16.3 15.71 L23.08
+						 15.71" class="st3"/>
+		</g>
+		<g id="shape155-69" v:mID="155" v:groupContext="shape" v:layerMember="1" transform="translate(93.4505,-27.2252)">
+			<title>Dynamic connector.155</title>
+			<path d="M0 34.14 L6.17 34.14 A5.66929 5.66929 0 0 1 11.84 39.8 L11.84 46.89 A5.66929 5.66929 -180 0 0 17.51 52.56 L115.42
+						 52.56" class="st3"/>
+		</g>
+	</g>
+</svg>

Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/not.png
===================================================================
(Binary files differ)

Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/not.svg
===================================================================
--- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/not.svg	2007-07-22 15:32:06 UTC (rev 13708)
+++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/not.svg	2007-07-22 17:59:58 UTC (rev 13709)
@@ -1,34 +1,39 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 not.svg Page-1 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" xmlns:xlink="http://www.w3.org/1999/xlink" width="3.14572in" height="0.244444in" viewBox="0 0 226.492 17.6" xml:space="preserve" color-interpolation-filters="sRGB" class="st6" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" version="1.0" contentScriptType="text/ecmascript" contentStyleType="text/css">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 not.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="3.6165in"
+		height="0.538941in" viewBox="0 0 260.388 38.8038" xml:space="preserve" color-interpolation-filters="sRGB" class="st6">
 	<v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
 
-	<style type="text/css" xml:space="preserve">
-	
+	<style type="text/css">
+	<![CDATA[
 		.st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
 		.st2 {fill:#000000;font-family:Arial;font-size:0.666664em}
 		.st3 {font-size:1em}
 		.st4 {marker-end:url(#mrkr2-18);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
 		.st5 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
 		.st6 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
-	
+	]]>
 	</style>
 
 	<defs id="Markers">
 		<g id="lend2">
 			<path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
 		</g>
-		<marker xmlns="http://www.w3.org/TR/xhtml1/transitional" overflow="visible" id="mrkr2-18" class="st5" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto" markerUnits="strokeWidth" preserveAspectRatio="xMidYMid meet">
-			<use xmlns="http://www.w3.org/2000/svg" xlink:href="#lend2" transform="scale(-11.5,-11.5) " xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
+		<marker id="mrkr2-18" class="st5" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+				markerUnits="strokeWidth">
+			<use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
 		</marker>
 	</defs>
 	<g v:mID="0" v:index="1" v:groupContext="foregroundPage">
-		<title content="structured text">Page-1</title>
-		<v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394" v:shadowOffsetY="-8.50394"/>
+		<title>Page-1</title>
+		<v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+				v:shadowOffsetY="-8.50394"/>
 		<v:layer v:name="Flowchart" v:index="0"/>
 		<v:layer v:name="Connector" v:index="1"/>
 		<g id="shape12-1" v:mID="12" v:groupContext="shape" v:layerMember="0" transform="translate(27.6709,-2.13018)">
-			<title content="structured text">Process.141</title>
-			<desc content="structured text">‘not’</desc>
+			<title>Process.141</title>
+			<desc>‘not’</desc>
 			<v:custProps>
 				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
 				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -38,12 +43,13 @@
 				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
 			</v:userDefs>
 			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
-			<v:textRect cx="14.8963" cy="10.9302" width="29.8" height="13.3396"/>
-			<rect x="0" y="4.26036" width="29.7926" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
-			<text x="7.56" y="13.33" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3" v:langID="2057">not</tspan>’</text>		</g>
-		<g id="shape13-5" v:mID="13" v:groupContext="shape" v:layerMember="0" transform="translate(75.8054,-2.13018)">
-			<title content="structured text">Process.142</title>
-			<desc content="structured text">‘(‘</desc>
+			<v:textRect cx="14.8963" cy="32.134" width="29.8" height="13.3396"/>
+			<rect x="0" y="25.4641" width="29.7926" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="7.56" y="34.53" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+						v:langID="2057">not</tspan>’</text>		</g>
+		<g id="shape13-5" v:mID="13" v:groupContext="shape" v:layerMember="0" transform="translate(75.8054,-25.2241)">
+			<title>Process.142</title>
+			<desc>‘(‘</desc>
 			<v:custProps>
 				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
 				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -53,12 +59,13 @@
 				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
 			</v:userDefs>
 			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
-			<v:textRect cx="10.0047" cy="10.9302" width="20.01" height="13.3396"/>
-			<rect x="0" y="4.26036" width="20.0095" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
-			<text x="6.89" y="13.33" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3" v:langID="2057">(</tspan>‘</text>		</g>
-		<g id="shape14-9" v:mID="14" v:groupContext="shape" v:layerMember="0" transform="translate(166.963,-2.13018)">
-			<title content="structured text">Process.143</title>
-			<desc content="structured text">‘)’</desc>
+			<v:textRect cx="10.0047" cy="32.134" width="20.01" height="13.3396"/>
+			<rect x="0" y="25.4641" width="20.0095" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="6.89" y="34.53" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+						v:langID="2057">(</tspan>‘</text>		</g>
+		<g id="shape14-9" v:mID="14" v:groupContext="shape" v:layerMember="0" transform="translate(203.408,-24.8073)">
+			<title>Process.143</title>
+			<desc>‘)’</desc>
 			<v:custProps>
 				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
 				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -68,40 +75,43 @@
 				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
 			</v:userDefs>
 			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
-			<v:textRect cx="10.0047" cy="10.9302" width="20.01" height="13.3396"/>
-			<rect x="0" y="4.26036" width="20.0095" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
-			<text x="6.89" y="13.33" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3" v:langID="2057">)</tspan>’</text>		</g>
-		<g id="shape15-13" v:mID="15" v:groupContext="shape" v:layerMember="1" transform="translate(57.4634,-1.71339)">
-			<title content="structured text">Dynamic connector.144</title>
-			<path d="M0 10.51 L15.58 10.51" class="st4"/>
+			<v:textRect cx="10.0047" cy="32.134" width="20.01" height="13.3396"/>
+			<rect x="0" y="25.4641" width="20.0095" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="6.89" y="34.53" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+						v:langID="2057">)</tspan>’</text>		</g>
+		<g id="shape15-13" v:mID="15" v:groupContext="shape" v:layerMember="1" transform="translate(57.4634,-8.8)">
+			<title>Dynamic connector.144</title>
+			<path d="M0 38.8 L5.31 38.8 A5.31496 5.31496 -180 0 0 10.63 33.49 L10.63 19.57 A3.85604 3.85604 0 0 1 14.49 15.71 L15.58
+						 15.71" class="st4"/>
 		</g>
 		<g id="shape16-19" v:mID="16" v:groupContext="shape" v:layerMember="1;0" transform="translate(0.656943,-2.96391)">
-			<title content="structured text">On-page reference.145</title>
+			<title>On-page reference.145</title>
 			<v:userDefs>
 				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
 			</v:userDefs>
 			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
-			<path d="M0 11.76 A5.83609 5.83609 0 1 1 11.67 11.76 A5.83609 5.83609 0 0 1 0 11.76 Z" class="st1"/>
+			<path d="M0 32.97 A5.83609 5.83609 0 1 1 11.67 32.97 A5.83609 5.83609 0 0 1 0 32.97 Z" class="st1"/>
 		</g>
-		<g id="shape17-21" v:mID="17" v:groupContext="shape" v:layerMember="1;0" transform="translate(214.58,-2.96391)">
-			<title content="structured text">On-page reference.146</title>
+		<g id="shape17-21" v:mID="17" v:groupContext="shape" v:layerMember="1;0" transform="translate(248.476,-2.96391)">
+			<title>On-page reference.146</title>
 			<v:userDefs>
 				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
 			</v:userDefs>
 			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
-			<path d="M0 11.76 A5.83609 5.83609 0 1 1 11.67 11.76 A5.83609 5.83609 0 0 1 0 11.76 Z" class="st1"/>
+			<path d="M0 32.97 A5.83609 5.83609 0 1 1 11.67 32.97 A5.83609 5.83609 0 0 1 0 32.97 Z" class="st1"/>
 		</g>
 		<g id="shape18-23" v:mID="18" v:groupContext="shape" v:layerMember="1" transform="translate(12.3291,-1.71339)">
-			<title content="structured text">Dynamic connector.147</title>
-			<path d="M0 10.51 L12.58 10.51" class="st4"/>
+			<title>Dynamic connector.147</title>
+			<path d="M0 31.72 L12.58 31.72" class="st4"/>
 		</g>
-		<g id="shape19-28" v:mID="19" v:groupContext="shape" v:layerMember="1" transform="translate(186.972,-1.71339)">
-			<title content="structured text">Dynamic connector.148</title>
-			<path d="M0 10.51 L24.85 10.51" class="st4"/>
+		<g id="shape19-28" v:mID="19" v:groupContext="shape" v:layerMember="1" transform="translate(223.417,-31.4772)">
+			<title>Dynamic connector.148</title>
+			<path d="M0 38.8 L5.31 38.8 A5.31496 5.31496 0 0 1 10.63 44.12 L10.63 55.81 A5.66929 5.66929 -180 0 0 16.3 61.48 L22.3
+						 61.48" class="st4"/>
 		</g>
 		<g id="shape20-33" v:mID="20" v:groupContext="shape" v:layerMember="0" transform="translate(112.676,-2.13018)">
-			<title content="structured text">Process.149</title>
-			<desc content="structured text">column</desc>
+			<title>Process.149</title>
+			<desc>conditionalElement</desc>
 			<v:custProps>
 				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
 				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -111,16 +121,26 @@
 				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
 			</v:userDefs>
 			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
-			<v:textRect cx="18.9765" cy="10.9302" width="37.96" height="13.3396"/>
-			<rect x="0" y="4.26036" width="37.953" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
-			<text x="6.08" y="13.33" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>column</text>		</g>
-		<g id="shape21-36" v:mID="21" v:groupContext="shape" v:layerMember="1" transform="translate(95.8149,-1.71339)">
-			<title content="structured text">Dynamic connector.150</title>
-			<path d="M0 10.51 L14.1 10.51" class="st4"/>
+			<v:textRect cx="36.2367" cy="32.134" width="72.48" height="13.3396"/>
+			<rect x="0" y="25.4641" width="72.4735" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="2.43" y="34.53" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>conditionalElement</text>		</g>
+		<g id="shape21-36" v:mID="21" v:groupContext="shape" v:layerMember="1" transform="translate(95.8149,-31.894)">
+			<title>Dynamic connector.150</title>
+			<path d="M0 38.8 L4.89 38.8 A4.8872 4.8872 0 0 1 9.77 43.69 L9.77 58.35 A3.54331 3.54331 -180 0 0 13.32 61.9 L14.1 61.9"
+					class="st4"/>
 		</g>
-		<g id="shape22-41" v:mID="22" v:groupContext="shape" v:layerMember="1" transform="translate(150.629,-1.71339)">
-			<title content="structured text">Dynamic connector.151</title>
-			<path d="M0 10.51 L13.57 10.51" class="st4"/>
+		<g id="shape22-41" v:mID="22" v:groupContext="shape" v:layerMember="1" transform="translate(185.149,-8.8)">
+			<title>Dynamic connector.151</title>
+			<path d="M0 38.8 L5.31 38.8 A5.31496 5.31496 -180 0 0 10.63 33.49 L10.63 19.94 A3.81417 3.81417 0 0 1 14.44 16.13 L15.5
+						 16.13" class="st4"/>
 		</g>
+		<g id="shape41-46" v:mID="41" v:groupContext="shape" v:layerMember="1" transform="translate(57.4634,-1.71339)">
+			<title>Dynamic connector.41</title>
+			<path d="M0 31.72 L52.45 31.72" class="st4"/>
+		</g>
+		<g id="shape152-51" v:mID="152" v:groupContext="shape" v:layerMember="1" transform="translate(185.149,-1.71339)">
+			<title>Dynamic connector.152</title>
+			<path d="M0 31.72 L60.57 31.72" class="st4"/>
+		</g>
 	</g>
-</svg>
\ No newline at end of file
+</svg>

Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/pattern.vsd
===================================================================
(Binary files differ)

Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/prefixAnd.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/prefixAnd.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/prefixAnd.svg
===================================================================
--- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/prefixAnd.svg	                        (rev 0)
+++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/prefixAnd.svg	2007-07-22 17:59:58 UTC (rev 13709)
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 prefixAnd.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="3.61366in"
+		height="0.484719in" viewBox="0 0 260.184 34.8997" xml:space="preserve" color-interpolation-filters="sRGB" class="st7">
+	<v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+	<style type="text/css">
+	<![CDATA[
+		.st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+		.st2 {fill:#000000;font-family:Arial;font-size:0.666664em}
+		.st3 {font-size:1em}
+		.st4 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+		.st5 {marker-end:url(#mrkr2-19);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+		.st6 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+		.st7 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+	]]>
+	</style>
+
+	<defs id="Markers">
+		<g id="lend2">
+			<path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+		</g>
+		<marker id="mrkr2-19" class="st6" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+				markerUnits="strokeWidth">
+			<use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+		</marker>
+	</defs>
+	<g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+		<title>Page-1</title>
+		<v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+				v:shadowOffsetY="-8.50394"/>
+		<v:layer v:name="Flowchart" v:index="0"/>
+		<v:layer v:name="Connector" v:index="1"/>
+		<g id="shape108-1" v:mID="108" v:groupContext="shape" v:layerMember="0" transform="translate(34.4225,-2.13018)">
+			<title>Process.108</title>
+			<desc>‘(’</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="9.49589" cy="28.2299" width="19" height="13.3396"/>
+			<rect x="0" y="21.5601" width="18.9918" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="6.39" y="30.63" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+						v:langID="2057">(</tspan>’</text>		</g>
+		<g id="shape110-5" v:mID="110" v:groupContext="shape" v:layerMember="0" transform="translate(69.8556,-2.13018)">
+			<title>Process.110</title>
+			<desc>‘and’</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="11.9052" cy="28.2299" width="23.82" height="13.3396"/>
+			<rect x="0" y="21.5601" width="23.8103" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="3.45" y="30.63" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+						v:langID="2057">and</tspan>’</text>		</g>
+		<g id="shape111-9" v:mID="111" v:groupContext="shape" v:layerMember="0" transform="translate(126.549,-2.13018)">
+			<title>Process.111</title>
+			<desc>CE</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="21.4689" cy="28.2299" width="42.94" height="13.3396"/>
+			<rect x="0" y="21.5601" width="42.9378" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="15.92" y="30.63" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>CE</text>		</g>
+		<g id="shape112-12" v:mID="112" v:groupContext="shape" v:layerMember="1;0" transform="translate(0.24,-2.96391)">
+			<title>On-page reference.112</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<path d="M0 29.06 A5.83609 5.83609 0 1 1 11.67 29.06 A5.83609 5.83609 0 0 1 0 29.06 Z" class="st1"/>
+		</g>
+		<g id="shape113-14" v:mID="113" v:groupContext="shape" v:layerMember="1" transform="translate(11.9122,-1.71339)">
+			<title>Dynamic connector.113</title>
+			<path d="M0 27.81 L19.75 27.81" class="st5"/>
+		</g>
+		<g id="shape114-20" v:mID="114" v:groupContext="shape" v:layerMember="1" transform="translate(53.4143,-1.71339)">
+			<title>Dynamic connector.114</title>
+			<path d="M0 27.81 L13.68 27.81" class="st5"/>
+		</g>
+		<g id="shape115-25" v:mID="115" v:groupContext="shape" v:layerMember="1" transform="translate(93.666,-1.71339)">
+			<title>Dynamic connector.115</title>
+			<path d="M0 27.81 L30.12 27.81" class="st5"/>
+		</g>
+		<g id="shape116-30" v:mID="116" v:groupContext="shape" v:layerMember="1" transform="translate(169.486,-1.71339)">
+			<title>Dynamic connector.116</title>
+			<path d="M0 27.81 L5.31 27.81 A5.31496 5.31496 -180 0 0 10.63 22.5 L10.63 16.18 A5.66929 5.66929 -180 0 0 4.96 10.51
+						 L-47.9 10.51 A5.66929 5.66929 -180 0 0 -53.57 16.18 L-53.57 22.5 A5.31496 5.31496 -180 0 0 -48.25 27.81
+						 L-45.7 27.81" class="st5"/>
+		</g>
+		<g id="shape117-35" v:mID="117" v:groupContext="shape" v:layerMember="0" transform="translate(204.501,-2.13018)">
+			<title>Process.117</title>
+			<desc>‘)’</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="9.49589" cy="28.2299" width="19" height="13.3396"/>
+			<rect x="0" y="21.5601" width="18.9918" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="6.39" y="30.63" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+						v:langID="2057">)</tspan>’</text>		</g>
+		<g id="shape118-39" v:mID="118" v:groupContext="shape" v:layerMember="1;0" transform="translate(248.271,-2.96391)">
+			<title>On-page reference.118</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<path d="M0 29.06 A5.83609 5.83609 0 1 1 11.67 29.06 A5.83609 5.83609 0 0 1 0 29.06 Z" class="st1"/>
+		</g>
+		<g id="shape119-41" v:mID="119" v:groupContext="shape" v:layerMember="1" transform="translate(169.486,-1.71339)">
+			<title>Dynamic connector.119</title>
+			<path d="M0 27.81 L32.25 27.81" class="st5"/>
+		</g>
+		<g id="shape120-46" v:mID="120" v:groupContext="shape" v:layerMember="1" transform="translate(223.493,-1.71339)">
+			<title>Dynamic connector.120</title>
+			<path d="M0 27.81 L22.02 27.81" class="st5"/>
+		</g>
+	</g>
+</svg>

Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/prefixOr.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/prefixOr.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/prefixOr.svg
===================================================================
--- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/prefixOr.svg	                        (rev 0)
+++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/prefixOr.svg	2007-07-22 17:59:58 UTC (rev 13709)
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 prefixOr.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="4.81213in"
+		height="0.474097in" viewBox="0 0 346.474 34.135" xml:space="preserve" color-interpolation-filters="sRGB" class="st7">
+	<v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+	<style type="text/css">
+	<![CDATA[
+		.st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+		.st2 {fill:#000000;font-family:Arial;font-size:0.666664em}
+		.st3 {font-size:1em}
+		.st4 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+		.st5 {marker-end:url(#mrkr2-19);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+		.st6 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+		.st7 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+	]]>
+	</style>
+
+	<defs id="Markers">
+		<g id="lend2">
+			<path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+		</g>
+		<marker id="mrkr2-19" class="st6" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+				markerUnits="strokeWidth">
+			<use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+		</marker>
+	</defs>
+	<g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+		<title>Page-1</title>
+		<v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+				v:shadowOffsetY="-8.50394"/>
+		<v:layer v:name="Flowchart" v:index="0"/>
+		<v:layer v:name="Connector" v:index="1"/>
+		<g id="shape121-1" v:mID="121" v:groupContext="shape" v:layerMember="0" transform="translate(120.712,-2.13018)">
+			<title>Process.121</title>
+			<desc>‘(’</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="9.49589" cy="27.4652" width="19" height="13.3396"/>
+			<rect x="0" y="20.7954" width="18.9918" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="6.39" y="29.87" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+						v:langID="2057">(</tspan>’</text>		</g>
+		<g id="shape122-5" v:mID="122" v:groupContext="shape" v:layerMember="0" transform="translate(156.146,-2.13018)">
+			<title>Process.122</title>
+			<desc>‘or’</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="11.9052" cy="27.4652" width="23.82" height="13.3396"/>
+			<rect x="0" y="20.7954" width="23.8103" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="6.57" y="29.87" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+						v:langID="2057">or</tspan>’</text>		</g>
+		<g id="shape123-9" v:mID="123" v:groupContext="shape" v:layerMember="0" transform="translate(212.838,-2.13018)">
+			<title>Process.123</title>
+			<desc>CE</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="21.4689" cy="27.4652" width="42.94" height="13.3396"/>
+			<rect x="0" y="20.7954" width="42.9378" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="15.92" y="29.87" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>CE</text>		</g>
+		<g id="shape124-12" v:mID="124" v:groupContext="shape" v:layerMember="1;0" transform="translate(0.24,-2.96391)">
+			<title>On-page reference.124</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<path d="M0 28.3 A5.83609 5.83609 0 1 1 11.67 28.3 A5.83609 5.83609 0 0 1 0 28.3 Z" class="st1"/>
+		</g>
+		<g id="shape140-14" v:mID="140" v:groupContext="shape" v:layerMember="1" transform="translate(11.9122,-1.71339)">
+			<title>Dynamic connector.140</title>
+			<path d="M0 27.05 L106.04 27.05" class="st5"/>
+		</g>
+		<g id="shape141-20" v:mID="141" v:groupContext="shape" v:layerMember="1" transform="translate(139.704,-1.71339)">
+			<title>Dynamic connector.141</title>
+			<path d="M0 27.05 L13.68 27.05" class="st5"/>
+		</g>
+		<g id="shape142-25" v:mID="142" v:groupContext="shape" v:layerMember="1" transform="translate(179.956,-1.71339)">
+			<title>Dynamic connector.142</title>
+			<path d="M0 27.05 L30.12 27.05" class="st5"/>
+		</g>
+		<g id="shape143-30" v:mID="143" v:groupContext="shape" v:layerMember="1" transform="translate(255.776,-1.71339)">
+			<title>Dynamic connector.143</title>
+			<path d="M0 27.05 L5.31 27.05 A5.31496 5.31496 -180 0 0 10.63 21.73 L10.63 16.48 A5.66929 5.66929 -180 0 0 4.96 10.81
+						 L-47.9 10.81 A5.66929 5.66929 -180 0 0 -53.57 16.48 L-53.57 21.73 A5.31496 5.31496 -180 0 0 -48.25 27.05
+						 L-45.7 27.05" class="st5"/>
+		</g>
+		<g id="shape144-35" v:mID="144" v:groupContext="shape" v:layerMember="0" transform="translate(290.791,-2.13018)">
+			<title>Process.144</title>
+			<desc>‘)’</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="9.49589" cy="27.4652" width="19" height="13.3396"/>
+			<rect x="0" y="20.7954" width="18.9918" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="6.39" y="29.87" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+						v:langID="2057">)</tspan>’</text>		</g>
+		<g id="shape145-39" v:mID="145" v:groupContext="shape" v:layerMember="1;0" transform="translate(334.561,-2.96391)">
+			<title>On-page reference.145</title>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<path d="M0 28.3 A5.83609 5.83609 0 1 1 11.67 28.3 A5.83609 5.83609 0 0 1 0 28.3 Z" class="st1"/>
+		</g>
+		<g id="shape146-41" v:mID="146" v:groupContext="shape" v:layerMember="1" transform="translate(255.776,-1.71339)">
+			<title>Dynamic connector.146</title>
+			<path d="M0 27.05 L32.25 27.05" class="st5"/>
+		</g>
+		<g id="shape147-46" v:mID="147" v:groupContext="shape" v:layerMember="1" transform="translate(309.783,-1.71339)">
+			<title>Dynamic connector.147</title>
+			<path d="M0 27.05 L22.02 27.05" class="st5"/>
+		</g>
+		<g id="shape148-51" v:mID="148" v:groupContext="shape" v:layerMember="0" transform="translate(37.7568,-20.5554)">
+			<title>Process.148</title>
+			<desc>patternBinding</desc>
+			<v:custProps>
+				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+				<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+				<v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+			</v:custProps>
+			<v:userDefs>
+				<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+			</v:userDefs>
+			<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+			<v:textRect cx="27.8469" cy="27.4652" width="55.7" height="13.3396"/>
+			<rect x="0" y="20.7954" width="55.6937" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+			<text x="2.05" y="29.87" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>patternBinding</text>		</g>
+		<g id="shape149-54" v:mID="149" v:groupContext="shape" v:layerMember="1" transform="translate(11.9122,-8.8)">
+			<title>Dynamic connector.149</title>
+			<path d="M0 34.14 L5.31 34.14 A5.31496 5.31496 -180 0 0 10.63 28.82 L10.63 21.38 A5.66929 5.66929 0 0 1 16.3 15.71 L23.08
+						 15.71" class="st5"/>
+		</g>
+		<g id="shape150-59" v:mID="150" v:groupContext="shape" v:layerMember="1" transform="translate(93.4505,-27.2252)">
+			<title>Dynamic connector.150</title>
+			<path d="M0 34.14 L6.17 34.14 A5.66929 5.66929 0 0 1 11.84 39.8 L11.84 46.89 A5.66929 5.66929 -180 0 0 17.51 52.56 L24.5
+						 52.56" class="st5"/>
+		</g>
+	</g>
+</svg>




More information about the jboss-svn-commits mailing list