Software Agents, User Interfaces, and HCI


Sponsor John Stasko
stasko@cc.gatech.edu
253 CoC
Area Human-Computer Interaction

Problem
The purpose of this project is to familiarize yourself with research in agents or automated computational task managers. The current explosion of information exemplified by the Web and the Internet is exposing people to vast, new sources of information. Unfortunately, our time to examine this information has not gone up accordingly. It would be desirable if computers could aid us find information that is pertinent or of interest to us.

Consider the following example: Suppose that Professor Smith is a big fan of the Atlanta Braves. Unfortunately, she does not have enough time in her busy week to read the baseball and Atlanta newsgroups and bulletin boards, which receive many articles every day. But Professor Smith would like to monitor the groups for articles regarding the Braves. Professor Smith would like to have an automated agent that would monitor the appropriate newsgroups every day and accumulate, coalesce, and present a summary of these articles to her.

This example describes a behavior that a simple agent might perform. What you are to do in this assignment is to implement a basic version of such an agent. First, read the articles mentioned in the background section below and also browse the mentioned Web sites. Next, implement a simple "agent" that is able to carry out the following styles of tasks: The agent can be programmed to search UNIX directories and file systems (note that Net newsgroup articles are stored in files) for files involving particular, designated topics. The search should occur once a day minimally, or the user should be able to specify when it should occur and how often. Most importantly, the user interface for your agent should allow the user to specify what newsgroups/files to search, and which keywords or topics to search for. When the agent gathers its information, you should have it coalesce the info and communicate it back to the user in some manner such as emailing a summary, or creating a Web page which can be reviewed.

The key part of this project, however, is to provide a helpful, friendly interface to these tasks and to think about how users would want such an agent to work. Think about how end-users would want to specify such a task. What would be a good interface to this computational agent? You are free to develop the interface for your system using whatever software that you want. You are encouraged to consider Java and AWT. Feel free to use this project as a way to also learn more about Java and building user interfaces with it as well.

Background
The following articles will help you learn more about this area:

The following two web sites also have a great deal of information about agents. This task is actually not too hard given that you discover some useful, clever Unix commands. You may want to look into commands such as cron.

Deliverables
You should turn in a 3-5 page report describing what you learned about software agents, and describing the software system that you built. You also should turn in a pointer to where the system resides, so that the instructor can try out your system.

Evaluation
You will be evaluated on the quality, effectiveness and thoroughness of your software agent system and on your report. See how much of the desired functionality you can get working. Try to make the interface to your system be both usable and useful.


updated by stasko, 9/12/97.