4. Defined Agents

This section describes the purpose of each agent, how it can be used to achieve goals and what its restrictions are.
 

4.1 Queriable Agents

A queriable agent allows other agents to find out about knowledge it collected already. They are defined in the class QueriableAgent.

All queriable agents understand the following messages:

4.2 Data Source Agents

Data source agents represent certain types of data that can be queried. All data source agents are subtypes of the class QueryAgent (which again is a subtype of QueriableAgent).
Currently, two types of data are supported: plain text (in a local file or at a URL) and JDBC compliant databases. These agents are defined in the classes TextfileQueryAgent and JDBCQueryAgent, respectively.

Both agent types understand the same messages as the queriable agent.
Additionally, the textfile query agent understands this message:

The JDBC query agent understands this additional message:

4.3 Search Agents

Search agents perform the search for data. In order to do so, they start at one agent, follow its links to other agents (according to some traversal strategy), and query each agent they encounter in order to collect the requested data. Search agents are subtypes of QueriableAgent.

Additionally, search agents understand the following messages:

4.4 IP Agent

The IP agent represents a certain user but is also a QueriableAgent. Additionally, IP agents maintain user information and a cache of the agent links accessible from this agent.

IP agents understand these messages:

4.5 Statistics Collector Agents

Every time data is accessed or links are traversed, the local cache of an IP agent may become inconsistent, i.e. it no longer represents the "real world" outside of the IP agent. In this case, a statistics collector agent is launched that rebuilds the cache by traversing all links and collecting the counters associated with them.

The statistics collector agents understand this message:

4.6 Display Agents

Display agents allow for user interaction and present the cache of any IP agent graphically.

Display agents understand these messages:

4.7 Login Agent

Before a user can use the system, s/he has to login. This is done by the login agent. It asks the user for his/her name and password and then tries to detect the IP agent matching this name and password in order to display it.

Login agents understand this message: