What's New in
OAA 2, a significant rewrite and cleanup of version 1.0,
offers a number of significant improvements and new features.
Here are some of the highlights:
Simpler, more elegant programming model
Three critical areas of agent functionality -- service provision, data stores, and triggers -- are now part of a unified conceptual framework.
Declarations, API calls, and infrastructure in these three areas are consistent, and have been unified where appropriate. Message formats and protocols are more uniform.
Delegation of service requests, data updates, and trigger installation relies on the same strategies and parameters.
More expressive capabilities declarations
Agents can now declare solvables of three different types -- procedure, data, trigger -- which allows the libraries to automate more of the functionality associated with these programming elements. In addition, callbacks, utility values, and several other new parameters may be associated with solvables, so as to modify or extend library behavior in handling them.
Data queries are expressed in the same way, and handled by the same mechanisms, as procedural service requests. A number of new parameters may accompany service requests. These include "advice" parameters, which modify how a request is handled, and "information" parameters, which return information about how the request was handled.
Generalized data storage and maintenance
Data stores can be instantiated on any agent, and updated by any agent. Support is now built in for a number of data query and maintenance options -- such as use of synonyms, data persistence, and unique values.
Trigger types -- communications, data, task -- are more general and better organized. Data triggers may be installed on any agent providing the appropriate data store. Installation of a task trigger results in a callback to application code, to allow agents to provide domain-specific triggering, including triggering based on relational databases and legacy code.
New support for meta-agents
The facilitator offers several new types of "hooks" by which application developers can instantiate meta-agents, to specialize facilitator behavior for specific domains.
Compound goals (coming)
Goals submitted to the facilitator can be composed, using Prolog syntax for conjunction, disjunction, etc. Advice and information parameters can be associated with individual subgoals.
Better structured code
The libraries offer a simpler, more consistent API, cleaner organization, and more complete documentation.
Object-based representations of ICL expressions
The Java library (and other non-Prolog libraries to come) support the construction and accessing of ICL expressions as objects; string parsing is no longer necessary.
Copyright 1999, SRI International.