[comp.ai] Request for opinions on AI textbook

flach@kubix.UUCP (Peter Flach) (07/04/89)

Next semester I will be teaching an introductory course on AI
Techniques. Several standard AI techniques, such as search, Theorem
Proving, meta interpreters, machine learning etc. will be illustrated
using Prolog. For this course, I consider to use the book

	'Artificial Intelligence and the Design of Expert Systems',
	George F. Luger and William A. Stubblefield, Benjamin/Cummings 1989.

To me, the book seems quite good, although I came across some strange
mistakes such as 'The Horn clause calculus is equivalent to the full
first-order predicate calculus for proofs by refutation' (p.206).

Does anyone know this book? Do you think it's good? Did you find any
other errors? Do you know of other good textbooks?
Any comments are appreciated.

--Peter A. Flach                           Institute for Language Technology
UUCP: ..!mcvax!kubix!flach                 and Artificial Intelligence (ITK)
BITNET: flach@htikub5                      Tilburg University,   PObox 90153
(+31) (13) 66 3119                         5000 LE  Tilburg, the Netherlands

Duchier-Denys@cs.yale.edu (Denys Duchier) (07/05/89)

In article <295@kubix.UUCP>, flach@kubix (Peter Flach) writes:
> To me, the book seems quite good, although I came across some strange
> mistakes such as 'The Horn clause calculus is equivalent to the full
> first-order predicate calculus for proofs by refutation' (p.206).

In what sense is it a mistake? Resolution is refutation-complete and a
set of clauses can be transformed into an equivalent set of
horn-clauses by inventing new predicates to name the negation of
existing predicates. For instance (NOT (P a)) can be replaced by (Q a)
provided you add the horn clauses:

		(OR (NOT (P x)) (Q x))
		(OR (NOT (Q x)) (P x))

--Denys

geddis@polya.Stanford.EDU (Donald F. Geddis) (07/06/89)

In article <65402@yale-celray.yale.UUCP> Duchier-Denys@cs.yale.edu (Denys Duchier) writes:
>For instance (NOT (P a)) can be replaced by (Q a)
>provided you add the horn clauses:
>
>		(OR (NOT (P x)) (Q x))
>		(OR (NOT (Q x)) (P x))

But this is equivalent to (P x) = (Q x).  What you want is (NOT (P x)) = (Q x),
which is
		(OR (P x) (Q x))		; ~P =>  Q, ~Q =>  P
		(OR (NOT (P x)) (NOT (Q x)))	;  P => ~Q,  Q => ~P

Unfortunately, the second of these is not a horn clause.

	-- Don Geddis
-- 
Geddis@Polya.Stanford.Edu
"There is no dark side of the moon, really.  Matter of fact, it's all dark."

Duchier-Denys@cs.yale.edu (Denys Duchier) (07/06/89)

In article <10429@polya.Stanford.EDU>, geddis@polya (Donald F. Geddis) writes:
> Unfortunately, the second of these is not a horn clause.

Oops! I guess it just goes to show one shouldn't post on the 4th of July.
--Denys

bennett@m2.SRC.Honeywell.COM (Bonnie Bennett) (07/13/89)

In March of 1989 I posted a request on referecns to AI texts.  I'm finally
getting around to compiling the results.

Generally, it seems that text book choices are religious beliefs (
``Tanimoto is great'', ``Tanimoto is terrible'').  

About 20 people replied.  Here are the recommendations they made (details
on the books follow):

Text           No. of specific recommendations

GENERAL

Charniak          3
Tanimoto          3  
Rowe              2
Nilsson           2
Tarvik            1
Winston           1
Rich              1
Luger             1
Geneserth         1


LISP
Winston           1
Wilensky          1

Prolog
Bratko            1
Sterling          1


Note that this survey was very informal---it represents the preferences of
those who chose to respond that week, etc.

Following are a few comments with some text references for interested
readers (search for author or title because these are random comments):



Patrick Henry Winston's book 'Artificial Intelligence' would be ideal.  It
introduces the issues and discusses the role of LISP with clarity.  Not much
about Prolog, but then, why would anyone want to know anything about Prolog?




AI -
Charniak and McDermott (the new one, I forget its name)

Programming -
AI Programming by Charniak, McDermott, Riesbeck and Meehan

Both -
The red Winston book (not the second edition though)
Inside Computer Understanding by Schank and Riesbeck




