Kim intended this text as a gentle integrated approach to Prolog, knowledge-based systems (KBSs), and software development, such as might be required in a first course for engineers or scientists with no previous experience in Prolog or KBSs. After a fairly standard review of artificial intelligence, Part 2 (about 100 pages) provides an introduction to Prolog. This approach is far more reasonable than texts that assume programming proficiency or knowledge of logic, with everything covered using examples, and the more difficult aspects of Prolog (such as cut) only briefly introduced. Standard Edinburgh syntax is used, but the author does not discuss whether the examples will work with any Prolog. The implicit assumption is that they will.
Part 3 is a brief survey of KBSs and the techniques used to build them, such as knowledge representation, search strategies, and uncertainty. Here the author tries to do too much, with topics such as frames, inheritance, and forward chaining given about a page each. This material would have to be supplemented to be of any use in class. A chapter on “Knowledge Systems in Industry” is the worst in the book, discussing (like everyone) XCON and a number of old chestnuts no longer in use, such as ISIS and CATS. Part 4 then returns to Prolog and provides three example programs--a robot simulator, a calculus aide, and an investment counsellor. While somewhat simplistic, these programs do give a feel for what a knowledge-based Prolog program looks like and can do.
The oddest thing about this book is three appendices that provide an introduction to computers, viewgraphs for use in a course, and an example project. Totaling 80 pages, these are the sort of things that normally come in a teacher’s manual.
If you need an off-the-shelf, low-level course in Prolog that emphasizes KBSs, this book can provide it. It may also be a useful base for short courses. With the exception of the reviews of AI and KBSs, I liked the book very much--it reads as if the author were excited about the topic at hand, a refreshing change from so many dry programming texts. Students in higher-level courses, however, such as graduate students in an information systems or computer science course, would find this text too simplistic and would require a further text on either KBSs (for a focus on applications) or Prolog (for a focus on programming and AI methods).