1st Edition. — John Wiley & Sons, 1994. — 256 p. — ISBN: 978-0471941521.
For many reasons it is a pleasure for me to recommend this book. I am especially pleased, in
particular, because it relieves me of the temptation to write a revised edition of my own
book, Logic for Problem Solving. Similarly to my own book, this book aims to introduce the
reader to a number of topics — logic, Artificial Intelligence and computer programming —
that are usually treated as distinct subjects elsewhere. Not only does this book succeed in its
aim, but it goes further than my own book by showing how to implement the theory in
runnable Prolog programs. Both the theory and the programs are presented incrementally in
a style which is both pedagogically sound and, perhaps even more importantly, teaches the
reader by example how new ideas and their implementations can be developed by means of
successive refinement.
The latter parts of the book present a number of recent extensions of Logic
Programming, most of which have been accessible previously only in conference
proceedings and journal articles. As with the earlier parts of the book, this part shows how
these extensions can be implemented effectively in Prolog. These extensions include
abduction (the generation of explanations), default reasoning and Inductive Logic
Programming. The Prolog implementations build upon the technique of metalogic
programming, which is introduced earlier in the book, and which is one of the most
powerful and characteristic techniques of Logic Programming.
The field of Logic Programming is fortunate in being well served by many excellent
books covering virtually every aspect of the subject, including its theory, applications and
programming. This book by Peter Flach is an important addition to these books, filling a gap
both by including new material on abduction and Inductive Logic Programming and by
relating Logic Programming theory and Prolog programming practice in a sound and
convincing manner.