Table of contents : Cover Title Page Copyright Page Table of Contents Preface PART I: Introduction 1 Natural Language Processing 1.1 Natural Language Interfaces 1.2 The Linguistic Application of NLP 1.3 NLP as a Tool for Linguistic Research 1.4 Further Reading 2 The Challenge of Natural Language Processing 2.1 Knowledge of Linguistic Structure 2.2 Ambiguity and Contextual Knowledge 2.3 The Process of Language Understanding 2.4 Psycholinguistics and NLP 2.5 Further Reading PART II: The Fundamentals of Prolog Programming 3 Facts 3.1 Facts 3.2 Asking Simple Questions in Prolog 3.3 Compound Questions 3.4 Questions with Variables 3.5 Finding Alternative Answers: Backtracking 3.6 Using Variables in Facts 3.7 Further Reading 4 Rules and Complex Names 4.1 Rules 4.2 How Prolog Answers Questions Using Rules 4.3 Structured Objects 5 Lists and Recursive Rules 5.1 Lists 5.2 Recursive Rules 6 Developing Prolog Programs 6.1 The Meaning of Prolog Programs 6.2 Designing Programs 6.3 Laying Out Programs 6.4 Search Trees 6.5 Search Strategies 6.6 Tracing a Proof 6.7 Some Common Programming Errors 6.8 Further Reading 7 Built-in Predicates 7.1 Input and Output 7.2 fail 7.3 consult and reconsult 7.4 Modifying the Database 7.5 Defining Operators 7.6 The Cut 7.7 Program Listing PART III: Natural Language Processing with Prolog 8 Finite State Grammars and Sentence Recognition 8.1 Sentence Frame Grammars 8.2 Parsing and Recognition Using a Sentence Frame Grammar 8.3 An Alternative Notation for Sentence Frame Grammars 8.4 A Finite State Grammar-based Recognisor 8.5 Extending the Range of Finite State Grammars 8.6 Further Reading 8.7 Program Listings 9 Recursive Transition Networks 9.1 Phrase Structure 9.2 Extending the Network Notation 9.3 An RTN-based Recognisor 9.4 Implementing an RTN Recognisor in Prolog 9.5 Extending the RTN Notation 9.6 Further Reading 9.7 Program Listings 10 Phrase Structure Grammars 10.1 Phrase Structure Grammars 10.2 A Simple Phrase Structure Recognisor 10.3 Directly Representing Phrase Structure Grammars in Prolog 10.4 Efficiency 10.5 Difference Lists 10.6 The Grammar Rule Notation 10.7 Further Reading 10.8 Program Listings 11 Definite Clause Grammars 11.1 Grammar Symbols as Complex Terms 11.2 Procedure Calls 11.3 Further Reading 11.4 Program Listings 12 Alternative Parsing Strategies 12.1 A Top-down Interpreter 12.2 Problems with Top-down Parsing 12.3 A Bottom-up Interpreter 12.4 A Left-corner Interpreter 12.5 Deterministic Parsing 12.6 Chart Parsing 12.7 Further Reading 12.8 Program Listings Solutions to Exercises Glossary of Terms Index