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: Seven Deadly Sins

The Original Seven Deadly Sins are supposedly the transgressions that will get you into the most spiritual difficulty. Here is my list of the original Seven Deadly Sins for which you will most certainly violate the ZenOfJess.

  Greed - Not knowing enough Java

Before you use Jess, you should have a fundamental understanding of Java, since Jess is a Java API and your Jess applications will also most likely be full-blown Java applications. Much of the Jess language wraps Jess's API, and it allows you to indirectly program Java proper without the messy debug, compile, run cycle. Many times, Jess questions posted to the email list are really basic Java questions.

Don't be greedy – know Java first.

  Lust - Using the API before learning the Jess language

The reason that the Jess language exists is simply because certain operations, such as maintaining a rulebase, are better managed from light-weight script code than by editing Java code. For example, if a manager wants to change a business rule written in Jess, all she has to do is edit a CLP file. This is more likely to be feasible than having her check out a Java class from source control, make the change, and check it back in. Learning the Jess language first will teach you when it is best to use scripting or the Jess API.

Lust not for the API, it will be yours in due course.

  Sloth - Not reading the documentation

You will make many, many silly mistakes if you do not read the documentation before you start coding. It only takes a few hours to skim it all, but 2-3 times that if you really work the examples and do some experimenting. You should also skim the function lists and the reference links.

"We excuse our sloth under the pretext of difficulty." -Marcus Fabius Quintilian

  Anger - Calling functions on LHS of a rule

Anger is what Dr. Friedman-Hill will choke back when you put (> 3.1415 x) on left-hand side (LHS) of a rule and then you ask," What went wrong?" Once you start coding, understand that with very few exceptions, the LHS of a rule is reserved for patterns only. Function calls are (typically) the actions that happen when patterns are matched. They go on the right-hand side (RHS) of rules only.

If you mix the two, you will have errors – which in turn will make you angry.

  Envy - Forcing rules to fire in a special order

If you are trying to make rules fire in a particular order, then you do not understand how rule engines work. Your determination to make Jess work like a procedural program is enviable, but ask the email list for help – Dr. Friedman-Hill in particular.

  Pride - Growing emotionally attached to your code

Before spending the time coding a complex and lengthy implementation, post your idea on the email list to get some feedback. More often than not, the experienced Jess users can help you find a better way to achieve what you want in less time. Otherwise, if you invest hours in a pile of bad code, you will be less likely to abandon it and be open to new ideas. This will translate to carrying bad habits forward into your next project.

Remember, pride goeth before the fall – or code review.

  Gluttony - Not having a clear purpose for using Jess

There is a nearly thirty-five year body of literature on rule-based expert systems (also called production systems or production rule systems) that outlines how such systems are built, how knowledge is stored as rules, how data is encapsulated as facts, and how logical inferences are made with the two. I am not saying that you should do an exhaustive literature search before using Jess. However, you should thoroughly investigate how rule-based expert systems work before you try to build one – even a trivial one, and you should have a clear reason why you need one (as opposed to some simpler algorithmic solution).

Don’t be a glutton for punishment – perform your technical due diligence before selecting a tool like Jess.

CommonMistakesTemplate | CommonBeginnerMistakes

Front Page | Sandbox | Recent Changes | Powered by Friki | Last Edited: 10 November 2005