
	  Mini Programs from "Inside Computer Understanding"

		   Common Lisp Implementation Notes
			    07 March, 1991


0. Intro:

  This directory contains Common Lisp implementations of the mini
programs from "Inside Computer Understanding" by Schank & Riesbeck,
1981.  These programs have been written to run in any standard Common
Lisp environment, and should work without modification.  See the last
section on support if they do not work in your lisp environment.  The
programs are identical in functionality to those in the book with the
exception that some of the functions have been optimized to achieve
more reasonable performance.

  In order to use these programs effectively you will have to get a
copy of the text, since a lot of critical documentation is not
repeated in the source code, nor are the exercises for extending the
programs.

1. How to get this code (if you can't FTP it):

	FTP to cs.umd.edu (128.8.128.8)
	login as anonymous
	cd /pub/schank/icu
	mget *
	(say yes to the questions)

   Note: Those without the ability to ftp this code should contact
         Bill Andersen (see address below), to make special 
         arrangements.

2. Contents of this directory:

  "for.lisp" - This is the generalized iteration macro found, among
other places, in "Artificial Intelligence Programming", Charniak, et.
al. 1987.  An older version of it is used in the original versions of
the mini programs.  This is a nice macro, and makes the code more
readable for novice CL programmers.

  "cd-functions.lisp" - A set of functions for manipulating and
matching lisp representations of Conceptual Dependency formulas.  They
follow the conventions in the book with the exception that the colons
in functions like ROLE:PAIR have been replace with a dash, e.g.
ROLE-PAIR.

   "micro-sam.lisp" - Mini version of the SAM (Script Applier
Mechanism) script-based story understander.  Includes examples.

   "micro-eli.lisp" - Mini version of the ELI (English Language
Interpreter) CD parsing program.  Includes examples.

   "micro-tale-spin.lisp" -  Mini version of the TALE-SPIN story
generation program.  Includes examples.

   "micro-politics.lisp" - We have a Scheme version of this around
somewhere.  It could be converted to CL if someone was inclined to
do it.  Feel free to volunteer.

   "micro-pam.lisp" - Coming soon.

3. How to use the programs:

  The micro programs all use "for" and "cd-functions".  These files
are loaded by REQUIRE forms in the respective mini programs.  The best
way to set things up, then, is to put "for" and "cd-functions" in a
path where REQUIRE can find them.  Most lisp implementations look in
an implementation-specific library for such files.

  Given that, all you have to do is to load the appropriate file into
lisp.  The top-level function to invoke for each program is documented
in the source and in the text.

4. Support (such as it is)

  This project is being distributed free of charge with no implied
warranty or support.  Users should report compatibility problems.
There shouldn't be any, but one never knows.  You should also report
lisps under which these run (and with any necessary modifications).  I
will add this information to this file.

  Lisps this code has been run in:
	Macintosh Common Lisp 1.3.2
	Ibuki Common Lisp
	Austin Kyoto Common Lisp V 1.492

  As far as questions are concerned, you may feel free to contact me
by email.  Implementation gripes / suggestions for improvement will be
gladly accepted.  However, I reserve the right not to answer and
furthermore will not answer questions dealing with the material in the
text.

  Correspondence can be addressed to
    Bill Andersen
    Department of Computer Science 
    University of Maryland 
    College Park, Md. 20742
    waander@cs.umd.edu (US internet)

