Unlike Jess, OPSJ does allow you to set break-points and fire subsets of rules. But ultimately, it’s much more difficult in
OPSJ — and Jess — to find bugs, optimize ruleflow, and tune performance than it is in JRules or Blaze Advisor.
Linux of BRMS
Jess was developed by Dr. Ernest Friedman-Hill of Sandia Labs as a Java version of CLIPS (C-Language Interface to Production
Systems); it even uses the same CLP-suffix type of file. Most CLIPS files are easily ported to Jess, which seems to have been
one of the original intentions. And Jess uses a LISP (LISt Processing)-like syntax, which will be familiar to traditional
AI programmers who grew up using CLIPS, but is less natural, less adaptable to business logic, and harder to learn than OPSJ
code.
Nevertheless, Jess is without doubt one of the most innovative of all of the commercial BRMSes, and what it lacks in ease
of use it makes up for in community support. Jess has an extremely active worldwide user group that not only contributes applications
and code changes (much like Linux development), but helps Jess users solve mutual problems — everything from beginner nuts-and-bolts
issues to sophisticated fuzzy-logic problems. Even the inventor, Dr. Friedman-Hill, usually responds within a few hours and
sometimes within a few minutes.
One of the great advantages to Jess is the many third-party add-ons. Two of these are JessWin, a Windows-like editor and debugger,
and FuzzyJess, a fuzzy-logic add-on tool. While FuzzyJess documentation does not provide deep Dempster-Schaefer analysis,
it does an excellent job of explaining fuzzy logic by example. Although both of these tools could be dramatically improved,
they offer Jess users capabilities not available in other BRMSes. Finally, like most BRMSes today, Jess has an extensive API
and supports JSR 94, the standard API for Java rule engines.
Jess can be used in either interpreted mode (just like interpreted BASIC, JRules, or Advisor) or embedded as part of a larger
Java project. And, like OPSJ, Jess features automatic type backward chaining, using a “when needed” type of clause, and it
provides an Eclipse plug-in for easier integrated development.
How to choose between Jess and OPSJ? OPSJ is mind-bogglingly fast and very easy for programmers to understand, but PST is
a one-man shop so support can be spotty. While Jess beats JRules and Blaze Advisor on performance, it’s slower than OPSJ,
harder to learn, more difficult to implement in a J2EE environment, and harder to scale. Choose OPSJ when performance and
ease of use are more important than community support.
Both Jess and OPSJ have a long way to go to become enterprise tools, but their pricing structures make them highly attractive
to small commercial users. Similarly, for larger companies who have an on-staff rule-base programmer or two, or who want to
explore the benefits of a BRMS before investing in a large-scale system, either would be an excellent choice. But if your
company needs graphical interfaces, factory-level support and consulting, and a high-level business language, and it’s willing
to pay for them, JRules or Blaze Advisor is the BRMS for you.