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