| |
1. Understanding Rule Engines and Overview
Examine the background and history of rule engines, what a rule and rule engine actually are, and what they are typically used for. Learn the importance of declarative programming and how it fits in (and conflicts) with object-oriented programming, and explore the concept of an inferencing rule engine vs. a script/imperative rule engine. Examine scenarios of when to use or not use a rule engine.
- Course Overview and Introduction
- A Background on Expert Systems (differences between business rule engine,
expert systems, and rule engines) - Making applications reason, think
- An Introduction to Rules and Validation Engines
- Explanation of What a Rule Is
- LHS for conditions (querying working memory)
- RHS for actions (modifying working memory, external code executing)
- Procedural vs. Declarative Programming
- JSR-94 (what it is, what it's good for, when to use)
- Basic Concept of an Engine: Externalize business logic, assert facts into
engine from the application, loosely coupled logic (logic and data separation) - Discussion on non-technical users managing or reviewing rules and what
the real-world issues are (use Or/XOR human misunderstanding as an example problem)
2. Introduction to JBoss Rules
Discover the features of JBoss Rules, get a view of the scope of the tool (some advanced concepts that will be covered later will be mentioned), and examine the history of the tool, including the api and tools (e.g., how it operates on POJOs). A short lab provides experience in executing and modifying a rule, which will also show off the Rule workbench for the first time. Get a brief introduction to the underlying rule language (not too much detail) with a focus on conditional elements, semantic actions, and semantic predicates. Learn which parts of a rule are Java (semantic) code and which are rule code. Future (in progress) features will also be discussed.
3. Rule Engine Concepts
Learn core concepts of a forward-chaining engine and get an explanation of a basic non-scalable inferencing algorithm (linear) and an idea of how it works. Get an explanation of the benefits of RETE as a way to address the limitations of the "basicalgorithm. Examine LEAPS as an alternative algorithm when large volumes and combinations of data are involved.
- Two Phase Execution
- Working Memory Actions (assert, retract, modify)
- Agenda Evaluation
- Rules Engine Agendas
- What is an Agenda?
- Conflict Resolution
4. Applying JBoss Rules
Go into detail about the authoring modes and language of JBoss Rules and get a brief recap of the previous material. Gain confidence in the core "drlrule language, and become familiar with the other rule-capturing tools (XML, decision tables, and domain-specific languages) that allow rules to be managed in a user-friendly way. The rule language AST classes will also briefly be covered (for cases where custom languages may be appropriate).
- The JBoss Rules Languages (DRL)
- Why Not XML?
- XML abuse
- Lack of XML editors
- Constraint Language (rule assembly) vs. Semantics in Eval, Predicates, and
RHS - XML Alternative (when to use)
- Functions
- The Engines "nativeapi (part of lab)
- How to Integrate API with your Applications, JSE, JEE, etc.
- Dynamic Rules
- Rule Addition
- Rule Retraction
- Testing
5. Rule Formats: Decision Tables
Discover decision tables, which are ways of capturing and managing rules. A lab builds on the features previously explored (an insurance application example).
6. Rule Formats: Domain-Specific Languages
Examine decision tables and domain-specific languages, which are alternative ways of capturing and managing rules with their own advantages. Explore the subtle API differences used with these tools. A lab builds on the features previously explored (an insurance application example).
- DSLs
- Other Options
- Groovy and other Semantic Language Support
- Visual Rule Formats (decision trees)
7. The RETE Algorithm
Explore the RETE algorithm, including how and when a RETE network is built and how facts propagate through the network resulting in rules being activated. The included lab helps reinforce the concepts.
- RETE Algorithm
- How a RETE Network is Created
- How Facts Propagate (diagrammatic)
- What is an Activation?
- The Stateful Nature of RETE
|
|