ADRIAN@IBM.COM.UUCP (02/19/87)
A new book which may be of interest to readers of AILIST--
KNOWLEDGE SYSTEMS AND PROLOG
A LOGICAL APPROACH TO EXPERT SYSTEMS
and
NATURAL LANGUAGE PROCESSING
Adrian Walker (Ed.), Michael McCord,
John F. Sowa, Walter G. Wilson
Addison-Wesley, 1987
This book introduces Prolog and two important areas of Pro-
log use-- expert systems and natural language processing
systems (together known as knowledge systems.) The book
covers basic and more advanced Prolog programming, describes
practical expert systems and natural language processing in
depth, and provides an introduction to the formal basis in
mathematical logic for the meaning of Prolog programs.
HIGHLIGHTS
y Presents significant examples of knowledge systems, with
useful parts of actual programs included.
y Describes important research results in expert systems,
natural language processing, and logic programming.
y Integrates many trends in knowledge systems by bringing
diverse representations of knowledge together in one
practical framework.
y Though useful with any Prolog implementation, provides
an introductory tutorial followed by advanced program-
ming techniques for IBM Prolog.
TABLE OF CONTENTS
Chapter 1. Knowledge Systems: Principles and Practice (Adrian Walker )
1.1 What is a Knowledge System?
1.2 From General to Specific, and Back Again
1.3 Prolog and Logic Programming
1.4 Knowledge Representation
1.5 Getting the Computer to Understand English
1.6 Some Trends in Knowledge Acquisition
1.6.1 Learning by Being Told
1.6.2 Learning by Induction from Examples
1.6.3 Learning by Observation and Discovery
1.7 Summary
Chapter 2. A Prolog to Prolog (John Sowa)
2.1 Features of Prolog
2.1.1 Nonprocedural Programming
2.1.2 Facts and Predicates
2.1.3 Variables and Rules
2.1.4 Goals
2.1.5 Prolog Structures
2.1.6 Built-in Predicates
2.1.7 The Inference Engine
2.2 Pure Prolog
2.2.1 Solving Problems Stated in English
2.2.2 Subtle Properties of English
2.2.3 Representing Quantifiers
2.2.4 Choosing a Data Structure
2.2.5 Unification: Binding Values to Variables
2.2.6 List-Handling Predicates
2.2.7 Reversible Predicates
2.3 Procedural Prolog
2.3.1 Backtracking and Cuts
2.3.2 Saving Computed Values
2.3.3 Searching a State Space
2.3.4 Input/Output
2.3.5 String Handling
2.3.6 Changing Syntax
2.4 Performance and Optimization
2.4.1 Choosing an Algorithm
2.4.2 Generate and Test
2.4.3 Reordering the Generate and Test
2.4.4 Observations on the Method
Exercises
Chapter 3. Programming Techniques in Prolog (Walter Wilson)
3.1 How to Structure Prolog Programs
3.1.1 Logic Programming Development Process
3.1.2 Declarative Style
3.1.3 Data Representation
3.1.4 Structuring and Verifying Recursive Programs
3.1.5 Control Structures
3.2 Techniques and Examples
3.2.1 Meta-level Programming
3.2.2 Graph Searching
3.2.3 Balanced Trees
3.2.4 Playing Games and Alpha-beta Pruning
3.2.5 Most-Specific Generalizations
3.3 Summary of Prolog Programming Principles
Exercises
Chapter 4. Expert Systems in Prolog (Adrian Walker)
4.1 Knowledge Representation and Use
4.1.1 Rules
4.1.2 Frames
4.1.3 Logic
4.1.4 Summary
4.2 Syllog: an Expert and Data System Shell
4.2.1 Introduction to Syllog
4.2.2 A Manufacturing Knowledge Base in Syllog
4.2.3 Inside the Syllog Shell
4.2.4 Summary of Syllog
4.3 Plantdoc
4.3.1 Using Plantdoc
4.3.2 The Plantdoc Inference Engine
4.3.3 Weighing the Evidence
4.3.4 Summary of Plantdoc
4.4 Generating Useful Explanations
4.4.1 Explaining Yes Answers, Stopping at a Negation
4.4.2 Explaining Yes and No Answers, Stopping at a Negation
4.4.3 Full Explanations of Both Yes and No Answers
4.5 Checking Incoming Knowledge
4.5.1 Subject-Independent Checking of Individual Rules
4.5.2 Subject-Independent Checking of the Knowledge Base
4.5.3 Subject-Dependent Checking of the Knowledge Base
4.6 Summary
Exercises
Chapter 5. Natural Language Processing in Prolog (Michael McCord)
5.1 The Logical Form Language
5.1.1 The Formation Rules for LFL
5.1.2 Verbs
5.1.3 Nouns
5.1.4 Determiners
5.1.5 Pronouns
5.1.6 Adverbs and the Notion of Focalizer
5.1.7 Adjectives
5.1.8 Prepositions
5.1.9 Conjunctions
5.1.10 Nonlexical Predicates in LFL
5.1.11 The Indexing Operator
5.2 Logic Grammars
5.2.1 Definite Clause Grammars
5.2.2 Modular Logic Grammars
5.3 Words
5.3.1 Tokenizing
5.3.2 Inflections
5.3.3 Slot Frames
5.3.4 Semantic Types
5.3.5 Lexical Look-up
5.4 Syntactic Constructions
5.4.1 Verb Phrases, Complements, and Adjuncts
5.4.2 Left Extraposition
5.4.3 Noun Phrases
5.4.4 Left-Recursive Constructions
5.5 Semantic Interpretation
5.5.1 The Top Level
5.5.2 Modification
5.5.3 Reshaping
5.5.4 A One-Pass Approach
5.6 Application to Question Answering
5.6.1 A Sample Database
5.6.2 Setting up the Lexicon
5.6.3 Translation to Executable Form
5.6.4 A Driver for Question Answering
Exercises
Chapter 6. Conclusions (Adrian Walker)
Appendix A. How to Use IBM Prolog (Adrian Walker & Walter Wilson)
A.1 A Simple Example
A.2 Detailed Programming of a Metainterpeter
A.3 Testing the Metainterpreter at the Terminal
A.4 VM/Prolog Input and Output
A.5 VM/Prolog and the VM Operating System
A.6 Tailoring VM/prolog
A.7 Clause Names and Modules
A.8 Types, Expressions, and Sets
A.9 MVS/Prolog
Appendix B. Logical Basis for Prolog and Syllog (Adrian Walker)
B.1 Model Theory Provides the Declarative View
B.2 Logical Basis for Prolog without Negation
B.3 Logical Basis for Prolog with Negation
B.4 Further Techniques for Interpreting Knowledge
Bibliography
Author Index
Subject Index
The book can be ordered direct from Addison-Wesley. In the
USA, phone 617-944-3700, ask for the Order Department, and
quote title, authors, and Order Number ISBN 09044.
Adrian Walker
IBM T.J. Watson Research Center
PO Box 704
Yorktown Heights
NY 10598
Tel: 914-789-7806
Adrian @ IBM.COM