Building Expert Systems in Prolog is aimed at
the Prolog programmer interested in either building expert systems or
experimenting with various expert system techniques.
The author chooses a step-by-step approach to building
systems, explaining the concepts and showing the Prolog code at each
stage. The book builds on simple beginning systems and progresses up to
relatively sophisticated expert system tools. It does not emphasize
techniques of logic programming or the particularities of Prolog, but
rather, emphasizes Prolog as an efficient software development tool,
and teaches how to build expert systems and design the necessary tools.
It is recommended (but not required) that the reader use a Prolog
interpreter along with reading this book, to experiment with the
various
Prolog examples given throughout the text.
Chapters cover:
Introduction
Using Prolog's Inference Engine - a built-in backward
chaining inference engine that can be used to partially implement some
expert systems
Backward Chaining with Uncertainty - describes an
expert system shell, called Clam, which supports backward chaining with
uncertainty
Explanation - an important aspect of expert systems
is the ability to explain their behavior
Forward Chaining - discusses a forward chaining rule
based system and its expert system applications. It shows how the
forward chaining system works, how to use it, and how to implement it
quickly and easily using Prolog
Frames - sections on the code, data structure, the
manipulation predicates, and using frames
Integration - covers foops (frames and Oops), room
configuration, and a sample run
Performance - describes various indexing schemes can
be used to speed up that pattern matching process.
User Interface - object oriented window interface,
developer's interface to windows, high-level window implementation, and
low-level window implementation
Two Hybrids - describes two similar expert systems,
which were developed at Cullinet Software, a large software vendor for
IBM mainframes, VAXes, and PCs. The first, CVGEN, set the system
generation (sysgen) parameters for the run time behavior of the system.
The second, AIJMP, set all of the parameters that ran an automated
installation procedure
Prototyping - Prolog is a powerful tool for
prototyping the application
Rubik's Cube - describes a Prolog program that solves
Rubik's cube. The program illustrates many of the knowledge engineering
problems in building expert systems
Learn Prolog Now! is an introduction to the Prolog
programming language which focuses on clarity and a
down-to-earth approach.
This textbook is widely used at university
departments around the world, and for self study.
Carefully revised in the light of reader's feedback, and now with
answers to all the exercises, here you will find the essential material
required to help you learn Prolog.
Chapters cover:
Facts, Rules, and Queries - gives simple examples of
Prolog programs,
and an introduction to the systematic study of Prolog
Unification and Proof Search - discusses unification
in Prolog,
and explains how Prolog unification differs from standard
unification. The chapter also explains the search strategy
Prolog uses when it tries to deduce new information from old using
modus ponens
Recursion - introduces recursive definitions in
Prolog, and highlights mismatches between the declarative meaning of a
Prolog
program, and its procedural meaning
Lists - introduces lists, an important
recursive data structure often used in Prolog programming
Arithmetic - introduces Prolog's built-in
abilities for performing arithmetic and applies them to simple list
processing problems
More Lists - defines append/3 and two ways of
reversing a list
Definite Clause Grammars - introduces context free
grammars (CFGs) and some related concepts. It also introduces definite
clause grammars (DCGs), a built-in Prolog mechanism for working with
context free grammars
More Definite Clause Grammars - examines two
important capabilities offered by DCG notation, and discusses status
and limitations of DCGs
A Closer Look at Terms - introduces the == predicate,
a detailed examination of term structure, and introduces operators
Cuts and Negation - explain how to control Prolog’s
backtracking behaviour with the help of the cut predicate,
and how cut can be packaged into a more structured form, namely
negation as failure
Database Manipulation and Collecting Solutions -
discusses database manipulation in Prolog, and built-in
predicates that let us collect all solutions to a problem into a single
list
Working With Files - concerned with various
aspect of file handling and modularity
Prolog and Natural Language Analysis provides a concise
and practical introduction to logic programming and the
logic-programming language Prolog both as vehicles for understanding
elementary computational linguistics and as tools for implementing the
basic components of natural-language-processing systems.
The main objective of Prolog and Natural-Language
Analysis is to provide a working understanding of basic computational
linguistic and logic programming concepts.
Throughout this book, the specific concepts and
techniques are given rigorous theoretical justification and are
demonstrated with working programs that show how Prolog can be used to
solve actual
problems in syntax, parsing, and semantic intepretation. These examples
culminate in a simple working natural-language question-answering
system written in Prolog. Extensive bibliographic notes point the
reader to related research and further reading.