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 chemistry?very mathematical, very computational?so 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 understanding?which 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 market?it has been used in everything from Windows CE handhelds to full-blown J2EE enterprise applications.
Jess has been integrated with agent frameworks and other tools. It’s also been integrated with the popular ontology editor ProtJM: What is the Next Evolutionary Step for Jess?
EJF: The biggest feature of Charlemagne will be a graphical IDE. It’s going to be packaged as an Eclipse plug-in. There is an editor with code completion and syntax checking as you type, a debugger, an explorer that lets you probe the relationship between templates and rules, and a rule database.
JM: In the theory of technology-transfer, there is the concept of the S-curve, which maps the lifecycle of an innovation from inception to obsolescence. I have seen an often-quoted figure of 20 years for the lifespan of a high-level programming language. By that standard, C++ should be retired now and Java is approaching middle age. Where is Jess on its S-curve?
EJF: After their initial rise and fall due to excessive AI hype, rule-based systems in general are undergoing a renaissance. Jess itself is now a mature product but it is still innovating; I expect its user base to continue to grow with the market for the foreseeable future.
There is more freedom for innovation with Jess than with a specific high-level language, which means its curve may well be more wiggly. Underneath the Jess language itself there is the rule engine; these two layers can evolve independently. For example, in Charlemagne, we’ll see native support for an XML rule language. This will open up a new world of possibilities, bringing in the power of XSLT and other XML-based tools. Jess will thus support a whole range of different rule languages.
JM: I’m concerned that AI/expert systems experience is still too esoteric for most employers of Java programmers to value as a skill. Am I wrong? How does a Jess developer market him/herself?
JM: You mentioned the javax.rules API in your book. Would you explain the details of how this impacts Jess developers and what it means for Jess’s future?
EJF: The javax.rules is a standard API for accessing rule engines. It’s primarily intended to be used in the J2EE environment. The reference driver being shipped with the javax.rules package is a Jess driver! Charlemagne will include an improved version of this driver.
The people who are really going to benefit from javax.rules are those who build a lot of heavily ‘componentized’ business applications, and want to be able to migrate between rule engines the same way they might migrate between databases.
The New AI
JM: Senior software developers face a very practical problem: selling the early adoption or utilization of a technology to management. We have to demonstrate a definite ROI path and business plan to convince management.
What can you tell us about the Fortune 100 companies that are using Jess regarding their due-diligence process, how they integrated it, and how Jess is working for them?
EJF: Broadly, there are three kinds of companies using Jess. First, there are large, established ones who felt a need to improve the way they were performing some vital business function, and were open minded to a new approach. These folks usually use Jess in in-house IT. For example, screening applications in the insurance and financial services industries.
Generally, there’s an existing process that is a recognized bottleneck, and someone proposes rule-based programming as an alternative. Such projects are often very successful, because the institutional knowledge of how to solve the problem already exists. Implementing the system just entails codifying that into a rule-based system. Usually this sort of application is J2EE-based.
Another kind of company that successfully uses Jess is an applications service provider that sells consulting services and builds and maintains systems to suit. This kind of company gets to pick the technology best suited to the task at hand, and so if they want to introduce a rule-based solution, they can simply do so. Again, these are usually J2EE applications.
Lastly, there are small shrink-wrap software companies whose entire reason for being is to take a risk and apply new techniques to creating a unique product. They need to justify their approach to the VCs; they often have the luxury of implementing a small prototype and taking measurements that demonstrate an advantage. There are several successful products of this kind on the market that embed Jess right now, and more in development.
JM: What are the enabling technologies that will make expert systems more feasible as components in commercial software in the near future?
JM: Is there any other topic related to Jess and expert systems about which you would like to comment?
EJF: One of the best things about Jess is the community. Over the years that I’ve been developing Jess I’ve been fortunate to work closely with many, many really great people. Some people develop Jess extensions, others help design new features, others provide valuable feedback.
JM: If a friend had $10K to invest in an emerging technology, which one would you recommend and why?
EJF: Robotics. I think we’re on the verge of a revolution in applied robotics. I don’t mean big humanoid robots, I mean little, functional robots like Roomba, the autonomous vacuum cleaner. I think Roomba is only the beginning of a wave of products that will transform our living environments.
Expert Systems: AI is Back
In the late 80s, the buzz phrase “artificial intelligence” went out of vogue after initial returns on early applications did not rise to the hype. Expert systems, a species of AI that emulates human reasoning in a specific domain, are no longer ahead of their time due to exponential advances in computing power and application possibilities. Rule-based expert systems, which reason about problem facts using IF…THEN type rules, are the most mature of these technologies. Such systems unobtrusively power many current high-tech applications such as Web agents, financial calculators, and mechatronic controls. Java technology is a key enabler in this reemerging field.
With the popularity of Java for distributed computing across the enterprise and the explosion of business complexity, more Java developers are reexamining the feasibility of including AI components in their applications. Until recently, few tools were available for integrating such business rules into Java applications. Jess is a robust, versatile Java API for creating a wide variety of commercial-strength, rule-based expert systems.