Table of Contents

1. Introduction
1.1. Abstract
1.2. Compatibility
1.3. Mailing List
1.4. Bugs
1.5. Assumptions
1.6. Getting ready
1.6.1. Unpacking the Distribution
1.6.2. Compiling Jess
1.6.3. Jess Example Programs
1.6.4. Command-line Interface
1.6.5. Jess as an Applet
1.7. What makes a good Jess application?
1.7.1. Jess vs. Prolog
1.8. About Jess and performance
1.8.1. Sun's HotSpot Virtual Machine
1.9. Command-line, GUI, or embedded?
2. The Jess Language
2.1. Basics
2.1.1. Atoms
2.1.2. Numbers
2.1.3. Strings
2.1.4. Lists
2.1.5. Comments
2.2. Functions
2.3. Variables
2.3.1. Global variables (or defglobals)
2.4. Deffunctions
2.5. Defadvice
2.6. Java reflection
2.7. The knowledge base
2.7.1. Ordered facts
2.7.2. Unordered facts
2.7.3. The deffacts construct
2.7.4. Definstance facts
2.8. Defrules
2.8.1. Basic Patterns
2.8.2. Pattern bindings
2.8.3. Salience and conflict resolution
2.8.4. The 'and' conditional element.
2.8.5. The 'or' conditional element.
2.8.5.1. Subrule generation and the 'or' conditional element.
2.8.6. The 'not' conditional element.
2.8.6.1. Rearrangements and the 'not' conditional element.
2.8.7. The 'test' conditional element.
2.8.8. The 'logical' conditional element.
2.8.9. The 'unique' conditional element.
2.8.10. The 'exists' conditional element.
2.8.11. Node index hash value.
2.8.12. Forward and backward chaining
2.9. Defqueries
2.9.1. The variable declaration
2.9.2. The run-query command
2.9.3. The count-query-results command
2.9.4. The future of queries
2.10. Defmodules
2.10.1. Defining constructs in modules
2.10.2. Modules, scope, and name resolution
2.10.3. Module focus and execution control
2.10.3.1. The auto-focus declaration
2.10.3.2. Returning from a rule RHS
3. Programming in the Jess Language
3.1. Using an External Editor
3.2. Efficiency of rule-based systems
3.3. Error Reporting and Debugging
3.4. Putting Java Objects into Fact Slots
4. Introduction to Programming with Jess in Java
4.1. The jess.JessException class
4.2. The jess.Value class
4.2.1. The subclasses of jess.Value
4.2.1.1. The class jess.Variable
4.2.1.2. The class jess.FuncallValue
4.2.1.3. The class jess.LongValue
4.2.1.4. The class jess.FactIDValue
4.2.2. Value resolution
4.3. The jess.Context class
4.4. The jess.Rete class
4.4.1. Equivalents for common Jess functions
4.4.2. Executing other Jess commands
4.4.2.1. Optional commands
4.4.3. The script library
4.4.4. Transferring values between Jess and Java code
4.4.5. Methods for adding, finding and listing constructs
4.4.6. I/O Routers
4.4.7. jess.awt.TextAreaWriter and jess.awt.TextReader
4.5. The jess.ValueVector class
4.6. The jess.Funcall class
4.7. The jess.Fact class
4.7.1. Constructing an Unordered Fact from Java
4.7.2. Constructing a Multislot from Java
4.7.3. Constructing an Ordered Fact from Java
4.8. The jess.Deftemplate class
4.9. The jess.Token class
4.10. The jess.JessEvent and jess.JessListener classes
4.10.1. Working with events from the Jess language
4.11. Setting and Reading Java Bean Properties
4.12. Formatting Jess Constructs
5. Adding Commands to Jess
5.1. Writing Extensions
5.1.1. Implementing your Userfunction
5.1.1.1. Legal return values
5.1.2. Loading your Userfunction
5.1.3. Calling assert from a Userfunction
5.2. Writing Extension Packages
5.3. Obtaining References to Userfunction Objects
6. Embedding Jess in a Java Application
6.1. Using the class jess.Main
6.2. Manipulating Jess in other ways
7. Creating Graphical User Interfaces in the Jess Language
7.1. Handling Java AWT events
7.2. Screen Painting and Graphics
8. The Jess Function List
9. Jess's Java APIs
10. The Rete Algorithm
11. Change History
12. References
12.1. Java and Java Programming
12.2. Expert Systems
13. Release Notes
13.1. Porting from Jess 5 to Jess 6
13.2. Limitations of Jess 6.0

Back to index