Computer software is getting larger and more complex everyday. The demands for present day software are so high that itís becoming very difficult to create a single program that encapsulates all the functionality. Apart from the increasing complexity of computer software, computer software also keeps requiring more computing power. A lot of programs require more computing power then a simple computer system can offer. To solve this problem computer software is distributed across multiple computer systems. This again increases the complexity of the software. It all results in programs that are complex, have taken a long time to develop and still contain many bugs.
An increasingly popular approach is to split up functionality over smaller programs; thus not only spreading computing power, but also program logic. The small programs can be developed and operated separately. A Multi Agent System (MAS) is a clear example of this approach. An agent can be seen as a small computer program that operates autonomous and is designed to fulfill a specific task.
Multi agent systems use a collection of agents to accomplish a goal thatís larger then simply the sum of all the tasks of the agents. One of the problems of MASí is that the number of agents can grow rapidly and again may be too large for a single computer system to handle. Therefore the MAS needs to be distributed amongst multiple computer systems.
Distributing a MAS is in general easier then distributing an arbitrary computer program, because functionality is already divided in small parts. The only thing that has to be taken care of is to keep the links between these small parts even when they are operated on different computer systems.
Different MASí often have a lot of functionality in common. Agents need to be able to find each other, send messages to each other, share some global information, etc. In order to help with these common tasks agent frameworks are created. An agent framework provides all common functionality for a MAS. An agent developer can create his MAS using the tools the framework offers, not having to worry about how messages are send from a to b, but only caring about the functionality of his MAS.
Spyse is such an agent framework that is developed at TNO DenV
and DECIS Lab. Throughout this research project we will examine different aspects of agent frameworks like how to run efficiently many agents on one or multiple computer systems. Solutions we find will be implemented in Spyse.
To conclude this study we will look at a software project that applied an agent approach namely a semantic network. Semantic networks have the tendency to become very large and are in need of a distributed approach. We will describe what agent technology can do for such a semantic network and will implement a prototype of an agent based semantic network.