The UMDL SMS implements a market-based multi-agent system where agents buy and sell services from each other. Agents can be added to or removed from the system at any time. Instead of having to rely solely on internally designed agents, UMDL can attract outside agents to provide new services. These agents in turn are motivated by the long-term profit they might accrue by participating in the system.
The raw resources of a digital library consist of collections of information, where a collection might be a database of journal articles or it might be a collection of related web pages. Collection Interface agents, (CIAs), provide access and search services for these collections. Various middlemen, or mediator agents, transform the raw information resources into finished products or services which the end-user desires. Users, or library patrons, each have an individual User Interface Agent, (UIA), which interacts with UMDL on their behalf to acquire these services.
Figure 1 shows a simple scenario which we will be using throughout this paper. In this scenario, users want to find sources of information for various topics (e.g. history, science or mathematics) and various audience levels (e.g. middle school, high school, or professional). Query Planning agents (QPAs) act as middlemen, accepting queries from users and returning collections related to the query. Some QPAs support general queries, some are specialized and support queries geared to a particular topic area or audience level, e.g. a specialized QPA for middle-school-science queries. Below we discuss in more detail the mechanics of how this scenario is implemented in UMDL.
Initially the user sends a query, via a web-based Java interface, to the User Interface Agent (UIA). The UIA must then find an agent that can service this query. In order to allow agents to find the services they need, we have implemented an ontology of services (Section 3), which is represented using description logic; specifically, Loom . Every agent must be able to describe the service it wishes to buy and sell using Loom's query and concept languages, respectively, with terms from the UMDL ontology.
Figure 1: The UMDL Service Market Society. It supports any number of UIA, CIA, QPA and Auction agents.
In order to join the UMDL every agent must register its unique agent-id with the Registry. An agent can then advertise by sending its service description to the Service Classifier Agent (Section 3.1), as shown by the dotted lines. The SCA maintains a mapping between service descriptions and labels which are used by all agents as a convenience in communication.
The SCA automatically classifies the advertised service descriptions into a subsumption-based taxonomy. This organization enables the SCA to match requests for services to ``semantically close'' descriptions, to recommend the most appropriate services out of those that are currently available. We encourage agents to describe their needs with as much detail as possible. The SCA can then recommend the available services with the least general subsuming descriptions.
Next, buyers and sellers of a given service need to locate each other. Multi-agent systems often have specialized system agents which broker connections among other agents, called facilitators. Within UMDL, we use market facilitator agents, or auctions (Section 4). UMDL auctions operate by collecting offers from participating agents and determining agreements consistent with those offers. Many different types of auctions can be instantiated by using different auction parameters.
Once an agent has acquired the appropriate service-label from the SCA, and is ready to buy/sell that service, it sends the desired label to the Auction Manager Agent (AMA) (also shown by dotted lines) which returns a list of auctions which sell matching services (Section 4.1). The agent then sends buy or sell bids to a particular Auction agent (solid lines). The auction matches individual buyers and sellers and sets price of the transaction.
In our scenario, UIAs want to buy query planning services while QPAs want to sell it. Once a match is found for the UIA, it will send its query to the matching Query Planning Agent (QPA). The QPA  returns the appropriate Collection Interface Agents (CIA) and the UIA then forwards its query to them. The CIAs can translate UMDL queries to a variety of protocols (e.g. http, Z39.50, FTP, etc.) and return the appropriate documents.
The agents are free to return services of differing qualities or to disagree on the exact quality of a given service. Therefore, agents might also need to be able to assess the quality and value of a service received or the exact price to charge, in order to maximize their expected value/profit. This is achieved by giving agents the ability to learn (Section 6) and to make strategic bids. We find that the SMS market works to minimize the amount of strategic thinking that the agents can gainfully engage in, but it does not eliminate the need for having some agents with learning/strategic capabilities, even if these are not always used.