[mod.ai] book announcement - Knowlege Systems and Prolog

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