JBoss.orgCommunity Documentation

Drools Expert User Guide

Version 5.3.0.CR1


1. The Rule Engine
1.1. What is a Rule Engine?
1.1.1. Introduction and Background
1.2. Why use a Rule Engine?
1.2.1. Advantages of a Rule Engine
1.2.2. When should you use a Rule Engine?
1.2.3. When not to use a Rule Engine
1.2.4. Scripting or Process Engines
1.2.5. Strong and Loose Coupling
2. Quick Start
2.1. The Basics
2.1.1. Stateless Knowledge Session
2.1.2. Stateful Knowledge Session
2.2. A Little Theory
2.2.1. Methods versus Rules
2.2.2. Cross Products
2.2.3. Activations, Agenda and Conflict Sets.
2.2.4. Inference
2.2.5. Inference and TruthMaintenance
2.3. More on building and deploying
2.3.1. Knowledge Base by Configuration Using Changesets
2.3.2. Knowledge Agent
3. Advanced Concepts and Theory
3.1. Truth Maintenance with Logical Objects
3.1.1. Example Scenario
3.1.2. Lazy Truth Maintenance
3.1.3. Important note: Equality for Java objects
3.2. Rete Algorithm
4. User Guide
4.1. Building
4.1.1. Building using Code
4.1.2. Building using Configuration and the ChangeSet XML
4.2. Deploying
4.2.1. KnowledgePackage and Knowledge Definitions
4.2.2. KnowledgeBase
4.2.3. In-Process Building and Deployment
4.2.4. Building and Deployment in Separate Processes
4.2.5. StatefulknowledgeSessions and KnowledgeBase Modifications
4.2.6. KnowledgeAgent
4.3. Running
4.3.1. KnowledgeBase
4.3.2. StatefulKnowledgeSession
4.3.3. KnowledgeRuntime
4.3.4. Agenda
4.3.5. Event Model
4.3.6. KnowledgeRuntimeLogger
4.3.7. StatelessKnowledgeSession
4.3.8. Commands and the CommandExecutor
4.3.9. Marshalling
4.3.10. Persistence and Transactions
4.3.11. Drools Clips
5. The Rule Language
5.1. Overview
5.1.1. A rule file
5.1.2. What makes a rule
5.2. Keywords
5.3. Comments
5.3.1. Single line comment
5.3.2. Multi-line comment
5.4. Error Messages
5.4.1. Message format
5.4.2. Error Messages Description
5.4.3. Other Messages
5.5. Package
5.5.1. import
5.5.2. global
5.6. Function
5.7. Type Declaration
5.7.1. Declaring New Types
5.7.2. Declaring Metadata
5.7.3. Declaring Metadata for Existing Types
5.7.4. Parameterized constructors for declared types
5.7.5. Non Typesafe Classes
5.7.6. Accessing Declared Types from the Application Code
5.7.7. Type Declaration 'extends'
5.8. Rule
5.8.1. Rule Attributes
5.8.2. Timers and Calendars
5.8.3. Left Hand Side (when) syntax
5.8.4. The Right Hand Side (then)
5.8.5. A Note on Auto-boxing and Primitive Types
5.9. Query
5.10. Domain Specific Languages
5.10.1. When to Use a DSL
5.10.2. DSL Basics
5.10.3. Adding Constraints to Facts
5.10.4. Developing a DSL
5.10.5. DSL and DSLR Reference
5.11. XML Rule Language
5.11.1. When to use XML
5.11.2. The XML format
5.11.3. Legacy Drools 2.x XML rule format
5.11.4. Automatic transforming between formats (XML and DRL)
6. Authoring
6.1. Decision Tables in Spreadsheets
6.1.1. When to Use Decision Tables
6.1.2. Overview
6.1.3. How Decision Tables Work
6.1.4. Spreadsheet Syntax
6.1.5. Creating and integrating Spreadsheet based Decision Tables
6.1.6. Managing Business Rules in Decision Tables
6.1.7. Rule Templates
6.2. Templates
6.2.1. The Rule Template File
6.2.2. Expanding a Template
6.2.3. Example
7. The Java Rule Engine API
7.1. Introduction
7.2. How To Use
7.2.1. Building and Registering RuleExecutionSets
7.2.2. Using Stateful and Stateless RuleSessions
7.3. References
8. The Rule IDE (Eclipse)
8.1. Features Outline
8.2. Drools Runtimes
8.2.1. Defining a Drools Runtime
8.2.2. Selecting a runtime for your Drools project
8.3. Creating a Rule Project
8.4. Creating a New Rule and Wizards
8.5. Textual Rule Editor
8.6. Drools Views
8.6.1. The Working Memory View
8.6.2. The Agenda View
8.6.3. The Global Data View
8.6.4. The Audit View
8.7. Domain Specific Languages
8.7.1. Editing languages
8.8. The Rete View
8.9. Large DRL Files
8.10. Debugging Rules
8.10.1. Creating Breakpoints
8.10.2. Debugging Rules
9. Examples
9.1. Getting the Examples
9.2. Hello World
9.3. State Example
9.3.1. Understanding the State Example
9.4. Fibonacci Example
9.5. Banking Tutorial
9.6. Pricing Rule Decision Table Example
9.6.1. Executing the example
9.6.2. The decision table
9.7. Pet Store Example
9.8. Honest Politician Example
9.9. Sudoku Example
9.9.1. Sudoku Overview
9.9.2. Running the Example
9.9.3. Java Source and Rules Overview
9.9.4. Sudoku Validator Rules (validate.drl)
9.9.5. Sudoku Solving Rules (sudoku.drl)
9.10. Number Guess
9.11. Miss Manners and Benchmarking
9.11.1. Introduction
9.11.2. Indepth Discussion
9.11.3. Output Summary
9.12. Conway's Game Of Life
Index