Bug 778480 (SOA-970) - Review SOA-P 4.3 ./docs/esb/JBoss_Rules_Reference_Guide.pdf
Summary: Review SOA-P 4.3 ./docs/esb/JBoss_Rules_Reference_Guide.pdf
Keywords:
Status: CLOSED NEXTRELEASE
Alias: SOA-970
Product: JBoss Enterprise SOA Platform 4
Classification: JBoss
Component: Documentation
Version: 4.3 CR1
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: 4.3 CP01
Assignee: Len DiMaggio
QA Contact:
URL: http://jira.jboss.org/jira/browse/SOA...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-10-16 20:44 UTC by Len DiMaggio
Modified: 2009-03-11 16:58 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-03-11 16:58:32 UTC
Type: Task


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker SOA-970 0 None None None Never

Description Len DiMaggio 2008-10-16 20:44:31 UTC
Date of First Response: 2008-10-26 23:22:36
project_key: SOA

Let's collect all comments for Darrin for the ./docs/esb/JBoss_Rules_Reference_Guide.pdf in this JIRA

Comment 1 Len DiMaggio 2008-10-21 15:06:06 UTC
Security: Added: Public


Comment 2 Len DiMaggio 2008-10-22 02:35:18 UTC
Hey Darrin - mostly syntax problems so far - more later


1.1. What is new in Drools 4.0
Drools 4.0 is a major update over the previous Drools 3.0.x series. A whole new set of features were
developed which special focus on language expressiveness, engine performance and tools availability.
The following is a list of the most interesting changes.

comment ------> "with special focus"

------

1.1.1. Language Expressiveness Enhancements
Fact attributes auto-vivification for return value restrictions and inline-eval constraints

comment ------> "auto-verification"

comment ------> Style difference between section 1.1.1 - and 1.1.2 - in 1.1.2, (some) feature names begin with Uppercase letters

------

1.2.1.1. Working Memory creation
Drools 3.0.x had only one working memory type that worked like a stateful working memory. Drools
4.0.x introduces separate APIs for Stateful and Stateless working memories that are called now Rule
Sessions.

comment ------> Drools 3.0.x had only one working memory type that functioned as stateful working memory. Drools
4.0.x introduces separate APIs for Stateful and Stateless working memories. In Drools 4.0.x, stateful working memories are called now Rule
Sessions.

------

1.2.1.2. Working Memory Actions
Drools 4.0.x now supports pluggable dialects and has built-in support for Java and MVEL scripting
language. In order to avoid keyword conflicts, the working memory actions were renamed as showed
bellow:

comment ------>1.2.1.2. Working Memory Actions
Drools 4.0.x now supports pluggable dialects and has built-in support for Java and the MVEL scripting
language. In order to avoid keyword conflicts, the working memory actions were renamed as shown below:

------

1.2.2. Rule Language Changes
The DRL Rule Language also has some backward incompatible changes as detailed bellow.

comment ------>The DRL Rule Language also has some backward incompatiblity changes as detailed below:

------

1.2.2.1. Working Memory Actions
The Working Memory actions in rule consequences were also changed in a similar way to the change
made in the API. The following table summarizes the change:

comment ------> The following table summarizes the changes:

------

1.2.2.2. Primitive support and unboxing
Drools 3.0.x did not had native support for primitive types and consequently, it auto-boxed all
primitives in it's respective wrapper classes. That way, any use of a boxed variable binding required a
manual unbox.
Drools 4.0.x has full support for primitive types and does not wrap values anymore. So, all previous
unwrap method calls must be removed from the DRL.

comment ------> Drools 3.0.x did not had native support for primitive types, Consequently, it auto-boxed all
primitives in their respective wrapper classes. Any use of a boxed variable binding required a
manual unbox.
Drools 4.0.x has full support for primitive types and does not wrap values. All previous
unwrap method calls must be removed from the DRL.

------

1.2.3. Drools Update Tool
The Drools Update tools is a simple program to help with the upgrade of DRL files from Drools 3.0.x to
Drools 4.0.x.
Currently its main purpose is to upgrade the memory action calls from 3.0.x to 4.0.x, but future
versions will conver additional scenarios. It is important to note that it does not perform a simple
search and replace in the rules file, but parses the rules file to ensure it is not doing anything
unexpected. For this reason t is a safe tool to use for upgrade large sets of rule files.

comment ------> Currently its main purpose is to upgrade the memory action calls from 3.0.x to 4.0.x, but future
versions will cover additional scenarios. It is important to note that it does not perform a simple
search and replace in the rules file, but parses the rules file to ensure it is not doing anything
unexpected. For this reason it is a safe tool to use for upgrade large sets of rule files.

------

1.2.3. Drools Update Tool

comment ------> Having a problem building the update tool - I'll pass this on to Mark Proctor

mvn clean install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.

GroupId: org.drools
ArtifactId: drools
Version: 4.0.0.SNAPSHOT

Reason: Unable to download the artifact from any repository

  org.drools:drools:pom:4.0.0.SNAPSHOT

