December 2002

Is AI Practical?

Thanks for the e-mail.

A number of people asked if AI was practical and if there were commercial applications.

The very fact that the question needs to be asked, and that there are those who see the need to catalog affirmative answers, indicates that there is some question. I haven't seen anyone ask if there were commercial applications of databases, or Java.

So, are there commercial applications of AI? Yes. Are there as many as those in the field would like to see? No.

Why not? I believe it has to do with the fundamental premise of this newsletter, that AI is NOT in a computer's nature.

Java was a tremendous success with programmers because it was both new and familiar. It was familiar because it was based on the well-understood CPU and memory of computer. It was new because of easier semantics and syntax than previous languages. In short, it was a better tool for the familiar job of programming.

An AI tool is based on a virtual machine that does NOT work like a normal computer. In order to get competent with a given tool, a programmer has to learn the language of the tool AND the way the underlying virtual machine works. Further, the language of the tool is more difficult to learn because it is, in essence, programming an unfamiliar type of machine.

In other words, it's simply harder to get started with an AI tool. Which means there is more inertia to overcome in getting a commercial information technology (IT) shop to implement an AI-based solution to a particular problem. Given the vast application backlog of most shops, it's just human nature to tackle the familiar problems first.

However, if a problem is pressing enough, and AI is the best solution, then there is motivation to overcome that inertia. Consider for example, all the stock brokers in the World using neural net applications (I hope that link still works) to predict stock prices.

Two of my favorite motivations of early adapters came from Frito Lay and Lazy Boy. Frito Lay wanted fewer broken potato chips in their bags; Lazy Boy wanted more efficient distribution and shipping of recliners. They both achieved their goals with Rete-based production planning systems. Something to think about when you relax with a bag of chips watching the next Super Bowl.

And how did expert systems first get out of the laboratory and into commercial use? It was insurance companies screaming for a way to automate underwriting. They brought IBM and a bunch of entrepreneurs into the rule-based business in a hurry.

Each month I'll try to cover some practical/commercial AI application, so if you have any favorite ones, please let me know. This month, its Egyptian Cucumbers.

As always, any and all feedback is appreciated.

Evolving Machine Intelligence

"Everything we know about life is based on one example of life: Life on Earth. Everything we know about intelligence is based on one example of intelligence: Human intelligence. This limited experience burdens us with preconceptions and limits our imaginations." -- Tom Ray in his critique of Kurzweil's book "The Age of Spiritual Machine."

One of the things I found fascinating about the Hyperion Trilogy was the concept of the "AIs," intelligences that evolved in the information networks of the future. Not AIs built by humans to human design specifications, but rather AIs that evolved in the primordial digital soup of a vast information network.

Tom Ray's work on evolving machine intelligence was the basis for that bit of science fiction. What is refreshingly different about Ray's work is how he tries to escape from anthropomorphic thinking about artificial intelligence.

It is his claim that biological intelligent beings were produced by evolution, and the best way to create silicon intelligent beings is the same. To this end he developed the first Tierra program. It had a mechanism to let programs evolve, but there was no "artificial" human motivation, like searching for food, that drove the evolution. Rather, these were just programs trying to reproduce themselves, competing for CPU cycles and memory.

In other words, Ray's work goes exactly opposite the working definition of AI for this newsletter. Rather than building a virtual machine antithetical to a computer's nature, he was seeking to evolve intelligence totally within the realm of "data" and "processing."

Of course, he had to write a virtual machine to do it.

His virtual machine had a machine language designed to support evolutionary change, and an original program that made replicas of itself in memory. But mutation would enter into the replicas from time to time. The result was replicating programs evolved that were much smaller and faster than the original. Also parasitic programs evolved that used code from other programs, and hostile and friendly programs.


But his programs never got much beyond that, and he figured the problem was the limitation of a single machine. This led rise to Network Tierra, whereby the unused cycles of all the machines on the Internet could be used to house a "game preserve" where digital creatures were free to evolve.

Tom Ray's work is an excellent example of what can happen when disciplines cross. He is not a programmer. He is a zoologist. And his interest in evolving intelligence in a digital medium was motivated to a large degree in the possibility of creating a laboratory where the mechanism of evolution could be better studied.

Based on his latest writings, it appears as if the Network Tierra has slowed due to technical difficulties. His creatures were consuming too much band width. Ray has also moved his focus to some other evolutionary software projects that more closely model organic evolution. These have yielded some very visually pleasing pictures and movies, but that's for a later newsletter.

Egyptian Cucumbers, Citrus Fruit and Cherry Tomatoes

The question of commercial applications of AI might be a peculiarly American one, with its dramatic separation of government, academic and private institutions. The three sectors work closer in other parts of the World.

The Central Laboratory for Agricultural Expert Systems (CLAES) was established by the Egyptian Ministry of Agriculture to optimize the use of agricultural resources and maximize food production. The director of the laboratory is Dr. Ahmed Rafea, who is also chair of the computer science department of Cairo University.

They have fielded a number of systems that seek to optimize production of crops such as cucumbers, citrus fruits and cherry tomatoes, as well as other agricultural related expert systems. These systems are in different states of deployment, some working in the field, others still in research states.

Probably because of the tight relationship between government funding, academia and commercial application, CLAES has had the ability to develop their own set of specialized tools for agricultural expert systems.

These tools were developed to support the KADS development methodology for expert systems. KADS is the result of an a European Esprit-II research project that provides a framework for thinking about and implementing knowledge-based solutions.

