===================================================================== Instructions for downloading and installing Prodigy 4.0. --------------------------------------------------------------------- 1. Downloading a) click on system distribution to get the compressed archive file prodigy-latest.tar.gz 2. Installing a) uncompress the system distribution file, with gnu "gunzip" on a unix machine: % gunzip prodigy-latest.tar.gz b) make the directory where you want to install prodigy, and move the source code file there. Eg: % mkdir /usr/local/prodigy % mv prodigy-latest.tar /usr/local/prodigy c) untar the source code, with the command "tar" on a unix machine: % tar xvof prodigy-latest.tar This will create the subdirectories "system" and "domains" and install many files. If you are short of space you might want to delete the tar file after this step. The manual is in postscript form within the documents directory. You can print it on a postscript printer or view it with ghostscript: "gs" or "gv" on a unix machine. d) edit the file "loader.lisp" to change the value of *prodigy-root-directory* to point to the new home (eg "/usr/local/prodigy/"). The trailing slash "/" is important. If your version of lisp and operating system are not mentioned in the parameters *binary-pathname*, and *binary-extenstions*, then make an entry for it: eg #+(and MY-LISP MY-OS) ".strange-binaries/" The trailing slash "/" is important. You can check whether your lisp is supported by examining the list *features* in a lisp session. e) You must also create the subdirectories for the binaries you need. Eg on unix: % mkdir system/.pmax-allegro % mkdir system/.sparc-allegro-4.1 (You can have any number of these, but the binaries will take about a megabyte each) 3. Compiling prodigy a) In a lisp session, set the variable *load-prodigy-immediately* to nil: > (setf *load-prodigy-immediately* nil) b) load "loader.lisp": > (load "/usr/local/prodigy/loader.lisp") c) call the function load-source > (load-source) d) call the function compile-all > (compile-all) This will probably take a while. If you load "loader.lisp" without setting the variable *load-prodigy-immediately* to nil, it will attempt to load prodigy from the compiled files straight away, which is normally what you want. 4. Testing Try the following commands in lisp: (domain 'blocksworld) (problem 'suss) (run) You should see prodigy create a search tree and find a plan to solve Sussman's anomaly. If you have any problems or questions, please send mail to prodigy@cs.cmu.edu ===================== Instruction Addendum --------------------- Prodigy/Analogy The analogy module is in *prodigy-root-directory*/system/analogy. Note also that you need to create a directory for the binaries of the analogy component and do a compile using a procedure just like you do with the rest of the Prodigy code. That is, follow these instructions: 2.' e') You must also create the subdirectories for the binaries you need. Eg on unix, create a directory such as *prodigy-root-directory*/system/analogy/.sparc-allegro-4.1 3.'Compiling Prodigy/Analogy a') In a lisp session, set the variable *load-analogy-immediately* to nil: > (setf *load-analogy-immediately* nil) b') load "setup2.lisp" after loading Prodigy: > (load "/usr/local/prodigy/system/analogy/setup2.lisp") c') call the function load-analogy-source > (load-analogy-source) d') call the function analogy-compile-all > (analogy-compile-all) Note also that the existing domains that are available for the analgy module exist in a directory structure separate from the standard domains. These domains have case libraries already created. To use these domains, set the *world-path* global variable as the test example below shows. Documentation exists for running Prodigy/Analogy in the file *prodigy-root-directory*/system/ui/documents/analogy.txt Testing the Analogy Module Try the following commands in lisp: (load (concatenate 'string *system-directory* "analogy/setup2.lisp")) (setf *world-path* (concatenate 'string *system-directory* "analogy/domains/")) (domain 'logistics) (replay :domain 'logistics :problem 'p131-new) The Graphical User Interface There exists a number of additional global variables that need adjustment for the graphical user-interface. They are as follows: file: *prodigy-root-directory*/system/ui/ui-start.tcl variables: analogy_setup ui_home world_path def1 def2 user_path canvas_directory file: *prodigy-root-directory*/system/ui/example-param-custom.tcl variable: alternate_path file: *prodigy-root-directory*/system/ui/ui.lisp variables: *tcl-customizations* *post-tcl-customizations* *tcl-home* This last variable points to the binaries for Tcl/Tk. The system expects tcl7.6 and tk4.2. They are available from Sun's Web page at http://sunscript.sun.com/ if you do not have them already. The application programs gunzip (unarchiving utility) and ghostview (postscript previewer) should also be installed on your system. files: *prodigy-root-directory*/system/ui/socket/Makefile and make.config Change the appropriate paths and recompile the C code for the socket interface between Lis and the Tcl/Tk UI. Finally, the UI uses a publically available DAG drawing program. We will get the info to you shortly on where it can be downloaded. It is only used in two small support functions in the UI, so you will be able to do almost everything without it for now. Documentation exists in *prodigy-root-directory*/documents and in *prodigy-root-directory*/system/ui/documents. To run the ui, type (prod-ui) from lisp. To compile the UI follow these instructions as above for analogy and Prodigy itself. 3.''Compiling The User Interface a'') In a lisp session, set the variable *load-ui-immediately* to nil: > (setf *load-ui-immediately* nil) b'') load "loader" after loading Prodigy: > (load "/usr/local/prodigy/system/ui/loader.lisp") c'') call the function load-ui-source > (load-analogy-source) d'') call the function ui-compile-all > (ui-compile-all)