This chapter is an abrupt shift to symbol processing techniques however note that to a considerable extent it is a symbol processing analog to the material in the two pattern recognition chapters. Rules are simply another way to do pattern recognition and they have advantages over networks in many types of problems. They look a lot like small neural networks.
If you want to put more emphasis on symbol processing in your course then you could actually start with section 4.2 go on to the online PROLOG chapter or the online LISP chapter.
Even though I think its quite reasonable to say that expert systems do the job of a human expert and can be made using either connectionist or symbolic techniques the term originated with the symbolic systems and therefore some people tend to think of expert systems as symbolic and not connectionist.
I needed a notation to describe symbol processing algorithms and rather than make up my own I thought it was better to use an established symbolic language, PROLOG, to do this. As I've already said PROLOG comes with some pattern matching capabilities built-in and this makes it more convenient to use for this purpose than LISP. Sometimes people take to one of these two languages better than the other. Personally if I had to write large programs I'd rather use LISP because its easier to trace what its doing when a bug comes up. I've had a lot of trouble trying to follow debugging output from the PROLOG interpreters I've used.
PROLOG relies on facts and rules, simple rules of the form "if A then B" or "if A and B then C". This section covers simple PROLOG including recursion and the most elementary list processing.
First let me note that there is this idea of "knowledge engineering" and "knowledge based systems" and it may not be a bad idea to use such terms instead of "artificial intelligence" since these systems seldom display what I require for even a minimal amount of intelligence.
This section does the forward and backward chaining versions of Winston's well-known animal identification problem. The forward and backward chaining programs are in the files forward and backward in the PROLOG Programs Package.
The only comment I can make here is something that I will really make a point of in Chapter 7. There are many ways to do pattern recognition with cases, rules and networks. Rules are in effect a compressed form of knowledge, that is, you can take many cases and compress (think of the UNIX compress program or the JPEG compression algorithm for pictures) them down to a few rules. Unfortunately the compression of facts about the world down to rules leaves you with problems like conflict resolution.
Note here how PURE symbol processing does not work very well in reality for many (most?) problems, it has to be extended by the use of real numbers. The symbol processing camp has called such systems symbolic anyway.
This section contains descriptions of famous expert systems. Many expert systems are in use today but little is published about them because companies do now want their competition to know how they work.
Note also that real expert systems need a decent human interface and that's why some sample output is provided in this section.
SOAR is a nice example of how a program can learn "rules" although to me these "rules" look more like memories. The program keeps these rules/memories of key situations so it does not have to search all over again the next time the same situation comes up. The fact that for some problems it gives the power law of practice results is intriguing.
I've never puttered around with SOAR but I'd like to if I can ever find the time. If you want to putter around with it, it is available as source code, a binary for Intel machines and a binary for the Mac by FTP from Carnegie-Mellon or consult the SOAR home page at Carnegie-Mellon. There is a SOAR FAQ at: http://acs.ist.psu.edu/soar-faq/soar-faq.html. SOAR researchers have a commercial site,
There is a little bit of a comparison here between rules and networks used in a couple of expert systems. There is also another interesting development going on, extracting rules from backprop networks and even using rules to make networks.
The Thrun article, "Extracting Provably Correct Rules from Artificial Intelligence Networks" by Sebastian B. Thrun is available from his WWW site at the University of Bonn, Germany. There are a number of related papers there as well.
The paper, "A Framework for Combining Symbolic and Neural Learning" by Jude Shavlik is available from the University of Wisconsin at Madison. It concerns starting with a rule set, transforming it into a backprop network, training it and extracting new rules. For related reports by Shavlik and Towell follow this link to the University of Wisconsin at Madison.