JBoss.orgCommunity Documentation

Drools Expert User Guide

Version 5.4.0.Final


1. Introduction
1.1. Artificial Intelligence
1.1.1. A Little History
1.1.2. Knowledge Representation and Reasoning
1.1.3. Rule Engines and Production Rule Systems (PRS)
1.1.4. Hybrid Reasoning Systems (HRS)
1.1.5. Expert Systems
1.1.6. Recommended Reading
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
1.3. Rete Algorithm
2. User Guide
2.1. The Basics
2.1.1. Stateless Knowledge Session
2.1.2. Stateful Knowledge Session
2.1.3. Methods versus Rules
2.1.4. Cross Products
2.2. Inference
2.2.1. Buss Pass Example
2.3. Truth Maintenance with Logical Objects
2.3.1. Overview
2.4. Decision Tables in Spreadsheets
2.4.1. When to Use Decision Tables
2.4.2. Overview
2.4.3. How Decision Tables Work
2.4.4. Spreadsheet Syntax
2.4.5. Creating and integrating Spreadsheet based Decision Tables
2.4.6. Managing Business Rules in Decision Tables
2.4.7. Rule Templates
2.5. Templates
2.5.1. The Rule Template File
2.5.2. Expanding a Template
2.5.3. Example
2.6. More on building and deploying
2.6.1. Knowledge Base by Configuration Using Changesets
2.6.2. Knowledge Agent
3. Api Reference
3.1. Building
3.1.1. Building using Code
3.1.2. Building using Configuration and the ChangeSet XML
3.1.3. Changing default building result severity
3.2. Deploying
3.2.1. KnowledgePackage and Knowledge Definitions
3.2.2. KnowledgeBase
3.2.3. In-Process Building and Deployment
3.2.4. Building and Deployment in Separate Processes
3.2.5. StatefulknowledgeSessions and KnowledgeBase Modifications
3.2.6. KnowledgeAgent
3.3. Running
3.3.1. KnowledgeBase
3.3.2. StatefulKnowledgeSession
3.3.3. KnowledgeRuntime
3.3.4. Agenda
3.3.5. Event Model
3.3.6. KnowledgeRuntimeLogger
3.3.7. StatelessKnowledgeSession
3.3.8. Commands and the CommandExecutor
3.3.9. Marshalling
3.3.10. Persistence and Transactions
3.3.11. Drools Clips
4. Rule Language Reference
4.1. Overview
4.1.1. A rule file
4.1.2. What makes a rule
4.2. Keywords
4.3. Comments
4.3.1. Single line comment
4.3.2. Multi-line comment
4.4. Error Messages
4.4.1. Message format
4.4.2. Error Messages Description
4.4.3. Other Messages
4.5. Package
4.5.1. import
4.5.2. global
4.6. Function
4.7. Type Declaration
4.7.1. Declaring New Types
4.7.2. Declaring Metadata
4.7.3. Declaring Metadata for Existing Types
4.7.4. Parametrized constructors for declared types
4.7.5. Non Typesafe Classes
4.7.6. Accessing Declared Types from the Application Code
4.7.7. Type Declaration 'extends'
4.7.8. Traits
4.8. Rule
4.8.1. Rule Attributes
4.8.2. Timers and Calendars
4.8.3. Left Hand Side (when) syntax
4.8.4. The Right Hand Side (then)
4.8.5. A Note on Auto-boxing and Primitive Types
4.9. Query
4.10. Domain Specific Languages
4.10.1. When to Use a DSL
4.10.2. DSL Basics
4.10.3. Adding Constraints to Facts
4.10.4. Developing a DSL
4.10.5. DSL and DSLR Reference
4.11. XML Rule Language
4.11.1. Legacy Drools 2.x XML rule format
4.11.2. When to use XML
4.11.3. The XML format
4.11.4. Legacy Drools 2.x XML rule format
4.11.5. Automatic transforming between formats (XML and DRL)
5. The Java Rule Engine API (JSR94)
5.1. Introduction
5.2. How To Use
5.2.1. Building and Registering RuleExecutionSets
5.2.2. Using Stateful and Stateless RuleSessions
5.3. References
6. The Rule IDE (Eclipse)
6.1. Features Outline
6.2. Drools Runtimes
6.2.1. Defining a Drools Runtime
6.2.2. Selecting a runtime for your Drools project
6.3. Creating a Rule Project
6.4. Creating a New Rule and Wizards
6.5. Textual Rule Editor
6.6. Drools Views
6.6.1. The Working Memory View
6.6.2. The Agenda View
6.6.3. The Global Data View
6.6.4. The Audit View
6.7. Domain Specific Languages
6.7.1. Editing languages
6.8. The Rete View
6.9. Large DRL Files
6.10. Debugging Rules
6.10.1. Creating Breakpoints
6.10.2. Debugging Rules
6.11. Preferences
7. Examples
7.1. Getting the Examples
7.2. Hello World
7.3. State Example
7.3.1. Understanding the State Example
7.4. Fibonacci Example
7.5. Banking Tutorial
7.6. Pricing Rule Decision Table Example
7.6.1. Executing the example
7.6.2. The decision table
7.7. Pet Store Example
7.8. Honest Politician Example
7.9. Sudoku Example
7.9.1. Sudoku Overview
7.9.2. Running the Example
7.9.3. Java Source and Rules Overview
7.9.4. Sudoku Validator Rules (validate.drl)
7.9.5. Sudoku Solving Rules (sudoku.drl)
7.10. Number Guess
7.11. Conway's Game Of Life
7.12. Pong
7.13. Adventures with Drools
7.14. Wumpus World
7.15. Miss Manners and Benchmarking
7.15.1. Introduction
7.15.2. In depth Discussion
7.15.3. Output Summary