
This file tell you what you need to do to run a demo of ASTL.

Installation
============

     You must unpack the system and have a lisp system available.
     So far I have tested the system in akcl and CMUCL but it probably
     works in many other Common Lisps (but don't depend on it).

     In astl.lsp edit the value for astl-dir for example

         (setq astl-dir "/usr/demo/astl-0.4/")

     Don't put the above in put the directory in which the code is in.
     (Under UNIX, pwd should tell you this).  Also note that the 
     directory string must end in a slash.

     Now start lisp, and load the astl.lsp file

        (load "astl.lsp")

     In some versions of Lisp this file may need to rename
     astl.lisp, but not in akcl.

     Compiling the system
     --------------------

     In order to make the system run at a reasonable speed (even though
     that reasonable speed isn't very fast) you must compile the system.
     You need only do this once for any installation.  Once compiled you
     can play with ASTL description files, writing and editing them and
     you do not need to recompile the whole system.

     To compile the lisp files type

        (compit)

     This will take a number of minutes to do

Running ASTL
============

     Once you have edited astl.lsp and compiled the system you
     can run it.
 
     Start lisp, then load "astl.lsp"

       (load "astl.lsp")
    
     Then load the compiled versions of the system with the following
     command

       (loadit)

     And finally start ASTL itself

       (astl)

     This should give you the astl prompt

     astl>

     You can now type commands (terminated by . like Prolog).

     Commands in ASTL
     ----------------

     Typing help. will give the following choice

     Command options for : ASTL-0.4-beta Jan 93
       load <string>.             : load ASTL description file
       parse (w1 w2 ...).         : parse utterance
       prove <proposition>.       : try to prove proposition
       goalprop <proposition>.    : set goal proposition
       hush [r1 | (r1 r2 ...)].   : do not display relations in output
       unhush [r1 | (r1 r2 ...)]. : (re)display relations in output
       ekn.                       : toggle EKN output display mode
       debug [rules|proof|time].  : switch debug mode for rules or proof on
       undebug [rules|proof|time].: switch debug mode for rules or proof off
       quit.                      : exit from ASTL to lisp
       help.                      : this information
       ().                        : nothing

    You can load an ASTL description by the command

       astl> load "cons1.st".

    Then you can query it.  For examples

       astl> prove *S : [S ! S != <<happy,*Y,1>>].

    Should produce the result

    Solution 1
    ==============
    | SIT2 |     |
    |-------     |
    |  smiles(t) |
    |  happy(t)  |
    ==============

    Solution 2
    ==============
    | SIT1 |     |
    |-------     |
    |  smiles(t) |
    |  smiles(h) |
    |  happy(t)  |
    |  happy(h)  |
    ==============

If something goes wrong
=======================

    If something goes wrong (e.g syntax error in a loading file or
    in a command) the lisp system will go into a break loop.  Sorry
    there is little I can do to stop this.  In akcl if you get an error
    type

       :q

    (returns you to the top level loop)  And restart astl with

       (astl)

REAL DEMO
=========

    Ok you've ignored all the above stuff and you just want run a demo

    1) You *have* to have edited astl.lsp
    2) In you haven't compiled the lisp system
       a) start lisp
       b) (load "astl.lsp")
       c) (compit)  
       d) goto 3 c
    3) If you have compiled the system
       a) start lisp
       b) (load "astl.lsp")
       c) (loadit)
    4) Start astl itself
         (astl)
    5) Load in the simple example cons1.st
         load "cons1.st".
    6) (Don't forget the terminating .) 
       Find out who is happy
         prove *S : [S ! S != <<happy,*Y,1>>].
    7) If you type the wrong thing and enter the error loop type
         :q
         (astl)
       to get back again
    8) For STG description
         load "th-stg.st".
         parse (a man walks).
    9) For DRT description
         load "th-drt.st".
         parse (ds a man walks de).
         parse (ds a man walks he talks de).
         parse (ds every man with a donkey likes it de).
       Note that "beats" isn't in the lexicon.  Also note this
       last example produces a box wider than eighty characters
       This can take up to 30 seconds to generate (sorry)
   10) For DPL-NL description
         load "th-dpl-nl.st".
         parse (ds a man walks de).
         parse (ds a man walks he talks de).
         parse (ds every man with a donkey likes it de).
         

Other demos

Cyclic examples 

    load "cons5.st".
    prove *S : [S ! S != <<sees,h,*T :: [P ! P != <<has,h,3d,1>>],1>>].
    prove *S : [S ! S != <<sees,h,*T :: [P ! P != <<sees,h,
                           *U :: [R ! R != <<has,h,3d,1>>],1>>],1>>].
    prove *S : [S ! S != <<sees,h,*T :: [P ! P != <<sees,h,
                           *U :: [R ! R != <<sees,h,*V ::
                              [Q ! Q != <<has,h,3d,1>>],1>>],1>>],1>>].

Grammar example

    load "gram.st".
    parse (hanako sings).



     


    

