Nuin: overall aims and objectives
In this section, I try to outline the primary aims and objectives for the Nuin project, principally in order to ground the design decisions and development priorities that are described elsewhere.
Background: what makes agent systems interesting?
By way of setting the context, the following are a summary of my personal views on why it's an interesting research goal to build agent systems. I don't intend to try to define what an agent system is, others researchers more skilled than I have attempted that, and little consensus has so far emerged.
Briefly, my interest is in building computation systems which the user perceives as acting autonomously, and therefore adopts a different stance in their interactions with the system. The typical example is that the user sees his or herself delegating tasks and responsibilities, rather than commanding and controlling as in a traditional direct-manipulation style of interaction. A whole host of technical, social and ethical problems then arise, together with some exciting possibilities for building computer systems with very different characteristics. The agent in this conceptualization is that part of the system that is identified as being the locus of autonomous behaviour.
Thus, I am not primarily interested as agent societies as a
generalization or extension of distributed object-oriented systems.
As a software developer, I want to be spending my time building
interesting, flexible agent behaviours. The problem is, however, that
most extant software agent platforms concentrate primarily on the
agent society infrastructure: messaging, directory services and so
forth. While such services are necessary for building any serious
scale application, on their own they do not provide sufficient help
for the agent designer to build interesting agents. An agent is an
agent by virtue of what it does, not simply by being a Java sub-class
of an Agent class.
One way to characterise the issue is to compare the number of agent toolkits that have support for agent infrastructure services (large) with the number that provide support for developing BDI, or other deliberative agent architectures (very small).
Objectives
Given this framing, my objectives in designing Nuin are:
- to provide a toolkit for building BDI (Belief-Desire-Intention) agents in Java, with direct support for high-level agent reasoning and behaviours;
- to include direct support for building Semantic Web agents into the BDI framework, as the Semantic Web is becoming an increasingly important milieu in which autonomous agents can sense and act;
- to relate the principles of the design to extant agent architecture theory and standards;
- to build a flexible, robust software that can be used for many different tasks;
- to re-use existing software components where possible, but not bias the implementation unnecessarily towards one particular implementation.
These objectives provide the drivers for the design decisions I have taken. For example, I want to make it possible that an agent designer can build Nuin agents using Jade to provide infrastructure services, while another could use web-services as the infrastructure substrate. This requires the communications services, for example, to be factored out as pluggable components, rather than rely exclusively on an agent platform such as Jade. This approach, incidentally, is essentially congruent with that advocated in the FIPA abstract architecture.
« prev: index | objectives | next: design principles »