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.
- Keep track of user's schedule and be able to locate user based on it, either
by forwarding requests to the user, or by informing people trying to contact
the user of the user's whereabouts.
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 system could discover that the user is in the habit of arranging
files on their desktop in a certain fashion when used and try and prearrange
new items to go into selected places.
- Be given a list of information to be on the look out for and bring to the
user's attention. At its simplest this could involved filtering the user's
mail and ordering according to a user-defined list of criteria. More complex
is to go and scan the web for information related to issues of interest.
- Be given a schedule and be able to direct people inquiring after the user
to the user's current location.
- Given a list of timing criteria arrange a schedule for the user.
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.
- Some customizability in the appearance is desirable. Different front ends
should be possible so the system must have an API that allows the information it
has to be displayed in a fashion acceptable to the user.
- As a minimum the system should be able to display in HTML (or potentially XML)
as the Web is a de facto standard interface that most computer users are, or can
become, aware of, and it is not difficult to use, and through a Tk interface, as
that is widely available and thus likely to be portable.
- The system should allow access to its idea of categorization via an arrangement
of categories which can be linked together by the user. In appearance this would
be some kind of web of links between iconic representation of topics. The user
might have a set of pictures representing people that need to be contacted which
could be clicked on, drag-n-dropped or linked to icons representing the topics
they needed to speak to them about. A much simpler representation would be a
list of topics which could be dragged into place under people to contact. The
point would be to make the association of information visualizable.
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.