Introduction
Home
Table of Contents
Getting Started
The JessDE Developer's Environment
The Jess Language
Jess Application Programming
Reference
Table of Contents
0.
Home
1.
Getting Started
1.1.
Requirements
1.2.
Getting ready
1.2.1.
Unpacking the Distribution
1.2.2.
Command-line Interface
1.2.3.
Java Programming with Jess
1.2.4.
Jess Example Programs
2.
The JessDE Developer's Environment
2.1.
Installing the JessDE
2.1.1.
Verifying your installation
2.1.2.
A few more details
2.2.
Using the JessDE
2.2.1.
The Jess language editor
2.2.2.
Dependencies among files
2.2.3.
The Rete Network view
2.2.4.
The Jess debugger
3.
Jess Language Basics
3.1.
Symbols
3.2.
Numbers
3.3.
Strings
3.4.
Lists
3.5.
Comments
3.6.
Calling functions
3.7.
Variables
3.7.1.
Global variables (or defglobals)
3.8.
Control flow
3.8.1.
A simple loop
3.8.2.
Decisions and branching
4.
Defining Functions in Jess
4.1.
Deffunctions
4.2.
Defadvice
5.
Working Memory
5.1.
Templates
5.2.
Unordered facts
5.3.
Shadow facts: reasoning about Java objects
5.3.1.
Templates for shadow facts
5.3.2.
Adding Java objects to working memory
5.3.3.
Responding to changes
5.3.4.
More about PropertyChangeEvents
5.3.5.
Shadow fact miscellany
5.4.
Ordered facts
5.5.
The deffacts construct
5.6.
How Facts are Implemented
6.
Making Your Own Rules
6.1.
Introducing defrules
6.2.
Simple patterns
6.3.
Patterns in Depth
6.4.
Matching in Multislots
6.5.
Pattern bindings
6.6.
More about regular expressions
6.7.
Salience and conflict resolution
6.8.
The 'and' conditional element.
6.9.
The 'or' conditional element.
6.10.
The 'not' conditional element.
6.11.
The 'exists' conditional element.
6.12.
The 'test' conditional element.
6.12.1.
Time-varying method returns
6.12.2.
When should I use test?
6.13.
The 'logical' conditional element.
6.14.
The 'forall' conditional element.
6.15.
The 'accumulate' conditional element.
6.16.
The 'unique' conditional element.
6.17.
Node index hash value.
6.18.
The 'slot-specific' declaration for deftemplates
6.19.
The 'no-loop' declaration for rules
6.20.
Forward and backward chaining
6.21.
Defmodules
6.21.1.
Defining constructs in modules
6.21.2.
Modules, scope, and name resolution
6.21.3.
Module focus and execution control
6.21.3.1.
The auto-focus declaration
6.21.3.2.
Returning from a rule RHS
7.
Querying Working Memory
7.1.
Linear search
7.2.
The defquery construct
7.3.
A simple example
7.3.1.
Writing the query
7.3.2.
Invoking the query
7.3.3.
Using the Results
7.3.4.
One more time, in Java
7.4.
The variable declaration
7.5.
The max-background-rules declaration
7.6.
The count-query-results command
8.
Using Java from Jess
8.1.
Java reflection
8.2.
Transferring values between Jess and Java code
8.3.
Implementing Java interfaces with Jess
8.3.1.
Lambda expressions
8.4.
Java Objects in working memory
8.5.
Setting and Reading Java Bean Properties
9.
Jess Application Design
9.1.
What makes a good Jess application?
9.2.
Command-line, GUI, or embedded?
10.
Introduction to Programming with Jess in Java
10.1.
The jess.Rete class
10.1.1.
Equivalents for common Jess functions
10.1.2.
Executing other Jess commands
10.1.2.1.
Optional commands
10.1.3.
The script library
10.1.4.
Methods for adding, finding and listing constructs
10.1.5.
I/O Routers
10.1.6.
TextAreaWriter, JTextAreaWriter and TextReader
10.2.
The jess.JessException class
10.3.
The jess.Value class
10.3.1.
The subclasses of jess.Value
10.3.1.1.
The class jess.Variable
10.3.1.2.
The class jess.FuncallValue
10.3.1.3.
The class jess.LongValue
10.3.1.4.
The class jess.FactIDValue
10.3.2.
Value resolution
10.4.
The jess.Context class
10.5.
The jess.ValueVector class
10.6.
The jess.Funcall class
10.7.
The jess.Fact class
10.7.1.
Constructing an Unordered Fact from Java
10.7.2.
Constructing a Multislot from Java
10.7.3.
Constructing an Ordered Fact from Java
10.8.
The jess.Deftemplate class
10.9.
Parsing Jess code with jess.Jesp
10.10.
The jess.Token class
10.11.
The jess.JessEvent and jess.JessListener classes
10.11.1.
Working with events from the Jess language
10.12.
Setting and Reading Java Bean Properties
10.13.
Formatting Jess Constructs
11.
Embedding Jess in a Java Application
11.1.
Introduction
11.2.
Motivation
11.3.
Doing it with Jess
11.4.
Making your own rules
11.5.
Multiple Rule Engines
11.5.1.
Peering: Sharing Rules Among Multiple Engines
11.6.
Jess in a Multithreaded Environment
11.7.
Error Reporting and Debugging
11.8.
Creating Rules from Java
12.
Adding Commands to Jess
12.1.
Writing Extensions
12.1.1.
Implementing your Userfunction
12.1.1.1.
Legal return values
12.1.2.
Loading your Userfunction
12.1.3.
Calling assert from a Userfunction
12.2.
Writing Extension Packages
12.3.
Obtaining References to Userfunction Objects
13.
Creating Graphical User Interfaces in the Jess Language
13.1.
Handling Java AWT events
13.2.
Screen Painting and Graphics
14.
Jess and XML
14.1.
Introduction
14.2.
The JessML Language
14.2.1.
The rulebase Element
14.2.2.
Names
14.2.3.
Values
14.2.4.
Function calls
14.2.4.1.
Special functions
14.2.5.
Slots
14.2.6.
Templates
14.2.7.
Rules
14.2.7.1.
Groups
14.2.7.2.
Patterns
14.2.7.3.
Pattern bindings
14.2.7.4.
Tests
14.2.8.
Fact files
14.3.
Writing Constructs in JessML
14.4.
Parsing JessML
15.
The javax.rules API
15.1.
Introduction
15.2.
Using javax.rules
15.2.1.
Registering a RuleExecutionSet
15.2.2.
Using a RuleExecutionSet
15.2.3.
Working with Java Objects
15.2.4.
Going Further
16.
The Jess Function List
17.
Jess Constructs
18.
Jess's Java APIs
19.
The Rete Algorithm
19.1.
Disclaimer
19.2.
The Problem
19.3.
The Solution
19.4.
Optimizations
19.5.
Implementation
19.6.
Efficiency of rule-based systems
19.6.1.
Sun's HotSpot Virtual Machine
20.
For More Information...
20.1.
... about Jess
20.2.
... about Java and Java Programming
20.3.
... about Rule Engines and Expert Systems
21.
Release Notes
21.1.
New features in Jess 7.1
21.2.
New features in Jess 7.0
21.3.
Porting from Jess 6
22.
Change History
Back to index