Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Java Books Media Programming Book Reviews IT Technology

Jess in Action 120

Simon P. Chappell and Eric Kaun contributed reviews of Jess in Action, Ernest Friedman-Hill's introduction to Jess, a pure Java rule-based system developed at Sandia National Laboratories. Kaun writes "Jess in Action presents the Jess rule-based framework, and explores it through four meaty and well-chosen examples: a console tax forms advisor, a console PC repair assistant, a Swing HVAC controller, and a servlet-based purchasing agent. The examples vary greatly in their designs and styles of interaction between Jess and Java, and expose patterns in a concrete context. It's especially nice the way each example builds on the functionality of the one before, such as a text-based question/interview module that is extended into a Swing GUI." Chappell points out that the book's author is also Jess' creator, so he speaks from authority. Read on for both reviews.
Jess in Action
author Ernest Friedman-Hill
pages 480
publisher Manning Publications
rating 9
reviewer Simon P. Chappell, Eric Kaun
ISBN 1930110898
summary Introduces rules and declarative programming style using JESS.

Eric Kaun's review, continued

Jess in Action starts with an introduction to rule-based systems, goes through the basics of the Jess language, and then dives into the examples; the appendices include API references to both Jess functions and Jess's Java APIs, and numerous links and references are scattered throughout the book. If I have any complaint about the organization, it's that the book could have been even more example-driven, abandoning (or shortening) the chapter on syntax and basic functions and introducing them only when used in an example; the rest could have been left to the appendix of Jess functions.

The book is interesting and readable, but dense with concepts, so it contains only 388 pages of actual text, and 50 pages of appendices will take some (well-spent) time to get through. A second skimming impressed me anew with the richness of the material, and the productive way in which it's presented, so I recommend reading the book once to get the overall feel, and then going through it again with the working Jess command shell, editor, and command line in front of you. Or an IDE if you must. :-)

Jess itself consists of a rule language, a runtime engine which supports forward and limited backward-chaining, and APIs for integration with Java; there are many add-on tools for Jess, referenced throughout the book. As with most rules engines, rules are specified as declarative patterns, not procedural code.

Jess in Action is well worth your time and attention, at the least for its exploration of rules, and at most for presenting a strong, flexible platform to tackle what is probably one of the uglier parts of your development process: the sequencing and parameterization of business decisions. Although the list of Cons below is longer, they're just nit-picking; this is an excellent, entertaining, and productive read that will likely expand your programming horizons considerably.

Pros
  • Clearly, concisely, and entertainingly written for Java programmers of any background
  • A strong introduction to two important topics: rules and declarative programming style
  • Well-chosen and developed working examples, each with a different design style
  • The description of the author's unit test framework for rules in Appendix C is a nice touch
Cons
  • Early discussion of Jess syntax focuses too much on Java-like procedural style
  • More of a tutorial - not long enough to be a good reference (though that would probably require a detailed Jess Patterns book)
  • Discussions of development methodology and knowledge engineering are unnecessary, as they're covered better elsewhere and a short summary adds little to the book
  • There's no single list of rule and Jess-related links; references to tools and discussions are scattered throughout the book
  • There are no general references to rules and rule-based systems for theory and background


Simon P. Chappell's review

While part one of the book has two slim chapters to introduce rule-based systems to the casual reader, the rest of the book is a no-messing user guide, reference manual and tutorial on using Jess. If you want to learn about rule-based systems, this should not be your first book. If you know of rule-based systems and have decided to use Jess, then run, don't walk to the bookstore and purchase a copy of this book.

I liked the solid, yet gentle, progression through part two, where the basics of using Jess are explained. The explanations were clear and each concept was introduced in a sequence that built upon the previous concepts and information. For example, I had thought that rules were all you had to worry about in rules-based systems, but it turns out that because rules operate on facts, designing the representation of those facts is a pre-condition of designing rules. (Right, I know you knew that, but it was new to me! :-)

Parts three through six are complete case-studies of the application of Jess in increasingly complex applications. The examples are well-explained and the rationale for each step is discussed in sufficient detail to educate but not bore.

Part seven is a self-described 'grab bag' of stuff that didn't fit in any of the other parts of the book. This section spends some time looking at using XML with JESS, including markup languages for rules, and interfacing with Jess from EJBs and Application Servers.

Lastly, there's the fact that the author of the book is also the author of the software in question. Dr. Friedman-Hill obviously knows Jess better than anyone else in the world and this shows through in the way that he not only explains how to achieve activities in and with Jess, but he also takes time, here and there, to explain some of the design decisions and trade-offs in its creation.


You can purchase Jess in Action from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the (recently updated) book review guidelines, then visit the submission page.

This discussion has been archived. No new comments can be posted.

Jess in Action

Comments Filter:
  • I see.. (Score:4, Insightful)

    by cK-Gunslinger ( 443452 ) on Monday November 03, 2003 @12:50PM (#7378236) Journal
    Chappell points out that the book's author is also Jess' creator, so he speaks from authority.

    And without bias, I'm sure. =P
  • by Anonymous Coward on Monday November 03, 2003 @12:58PM (#7378297)
    Are you implying that beacuse it is a commercial program that we should not be promoting books about it? Oh, yea, its beacuse Java is open source... not.
  • Re:Jess (Score:2, Insightful)

    by sketerpot ( 454020 ) <sketerpot&gmail,com> on Monday November 03, 2003 @01:11PM (#7378391)
    What turned me off Java was not the fact that it had large libraries, but the way the libraries seemed bolted on. I realize that having clear separation between the libraries and the language syntax is a good idea technically, but programming languages are for people [paulgraham.com]. System.out.println() is perfectly understandable, but a convenience function would be nice---or even a "print" statement.

    As libraries get big (as they certainly have in Java), it gets harder to find what you're looking for in them. A big problem in language design is making big libraries convenient and intuitive. Java looks like it hasn't tried all that hard.

    Jess looks like a layer of abstraction, and abstraction is generally a Good Thing. For example, HTML templating systems are often more pleasant than a bunch of perl scripts with the page hard coded. Hey, if it lets you take complex logic out of Java, I'd say it's good.

  • Re:FOIA (Score:2, Insightful)

    by Anonymous Coward on Monday November 03, 2003 @01:48PM (#7378718)
    Actually, JESS is nothing more than a knock-off of the CLIPS expert system, that was developed at NASA. You can obtain the complete system source code for CLIPS right here:

    CLIPS Expert System [ghg.net]

    As for your tax dollars, forget it - you'll never see them again if they go into SNL. It's sad to see NASA build a great system and released it for free, then see Sandia copy it (how imaginative) and try to sell you a license for it.

  • by axxackall ( 579006 ) on Monday November 03, 2003 @04:41PM (#7380570) Homepage Journal
    "why would one perform a task in Java that can be more easily, more quickly and more cost-effectively done in a readily-available language designed for the task?"

    Why managers still insist we use JMS instead of Erlang or Jabber?

    Why managers still insist we use EJB even when a single container is enough and no load-balancing required?

    Why managers still insist we use Oracle for databases with 10 tables of 1000 records each 100 transactions a day?

    Why managers still insist we use MS Exchange server when we don't use anything besides email from it (no tasks or calendars, no public folders)?

    Why managers still insist we use ... wait a minute, now I know "why" - because of managers, they still have no brains in the head and no honesty in the heart. That's why.

Old programmers never die, they just hit account block limit.

Working...