The Agent Building and Learning Environment (ABLE) is a toolkit for constructing hybrid intelligent agents in Java. The graphical development environment is called the Able Agent Editor which is used to construct Able Agents.
For a detailed description of how to use the Able agent Editor, see the Tutorial. To learn how to perform specific tasks click here.
The Menu Bar consists of these submenus:
The File menu contains menu items that apply to the container agent.
The Edit menu contains menu items that apply to a selected bean or to the clipboard.
The View menu allows you to select between the connection views offered for the canvas area located on the lower right.
The Tools menu provides means to open other Able editors and to access some bean manipulation utilities.
The Windows menu lists all currently open Inspector and Properties windows. Selecting an item gives that window focus.
The Help menu displays these help references:
The processing buttons, located on the left of the toolbar, are:
![]() |
The Step command reads a single input from the active data import bean and passes it to all connected beans. It calls the process method on the agent container once. |
![]() |
The Cycle command reads and passes the number of inputs specified by the steps per cycle variable from the Preferences menu item. It calls the process method on the agent container the specified number of times. |
![]() |
The Run command calls the start method on the container agent which causes the agent to process continuously. |
![]() |
The Halt command stops a run or cycle. It calls the stop method on the agent container. |
The Bean Palettes contain the beans provided with Able. Beans you develop can be added to a palette also.
Add a bean to the current agent by selecting the desired palette and clicking on the desired bean. The beans provided with ABLE are organized by toolbar palette as:
The Data Beans are:
![]() |
An Import bean reads data from a flat file and presents it to the connected beans. |
![]() |
A DBImport bean reads data from an SQL database table and passes it to the connected beans. |
![]() |
A Filter bean transforms the data into a specific representation, usually for a neural network or a ruleset bean. Filter transformations are defined with the Filter Editor. |
![]() |
An Export bean writes data to a flat file or passes it to a custom program. |
![]() |
A Time Series Filter bean collects a set of input records for the prediction agent's use in forecasting. |
The Learning Beans are:
![]() |
The AbleBackPropagation bean defines a neural network that learns using the supervised backward propagation of error technique. Its settings can be adjusted to influence the learning process and network architecture. Backpropagation networks are useful for classification and prediction. |
![]() |
The AbleNaiveBayes bean learns a probabilistic model from training data, and then uses Bayes rule to assign the most likely class to a previously unseen instance. |
![]() |
The AbleDecisionTree bean builds a hypothesis or decision rule in DNF (Disjunctive Normal Form) represented as a tree graph. Decision trees are useful in classification. |
![]() |
The AbleRadialBasisFunctionNet bean defines a neural network that learns using one of three basis functions to adjust its weights. Radial basis function networks are useful for predicting values, and use self-organizing maps to first organize the data into areas of operation. |
![]() |
The AbleSelfOrganizingMap bean defines a neural network that learns using the self-organizing map technique. Self-organizing maps are useful for subsetting data into representative clusters. |
![]() |
The AbleTemporalDifferenceLearning bean defines a neural network that learns using the previous state values. Temporal difference networks are useful for time-series forecasting. |
The beans related to rules and inferencing are:
![]() |
An AbleRuleSet bean contains a single ruleset created by the Able Rule editor and processes data using one of the provided inference engines. The rule-base is maintained with the RuleSet Editor. |
![]() |
An AbleCommonRules bean can be used to provide an interface to the IBM alphaWorks CommonRules package. This bean will be loaded only if CommonRules is installed. |
The agent beans are considered functional beans. To use them, all that is needed is to provide a data source and a data definition file.
![]() |
An AbleDefaultAgent is the base Able agent object. |
![]() |
An AbleGeneticSearchAgent provides a flexible environment for using genetic algorithms for search and optimization problems. |
![]() |
An AbleNeuralClassifierAgent provides a classification function using a back propagation neural network as the classifier model. |
![]() |
An AbleNeuralPredictionAgent provides a prediction or regression function. A back propagation neural network is used as the prediction model. |
![]() |
An AbleNeuralClusteringAgent provides a segmentation or clustering function. A self-organizing feature map neural network is used as the model. |
![]() |
An AbleScriptAgent provides agent capabilities using rulesets to define the init, process, and process timer event actions. |
![]() |
An AbleJavaScriptAgent provides agent capabilities using JavaScripts to define the init, process, and process timer event actions. |
The sample beans are:
![]() |
SimpleAbleBean, a simple example of a custom Able bean. |
![]() |
SimpleAbleAgent, a simple example of a custom Able agent. |
![]() |
SampleSensorEffector, an example of a custom agent which uses User-defined Functions as sensors and effectors. |
![]() |
AbleFileWatcher, an example bean that checks for file changes at defined intervals and acts when changes are detected. |
The Title Line, located between the toolbar and the tree, displays the name of the agent container, indicates whether it has been modified, and shows the name of the agent whose constituent beans are displayed in the canvas.
The tree on the left shows the containing agent and each of its constituent beans. If a bean is an agent, it may be expanded to display or edit that agent's constituent beans. Rightclick on a bean to display its context menu.
Each bean displayed in the tree shows its state in a color-coded icon:
indicates that the bean is not initiated and incapable of
processing data.
indicates that the bean is active, ie, it has been initiated and
can process data.
indicates that the bean is active and is processing timer events.
The Agent Canvas on the right shows the contents of the current agent open in the tree. The view may be changed to show the different kinds of connection relationships that exist between an agent's constituent beans. Agent properties can be edited by rightclicking on the background whitespace to bring up the context menu. Active data connections are displayed with a green line while inactive connections are drawn in black. Event connections are drawn in blue and property connections are drawn in red.
The status line displays the latest message provided by the editor.
Context menus are the popup menus that appear when you click on a bean in the Agent Canvas or Agent Tree with the right button. A menu specific to that bean will appear. Through this menu the bean's settings or properties can be displayed and changed. If you right-click on the background whitespace, the context menu for the container agent appears.