FAQ for ABLE

1.
What is the Agent Building and Learning Environment?
2.
Why should I use the Agent Building and Learning Environment?
3.
I am an application developer. How will ABLE help me?
4.
I am a student or researcher working with intelligent agents. How will ABLE help me?
5.
What Java platforms are supported? Is it "100% Pure Java"?
6.
Can the beans be used with any builder tool?
7.
Why should I use the Able Agent Editor rather than my favorite bean builder?
8.
How do I start the Able Agent Editor?
9.
Where do I find the environment changes that developers need to use Able?
10.
Where can I use the ABLE beans?
11.
How do I use the ABLE Core beans?
12.
How do I specify the kind of agent I want to build?
13.
How do I build a rule-based agent?
14.
What inferencing algorithms are available?
15.
How do I build a neural network agent?
16.
Where can I use the NeuralPredictionAgent bean?
17.
Where can I use the NeuralClusteringAgent bean?
18.
Where can I use the NeuralClassifierAgent bean?
19.
Where can I use the GeneticSearchAgent bean?
20.
I have an existing Java application and I want to add an agent to it. Where should I start?
21.
I want to build a multi-agent system application. Can I use Able?
22.
How does the Able Inspector work? Can I use it to debug my custom Agents?
23.
Are there examples?
24.
Some screens have problems with repaint and flickering.
25.
When I try to run the Able editor using the "runnit" script for my operating system, I get an error.
26.
When I try to compile my own application, I get "Missing class file" errors.
27.
When I try to run an Able script such as runnit.bat, I get "Class not found" or "Invalid directory" errors.
28.
When I try to load files such as fuzzy rule sets, I get execution errors such as "File not found".
29.
Now that I've installed the latest Able release, my preferences are different then they were with the previous release.
30.
When I select any of the help topics, my browser is unable to locate the URL.
31.
I've thoroughly read all the Able documentation and tried everything I can think of and still have a problem.
1. What is the Agent Building and Learning Environment?
 
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 can provide user-defined functions for use as sensors or effectors for a generic mechanism to link 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.

[Goto Top]

2. Why should I use the Agent Building and Learning Environment?
 
ABLE is intended to provide a productivity aid for developers and researchers:
  1. If you are an application developer, it provides a set of intelligent beans, and an editor for combining them into agents.
  2. If you are doing research on intelligent agents, it provides a flexible Java framework for combining ABLE beans with your algorithms and includes samples to show how agents should be constructed.

[Goto Top]

3. I am an application developer. How will ABLE help me?
 
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. Custom-developed beans and agents can be plugged into the Able Agent Editor.

[Goto Top]

4. I am a student or researcher working with intelligent agents. How will ABLE help me?
 
The ABLE Editor provides an Interactive Development Environment to build and test 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.

[Goto Top]

5. What Java platforms are supported? Is it "100% Pure Java"?
 
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 Java2 version JVM. JDK 1.3 is recommended. The Able editor and AbleBean customizers use Swing.

[Goto Top]

6. Can the beans be used with any builder tool?
 
In theory yes. AbleBeans and AbleAgents are standard JavaBeans. Though we do not endorse or recommend any specific tool, our developers use or have used 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).

[Goto Top]

7. Why should I use the Able Agent Editor rather than my favorite bean builder?
 
The Able editor provides specific functions for constructing Agents from Able beans. If you only want to use the AbleAgent beans, any Java bean builder tool will suffices. AbleBean-unique functions include the data buffer and event connections which can be graphically added and shown in the editr. The Inspector function can display or plot bean state information and is very useful for testing and debugging.

[Goto Top]

8. How do I start the Able Agent Editor?
 
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 require the JDK/JRE executable version of your choice to be defined in your PATH environment variable.

[Goto Top]

9. Where do I find the environment changes that developers need to use Able?
 
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. A description of each jar shipped with ABLE is in the Extending Able document in the Deployment topic (see docs/com/ibm/able/doc-files/AbleExtending.html).

[Goto Top]

10. Where can I use the ABLE beans?
 
The ABLE core beans can be used in any agent. They are meant to be primary building blocks for agents to use for data access, data conversion, and to provide base algorithms such as boolean and fuzzy inferencing and machine learning capability. They support ABLE data buffers, events, and property connections which provide data flow between beans.

[Goto Top]

11. How do I use the ABLE Core beans?
 
