The Design of a Virtual Community Library

The Agent based Digital Library Infrastructure Project

The aim of this project is to create a Virtual Community Library where each user has a personal library and, at the same time, is part of a larger community consisting of the other users' personal libraries and, through intermediators, other digital libraries. Being a part of a community means that each user can benefit from the work put into the other libraries.E.g by obtaining documents through search queries or recommendations using social filtering and also by getting help to organize the personal library.

An Overview of a Virtual Community Library

The base of a virtual community library (VCL ) is a multiagent system consisting of personal library agents (PLAs) for each user and there are adapter agents (AA) that connect the VCL to other digital libraries and other places with important information, such as searchable databases. For organizations to be able to be present themselves outside the VCL, there are also organization library agents (OLAs) to which personal library agents in the organization are connected. An OLA organizes the documents in a way that suits the organization.

A well known expression among programmers is 'garbage in garbage out', which means that if you give a program bad input, you will get bad output. This is the case for libraries too, but for ordinary libraries, the librarians have the skill and knowledge to select what information to put into the library. In a VCL, every participating user is a librarian and if the users put garbage into the VCL, other users will get garbage out of it. Therefore, a VCL must have a mechanism to just let wanted information reach a user. Such a mechanism is usually called information filtering and we have chosen to have an agent called personal recommender agent (PRA) that collaborates with other users'  PRAs to recommend and find interesting documents through content-based and social filtering.

In figure 1, a part of a connection net of a VCL is shown. It consists of three PLAs with corresponding PRAs and one OLA representing the organization that the three PLAs belong to. There are also two adapter agents, which are directly accessed from one of the PLAs, interfacing two different library databases. The PRAs are connected via a social filtering infrastructure consisting of other PRAs or via direct connections.
 
Figure 1: A part of a virtual community library. An arrow shows that an agent accesses another agent directly for information (e.g. subscribing for new added documents) and a cloud shows indirect accesses. 

The Agents of a Virtual Community Library

In the previous section, the different interacting agents was described, in the following sections their interactions with other agents and the users are described. [The inner working of each agent is not specified (yet)].

The Personal Library Agent

The personal library agent helps a user to create its own library based on its own preferences. A personal library agent's interactions can be divided into two components, its interaction with a user and its interaction with a VCL (other agents).
The Interaction with a User
The interaction with a user consist of a number of different aspects: NOTE: The ability to add new documents means that a PLA should work as a repository for documents too. Its working as a repository is closely related to how an ordinary web server works, but the aim is to be a reliable information source. When a document is stored, the document gets a unique identifier which can be used to retrieve this document from outside the PLA by, for example, another PLA. To make the PLA to a reliable information source, the identifier is not changeable and therefore, this identifier should not correspond to the actual file system as for URLs to documents at ordinary web servers.
The Interaction with a VCL
This specifies how a PLA can interact with other agents in a VCL to provide the services described in the previous section. The other agents work as interfaces to the different services.

To be able to help a user, it can query

To be able to let a user search in the VCL, it can query This makes it necessary for a PLA to be able to answer queries from other PLAs.

The Organization Library Agent

A special case of the personal library agent is the organization library agent that represents a whole organization which means that its should query all PLAs of the organization for new added documents.

The Adapter Agent

An adapter agent works for a personal library agent as another personal library agent. The information source an adapter agent represents, for example a database, should as much as possible be used to mimic another user.

The Personal Recommender Agent

The personal recommender agent (PRA) helps a PLA to automatically find interesting documents for its user and to help the agent to search for documents contained in unknown PLAs. It should also help the PLA to suggest information to attach to a document based on what the PLA previously attached and what other PLAs have attached, that is indirectly what the users have attached, to documents.
The Interaction with a VCL
A PRA must be able to answer queries from its PLA. The queries might be: To be able to recommend documents or to search for documents, a PRA can query: To help other PRAs to recommend or search for documents, a PRA is committed to: Note: For the social filtering infrastructure (figure 1) to work well, most of the PRAs in it should be able to answer and to route queries as the querying PRA expects, otherwise the social filtering will not work.