The tools illustrate the wide range of options available for building tools. Their primary expert system shell is KROL, A Knowledge Representation Object Language, that was built on top of the logic programming language, Prolog. They have a case base reasoning (CBR) tool written using a relatively new high order language, Mozart, and they have KSR, a Knowledge Sharing and Reuse tool, implemented in C++. (See expert system links below to access post script documentation on KROL and KSR.)

The choices of tools for building tools makes sense. Prolog and Mozart are both higher level languages with abstractions that make it easy to model different types of knowledge representations and the reasoning engines that deal with that knowledge. They are good tools for building expert system and case-based tools.

Their KSR system is more of a library and editing utility, something that fits well within the more conventional programming capabilities of C++.

Thus we see in CLAES the two aspects of AI: the development of virtual machines for a particular task; and the application of those virtual machines to a particular problem domain.

Organizationally, the Egyptian Ministry of Agriculture has leveraged CLAES's expertise and tools for a dozen or so applications. Given the tremendous potential for spreading agricultural knowledge using expert systems, the investment in team and tool building has paid off for them.

Request Line

A few readers asked about connectionism and neural nets. I've included some links on these topics below and will hopefully cover the topics more in later newsletters.

Another reader was interested in high performance workflow expert systems in network applications. As always, there are two issues, the tool and using the tool. For this type of application a tool is needed that can represent the workflow knowledge, and meet the performance constraints of the application.

In this case I see three tool choices based on the performance constraints: 1) pure compiled Prolog rules (as opposed to something layered on top of Prolog); 2) a Rete algorithm-based production system (efficient rule indexing); or 3) a custom knowledge representation and reasoning system written in C++ and tailored to the application.

Given the need for a user-friendly front-end for knowledge engineering, a hybrid approach probably makes the most sense. A front-end designed for expressive, easily-maintained knowledge development and maintenance could compile into a back end form suitable for high performance execution.

For example, user friendly rules could be compiled to either pure Prolog or CLIPS (Rete network production rules) rules.

One commercial site I have worked with provides their users with a spread sheet for expressing pricing and business rules for the mortgage loan industry. The spread sheet rules are then translated, based on application area, to either Prolog or JESS (CLIPS in Java).

What decides whether Prolog or JESS is used? Prolog is used for the more formally precise rules, such as pricing rules. JESS is used for more subjective business rules.

I welcome any thoughts or experiences from readers on this application.


The Best of AI Expert

Each month selected articles from AI Expert are republished on the DDJ AI Expert Web site. Here are some related to this month's issues.

In Practice - AI at Amex [Jan 93, pg 39] -- Harvey P. Newquist III's study of Amex's use of AI, emphasizing the business mechanisms put in place to ensure a successful program.

In Practice - American Express 2 [Feb 93, pg 59] -- Part two of the above article.

The Practical Applications of Prolog [Apr 93, pg 25] -- Al Roth, who was at the time the head of a Prolog advocacy group, provided this summary of Prolog applications.

The Rete Matching Algorithm [Dec 92, pg 24] -- Bruce Schneier explains the Rete algorithm and the hows and whys of its importance in high-performance expert systems.

General AI

Cognitive Systems at Pacific Northwest National Laboratory -- This Department of Energy multiprogram national laboratory does work in AI and provides an excellent site covering many branches of AI. When I first found this site, it had long lists of commercial applications in each area, but as I write this, most of those pages are under construction, although commercial neural networks were alive and well. Oh well, here's the link, keep it for a later date.

Artificial Life

Zen and the Art of Creating Life -- There are a number of summaries of Tom Ray's work, but this one from his earlier days is one of the best.

Tierra Home -- The home page for the Tierra project, with many associated links.

Aesthetically Evolved Virtual Pets -- If you're tired of looking at code and want to see some neat pictures and movies even, this is an article on work using genetic algorithms to steer evolution of three-dimensional creatures moving is a simulated physical world. The creatures swim and walk in imaginative ways.

Knowledge Base Systems

KADS -- The European Esprit II research projects included one whose goal was to move to the next generation of sophistication of expert system development by providing a taxonomy and methodology for expert systems. KADS is the result of that work.

Knowledge Representation Object Language KROL -- An expert system tool from CLAES built on top of Prolog that supports the KADS methodology for developing expert systems. This link leads to a download for a postscript document.

Knowledge Sharing and Reuse (KSR) -- A system designed to allow reuse of "chunks" of knowledge, again from CLAES. This link leads to a download for a postscript document.

CLIPS -- C Language Integrated Production System is, as the name implies, a fast C implementation of the Rete algorithm for production rule systems. It is a very popular tool for many expert system applications.

JESS -- Java Expert System Shell is, as the name hints at, CLIPS in Java.

Logic Programming

Prolog course -- A good Prolog introduction from the Department of Computational Linguistics, University of the Saarland, Denmark, in the center of the Scandinavian hotbed of Prolog implementations. There are many free and commercial implementations of Prolog.

Mozart -- A relatively new language that is designed to support constraint and concurrent programming. It supports logic programming features as well, but in a more general manner. Mozart is freely available for both academic and commercial use.


History of Connectionism -- This "brief" history by David Medler provides an excellent background into neural networks.

Tutorial On Neural Nets -- Dr. Kevin Gurney of the University of Sheffield provides an excellent set of notes on neural nets. A more complete version is available in book form, as explained on the Web site.


Kurzweil's Turing Fallacy -- Tom Ray's critique of Kurzweil's "The Age of Spiritual Machines." You don't need to have read the book to enjoy the critique.