Calvin is a Java-based agent system for researching agent-based personal information retrieval. Calvin monitors users while they are using a computer, recording and analyzing the documents they access. It then indexes resources accessed and suggests previously indexed documents, based on their relevance to the user's current task. Developing infrastructures for intelligent agents that monitor and support users presents two broad problems. The first is how to perform data accumulation and storage. An infrastructure needs to be in place to collect data by recording the user's actions and organize that information for convenient analysis. The second broad problem is how to use the data to identify and satisfy user needs. In Calvin, this corresponds to how to analyze the documents accessed in order to identify task contexts, and how to index new documents by context to assure proper future retrieval. Calvin's Java-based infrastructure focuses on solving the former problem in such a way that researchers can focus on solving the latter. This lets Calvin serve as a research grade agent system which can serve different data collection and analysis tasks beyond those being investigated in our research. Calvin's architecture provides a general purpose framework for collecting and recording data of customizable types. By providing a flexible interface at various levels, it is easy to change and upgrade individual parts of Calvin without substantial modifications to the entire architecture.
Central to Calvin is the ability to capture and replay streams of collected data. This enables researchers to save and reuse standardized test beds of data streams. This allows fair comparison among different analysis techniques, because they can be applied to exactly the same set of data.