BOND Installation.
BOND Logo


If you are using Linux or some other Unix system, read first Bond Quick Installation. If it works fine with you, come back here if you want to use more advanced features.

What do I need to run Bond? This version of Bond requires Java 2 (JDK1.2).

Bond can use the following packages (not included in any of the distributions we provide), however, they are not required:
  • To use the Infospheres network engine you need the Infospheres Infrastructure library. The main webpage for the Infospheres project is at http://infospheres.cs.caltech.edu. Download the library from http://www.infospheres.caltech.edu/cgi-bin/Forms/II-1.0.download.cgi.

  • To use the Jess strategies, you need the Jess library, http://herzberg.ca.sandia.gov/jess. We currently use version 5.0b1 (Hit the download link and fill out the license agreement).

  • To write your own strategies in the Python language, you need the JPython library: http://www.jpython.org. Follow the instructions on the download page (http://www.jpython.org/download.html) Depending on how you want to use JPython, you can choose any of the two packages provided (with or without OROmatcher). Download the Python library if you intend to use it.




  • If you use command line tools:

    Run "configure"

    The script will ask you if you want to use

    If you do not have all the extra libraries you can still compile Bond, howeve you have to ignore compilation errors, i.e. run make with option -k. You will need to have all the libraries in your CLASSPATH; if you use sh or any of its derivatives, the relevant command in your .profile could look like

    CLASSPATH=$CLASSPATH:$HOME/classes/II1.0.jar:$HOME/classes/jpython.jar:$HOME export CLASSPATH

    you can either compile all the three main packages (core,services,agent) "in place" or create binary jar files. Unarchive the distribution package and run make without arguments while in the top directory of the newly created source tree to see the details.

    If you compile "in place", add the top directory of the source tree to your CLASSPATH (it should have among others the subdirectories bond and blueprint) and you are almost ready to run Bond.

    If you compiled binary jar packages, add them to your CLASSPATH and you are almost ready to run Bond.

    Now, compile the Resident.java and RunAgent.java files in the top directory of the source tree (if the compilation results in errors, check your CLASSPATH again)

  • If you use integrated development environments, like Inprise JBuilder or Symantec Cafe, you need to create a project file. Please follow the instructions of the IDE. If you do not have the extra libraries, do not include the following .java files that use them in the project: uses Infospheres: bond/core/communicationengine/bondInfospheresCommunicationEngine.java uses jess: bond/agent/strategydb/bondInferenceEngine.java bond/agent/strategydb/bondInferenceStrategy.java uses jpython: bond/agent/strategydb/pythonEmbeddedLanguageStrategy.java bond/agent/strategydb/pythonExternalLanguageStrategy.java




    Running Bond

    While most of the functionality is provided in form of libraries, the Bond distribution ships with example agent definitions in form of Bond blueprints. For example you can run the Ghim using the shell script supplied in the top directory of the source tree. For other agents, use the RunAgent program (run it either as a java program or using the scripts provided), specifying the blueprint file as its argument. You can find blueprints in the blueprint subdirectory, also in e.g bond/application/StockWatcherAgent or bond/application/Inference/Tamagochi (these require compilation of the accompanying .java strategy files, if the top directory of the source tree is in your CLASSPATH you can just run java *.java in the respective subdirectories)

    The services package contains several classes implementing daemon-type functionality useful in a distributed environment (diectory services, persistent storage, authentication, data staging), however, the Bond package hierarchy does not include runnable java programs for them. Instead the user has the choice of either running them (possibly in a non-GUI environment) using the example wrapper programs available in the top directory of the source tree or by running the Resident wrapper program and specifying the names of the classes to be run on the command line. The Resident uses a graphical interface to present status and allow interaction with the activated components.