Previous treatments of Artificial Intelligence (AI) divide the subject
into its major areas of application, namely, natural language
processing, automatic programming, robotics, machine vision, automatic
theorem proving, intelligent data retrieval systems, etc. The major
difficulty with this approach is that these application areas are now so
extensive, that each could, at best, be only superficially treated in a
book of this length. Instead, I have attempted here to describe
fundamental AI ideas that underlie many of these applications. My
organization of these ideas is not, then, based on the subject matter of
their application, but is, instead, based on general computational
concepts involving the kinds of data structures used, the types of
operations performed on these data struc- tures, and the properties of
con'trol strategies used by AI systems. I stress, in particular, the
important roles played in AI by generalized production systems and the
predicate calculus. The notes on which the book is based evolved in
courses and seminars at Stanford University and at the University of
Massachusetts at Amherst. Although certain topics treated in my previous
book, Problem- solving Methods in Artificial Intelligence, are covered
here as well, this book contains many additional topics such as
rule-based systems, robot problem-solving systems, and structured-object
representations.