1. Tutorial Introduction.- Gives the student a "feel" for what it is like to program in Prolog. Introduces objects, relationships, facts, rules, variables..- 1.1 Facts.- 1.2 Questions.- 1.3 Variables.- 1.4 Conjuctions.- 1.5 Rules.- 1.6 Summary and Exercises.- 2. A Closer Look.- More detailed presentation of Prolog syntax and data structures..- 2.1 Syntax.- 2.2 Characters.- 2.3 Operators.- 2.4 Equality.- 2.5 Arithmetic.- 2.6 Summary of Satisfying Qoals.- 3. Using Data Structures.- Representing objects and relationships by using "trees" and "lists". Developing several example Prolog programs..- 3.1 Structures and Trees.- 3.2 Lists.- 3.3 Membership of a List.- 3.4 Example: Changing a Sentence into Another.- 3.5 Example: Comparing Alphabetic Order.- 3.6 Example: A Parts Inventory.- 4. Backtracking and "Cut".- How a set of clauses generates a set of solutions. Using "cut" to modify the control sequence of running Prolog programs..- 4.1 Generating Multiple Solutions.- 4.2 The "Cut".- 4.3 Common Uses of the "Cut".- 4.4 Problems with "Cut".- 5. Input and Output.- Facilities available for the input and output of characters and structures. Developing a program to read sentences from the user and represent the sentence as a list of words, which can be used with the Grammar Rules of Chapter 9..- 5.1 Reading and Writing Characters.- 5.2 Reading and Writing Terms.- 5.3 Reading English Sentences.- 5.4 Using Files.- 5.5 Declaring Operators.- 6. Built-in Predicates.- Definition of the "core" built-in predicates, with sensible examples of how each one is used. By this point, the reader should be able to read reasonably complex programs, and should therefore be able to absorb the built-in predicates by seeing them in use..- 6.1 Entering New Clauses.-6.2 Success and Failure.- 6.3 Classifying Terms.- 6.4 Treating Clauses as Terms.- 6.5 Looking at the Structure of Terms.- 6.6 Affecting Backtracking.- 6.7 Creating Complex Goals.- 6.8 Equality.- 6.9 Basic Input and Output.- 6.10 Handling Files.- 6.11 Evaluating Arithmetic Expressions.- 6.12 Comparing Numbers.- 6.13 Watching Prolog at Work.- 7. More Example Programs.- Many example programs are given, covering a wide range of interests. New examples include list processing, set operations, symbolic differentiation and simplification of formulae..- 7.1 A Sorted-Tree Dictionary.- 7.2 Searching A Maze.- 7.3 Towers of Hanoi.- 7.4 Improved Parts Inventory.- 7.5 List Processing.- 7.6 Representing and Manipulating Sets.- 7.7 Sorting.- 7.8 Assert and Retract: Random, Gensym, Findall.- 7.9 Searching Graphs.- 7.10 Sift the Two's and Sift the Three's.- 7.11 Symbolic Differentiation.- 7.12 Mapping and Transforming Trees.- 8. Debugging Prolog Programs.- By this point, the reader will be able to write reasonable programs, and so the problem of debugging will be relevant. Flow of control model, hints about common bugs, techniques of debugging..- 8.1 Layout of Prolog Programs.- 8.2 Common Errors.- 8.3 Another Control Flow Model.- 8.4 Usiag Spy Points and Tracing.- 8.5 Fixing Bugs.- 9. Using Grammar Rules.- Applications of existing techniques. Using Grammar Rules. Examining the design decisions for some aspects of analysing natural language with Grammar Rules..- 9.1 The Parsing Problem.- 9.2 Representing the Parsing Problem In Prolog.- 9.3 The Grammar Rule Notation.- 9.4 Adding Extra Arguments.- 9.5 Adding Extra Tests.- 9.6 Summary.- 10. The Relation of Prolog to Logic.- Predicate Calculus, clausal form, resolution theorem proving, logic programming..- 10.1 Brief introduction toPredicate Calculus.- 10.2 Clausal Form.- 10.3 A Notation for Clauses.- 10.4 Resolution and Proving Theorems.- 10.5 Horn Clauses.- 10.6 Prolog.- 10.7 Prolog and Logic Programming.- 11. Projects in Prolog.- A selection of suggested exercises, projects, and problems..- 11.1 Easier Projects.- 11.2 Advanced Projects.- Appendices.- A. Answers to Selected Exercises.- B. Clausal Form - Prolog Programs.- C. The ASCII Code.- D. Different Versions of Prolog.- E. The DECsystem-10 Prolog System.- F. The PDP-11 Unix Prolog System.- G. The LSI-11 RT-11 Prolog System.- H. The ICL 2980 EMAS Prolog System.- I. Other Prolog Systems.