Agent Editor

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.


Menu Bar

The Menu Bar consists of these submenus:

File   Edit   View   Tools   Windows   Help

File

The File menu contains menu items that apply to the container agent.

New Agent
Create a new container agent. Presents a cascade menu with a selection of available agents.
Open Agent
Loads a previously saved, or serialized, AbleAgent into the editor as the container agent.
Save Agent
Saves or serializes the container agent to a file.
Save Agent as
Saves the container agent to a specified file.
Import bean
Loads a serialized AbleBean into the currently selected agent.
Export bean
Saves the currently selected AbleBean to a file.
Preferences
Allows the user to set editor properties and preferences such as the preferred text editor and any custom beans to load.
Printer setup
Brings up the printer setup dialog (not yet implemented)
Print
Prints the contents of the current agent (not yet implemented)
Exit
Leaves the Able Agent Editor.

Edit

The Edit menu contains menu items that apply to a selected bean or to the clipboard.

Cut
Remove the selected AbleBean from the current agent and place it on the clipboard.
Copy
Copy the selected AbleBean to the clipboard.
Paste
Paste the AbleBean from the clipboard to the current agent.
Delete
Remove the selected AbleBean from the current agent.

View

The View menu allows you to select between the connection views offered for the canvas area located on the lower right.

Data Flow
Show the data connections between beans. The active data connection is highlighted.
Event Listeners
Show the event connections between beans.
Property Connections
Show the property connections between beans.

Tools

The Tools menu provides means to open other Able editors and to access some bean manipulation utilities.

Filter Editor
Opens the Filter customizer or translate editor.
RuleSet Editor
Opens the Rule Editor used to create and change rule sets.
Text Editor
Opens the text editor specified in Preferences.
Add bean to Jar
Add the currently selected bean to a jar file.
Remove bean from Jar
Remove the currently selected bean from a jar file.
Add beans to palette
Read a jar file and load all beans with an "able-category" bean attribute to the corresponding bean palette panel.

Windows

The Windows menu lists all currently open Inspector and Properties windows. Selecting an item gives that window focus.

Help

The Help menu displays these help references:

Help topics
A list of task-related topics for the Able Agent Editor.
Agent Editor Reference
Displays this help file for the Able Agent Editor.
Ruleset Editor Reference
Displays the root help file for the Ruleset Editor.
Beans and Agents
Displays the use and implementation of distributed beans and agents.
Rules
Displays the use and implementation of the Able RuleSet bean and inferencing engines.
Tutorial
Displays a tutorial describing creating, using, and saving learning and rules beans using the Able Agent Editor.
Examples
Describes the serialized examples distributed with Able.
JavaDoc Reference
Displays the javaDoc help files for Able. This is a programmer's reference.
Readme
Displays the Able Readme from the root index of all Able documentation.
About
Displays the About dialog with contact and version information.

Process Buttons

The processing buttons, located on the left of the toolbar, are:

step 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.
cycle 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.
run The Run command calls the start method on the container agent which causes the agent to process continuously.
halt The Halt command stops a run or cycle. It calls the stop method on the agent container.  

Bean Palettes

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:

Data Bean Palette

The Data Beans are:

import An Import bean reads data from a flat file and presents it to the connected beans.
impdb A DBImport bean reads data from an SQL database table and passes it to the connected beans.
filter 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
export An Export bean writes data to a flat file or passes it to a custom program.
timsf A Time Series Filter bean collects a set of input records for the prediction agent's use in forecasting.

Learning Bean Palette

The Learning Beans are:

network 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.
bayes 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.
decisiontree 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.
rbfnet 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.
kmap 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.
tdlnet The AbleTemporalDifferenceLearning bean defines a neural network that learns using the previous state values. Temporal difference networks are useful for time-series forecasting.

Rule Bean Palette

The beans related to rules and inferencing are:

rules 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.
script 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.

Agent Bean Palette

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.

nnublue An AbleDefaultAgent is the base Able agent object.
genetic An AbleGeneticSearchAgent provides a flexible environment for using genetic algorithms for search and optimization problems.
nnclass An AbleNeuralClassifierAgent provides a classification function using a back propagation neural network as the classifier model.
nnpredict An AbleNeuralPredictionAgent provides a prediction or regression function. A back propagation neural network is used as the prediction model.  
nncluster An AbleNeuralClusteringAgent provides a segmentation or clustering function. A self-organizing feature map neural network is used as the model.  
script An AbleScriptAgent provides agent capabilities using rulesets to define the init, process, and process timer event actions.
javaScript An AbleJavaScriptAgent provides agent capabilities using JavaScripts to define the init, process, and process timer event actions.

Sample Bean Palette

The sample beans are:

simplebean SimpleAbleBean, a simple example of a custom Able bean.
simpleagent SimpleAbleAgent, a simple example of a custom Able agent.
seneff SampleSensorEffector, an example of a custom agent which uses User-defined Functions as sensors and effectors.
AbleFileWatcher AbleFileWatcher, an example bean that checks for file changes at defined intervals and acts when changes are detected.

Title Line

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.


Agent Tree

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:

ledgry indicates that the bean is not initiated and incapable of processing data.

ledblu indicates that the bean is active, ie, it has been initiated and can process data.

ledgrn indicates that the bean is active and is processing timer events.


Agent Canvas

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.


Status Line

The status line displays the latest message provided by the editor.


Context Menus

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.