There are two ways to useo the ABLE core beans, through the ABLE editor and through a Java development environment.

[Goto Top]

12. How do I specify the kind of agent I want to build?
 
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.

[Goto Top]

13. How do I build a rule-based agent?
 
ABLE supports both boolean if-then rules and fuzzy rule inferencing. You define your variables in the Rule Editor, enter the rule clauses for the desired inferencing engine, and parse the ruleset so that it is executable. You can use features of the Able Agent Editor such as data buffering to pass data to the rule set or inspectors to view rule set intermediate and final results.

[Goto Top]

14. What inferencing algorithms are available?
 
ABLE's rule inferencing is designed to easily swap engines. Backward-chaining, forward-chaining, and mixed-chaining is provided, as well as fuzzy inferencing and pattern-matching. Some inferencing algorithms feature a heavyweight version that supports working memory and a lightweight version without working memory.

[Goto Top]

15. How do I build a neural network agent?
 
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. These agents will generate the required beans to train and test the agent.

[Goto Top]

16. Where can I use the NeuralPredictionAgent bean?
 
The NeuralPredictionAgent bean can be used to perform regression functions, combining many seemingly unrelated attributes to predict a numeric value such as interest rate fluctuation or sales volume.

[Goto Top]

17. Where can I use the NeuralClusteringAgent bean?
 
The NeuralClusteringAgent bean can be used to perform clustering functions, grouping records describing individual demographics so that services can be offered to appropriate subsets of the population.

[Goto Top]

18. Where can I use the NeuralClassifierAgent bean?
 
The NeuralClassifierAgent bean can be used to perform classification, using attributes such as individual credit and purchasing history to detect fraudulent credit card use.

[Goto Top]

19. Where can I use the GeneticSearchAgent bean?
 
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.

[Goto Top]

20. I have an existing Java application and I want to add an agent to it. Where should I start?
 
You need to refer to the Extending Able document in docs/com/ibm/able/doc-files/AbleExtending.html.

[Goto Top]

21. I want to build a multi-agent system application. Can I use Able?
 
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.

[Goto Top]

22. How does the Able Inspector work? Can I use it to debug my custom Agents?
 
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.

[Goto Top]

23. Are there examples?
 
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. Data sources are located in the /examples/datafiles directory.

[Goto Top]

24. Some screens have problems with repaint and flickering.
 
Sometimes screens contain partial images of an another panel screen. JDK 1.2 has documented a bug that may cause panels to contain ghost images of other panels (Sun bug 4265726). We have implemented a workaround which may not fix this problem in all cases, and has a side effect that in some instances causes some screen flicker.

[Goto Top]

25. When I try to run the Able editor using the "runnit" script for my operating system, I get an error.
 
Make sure that your environment is set up for Java2. 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. If your CLASSPATH contains entries which are surrounded by double quotes ("), you will either need to remove the double quotes from your CLASSPATH settings or modify the Able script file to provide a valid parameter for the java.exe -classpath option.

[Goto Top]

26. When I try to compile my own application, I get "Missing class file" errors.
 
Make sure that your environment is set up for Java2. 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.

[Goto Top]

27. When I try to run an Able script such as runnit.bat, I get "Class not found" or "Invalid directory" errors.
 
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_3b. If your CLASSPATH contains entries which are surrounded by double quotes ("), you will either need to remove the double quotes from your CLASSPATH settings or modify the Able script file to provide a valid parameter for the java.exe -classpath option.

[Goto Top]

28. When I try to load files such as fuzzy rule sets, I get execution errors such as "File not found".
 
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_3b.

[Goto Top]

29. Now that I've installed the latest Able release, my preferences are different then they were with the previous release.
 
The file able.preferences is stored in the able home directory. If you would like to use the preferences from a previous release, copy able.preferences from that release's home directory to the new home directory. For example, copy c:\able1_3b\able.preferences c:\able1_3b. Preference files are upward compatible.

[Goto Top]

30. When I select any of the help topics, my browser is unable to locate the URL.
 
When you obtain the product through IBM Alphaworks, you must download both the executable and help and documentation packages. Both packages must be unzipped/untarred into the same root directory for help to function.

[Goto Top]

31. I've thoroughly read all the Able documentation and tried everything I can think of and still have a problem.
 
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 ABLE_HOME, PATH and CLASSPATH, and internet browser and version.

[Goto Top]