To give an idea of how the middle layer can contribute to (better) solve queries, we will have a look at a fictitious example.

Mister Jones wants to buy another car, as his old one has not been performing very well lately. The old car is a Ford, and as Mr. Jones has been very pleased with it, the new car will have to be a Ford as well. However, as he turns to his personal software agent for information, he (unintendedly) does not ask for information about "Fords" that are for sale, but about "cars". So the user agent sends out a query to an intermediary agent for information about cars which are for sale.

The intermediary agent checks its database for advertisements that mention information about "cars", "sale" and "for sale". It sends out requests to suppliers offering this information. The individual supplier's responses are unified into a single package, and maybe the entries are sorted according to some criteria [1]. Then they are sent to the user agent.

The user agent receives the response ("answer") from the intermediary agent, and presents the information to mister Jones. The user agent soon discovers that he only looks at those entries that are about Fords, so it concludes that he is interested in "Fords", rather than in "cars" in general. As a result of this, it sends out a new query, specifically asking for information about "Fords".

The intermediary agent receives the query, and finds that it has no advertisements in its database yet, that mention Fords. The intermediary agent may now be able to resolve this query because the query of the user agents mentions that one of the attributes of a "Ford" is that it is a kind of automobile, or - if this is not the case - it could send out a query to a thesaurus service asking for more general terms that are related to the word "Ford" (and get terms such as "car" and "automobile" as a result of this query). The agent can then send a query to one or more suppliers which say they offer information about "cars" and/or "automobiles", specifying it wants specific information about Fords.
Supplier agents that receive this query, and which indeed have information about Fords, will then send back the requested information. Furthermore, the supplier's agent can now decide to send a message (i.e. 'advertisement') to the intermediary agent, telling it that it offers information on Fords as well.
The intermediary agent, again, unifies all responses into a single package, and sends it to the user agent, which will present it to the user.


This is just one way in which such a query might be handled. There are many alternative paths that could have been followed. For instance, the user agent might have stored in the user model of mister Jones that he owns a Ford, or that he has quite often searched for information about Fords. So in its first query it would not only have requested information about "cars", but about "Fords" that are for sale as well.
What this example shows us, is how agents and the middle layer/three layer model can conceivably contribute to make all kinds of tasks more efficient, quicker, etcetera.

[1] This will happen only if this has been explicitly requested by the user agent, as normally this is a task for the user agent.

 previous page  next page  to the chapter's TOC  to the main TOC

"Intelligent Software Agents on the Internet" - by Björn Hermans