This accurate and extremely clear book presents a step-by-step guide to Prolog Programming through 4 stages: declarative, procedural, advanced, and metaprogramming with an emphasis on artificial intelligence. It covers a wide range of topics and many new techniques and programming tools. * Numerous examples, fully solved problems with explanations, and additional problems for practice show students how to apply the techniques discussed and how to avoid common errors. * Unique implementation of logical negation and quantified goals provides a form of logical negation useful in expert systems and database query-answering systems. * Applications to expert systems, database query-answering systems and natural language processing provide new and powerful techniques of metaprogramming for the construction of large and complex systems. * Unique chapter on object-oriented programming and simulation provides a favorable alternative to traditional simulation programming. * Praised by reviewers for its superior coverage of data structures and control structures. Included with this book is software containing all of the Prolog Programs found in this book. "This book has the possibility of being The Prolog Reference Book I would recommend the book for all the high quality examples alone." Roy Freedman, Inductive Solutions, Inc. "This is the strongest book (in Prolog programming) on the market, by virtue of its coverage. The author hits a lot of the tried and true stuff in Prolog as well as some new departures." Kevin Reilly, University of Alabama at Birmingham "The writing style is very clear and the explanations are logically presented. Students with no background in Prolog should be able to read the first two-thirds of this book and understand all of it." Clint Smullen, University of Tennessee "The overall balance of the work is reasonable and appropriate. The organization is good, the examples and problems are excellent I believe it will be an excellent book for Prolog and AI courses." Quang van Tran, Oklahoma State University "There seems to be hardly any programming problem which is not dealt with in one place or another. This should enable a very rich range of courses to be developed around the book." Christopher Hogger, Imperial College, London