bout a year ago, I was looking for Java tools to develop expert systems in Java, particularly expert system shells for rule-based architectures. I stumbled upon the Java Expert System Shell (Jess), written by Dr. Ernest J. Friedman-Hill at Sandia National Labs. While experimenting with Jess, I grew more curious about its origin and Dr. Friedman-Hill's opinions on the artificial intelligence field. Here's what he had to say.
Jess and Java
JM: How did you come to be involved with artificial intelligence and expert systems?
EJF: My Ph.D. is in physical chemistryvery mathematical, very computationalso I've always been around computers. I've been interested in AI since college, and was working on natural language understanding systems as a hobby soon afterwards.
I came to Sandia National Laboratories in 1992 as a physical chemist, but moved to a computer science department after about a year. My early projects concerned applying heuristic methods to problems in drug design, which led to a project applying heuristic rules to natural language understandingwhich is the project for which Jess was originally created.
My work was all about practical applications, and so Jess has always had a very practical bent. The research aspect of Jess has been all about making things faster and more flexible, not really about searching for new paradigms, but about exploring the unspent potential of existing ones.
I first started working on Jess when Java itself was very young, so Jess has grown up with Java. If Java hadn't appeared, Jess would have been written in a kind of pidgin-interpreted C.
JM: What are the unique strengths of Jess? (e.g., does Jess integrate well with other knowledge tools?)
EJF: Jess is the rule engine for real programmers. Jess is all about integration with other systems: it's easy to embed, it's easy to extend, it's easy to call out to Java from the rule language, and licensed users get the source code, so you can modify anything in the engine if you want. Jess is probably the most flexible rule engine on the marketit has been used in everything from Windows CE handhelds to full-blown J2EE enterprise applications.
|Jess is the rule engine for real programmers.|
Jess is designed from the ground up for integration, and in Jess 7.0 it's going to get even better. Current versions of Jess can only reason about data in its own working memory (although you can use backward chaining
to fetch data into working memory as needed.). Jess 7.0 is going to have the ability to reason about data that isn't in working memory, making it possible to efficiently make inferences about truly huge data sets.
Jess has been integrated with agent frameworks and other tools. It's also been integrated with the popular ontology editor Prot