Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Jess in Action

timothy posted more than 10 years ago | from the two-for-one dept.

Java 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.

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.

Sorry! There are no comments related to the filter you selected.

erst post ? (-1, Troll)

Anonymous Coward | more than 10 years ago | (#7378187)

Adolf Hitroll war hier.

Re:erst post ? (-1, Flamebait)

Anonymous Coward | more than 10 years ago | (#7378193)

It's understandable that you're so jealous of the Jews. They are clearly much smarter than non-Jews.

NOODLE IS ON TEH SPOKE ! (-1)

Anonymous Coward | more than 10 years ago | (#7378537)

Spaggetti carbonara.

Jess (2, Interesting)

dolo666 (195584) | more than 10 years ago | (#7378210)

"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."

To me this says that O'Reilly's methods for writing programming books is favoured to other styles. Personally, I love how O'Relly's PHP Cookbook does just what this reviewer is looking for. You get a problem, a solution and examples to go with it. The zen of O'Reilly how-to books.

I'm not a Java programmer, but I might have a look at Jess. To me, Java is fairly redundant. I don't like it very much because it's not thin. I'm a bare-bones kinda programmer. Cut, cut, cut! :)

Using Java in college, you had to load all sorts of extra libs you might not use, which seemed wasteful to me. Don't get me started on web applets, which is what they taught at school. How to turn someone off Java? Applets!

Jess seems, at first glance, to be equally as redundant. Perhaps some of you could delve into the benefits of Jess, on my account? :)

Re:Jess (1, Insightful)

sketerpot (454020) | more than 10 years ago | (#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:Jess (1)

Scarblac (122480) | more than 10 years ago | (#7378832)

There's this thing with Java... It's meant for big things. It is really irritating and a lot of hard work to make something small with Java. However, it's relatively not much more work to make something bigger.

If you want to log something to a file or so, simply print some debug statements, and you don't want to fight the system, setup Log4J. Make all the config files, instantiate the objects, etc, etc. For a small program that's a lot of work. For a huge program, it's the same amount of work :-) And then you have a cool logging system. Look at the files and structure you need to make 1 servlet. Frameworks like Struts are even worse. But once it works, adding a bit is pretty clean.

Somehow, through all its stupid little irritations it has in addition to this (all the cruft you get because an int isn't an Object etc), I still sort of like Java. But I'll use Python if I'm making something small.

Given all that, I don't care about a "print" statement.

Re:Jess (0)

Anonymous Coward | more than 10 years ago | (#7378871)

Exactly,
Java if build for enterprise class, multi-threaded applications. Those libraries are big, tested and debugged across platform. So they Work, AND ARE HIGHLY PRODUCTIVE.

Secondly, the JVM doesn't compile classes you don't use into the .jar file. So, it only LOOKS BIG.

Where to you people come from.

Re:Jess (1, Funny)

Anonymous Coward | more than 10 years ago | (#7378936)

"If Java had true garbage collection, most programs would delete themselves upon execution."
-- Robert Sewell

Re:Jess (1)

PierceLabs (549351) | more than 10 years ago | (#7380498)

Excellent! I think I'll take that for my tagline :)

What Jess is good for (3, Informative)

realfake (302363) | more than 10 years ago | (#7379085)

Jess seems, at first glance, to be equally as redundant. Perhaps some of you could delve into the benefits of Jess, on my account? :) A rules engine like Jess or CLIPS allows you to express a set of rules very economically, expressively, and readably. It's not right for everything, but in many situations it allows you to do things that would be practically impossible if you expressed the same thing as if/then/else statements in code. For example, in a situation where rules need to change frequently, it's great to be able to allow an expert user to edit the rules which can live somewhere outside the code. If you find yourself recompiling frequently to suit the fickle whims of a user who wants some kind of rule changed, a rules engine can be a huge time saver.

Re:What Jess is good for (1)

Djanossy II (696212) | more than 10 years ago | (#7379331)

In addition to that, it sounds like its named after a girl. That is the smoothest thing I've heard about this week. Instead of dweeby acronyms, imagine if all languages were named in honor of the ladies.

java, feh (-1, Flamebait)

Anonymous Coward | more than 10 years ago | (#7378212)

java is bloated, ugly, slow and dying .. who gives
a rats ass?

Re:java, feh (0)

Anonymous Coward | more than 10 years ago | (#7379019)

And you're the expert on this.

IBM's WebSphere seems to be doing pretty well.
ORacle's database seems to be doing ok.
WebLogic and Borland are healthy.

Only Sun, not experiencing big server sales lately, is hurting.

But, Microsoft, is selling a buggy copy of java you can get.

There's a quiz about this (2, Interesting)

Pingular (670773) | more than 10 years ago | (#7378225)

on the Java Website [sun.com] .
'based on the Chapter 13, "Adding a graphical interface," of the book Jess in Action published by Manning Publications Company. Test your knowledge of Jess, the rule engine and scripting language for Java technology.'

I live J-NESS the better Jess (0)

Anonymous Coward | more than 10 years ago | (#7380731)

It plays all the SNES roms I have.

Rating (-1, Offtopic)

dolo666 (195584) | more than 10 years ago | (#7378232)

Fix the rating please. It's the same as the ISBN.
(1930110898)

Re:Rating (1)

cK-Gunslinger (443452) | more than 10 years ago | (#7378257)

Fix the rating please. It's the same as the ISBN.

No, that's the rating. It's a *really* good book!

Re:Rating (1)

Carbonite (183181) | more than 10 years ago | (#7378282)

That's simply a coincidence. The book really is that good.

Cheers,
Ernest Friedman-Hill

Re:Rating (0)

Anonymous Coward | more than 10 years ago | (#7378295)

No. It is just rating inflation run amok.

Just when you thought it was bad when every book was a "9", now we get a "1930110898".

Re:Rating (0)

Anonymous Coward | more than 10 years ago | (#7378331)

That's just coincidence. It really is that good.

Re:Rating (0)

Anonymous Coward | more than 10 years ago | (#7378365)

deja vu [slashdot.org]

Re:Rating (-1, Troll)

Anonymous Coward | more than 10 years ago | (#7378408)

That's just coincidence. The comment really is that good.

Re:Rating (-1)

Anonymous Coward | more than 10 years ago | (#7378483)

Actually, following standard /. reviewing guidlines, the rating should be the 1930110898 MOD 10.

licensing -- Jess *not* open source (5, Informative)

Anonymous Coward | more than 10 years ago | (#7378233)

3. What are the licensing issues surrounding Jess?
Jess is and will always be available at no cost for academic use worldwide, with an appropriate license. Commercial users can purchase a Jess license by contacting Craig Smith at Sandia's Technology Transfer office (Telephone 925/294-3358; email: casmith@sandia.gov.) The licensing fees are negotiable and generally quite reasonable. You can also purchase an inexpensive "Home Office" license. Jess is not licensed under the GPL, the LPGL, the BSD license, or any other free software or open source license. Redistribution of the Jess source code under any free software or open source license is prohibited.

since when is /. open-source only? (1, Insightful)

Anonymous Coward | more than 10 years ago | (#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:since when is /. open-source only? (0)

Austerity Empowers (669817) | more than 10 years ago | (#7378628)

It's a valid enough point, one of the reasons I tend to stay away from Java is that it is not an open standard. Jess appears similarly crippled, not worth the time to parse 400+ pages of text.

I have a real hard time using any proprietary language or toolkits in the "general purpose" world, I'm sure many do. It doesn't have to be "open-source" (C and C++ aren't technically "open source"), but I would only use proprietary languages/toolkits if I absolutely had to because the boss made me or the situation demanded it. There are lots of reasons, not all are religious.

Don't get me wrong, those things HAVE application and are sometimes unavoidable, but I do general purpose design engineering, I personally would never even consider putting such a tool in my box until the day I need it. I have friends who do more IT or business tool writing who may find this of value because their needs are specific.

Another point is that there are LOTS of commercial toolkits, especially for GUI frameworks. It's surprising to see a review about one that doesn't even have a decent license. If I'm going to pay $$$ to use a software tool then the book drops in priority. I'd almost expect them to provide a tutorial as part of the sales literature...

The review is useful for those that HAVE to use it, or for the niche which Jess may fill. However knowing the license tells me I should not buy this book. Building stuff is expensive enough as it is, I need LESS licensing and royalties, not more.

FOIA (0)

Anonymous Coward | more than 10 years ago | (#7378469)

If you are an american citizen or an american corporation, you ought to be able to file an FOIA request for the source. The software was built with your US tax dollars and is maintained with those same tax dollars, you own it unless they can make a good case that there's a public health or national security issue that overrides that -- which is doubtful.

FOIA does not make it open source (1, Funny)

Anonymous Coward | more than 10 years ago | (#7378552)

even if a FOIA were to succeed, you would still not have the right to use the source code in production or redistribute it...

Re:FOIA (2, Insightful)

Anonymous Coward | more than 10 years ago | (#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.

Mucho $$$ (0)

Anonymous Coward | more than 10 years ago | (#7380591)

I'd just like to add that much to its detriment, Jess is absurdly expensive to license for commercial use. We're talking Oracle Server price range here, which I think is fairly ridiculous for what you get. I hope Sandia will wise up and realize what an impediment this price is to establishing a commercial base. My guess is that a fair percentage of users decompile the demo version of Jess and remove its 30 day timeout...

I see.. (3, Insightful)

cK-Gunslinger (443452) | more than 10 years ago | (#7378236)

Chappell points out that the book's author is also Jess' creator, so he speaks from authority.

And without bias, I'm sure. =P

How does bias factor in? (1)

brunes69 (86786) | more than 10 years ago | (#7378260)

The book is not a review of the pros and cons of Jess, it is an instructional guide. If you bought this book you either already have a Jess implementation or are seriously considerig one. The bias of the author is as irrelavent as the bias of a Ford engineer writing the product repair manual for a F-150.

Re:How does bias factor in? (1)

cK-Gunslinger (443452) | more than 10 years ago | (#7378566)

The bias of the author is as irrelavent as the bias of a Ford engineer writing the product repair manual for a F-150.

Not necessarily. For example, if a critic of Jess were the author, you might see passges like, "Although Jess *technically* has support for X, the current implementation is some-what of a cludge, and may cause problems with Y, etc...", whereas a proponent of the language may say "Jess was designed from the start with support for X and blah, blah.."

You will almost *always* have bias in any writings, whether intentional or not. These biases will filter though and modify or enhance the opinions of the reader. Sometimes that can be used for advantage. I know that if someone who is a die-hard 'C' programmer and loves to talk trash about C++ needs a book to learn some C++ for a project, it's best to get a book that aligns with and plays off of his/her opinions. If you get them a book that says "So you have to learn some C++ even though we all know C is superior? Well, here's some C++ code that behaves just like you would expect C to, etc...", they will be more comfortable and willing to use it versus, say, a book that start off with "We all know that C is dead! Long live C++! It's about time you dumped that ancient language and stepped into the new paradigm, etc..."

Like they say, opinions are like a**holes, we all have them and everyone's but yours stinks!

Re:How does bias factor in? (1)

deanj (519759) | more than 10 years ago | (#7378834)

[quote]
if a critic of Jess were the author
[/quote]

if that were true, the book probably wouldn't have been published.

Searching for this. (5, Funny)

DrEldarion (114072) | more than 10 years ago | (#7378238)

I should have known it was a mistake before I hit the "search" button, but I had searched for "Jess in action" on Google, and gotten not quite what I wanted [cum-fiesta-movies.com] .

Re:Searching for this. (1)

dolo666 (195584) | more than 10 years ago | (#7378308)

I fell out of my chair when I read this! Nice!!! :)

But seriously... I'm guess that your hits on Jess in Action are more interesting and insightful! Nothing like a bit of grass-roots study to confirm what this reviewer is saying, eh? :P

this is *so* lame (0)

Anonymous Coward | more than 10 years ago | (#7379070)

that many searches pull up prorn is not funny

Re:Searching for this. (1, Funny)

Anonymous Coward | more than 10 years ago | (#7379344)

Rule: if Jess naughty, then Jess get spanky spank.

Re:Searching for this. (1, Funny)

Anonymous Coward | more than 10 years ago | (#7381509)

What's even funnier is that the link is Slashdotted now :)

Cool... (2, Funny)

Black Parrot (19622) | more than 10 years ago | (#7378247)

...a Java implementation of some really old stuff.

Pardon my curmudgeonry.

Re:Cool... (1)

marktoml (48712) | more than 10 years ago | (#7378633)

Ironic given the title of you post and that Jess doesn't implement COOL (CLIPS Objecy Oriented Language).

Jess is actually new stuff (3, Interesting)

alispguru (72689) | more than 10 years ago | (#7379107)

I originally reacted to Jess much the way Black Parrot did, knowing that rete-based rule engines have been around since 1989 or so.

Jess is a rete-based rule engine, but the implementors have done a lot of work on the innards of rete network processing and have made serious order-of-magnitude improvements in matching speed.

{snipe}
They had to - Jess would have been too slow relative to rule engines in native-compiled languages otherwise.
{/snipe}

Seriously, Jess is a real improvement over ancient and revered rule engines like CLIPS. You can find out more about Jess by going straight to the sources at Sandia Labs here [sandia.gov] .

Jess in Action? (-1, Offtopic)

Captain Poopypants (720974) | more than 10 years ago | (#7378252)

But does she do Dallas?

Good book, but dense material (4, Informative)

Anonymous Coward | more than 10 years ago | (#7378276)

The content of the book is good. I would agree with the reviews. If you're not familiar with rules engines or how RETE works, you're better off with a simpler book. From personal experience, the hardest part of using rules engines in a production environment is understanding how to use rules engines and the pros/cons of RETE. Rete was originally described by Forgy and has been proven in numerous academic and production systems.

Rules technology is pretty powerful, but like everything else, you have to know what you're doing. The most common mistake is when a programmer tries to use rules engines in a procedural manner like VB. One area where rules engines are used in production systems is business process management, like processing insurance or handling loan approvals.

If you like Jess, check out Drools (4, Informative)

Asmodeus (10868) | more than 10 years ago | (#7378277)

Drools is another rete based rule engine with a java implementation. It has more flexible licencing.

Asmo

If you like Jess, check out Drools-chin (0)

Anonymous Coward | more than 10 years ago | (#7378357)

*raised eyebrow*

Do I really want my web-site to Drool?

Re:If you like Jess, check out Drools (0)

Anonymous Coward | more than 10 years ago | (#7378462)

Drools is nice, but it's only backward chaining. If you want forward chaining, drools currently does not support it. There's also Mandarak, which is another OSS rules engine. For those not using Java, you can use clips.

Re:If you like Jess, check out Drools (2, Interesting)

Anonymous Coward | more than 10 years ago | (#7378649)

As the creator of drools, I'd like to clarify that it's only /forward/ chaining. We don't support backwards chaining.

$5 cheaper and free shipping (0, Troll)

zontroll (714448) | more than 10 years ago | (#7378303)

Re:$5 cheaper and free shipping (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7378465)

Your referral trolls are always so subtle, ccats [slashdot.org] .

Re:$5 cheaper and free shipping (0)

zontroll (714448) | more than 10 years ago | (#7378685)

boy, you're inconsistent. You complain when they're subtle ("don't hide the fact that it's a commision link") and you complain when they're obvious ("boy, you're subtle"). Make up your mind.

Re:$5 cheaper and free shipping (1)

Call Me Black Cloud (616282) | more than 10 years ago | (#7378498)

Go away you referral spammer. Mods, be sure to look at poster's past comments...all he does is submit amazon referral links.

informative (1)

zontroll (714448) | more than 10 years ago | (#7378668)

do you honestly think that moderators are going to look at every poster's history before they mod? You're pretty dumb...

Also, did it occur to you that some people find pricing information informative, even if a referral link is used? (If you want amazon to keep that $1 commission instead of paying it out, go straight to amazon.com and don't click on the link. If you want that money yourself, sign up at associates.amazon.com. If you're boycotting Amazon, don't click and don't buy.)

Re:informative (1)

Call Me Black Cloud (616282) | more than 10 years ago | (#7379182)

do you honestly think that moderators are going to look at every poster's history before they mod? You're pretty dumb...

Since your post has been modded down, apparently I'm not that dumb.

Re:$5 cheaper and free shipping (1)

Call Me Black Cloud (616282) | more than 10 years ago | (#7378516)

Duh...I just noticed the guy's user name. zontroll...and all he does is post amazon.com referral links...hmmm.

In Soviet Russia... (-1)

Anonymous Coward | more than 10 years ago | (#7378305)

rule based languages run YOU!

Rule Engine Frameworks (1)

BigGerman (541312) | more than 10 years ago | (#7378338)

Just curious -
have any of the slashdotters used rule-based frameworks for real-life projects?
What do you think about Java Community Process Rule Engine JSR [jcp.org] ?
What about frameworks that try to keep things simple, like Ruleaid [ruleaid.com] ?

Re:Rule Engine Frameworks (1)

clary (141424) | more than 10 years ago | (#7378459)

have any of the slashdotters used rule-based frameworks for real-life projects?
Back in a previous life (circa 1988), I did a little rule-based "expert system" programming for a major defense contractor using CLIPS, a forward-chaining tool based on the Rete algorithm. The application was to advise users of a particularly arcane computational fluid dynamics program how to set up its myriad input parameters so that the program wouldn't blow up.

Re:Rule Engine Frameworks (0)

Anonymous Coward | more than 10 years ago | (#7378478)

JSR 94 has been kinda stagnant for a while. It was originally started back in 2000. But since then the activity has been nill or non-existent.

Re:Rule Engine Frameworks (1)

possible (123857) | more than 10 years ago | (#7378647)

Our NeXpose [rapid7.com] security scanner uses JESS to perform vulnerability assessments against remote systems. The expert system is a nice way to have NeXpose not only identify vulnerabilities, but also take advantage of the vulnerabilities to perform more tests. It can be done without an expert system, but it works very nicely using JESS.

Re:Rule Engine Frameworks (1)

rosbif (71236) | more than 10 years ago | (#7378953)

Theres quite a bit out there using commercial software such as JRules (http://www.ilog.com) - big bucks tho'. I've done a couple of projects in the finacial sector using JRules and it is very good when you have a set of business rules that change frequently (yes, even faster than the build time of a slashdotter project....), or in the rare instances when your users are clueless..........

Re:Rule Engine Frameworks (1)

bmyers (643397) | more than 10 years ago | (#7379566)

I created a rules-based system for a financial institution back in 1996 using CLIPS (the C-based precursor to JESS). It is still being used on the trading floor today, as far as I know.

I am also planning on using JESS for the AI for a large Java-based online game I'm currently working on. I am really looking forward to using the backward-chaining capabilities of JESS for this.

I think JESS (and CLIPS) is best suited for fairly complex systems where you want to break out the rules separately and let non-programmers work on them. One of the big advantages is that you can load the rules without having to recompile everything. Another is that it is much easier to debug rules than to debug raw code, just like for any scripting language.

As for the rules JSR, I haven't looked at it recently. But from what I remember it seemed to fit in pretty well with JESS.

Re:Rule Engine Frameworks (1)

witwerg (26651) | more than 10 years ago | (#7381104)

Actually I am currently trying to use some of this in a new windows-based(java is ok) project and I have been evaulating various systems. Jess happens to be one of them along with it's fuzzy logic counter part, FuzzyJ. Have a quote for both on my desk. So.. If anyone has some recommendations.. :) Ideally It would integrate pretty easily with a database, support mixed chaining, the backward-chaining wouldn't be some form of kludged forward chaining, fuzzy logic, and confidence values. Though when it comes down to it, I could attempt to kludge confidence values and the database stuff. Also doing something different the few places I want fuzzy logic. My ideal solution was 15k, which eventually wouldn't be a problem, but initally is a bit much to convince my superiors to use.

Too bad its Java (1)

hey (83763) | more than 10 years ago | (#7378339)

Would be nice to have something like this
for the regular *nix environment.

There is, it is called CLIPS! (0)

Anonymous Coward | more than 10 years ago | (#7378372)

see http://www.ghg.net/clips/CLIPS.html [ghg.net]

-- ac at work

Jess in action somewhat fustrating... (4, Interesting)

peter_gzowski (465076) | more than 10 years ago | (#7378362)

Jess is very handy, don't get me wrong, and the Java API is great except for one large omission:

Right now the jess.Defrule class does not expose enough public methods to properly create one outside of the jess package.

That's straight out of the latest Jess documentation [sandia.gov] . You can't construct rules from Java! Well, you can pass a text string to Rete.executeCommand, but this is hardly elegant. Grrr... Am I missing something here? If not, then PLEASE give me a constructor for Defrules, Mr. Friedman-Hill.

It's getting frustrating enough that I've been interested in an open-source alternative to Jess (academic license is no charge, but you have to pay for it for commercial use): drools [drools.org] . This has to be the dumbest project name ever, and I haven't even looked at much of the code yet, but it looks promising. Anybody have any experience with it? Please hold back your drool jokes for now...

Re:Jess in action somewhat fustrating... (1)

jjames (218359) | more than 10 years ago | (#7378529)


The obvious "solution" (aka workaround) is to create your own local jess package and put your extension in that package. E.g. org.jess.rules is a local directory in your build tree and you can put your new Java rule classes in that package. When you compile your rules will be in the same package and the compilation will succeed.

I know, an ugly hack it is. But it will work until the class exposes public methods for extension.

Re:Jess in action somewhat fustrating... (3, Informative)

AlXtreme (223728) | more than 10 years ago | (#7379931)

Trust me, you're not the only one

A few months ago, we had to implement a rule-based system for our AI course, using Jess. Now, I'm all for CLISP-like syntax, but it's very annoying to actually get something working in Jess: the documentation on the site was incomplete and sketchy (had to discover how stuff worked the hard way, by breaking it) and also to me it seemed Jess wasn't even complete (defqueries were very messy, although using the java API should have proven better results. maybe). Our Mr. Friedman-Hill seemed to be too busy working on his book for the last 4/5 years and wasn't interested in developing something that actually was complete.

In short, my opinion is: don't use it. There are far better alternatives for rule-based solutions, maybe not as the java API Jess is (although I havn't used drool either). It'll save you a real headache once you actually use the beast and need something working... then again, I might just be disillusionised, as I was hoping it to be far more useful...

as always, my 2 eurocents

Highest rating ever (-1, Offtopic)

KillerCow (213458) | more than 10 years ago | (#7378373)

rating: 1930110898

If you're not a Java weenie (0)

Anonymous Coward | more than 10 years ago | (#7378382)

Then you can just use the stable and mature "CLIPS", a C rule system like a Lisp one of yore, but without the Lisp.

(Or roll your own in Common Lisp, it takes about 20 minutes.)

Warcraft 3 (1)

SparafucileMan (544171) | more than 10 years ago | (#7378410)

Can anyone tell me if this Jess is related in any way to the JESS [sourceforge.net] language that runs Warcraft 3? ;) They are not exactly the same but I'm trying to figure out if, say, the WC3 version is in any way based off Jess.

Re:Warcraft 3 (-1, Offtopic)

SparafucileMan (544171) | more than 10 years ago | (#7378429)

Nevermind. I'm in idiot. Mod me down.

Less-restrictively licensed alternative (4, Informative)

watchful.babbler (621535) | more than 10 years ago | (#7378411)

Should you wish an alternative to the commercially-licensed JESS, Stanford has its own Java Theorem Prover [stanford.edu] , DAML-compliant and capable of handling forward- and backward-chained reasoning. Object code can be freely redistributed.

Re:Less-restrictively licensed alternative (1, Informative)

Anonymous Coward | more than 10 years ago | (#7381457)

From my experience, the one problem with Java Theorem Prover is that it doesn't allow for rules. It does reasoning only with properties defined by DAML/RDF. It's a nice piece of software but if you want to specify rules (complicated, or otherwise) you have to use some other system (Prolog, JESS, CLIPS, etc.)


BTW, DAML is being replaced by OWL, a W3C standard.

What's in a name? (0)

jlmcgraw (140716) | more than 10 years ago | (#7378416)

As a person named Jess, I have to say this is the best Slashdot story I've seen in years!

Although I am a bit disturbed to find out that Ernest Friedman-Hill is in fact my creator. Mom's got some explaining to do!

first Alan Cocks mention (-1, Troll)

Anonymous Coward | more than 10 years ago | (#7378455)

hello i got frist post huh? you suck!

Jess in action? (-1)

Anonymous Coward | more than 10 years ago | (#7378531)

I got all excited... thought I was going to see some porn. :(

Re:Jess in action? (0)

Anonymous Coward | more than 10 years ago | (#7378655)

RTFC! [slashdot.org]

"Nobody bothers to read the comments" -- cmdrTaco

Nothing new - Better languages than Java for this (1, Flamebait)

xeo_at_thermopylae (585330) | more than 10 years ago | (#7378591)

Rule-based systems (and far better ones than JESS) have been available for nearly 30 years now. I wrote one in LISP for an college AI class. Prolog is a rule engine.

Implementing rule-based programming in Java is like putting lipstick on a pig (if you don't know, rule-based programming is the lipstick). It is best to leave rule processing to a language designed for it and use Java for other tasks for which its better suited, such as interaction.

Re:Nothing new - Better languages than Java for th (0)

Anonymous Coward | more than 10 years ago | (#7378821)

This solution isn't for you.
But, It works for anyone else with a current Java CROSS-PLATFORM application to support.

Re:Nothing new - Better languages than Java for th (1)

xeo_at_thermopylae (585330) | more than 10 years ago | (#7379258)

The "cross-platform" aspect of Java is a red herring here; most "rule-based" systems have been "cross-platform" for years.

And despite the "cross-platform" compatibility of Java, few corporations use it to their financial benefit. (Please, no posts from individuals who have ported a Java app from one platform to another).

Re:Nothing new - Better languages than Java for th (1)

bmyers (643397) | more than 10 years ago | (#7379695)

I am currently working for a large financial institution that is replacing an NT server farm with a Linux server farm. This was quite easily done because they are using WebLogic (i.e. Java) as an application server.

And when I say server farm I mean several dozens of servers. And several hundred thousand lines of code.

Oh yeah - they also found a massive performance improvement switching from NT to Linux.

Almost forgot! They are using Blaze, which is a Java-based rules engine.

Re:Nothing new - Better languages than Java for th (0)

Anonymous Coward | more than 10 years ago | (#7380198)

And your point is????

The post to which you responded to anticipated your response, but you did not read it:

(Please, no posts from individuals who have ported a Java app from one platform to another).

Do you consider yourself a typical Java developer? If that is true, then Java is indeed in trouble.

Re:Nothing new - Better languages than Java for th (1)

tlockney (17958) | more than 10 years ago | (#7380306)

Walk into just about any shop that uses java and you'll probably see a bunch of people coding on Windows boxes. But it's doubtful you'll see their apps running on MS platforms. Every company I've worked with has had this same setup. That's a pretty straightforward example of using java's cross platform capabilities.

Re:Nothing new - Better languages than Java for th (0)

Anonymous Coward | more than 10 years ago | (#7378833)

Prolog is a back-chaining system (quite mature), JESS is mostly forward chaining (though I understand they can do back chaining too.).

The implementation language is unimportant. The fact that it runs on any platform, and its integration with Java for enterprise apps is important.

While rule based systems are not new, they are now being rediscovered to house business logic in a mid-tier.

IMHO much of the value of a rule engine stems from the strict separation between business logic and enterprise programming (e.g. transactions, dbs, etc.) FORCED on you be the discipline of a representation change.

Re:Nothing new - Better languages than Java for th (1)

xeo_at_thermopylae (585330) | more than 10 years ago | (#7379358)

Prolog is a back-chaining system (quite mature), JESS is mostly forward chaining (though I understand they can do back chaining too.).

My post was not about Prolog per se, but about the many Prolog- and Lisp-based rule engines available (A detailed aside: a forward-chaining rule engine can be written in Prolog easily).

The implementation language is unimportant. The fact that it runs on any platform, and its integration with Java for enterprise apps is important.

Funny that you say the implementation language is unimportant in the first clause of this sentence and then contradict that in the second clause.

IMHO much of the value of a rule engine stems from the strict separation between business logic and enterprise programming (e.g. transactions, dbs, etc.) FORCED on you be the discipline of a representation change.

You're dead wrong here: transactions and database rules are part, if not the major part, of business logic. The only way to force discipline is to write rules in the database and then allow users and developers access to the database through well-defined paths/rules/procedures.

Re:Nothing new - Better languages than Java for th (2)

kfg (145172) | more than 10 years ago | (#7380353)

When I saw your original post I thought, "Uh oh, he's going to get slammed," and I see I haven't been disapointed. Bloody shame that.

You were formally trained in an age when computer science was still part of the science department and not the business trade school department. Your concepts of programming are thus founded in the logic and mathmatics behind the languages and "apps."

Modern programers who are in "Enterprise" computing aren't even going to understand a single word you say, nor are they likely to care to.

The whole structure is ad hoc (just look at Java itself. Yech) thrown together and driven by the commercial interests of the vendors, not the customers, and thus not even the logic inherent in the problems to be solved.

If Turing, Von Neumann and Codd showed up here to try to explain things they'd get modded down as flamebait.

Normally I'd say forgive them, they know not what they do, but we're talking about a culture in which I find it hard to forgive what amounts to wilfull ignorance.

To the extent that they're really tradespeople and a product of trade training I suppose they can be forgiven, but I'd hope they'd pick up a book once in a while that explains what they're doing rather than just books about the practicum of trade.

The "lab" work is supposed to be built on top of deeper understanding.

Well, I shall soon be joining you in "flamebait hell." Save me a barstool, will you? We'll talk.

KFG

Re:Nothing new - Better languages than Java for th (1)

jacoberrol (561252) | more than 10 years ago | (#7378860)

Just curious. Why do you think Java is ill-suited for rule processing?

Re:Nothing new - Better languages than Java for th (1)

xeo_at_thermopylae (585330) | more than 10 years ago | (#7379603)

Why do you think Java is ill-suited for rule processing?

I didn't say that, but your statement is true: Java is ill-suited for rule-processing because there is no question that it cannot compete with languages designed for that purpose. Its a matter of what a language is suited for:

  1. Java was designed to control appliances and hardware devices, failed there,
  2. Java was remarketed to WWW browsers, failed there,
  3. Java was remarketed to WWW servers, where it now is barely holding off a competitor that charges $$ for it's products.

So as a language, Java has a rather checkered history. It has found a niche (WWW servers) and is finally doing well there, but it has been a long, bumpy ride for old Java programmers (see the Official Unofficial Java History [about.com] for details.)

In contrast, Lisp and Prolog were designed as symbolic manipulation languages and do that exceedingly well.

But my main point was "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?"

Re:Nothing new - Better languages than Java for th (3, Insightful)

axxackall (579006) | more than 10 years ago | (#7380570)

"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.

Try Mandarax Open Source Rule Engine (2, Informative)

arnasobr (134440) | more than 10 years ago | (#7378773)

My favorite is Mandarax [mandarax.org] . It's a Java-based backward chaining rule engine with excellent documentation. I've found it to be fast and extensible. And even better, it's LGPL!

Or try JEOPS Open Source Rule Engine (2, Informative)

taweili (111177) | more than 10 years ago | (#7379470)

JEOPS is another pure Java rule engines available under LGPL. It can be found here [jeops.org]

Inteview with Ernest J Friedman-Hill (0)

Mr. Dop (708162) | more than 10 years ago | (#7378959)

DevX.com [devx.com] has an interview [devx.com] with Dr. Ernest J. Friedman-Hill inwhich he talks about its (JESS) development and what the next steps are.

Admitting ignorance (0)

Anonymous Coward | more than 10 years ago | (#7379440)

Can someone give me a good summary of what a rule-based system is and what it's used for?

Re:Admitting ignorance (2, Informative)

Mengoxon (303399) | more than 10 years ago | (#7379709)

http://www.ramalila.net/Adventures/AI/rule_based_s ystems.html

Re:Admitting ignorance (0)

Anonymous Coward | more than 10 years ago | (#7380487)

Thanks. That was useful.

Problems with the rules-engine concept (3, Informative)

sohp (22984) | more than 10 years ago | (#7381268)

Rules Engine Problems

Rules engines at best are competent beginners in a limited, structured domain. Discovering and programming the rules is a process requiring a very significant investment of time and effort, including both technical and business experts. "more difficult and important is the twofold task of knowledge acquisition: finding articulate, self-analytical experts who know why they do things, and developing efficient techniques for extracting what they know and distilling it into rule bases. The essential prerequisite for building an expert system is to have an expert." [objectz.com] In most cases, experts don't in fact use the rules that might be discovered by interview and reflection. Rules are always context free and cannot take into account the relevance of facts.

Rules engines can't handle exceptions that are not programmed in. Rules engines apply their rules ceteris paribus, assuming that everything not accounted for in the rules is constant, when if fact the unaccounted-for variables may in fact be the important ones. Expert human collaboration and judgment is required to correct and update rules engine errors.

The ongoing maintenance of rules is a significant effort and drain on resources. In a rapidly changing business, the value of the rules degrades rapidly without maintenance.

Deskilling of workers is a significant risk in heavy reliance on rules engines. As more business expertise becomes embodied in the rules engine, the ability of the workers to understand the domain becomes less.

Recommended readings include:

Non-free (1)

psychofox (92356) | more than 10 years ago | (#7379510)

It may have 'more flexible' licensing, however it is non-free: 'Jess can be licensed for commercial use, and is available for academic use.' This is not a problem per-se, I'm just a little surprised that this article is nothing more than an advertisement for a book on a non-free, commercial piece of software...

In Soviet Russia ... (-1, Troll)

Anonymous Coward | more than 10 years ago | (#7379946)

rule based languages run you !
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?