from the specified remote repositories:
  central (http://repo1.maven.org/maven2)


[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.reactor.MavenExecutionException: Cannot find parent: org.drools:drools for project: null:drools-update:jar:null for project null:drools-update:jar:null
        at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:378)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:292)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.project.ProjectBuildingException: Cannot find parent: org.drools:drools for project: null:drools-update:jar:null for project null:drools-update:jar:null
        at org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage(DefaultMavenProjectBuilder.java:1370)
        at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:821)
        at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal(DefaultMavenProjectBuilder.java:506)
        at org.apache.maven.project.DefaultMavenProjectBuilder.build(DefaultMavenProjectBuilder.java:198)
        at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:583)
        at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:461)
        at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:365)
        ... 11 more
Caused by: org.apache.maven.project.ProjectBuildingException: POM 'org.drools:drools' not found in repository: Unable to download the artifact from any repository

  org.drools:drools:pom:4.0.0.SNAPSHOT

from the specified remote repositories:
  central (http://repo1.maven.org/maven2)
 for project org.drools:drools
        at org.apache.maven.project.DefaultMavenProjectBuilder.findModelFromRepository(DefaultMavenProjectBuilder.java:603)
        at org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage(DefaultMavenProjectBuilder.java:1366)
        ... 17 more
Caused by: org.apache.maven.artifact.resolver.ArtifactNotFoundException: Unable to download the artifact from any repository

  org.drools:drools:pom:4.0.0.SNAPSHOT

from the specified remote repositories:
  central (http://repo1.maven.org/maven2)

        at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:212)
        at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:74)
        at org.apache.maven.project.DefaultMavenProjectBuilder.findModelFromRepository(DefaultMavenProjectBuilder.java:556)
        ... 18 more
Caused by: org.apache.maven.wagon.ResourceDoesNotExistException: Unable to download the artifact from any repository
        at org.apache.maven.artifact.manager.DefaultWagonManager.getArtifact(DefaultWagonManager.java:331)
        at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:200)
        ... 20 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Tue Oct 21 21:27:22 EDT 2008
[INFO] Final Memory: 1M/2M
[INFO] ------------------------------------------------------------------------

------

2.1.1. Introduction and Background
Drools is a Rule Engine that uses the Rule Based approached to implement an Expert System and is more
correctly classified as a Production Rule System.

comment ------> Drools is a Rule Engine that uses the Rule Based approach to implement an Expert System and is more
correctly classified as a Production Rule System.

Business Rule Management Systems build additional value on top of a general purpose Rule
Engines by providing, business user focused, systems for rule creation, management, deployment,
collaboration, analysis and end user tools.

comment ------> Business Rule Management Systems build additional value on top of a general purpose Rule
Engines by providing business user focused systems for rule creation, management, deployment,
collaboration, analysis and end user tools.

While a Production Rule System is a kind of Rule Engine and also an Expert System, the validation and expression evaluation
Rule Engines mention previously are not Expert Systems.

comment ------> While a Production Rule System is a kind of Rule Engine and also an Expert System, the validation and expression evaluation
Rule Engines mentioned previously are not Expert Systems.

A Production Rule System is turing complete with a focus on knowledge representation to express
propositional and first order logic in a concise, non ambiguous and declarative manner.

comment ------> "a turing machine?"

The Agenda manages the execution order of these conflicuting rules using a Conflict Resolution strategy.

comment ------> The Agenda manages the execution order of these conflicting rules using a Conflict Resolution strategy.

The next major release of Drools will add support for Backward Chaining.

comment ------> Drools 5.0?

------








Comment 3 Len DiMaggio 2008-10-23 20:18:08 UTC
Darrin - Did ever seen Jarek's comments on the 4.2 version of the book?

https://jira.jboss.org/jira/browse/JBQA-1191

Comment 4 Len DiMaggio 2008-10-26 02:29:41 UTC
2.3.1 First Order Logic

On Page 16

In Java we can say that a simple proposition is of the form "variable operator value", where we often
refer to 'value' as being a literal value, a proposition can be thought as a field constraint. Further to this
propositions can be combined with conjunctive and disjunctive connectives, which is the logic theorists
way of saying 'AND' and 'OR' (&& and ||).

Suggested rewording:  ------>

In Java we can say that a simple proposition is of the form "variable operator value, " where we often
refer to 'value' as being a literal value, and a proposition can be thought as a field constraint. These 
propositions can be combined with conjunctive and disjunctive connectives, which is the logic theorists'
way of saying 'AND' and 'OR' (&& and ||).

Comment 6 Dana Mison 2008-10-27 03:22:36 UTC
Suggested changes have been incorporated.

comments about changes to book structure need to be passed onto the Drools team.

Comment 7 Dana Mison 2009-01-29 02:43:34 UTC
All of these issues were resolved in the 4.3 GA Guide

I created to address content issues in Chapter 2: https://jira.jboss.org/jira/browse/SOA-970

Comment 8 Dana Mison 2009-02-02 09:40:40 UTC
That should have been SOA-1152

Comment 9 Len DiMaggio 2009-02-26 01:22:11 UTC
Assigning to QE to verify that the change is (also) in the 4.3 CP01 docs.

Comment 10 Len DiMaggio 2009-03-11 16:58:32 UTC
Closing this one - the doc review comments for 4.3 CP01 are in:  SOA-1171


Note You need to log in before you can comment on or make changes to this bug.