In this file we very briefly go through the steps to get an agent up
and running.  This assumes you know some basics about JAF and MASS. 
The example shown below should have been done for you already, but it
will help you when generating a new agent if you walk through each
step and see what the files are and what they look like.  The agent
configuration has already been done for the included example agent, so
if you just want to skip to running it, go right to step 5.

1) Make your agent directory in config.  We'll assume our agent
   will be an "example" agent.
      Ex. mkdir config/example

2) Make your agent config file.  This contains the JAF properties for
   your agent, and also points to any external data files you might be
   using.  Make sure you point your JAR and WRITE commands to the same
   directory to keep things clean.  The components used by the agent
   are also specified in this file.
      Ex. config/example/example.cfg

   Take a look at the example config file to get an idea of the sort
   of data provided to the agent.

3) Add in any external data files you might be using.  These should
   be packaged using the JAR command in the config file mentioned
   above.
      Ex. config/example/example.ttaems
   
   You may not have any external files at all.  These are usually
   large, standalone files used by various agent components.  For
   instance, the example above is a Taems task structure file used by
   the agent to plan and schedule its activities.

4) Process your config file.  This will make the .gnt file in step 6
   which contains the runtime parameters for the example agent.  make
   uses the perl script "makeconfig" in the bin directory to process
   this file.  You should run the "make" command from the root JAF
   directory.
      Ex. make config/example/example.cfg

   If you do not have the "make" utility, you can try running the
   script by hand if you have at least perl 5, like this:
      Ex. perl ./bin/makeconfig config/example/example.cfg

   If you also don't have perl, you can also generate this file by
   hand with a regular text editor (it has a very simple syntax). 
   Look at the example.gnt file for more information.  You will also
   need to generate the jar file containing the agent's external data
   sources (the .ttaems file, in this case).  This is done like this:
      Ex. jar cvf config/example/example.jar config/example/example.ttaems

   Note:  Because the .cfg file can generate several other files, the
   included Makefile is not able to auto-process it.  Remember to
   re-make it with one of the commands above when you make changes.

5) Run the simulator (http://mas.cs.umass.edu/research/mass/)

   Note that Mass simulator is a separate download, it is not included
   in this distribution.  Once you have obtained it, see its README
   file for information on how to run it.

   Make sure the Port variables match in the Mass configuration file
   (simulator.cfg) and the agent's configuration file.  Also make sure
   the Host variable is set to the host address of the computer Mass
   is running on.

   A standalone version of the same agent is also included, which does
   not require Mass to run.  Skip this step if you are running that
   agent.

6) Run the Mass agent,
      Ex. make config/example/example.gnt
   or to run the standalone version of the example agent:
      Ex. make config/example/standalone-example.gnt

   If you don't have the "make" utility, here is what the actual execution
   line could look like:
      Ex. java -classpath $CLASSPATH:./classes:./lib/jaf-extensions.jar:./lib/jaf.jar:./lib/taems.zip:./lib/utilities.zip agent.mass.Control --config config/example/example.gnt

   When running, use Mass (or the Control component's menu for the
   standalone agent) to pause and restart the agent's execution.  You
   may also want to look at the agent's "Conditioned Taems Views"
   under the WindowManager component to monitor the agent's progress.

Later on, you can create new files in the src directory to work with
your new agents, or you can add libraries to the lib folder to use
preexisting code.

---

General Notes:

JAF requires Java 1.4 or better, and the support programs assume some
sort of CLI with minimal shell support (GNU utilities, make, perl 5).
See http://java.sun.com for details on obtaining Java.

The dtc application included with this package is a C++ binary
compiled for x86 Linux, Sparc Solaris, Dec Alpha, Win32, and Mac OSX,
and thus will not run on other platforms.  If this is a problem,
please contact us.

More information on JAF can be found at:
      http://mas.cs.umass.edu/research/jaf/

More information on TAEMS can be found at:
      http://mas.cs.umass.edu/research/taems/

More information on DTC can be found at:
      http://mas.cs.umass.edu/research/dtc.html

---

Windows Notes:

The easiest way to get JAF to work under Windows is to download and
install Cygwin (www.cygwin.com).  This includes such utilities as perl
and make, which will allow you to use the extra utilities provided
with JAF.  You will also need to install an appropriate Java SDK.

Note that under Windows, the Java classpath separator is ';' instead
of a colon.

The dtc.win32.exe binary requires the cygwin1.dll bundled with Cygwin
to run.  In addition, you must specify DTC property to be
"./bin/dtc.win32.exe", as the shell script which normally auto-
selects the appropriate binary will not work in windows when called
from java.

---

OSX Notes:

You must install the OSX Developer Tools to use all of JAF's
utilities.  Instructions for downloading this can be found at
http://developer.apple.com.

---

Release Notes:

- 1.5.4

Updates for Java 1.5 compatibility

- 1.5.3

Improved parameter documentation
Added copy method to Taems
Added brief nonlocal method example (see otheragent.gnt)

- 1.5.2

Added Javadoc documentation
Added the ExampleProblemSolver shell component
Added JAF file descriptions in the CONTENTS file
Added DTCNative for Linux (x86)
Added Control ability to read JAF configuration file from jar file
Added standalone, non-Mass example agent
Parameter info now sorted by defining class and name

- 1.5.1

Adds the LogViewer component

- 1.5

Reorganized agent execution procedure
Included additional dtc binaries
Numerous component updates and additions

- 1.4

First public release

- 1.2

Control looks for contentWord identifiers now
Added SimpleProblemSolver example problem solving component
Re-enabled grammar based reaction scripting
Updated WaterHeaterProblemSolver to use Sensor component
Added facility support to Log
Fixed a bug in Sensor which could cause a crash on agent start up
Fixed the overwrite warning bug when using beanbox saved agents
Added ResourceModeler component

- 1.1

Changed directory structure.
Restricted release to the more stable JAF core.

- 1.0

Initial release.

----

 This code was written at the Multi-Agent Systems Lab.
 Department of Computer Science, University of Massachusetts,
 Amherst, MA 01003.

 Copyright (c) 1997-2001 UMASS CS Dept. All rights are reserved.

 Development of this code was partially supported by:
    The Defense Advanced Research Projects Agency (DARPA) 
    and Rome Laboratory, Air Force Materiel Command, USAF, 
    under agreement number F30602-97-1-0249. 
