Jess 7 Features
Related Web Sites
About This Site
, the Rule Engine for the JavaTM
|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).
Dont be a glutton for punishment perform your technical due diligence before selecting a tool like Jess.
CommonMistakesTemplate | CommonBeginnerMistakes
Front Page |
Recent Changes |
Powered by Friki |
Last Edited: 10 November 2005