Here at San Diego State University we are using the Winston and Horn 
"Introduction to Artificial Intelligence" book as a general AI text, and
the Winston book "LISP" 3rd edition, for teaching/learning the Lisp language.
I have read both cover to cover, and have found them to be excellent.
We have also toyed with using the AI book by Charnicak (sp), but have found
that it is somewhat more difficult to use as an introductor text.





for a brief and not very technical discussion - Elaine Rich's book.

for more detail    1. Charniak and McDermott
                   2. Winston
                   3. Nillson
(choose the one you like best from these three)

THE book for lisp  1. Charniak et al (AI Programming)

THE book for prolog 1. Clocksin and Mellish (Programming in Prolog)





My favorite AI text is by Steve Tanimoto, "The Elements of AI". It is
basically a "let's do some practical AI in LISP" book. I suggest you
get a copy and have a good look at it. In the UK it costs #24 sterling,
which may be a little too expensive, but at least it's a better book
than Charniak & McDermott's "Intro to AI"





I use Charniak and McDermott, and the course went very well.  I like
the book 'cos it is not too over the top, and realtes the subjects
clearly to other knowledge.  I will be using it again next year.




Neil C. Rowe: Artificial Intelligence through Prolog (Prentice-Hall)

Although a little weak on the theoretical aspects of ai, the chapters
covering search techniques and rule based system are pretty good. It
also includes an introduction to the Prolog language. If you want a good
Prolog text, I recommend

Sterling & Shapiro: The Art of Prolog (MIT press)

We (University of Umea, CS) use the Sterling book in our grad level course
in Logic Programming. The Rowe book is used in our grad level course in AI.
Sometimes this course is studied by students with no prior experience in Prolog
programming, thereby our choice of litterature.




Artificial Intelligencce and the design of expert systems, by George F. Luger
and William A. Stubblefield of New Mexico, published by Addison Wesley in 1989.

Unlike what the title suggests, the emphasis is not on expert systems alone,
but the book includes a broad survey of topics and applications after
introducing important theoretical bases of AI (search and predicate calculus). I
would seriously consider using it as a text.

The other books to consider are:
(in decreasing order of: complexity and rigorous theory)

1. Genesereth and Nilsson: Logical Foundations of AI. Morgan Kaufmann, 1987.
(Very theoretical; don't know too much more about it.)

2. Nilsson: Principles of AI, Morgan Kaufmann/Tioga, 1980.
(Good work theoretically; only MENTIONS several applications after dealing with
search, logic and planning)

3. Charniak and McDermott: Introduction to Artificial Intelligence. Addison
Wesley, 1985.
(Very good. Some topics treated at a  shallower level than 2 above, but most
topics are given both breadth and depth. I would place Luger and Stubblefield at
the same level as this, more or less.)

4. Tanimoto: The elements of Artificial Intelligence. Computer Science Press,
1986?
(Suited for a senior undergrad level.)

Others, older ones:

Winston's book on AI (Addison Wesley) - shallow and broad, in my view





 The one thing that I have found is that AI classes have a fine
distinction;  AI programming, and AI theory or background.  Unfortunately,
I've not found a book that can be used for both.  The best general 
introduction to AI is "Introduction to Artificial Intelligence" by
Charniak and McDermott.  The best book on AI programming (using Lisp)
is "The Elements of Artificial Intelligence" by Tanimoto.  This book
uses Lisp and has a brief introduction to Lisp, but it is not a Lisp
text.  A supplemental text is recommended.  The choice depends upon the
dialect of Lisp used.  For common Lisp "Lisp" by Winston and Horn is 
best.  For Franzlisp "Lispcraft" by Wilensky is best.  The best text for
Prolog is "Artificial Intelligence Programming with Prolog" by Bratko.  
If you want a broader approach to Prolog/Logic Programming then "Programming
with Logic" by Maier and Warren is good, and of course "Programming in
Prolog" by Clocksin and Mellish is the defacto "standard".  They admit
the book wasn't intended as a text, but it is now in the third edition
with changes to keep it up to date, and other changes to make it more
effective as a text.  Finally, as a supplemental text for students with
an inadequate logic background I recommend "The Logical Foundations of
Artificial Intelligence" by Genesereth and Nilson.  It was designed
for a sophomore level course at Stanford, but it does a good job of
introducing the basic logical ideas without a lot of math logic.  For a
good solid foundation you couldn't go wrong with using Tanimoto, a Lisp
reference, and Bratko.  

---hope this helps!   Bonnie