IBM®
Skip to main content
    USA [change]    Terms of use
 
 
 
    Home    Products    Services & solutions    Support & downloads    My account    
IBM Research

Agent Building and Learning Environment (ABLE)


ABLE: Agent Building and Learning Environment Overview

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.


  About IBM  |  Privacy  |  Legal  |  Contact