| Summary: | Review SOA-P 4.3 ./docs/esb/JBoss_Rules_Reference_Guide.pdf | ||
|---|---|---|---|
| Product: | [JBoss] JBoss Enterprise SOA Platform 4 | Reporter: | Len DiMaggio <ldimaggi> |
| Component: | Documentation | Assignee: | Len DiMaggio <ldimaggi> |
| Status: | CLOSED NEXTRELEASE | QA Contact: | |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 4.3 CR1 | ||
| Target Milestone: | --- | ||
| Target Release: | 4.3 CP01 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| URL: | http://jira.jboss.org/jira/browse/SOA-970 | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2009-03-11 16:58:32 UTC | Type: | Task |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
|
Description
Len DiMaggio
2008-10-16 20:44:31 UTC
Security: Added: Public 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? ------ Darrin - Did ever seen Jarek's comments on the 4.2 version of the book? https://jira.jboss.org/jira/browse/JBQA-1191 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 ||). Suggested changes have been incorporated. comments about changes to book structure need to be passed onto the Drools team. 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 That should have been SOA-1152 Assigning to QE to verify that the change is (also) in the 4.3 CP01 docs. Closing this one - the doc review comments for 4.3 CP01 are in: SOA-1171 |