JBoss.org
Community Documentation
Next
Drools Expert User Guide
Mark
Proctor
Michael
Neale
Edson
Tirelli
5.0.0.CR1
1. Acknowledgements
1.1. Documentation
2. The Rule Engine
2.1. What is a Rule Engine?
2.1.1. Introduction and Background
2.2. Why use a Rule Engine?
2.2.1. Advantages of a Rule Engine
2.2.2. When should you use a Rule Engine?
2.2.3. When not to use a Rule Engine
2.2.4. Scripting or Process Engines
2.2.5. Strong and Loose Coupling
2.3. Knowledge Representation
2.3.1. First Order Logic
2.4. Rete Algorithm
2.5. The Drools Rule Engine
2.5.1. Overview
2.5.2. Authoring
2.5.3. RuleBase
2.5.4. WorkingMemory and Stateful/Stateless Sessions
2.5.5. StatefulSession
2.5.6. Stateless Session
2.5.7. Agenda
2.5.8. Truth Maintenance with Logical Objects
2.5.9. Event Model
2.5.10. ???
3. Decision tables in spreadsheets
3.1. When to use Decision tables
3.2. Overview
3.3. How decision tables work
3.4. Keywords and syntax
3.4.1. Syntax of templates
3.4.2. Keywords
3.5. Creating and integrating Spreadsheet based Decision Tables
3.6. Managing business rules in decision tables.
3.6.1. Workflow and collaboration.
3.6.2. Using spreadsheet features
3.7. Rule Templates
3.7.1. A decision table-like example
4. The (Eclipse based) Rule IDE
4.1. Features outline
4.2. Creating a Rule project
4.3. Creating a new rule and wizards
4.4. Textual rule editor
4.5. Guided editor (rule GUI)
4.6. Views
4.6.1. The Working Memory View
4.6.2. The Agenda View
4.6.3. The Global Data View
4.6.4. The Audit View
4.7. Domain Specific Languages
4.7.1. Editing languages
4.8. The Rete View
4.9. Large drl files
4.10. Debugging rules
4.10.1. Creating breakpoints
4.10.2. Debugging rules
5. Deployment and Testing
5.1. Deployment options
5.1.1. Deployment using the RuleAgent
5.1.2. Deployment using drl source
5.1.3. Deploying rules in your classpath
5.1.4. Deployable objects, RuleBase, Package etc.
5.1.5. Deployment patterns
5.1.6. Web Services
5.1.7. Future considerations
5.2. Testing
5.2.1. Testing frameworks
5.2.2. FIT for Rules - a rule testing framework
6. The Java Rule Engine API
6.1. Introduction
6.2. How To Use
6.2.1. Building and Registering RuleExecutionSets
6.2.2. Using Stateful and Stateless RuleSessions
6.3. References
7. The Rule Language
7.1. Overview
7.1.1. A rule file
7.1.2. What makes a rule
7.2. Keywords
7.3. Comments
7.3.1. Single line comment
7.3.2. Multi line comment
7.4. Error Messages
7.4.1. Message format
7.4.2. Error Messages Description
7.4.3. Other Messages
7.5. Package
7.5.1. import
7.5.2. expander
7.5.3. global
7.6. Function
7.7. Type Declaration
7.7.1. Declaring New Types
7.7.2. Declaring Metadata
7.7.3. Declaring Metadata for Existing Types
7.7.4. Accessing Declared Types from the Application Code
7.8. Rule
7.8.1. Rule Attributes
7.8.2. Left Hand Side (when) Conditional Elements
7.8.3. The Right Hand Side (then)
7.8.4. A note on auto boxing/unboxing and primitive types
7.9. Query
7.10. Domain Specific Languages
7.10.1. When to use a DSL
7.10.2. Editing and managing a DSL
7.10.3. Using a DSL in your rules
7.10.4. Adding constraints to facts
7.10.5. How it works
7.10.6. Creating a DSL from scratch
7.10.7. Scope and keywords
7.10.8. DSLs in the BRMS and IDE
7.11. XML Rule Language
7.11.1. When to use XML
7.11.2. The XML format
7.11.3. Legacy Drools 2.x XML rule format
7.11.4. Automatic transforming between formats (XML and DRL)
8. Examples
8.1. Getting the examples
8.2. Hello World
8.3. State Example
8.3.1. Understanding the State Example
8.4. Fibonacci Example
8.5. Banking Tutorial
8.6. Pricing Rule Decision Table Example
8.6.1. Executing the example
8.6.2. The decision table
8.7. Pet Store Example
8.8. Honest Politician Example
8.9. Sudoku Example
8.9.1. Sudoku Overview
8.9.2. Running the Example
8.9.3. Java Source and Rules Overview
8.9.4. Sudoku Validator Rules (validatorSudoku.drl)
8.9.5. Sudoku Solving Rules (solverSudoku.drl)
8.9.6. Suggestions for Future Developments
8.10. Number Guess
8.11. Miss Manners and Benchmarking
8.11.1. Introduction
8.11.2. Indepth look
8.11.3. Output Summary
8.12. Conways Game Of Life Example
Index
Next
Chapter 1. Acknowledgements