March 7, 1997 Known errors in the first printing of Natural Language Processing for Prolog Programmers Michael A. Covington Englewood Cliffs, NJ: Prentice-Hall, 1993 (1994) ISBN 0-13-629213-5 Thanks to Mark Plaksin, Sven Hartrumpf, Benjamin Yuen, Sebastian Varges, and others for pointing these out. ------------------------------------------------------ p. 7 "every verb has hundreds of forms" should read "every verb has over 100 forms". p. 21 The printed text is correct, but the file 'dosengl.pl' distributed with the book had some parentheses missing in the definition of make_string/2, which should read as follows: make_string([H|T],Result) :- name(H,Hstring), make_string(T,Tstring), append(Hstring,Tstring,Result). make_string([],[]). p. 32 last paragraph: "four clauses" should be "five clauses". p. 42 line 5 from bottom: "looks as" should be "looks at". p. 44 caption to fig. 3.4: delete "or both". (Actually, a grammar rule could change both things, but there is no example of it here.) p. 47 para. 3: the "wrong" rule should actually be: s --> np, { write(L2) }, vp. % WRONG! p. 149 [[agr:[person:2]]] should be [agr:[person:2]] p. 165 line 4, after "find them all." add footnote: Sebastian Varges points out that the parser will also loop on a set of rules of the form: S -> X Y Y -> X X -> 0 (0 is null set symbol) Although finite, this grammar has a troubling ambiguity of a kind that apparently does not occur in natural language: an empty constituent can occur either as an X, or as a Y immediately following an X. p. 170 ex. 6.5.2.2: "first clause of chart" should be "second clause of parse" (with 'parse' in typewriter type). p. 206 ex. 7.3.2.1: "both in logical notation and in Prolog" should be "in logical notation; the Prolog versions are already in restrictor-scope format". p. 274 “karakho...” (in 4 places) should be “karahko...” p. 279 s. 9.4.5. para. 2. after "match the input" add foonote: As the cuts in Fig. 9.7 suggest, this implementation ignores some subtleties. Instead of cuts, a more sophisticated system would use a fifth argument to distinguish 'others' arcs, which apply to input that does not match the rules, from situations in which a rule is violated. See Ritchie et al. 1992:21-26. p. 289 para. 2: "Quintus Prolog, and Arity Prolog" should be "and Quintus Prolog". p. 301 line 6: delete "with either". p. 304 At bottom, delete the sentence "These predicates...Chapter 3." p. 312 Footnote 4 is erroneous and should be ignored. (Note the corrected 'testmisc.pl' available herewith.) Appx. A This appendix was originally going to be Chapter 2, and in a few places it says that something "will be" covered in a subsequent chapter. Change to "was" wherever applicable. p. 319 line 10, and files 'readatom.pl', 'readchar.pl', 'readat2.pl': "char_type/1" should be "char_type/3". p. 321 2nd line of listing, and in file 'namenum.pl': "complete_atomics" should be "complete_line/3". p. 323 line 11: same correction as p. 319 line 10.