Jess Information

Jess Home
Jess 7 Features
Download Now!
Online Demo

Mailing List
Jess Wiki

More information Related Web Sites
User Contributions
JSR94 Info
Developer's Log
About This Site

JESS ®, the Rule Engine for the JavaTM Platform

Jess Wiki: Debugging Tips

If youíre unfamiliar with the "watch" function, read about it now!

Watch allows you to see when various things happen in the Jess system, such as:

  • Rule activations
  • Rule firings
  • Construct compilations
  • Fact assertions and retractions
  • Module focus changes
You can customize where the watch output is written using the "set-watch-router" function.

Watch is good in that it will show you everything thatís happening in the system, but sometimes itís just too much data to shift through. This is especially true when you're trying to determine what facts in working memory are causing a rule to fire.

The most powerful utility Iíve found for debugging my Jess programs is the simple jess.Main console application. From this command-line application, you can examine what facts are in working memory: "(facts)", see what rule activations are on the agenda: "(agenda)", and step through the rule firings one at a time: "(run 1)".

Unfortunately, Jess expert systems in real applications are usually embedded into larger Java programs, which makes accessing the command loop more difficult. This CommandLoop function may allow you to explicitly start the console from an otherwise back-end process.

StepFunction Fire one single rule and output the agenda for all modules in the focus stack.
AllAgenda Output the agendas for each module in the focus stack.
NextAgenda Output the agenda for the next module in the focus stack.
ListAllFacts List all the facts accross all the different modules in the system.
CommandLoop Explicitly start a command-loop from within your expert system.
WatchRouter Direct watch information to different routers.
LoggerUserFunction Logging can be more informative than watching.

Submitted by:
Union Pacific Railroad

Thanks, George! - JM

Front Page | Sandbox | Recent Changes | Powered by Friki | Last Edited: 18 January 2007