The Agent Building and Learning Environment (ABLE) is a Java-based toolkit for developing and deploying hybrid intelligent agents and agent applications. ABLE provides a set of reusable JavaBean components, called AbleBeans, along with several flexible interconnection methods for combining those components to create software agents. AbleBeans implement data access, filtering and transformation, learning, and reasoning capabilities. Function-specific AbleAgents are provided for classification, clustering, prediction, and genetic search. Application-specific agents can be constructed using one or more of these AbleBeans. AbleAgents are situated in their environment through the use of sensors and effectors, which provide a generic mechanism for linking them to Java applications. A GUI-based interactive development environment, the Able Agent Editor, is provided to assist in the construction of AbleAgents using AbleBean components.
ABLE is meant to make your life easier if
The ABLE design philosophy is to provide a set of reusable Java components (JavaBeans) and a light-weight framework for combining them to build intelligent components (agents). ABLE provides Sensors and Effectors to allow application developers to easily plug the agent into their Java application environment.
The ABLE Editor provides a nice GUI environment for building and testing custom learning and reasoning algorithms. The Able Inspectors use standard Java introspection to display state information about the custom beans you create, and provide a way to view the data in graphical form such as bar charts, line plots, and time plots. It is fairly easy to take an existing Java algorithm and package it as an AbleBean for use with the rest of the AbleBeans provided in the ABLE toolkit.
Although not officially certified by Sun, the ABLE toolkit and all of the AbleBeans and AbleAgents provided are written entirely in Java and should run on any version 1.2 JVM. The Able editor and AbleBean customizers use Swing.
No. The Able bean customizers depend on Swing support.
In theory yes. AbleBeans and AbleAgents are standard JavaBeans. We still have testing to do to confirm this. Though we do not endorse or recommend any specific tool, our developers use JBuilder (TM and copyright by Borland International), VisualCafe (TM and copyright by Symantec Corporation), and the Java Development Environment (copyright by Paul Kinnucan and distributed under GNU General Public License).
The ABLE scripts are designed so that they calculate environment variable values from the directory in which they reside. See for instance \bin\runnit.bat for the CLASSPATH and ABLE_HOME settings used. The lib directory contains jar files which should be in your class path.
The ABLE core beans are primarily meant for use in the ABLE editor. They support the ABLE buffer connections which allow data flow between beans.
There are two ways of using the ABLE core beans, through the ABLE editor and through a Java development environment.
A neural network based agent usually consists of AbleImport beans to provide the training and test data, an AbleFilter to scale the data, the neural network bean itself, and another AbleFilter to scale or transform the neural network output. The ABLE suite also includes a set of three neural network agents for classification, prediction, and clustering.
ABLE supports both standard boolean if-then rules and fuzzy rule systems. You must create a rule set using the respective rule customizer.
The NeuralPredictionAgent bean can be used to perform regression functions.
The NeuralClusteringAgent bean can be used to perform clustering functions.
The NeuralClassifierAgent bean can be used to perform classification.
The GeneticSearchAgent provides a generic search mechanism over a population of GeneticObjects. These objects may in turn define other AbleBeans or AbleAgents so that you can optimize over neural network architecture or parameter spaces, for example.
The Able editor provides specific functions for constructing Agents out of the Able beans. If you only want to use the AbleAgent beans then any Java bean builder tool should work fine. AbleBean-unique functions include the data flow (buffer) connections, display bean state information, and the Able Inspectors which are very useful for testing and debugging neural networks.
You can select a specific container agent by selecting File/New/... and picking the kind of agent you want. Note that all AbleAgents are containers and so you can add AbleBeans to them. Once configured, you can serialize the agent out to a file for use in any Java application.
You need to refer to the Able application notes which are part of the ABLE documentation under /able/docs.
Able provides a distributed agent platform based on Java RMI. All of the AbleBeans and AbleAgents provided are derived from the AbleObject and AbleDefaultAgent classes are fully remotable. The able.platform package provides support for distributed multi-agent systems. This function is not completely tested and documented in this release.
The Able Inspector uses introspection to display information concerning the AbleBean states, either in text or graphic formats. For graphics, Able Inspectors use the KLGroup JChart graphics package.
The startup program for the Able editor is platform dependant. Scripts are provided as follows:
Windows: | runnit.bat |
OS/2: | runnit.cmd |
Unix: | runnit.sh |
Run the script file from the bin
directory where Able
is installed. These scripts assume the JDK/JRE executable
version of your choice is defined in your PATH
environment variable.
A set of examples are provided with the ABLE suite. These consist of serialized AbleAgents (*.ser) and corresponding Able Editor environment (*.ser.env) files. Look in the /examples/... directories, or follow the links through the Able GUI reference to the examples package.
Make sure that your environment is set up for Java 1.2. Your PATH environment variable should include the directory containing java.exe. Your CLASSPATH environment variable should contain any jar files you intend to read into the editor environment; Able jar files will be added to your CLASSPATH dynamically by the script.
Make sure that your environment is set up for Java 1.2. Able jar files are in the lib directory; your application may require one or more of these jar files to be specified in your compile CLASSPATH.
This is most likely because the ABLE_HOME environment variable is not set, or is set incorrectly. The scripts provided with Able such as runnit.bat calculate and set ABLE_HOME from the starting directory. The Windows .bat scripts work only on English machines. If you have a non-English system or you are not using a script provided with Able, you will need to define and set the ABLE_HOME environment variable to a value such as C:\able1_1b.
When you obtain the product through IBM Alphaworks, you must have download both the executable and help and documentation packages. Both packages must be unzipped/untarred into the same root directory for help to function.
This is most likely because the ABLE_HOME environment variable is not set, or is set incorrectly. The scripts provided with Able such as runnit.bat calculate and set ABLE_HOME from the starting directory. If you are not using a script provided with Able, you will need to define and set the ABLE_HOME environment variable to a value such as C:\able1_1b.
Able is currently a research project with minimal support. Please send comments and questions to ableinfo@us.ibm.com and we will try to help you as best we can. When you describe your problem, please help us help you by providing environmental information such as your operating system name and version, Java version and provider, environment settings for PATH and CLASSPATH, and internet browser and version.