FIPA96/06/03 18:27
FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS nyws012
Source: Agostino Poggi and Giovanni Adorni
(University of Parma)

Software requirements for physical agents


FIPA's standardization should require agent subsystems development by means of object teschnology and different implementation languages. In fact, agent technology might be built on the top of object technology, because an agent is a natural extension of an object and, more important, because this solution allows to add the features of object technology (i.e., extendibility, reusability, flexibility, ...) to the features of agent technology (i.e., autonomy, social ability, responsiveness,...). Moreover, the implementation of agent subsystems with different languages is useful because agents will be used for different types of application that require some features offered by different types of languages (e.g., while C++ is more suitable to develop real time application, Java is more suitable to develop internet applications, where code mobility is more important that high speed).

The implementation of FIPA's subsystems through different programming languages might make heavy the development of agent templates to be specialized for different applications. However, when a programmer develops an agent system, he will be able to use all the FIPA's subsystems and so he will usually write only the code of the "brain" of the system.

The "brain" of an agent system usually manages the coordination of the different subsystems and the interaction with the other agens; therefore, its code does not depend on the type of application and may be written into any of the different programming languages chosen by FIPA.

A solution limiting the amount of code to be written might be the definition of a "minimal" agent programming language that could become a standard for programming agent "brain". Such language should have the following features: i) a limited set of primitives and programming constructs to make more convenient its use than the use of a low level language; ii) an interface to the most common low level languages to reuse some useful software libraries and FIPA's subsystems; iii) an efficient implementation to allow the development of systems in all the possible application domains; iv) a set of code translators, one for each of the (chosen) programming languages.

A fundamental task of standardization should be the definition of a set of primitives for inter-agent communication. These primitives might be defined starting from KQML and KIF. Different agent applications work on different types of data and require different types of interaction and different types of communication protocol. Then, a good solution might be that the definition of an extendible hierarchy of sets of primitives for inter-agent communication that specialize a minimal set of primitives (i.e., the primitives used by all the agents) for the different agent applications.

Agostino Poggi and Giovanni Adorni

Dipartimento di Ingegneria dell'Informazione

University of Parma, Viale delle Scienze, 43100 Parma, Italy

Email: {poggi, adorni}@CE.UniPR.IT