The Agent Building and Learning Environment (ABLE) is a Java-based framework,
component library, and productivity toolkit for building intelligent agents that
can use machine learning and reasoning.
ABLE is designed to be used by applications involved in autonomic computing,
business rules, data mining, diagnostics, forecasting, planning, policy management,
retail, and resource balancing.
ABLE’s reasoning component includes a rule-based programming language known as
ABLE Rule Language (ARL).
ABLE provides a distributed platform allowing agents to be configured, run,
and managed across different physical systems.
The ABLE framework provides a set of Java interfaces and base classes used
to build a library of JavaBeans called AbleBeans.
The library includes AbleBeans for reading and writing text and database data,
for data transformation and scaling, for rule-based inferencing using Boolean
and fuzzy logic, and for machine learning techniques such as neural networks,
Bayesian classifiers, and decision trees.
Developers can extend the provided AbleBeans or implement their own custom algorithms.
Rulesets created using the ABLE Rule Language can use any combination of rule engines
from simple procedural if/then/else scripting and decision trees,
to inference engines that do backward or forward chaining,
to inference engines that also use predicate logic, fuzzy logic,
and pattern matching within working memory.
The newest engines are specific to planning and policy applications.
Java objects can be created and manipulated using Able rules.
An Eclipse plugin provides rule editing and debug capability.
How does it work?
Core beans may be combined to create function-specific JavaBeans called AbleAgents.
Developers can implement their own AbleBeans and AbleAgents and plug them into Able's
Agent Editor.
Graphical and text inspectors are provided in the Agent Editor so developers
can view bean inputs, properties, and outputs as machine learning progresses
or as values change in response to methods invoked in the interactive development
environment.
Application-level agents can be constructed from AbleBean and AbleAgent components
using the Able Agent Editor or a commercial bean builder environment.
AbleBeans can be called directly from applications or run autonomously on their own thread.
Events can be used to pass data or invoke methods, and can be processed in a synchronous
or asynchronous manner.
The distributed AbleBeans and AbleAgents are:
| Data beans |
|
| AbleImport |
reads data from flat text files |
| AbleDBImport |
reads data from SQL databases |
| AbleFilter |
filters, transforms, and scales data
using translate template specifications |
| AbleExport |
writes data to flat text files |
| AbleDBExport |
writes data to SQL databases |
| AbleTimeSeriesFilter |
collects periods of data for use in predicting future
values |
| |
|
| Learning beans |
|
| Back Propagation |
implements enhanced back propagation
algorithm used for classification and prediction |
| Decision tree |
creates a decision tree for
classification |
| Naive Bayes |
learns a probabalistic model for
classification |
| Radial Basis Function |
uses radial basis functions to adjust
weights in a single hidden layer neural network for
prediction |
| Self-Organizing Map |
clusters data using Gaussian
neighborhood function |
| Temporal Difference Learning |
uses reinforcement learning for time
series forecasting; gradient descent is used to adjust
network weights |
| k Nearest Neighbors |
classifies patterns according to nearest
neighborhood calculation |
| |
|
| Rules beans |
Inferencing engines include:
- Backward chaining
- Forward chaining
- Forward chaining with working memory
- Forward chaining with working memory and Rete'-based
pattern matching
- Fuzzy logic
- Planning
- Predicate logic
- Script
|
| |
| Agents |
|
| Genetic search |
manipulates a population of genetic
objects which may include AbleBeans |
| Neural classifier |
uses back propagation to classify data |
| Neural clustering |
uses self-organizing maps to segment
data |
| Neural prediction |
uses back propagation to build
regression models |
| Rule |
contains a ruleset whose ruleblocks are processed
when the agent's corresponding methods are executed. |
| Script |
uses rulesets to define its init, process, and timer
actions. |
| JavaScript |
name JavaScripts to run when the agent's
init, process, or time actions are called. |
| RemoteAgent |
agent which can wrapper any AbleBean for remote
access |
| |
|
| Autotune |
includes an AutotuneAgent, Neural2WayLoadBalanceController,
BasicNeuralAutotuneController, and Fuzzy2WayLoadBalanceController |
| |
|
| Conversation |
includes an
AblePlatformConversationAgent, and AutoConversationSetup
and DefaultDecisionMaker beans |
| PetriNet |
used for state machines, workflow, and simulations;
includes the agent itself and place beans to contain tokens,
and transition beans to permit the movement of tokens from place to place. |
Please contact the research team by eMail at ableinfo@us.ibm.com.