cs190: Secretarial Agent: Requirements


Caveat emptor: This description is deliberately overly feature rich in the hope of generating interest. It does not seem practical to implement all of them in one semester; a subset of them might be interesting however.

Premise

People who are very busy (esp. if they travel a lot) don't always have time to organize every aspect of their lives. Managing the details can get quite cumbersom, hence the existence of personal secretaries. The goal of the project would be to get a program which would be capable to at least some degree of helping a user to manage their time and space without requiring the user's constant attention. The program would be mimicking the services of a real secretary by dealing with common situations the user needed to have taken care of. It would thus be a secretarial agent.

Organization

A secretarial agent should provide tools for keeping the user's life organized in some fashion useful to the user. It is going to need a database capable of keeping track of, accessing and forming, perhaps arbitrary, connections between, topics of interest to the user. The database itself does not have to be complex. Generalized access to data based on a multiplicity of keys is what is being looked for.

Agency

The database portion of the program is already available in various forms. It is possible to design organizers that actually make the user's life easier, purely as a matter of layout. Going one step further would be an organizer that is able to learn about its user's habits and customize itself. Examples:

The main criterion is that such features should be done automatically without the need for the user's manual interference once the system becomes accustomed to the user. (What makes this interesting (and difficult) is figuring how to create this agency.)

Visualization

People have different tastes as to how they want information to be presented. Some prefer text, most want some kind of graphical front end with a user interface they can become accustomed to. The system must be able to account for this variety of taste by distinguishing its appearance from the rest of the functionality.

Distributability

The system should be able to run on a variety of platforms as the user may be moving from place and want to take the system with them. Aside from portability this also refers to the issue of modularity: it should be possible to leave out portions of the system that are too large to be brought onto local machines [This aspect of the program intests me a lot]. [More interesting but much more difficult] The system should be able to transport _itself_ to whatever location the user designates and get just enough of itself present to allow the user to interact with it. This involves finding the user, finding what system they are on, and downloading enough modules to be functional/

Users

The Project ideally has a user base to ask for feedback. While this system is not necessarily meant to be used by secretaries it can be seen as a way of assisting them if it does it's job well. Either departmental or other secretaries could be asked for feedback. esp. w/ regard to what features they would find useful. Other possibilities are any people who travel a lot and would like a consistent work environment whereever they end up going.