Table of contents : Cover Title Page Copyright Page Dedication Page Preface Table of Contents 1 Introduction 1.1 About Prolog and about this book 1.2 The rudiments of logic 1.3 Some drawbacks of FOPL 1.4 MRS 1.5 Other kinds of logic 1.6 The basics of Edinburgh Prolog 1.7 The real prologue Summary 2 On style and method 2.1 Some Prolog idioms 2.2 Commenting and layout 2.3 Some design observations 2.4 The promised answer Summary Exercises 3 The working environment 3.1 Working with Prolog 3.2 A simple toolkit 3.3 A simple timing harness, and the LIPS rating 3.4 Devising other utilities Summary Additional exercises 4 Three studies of program design 4.1 Alphabetic sums 4.2 A special-purpose matcher 4.3 An essential tool: line input Summary Additional exercises 5 Some general issues 5.1 Searching in general 5.2 About setof/3 and related predicates 5.3 Some uses of variables 5.4 Simple is not always best Summary Additional exercises 6 CRESS: an expert system shell 6.1 About simple rule-based expert systems 6.2 A basic design and some consequences 6.3 The program Summary Additional exercises 7 A simple disjunctive-concept learner 7.1 Machine learning 7.2 A simple learning program Summary Additional exercises 8 An active chart parser 8.1 About chart parsing 8.2 The data structures 8.3 The active chart parser 8.4 Further work 8.5 Thoughts on efficiency Summary Additional exercises 9 A meta-level interpreter 9.1 Meta-level interpretation 9.2 Meta-interpretation of Prolog 9.3 A practical meta-interpreter Summary Appendix A Quintus Prolog A.1 Built-in predicates A.1.1 Obsolete DEC-10 Prolog predicates A.1.2 Quintus Prolog operator declarations Appendix B Some Prolog suppliers References