A Personal Information Manager pim
To study the requirements of personal database management, we constructed several
prototype systems, culminating in a program suitable for release as a commercial product.
This program, named "Lotus Agenda," meets several design requirements for
managing personal information. These are:
- The user must be able to easily enter, edit, and manipulate free textual items without
concern for the underlying structure of the database.
- The user must not be required to specify the structure of the data in advance and must
be able to modify the database structure as it evolves without losing data or reorganizing
the database.
- The user must be able to define reports in idiosyncratic formats. Through these reports,
the user must be able to create and modify both database structure and content.
From the user's perspective, Agenda consists of a few simple elements that are used to
incrementally define and populate a database.
The first of these is the item, as described above. Items are the content of the
database and can consist of up to several lines (350 characters) of text. Items in Agenda
are assigned to or filed in categories. Categories provide the structure of the database
and are used to organize items and display them conveniently. Like items, the categories
are not pre-defined--the user creates, deletes, and modifies categories as necessary in
order to manage the items.
Each category defines a subset of those items assigned to it. Alternatively, categories
can be understood as one-place predicates defined over the universe of items. Given the
categories defined earlier, the user might assign an item "Call Fred next Tuesday
about pricing policy plans" to several categories: "Phone calls,"
"Fred Smith," and "Pricing policy committee."
Shows a simple list of items in Agenda assigned to a category called "Tasks".
A bar cursor serves as a pointer, highlighting the current item or category in reverse
video. In the example, the cursor is on item "Call Jeff about the R&D
budget."
Both items and categories can optionally have an attached body of text called a note.
Notes can be up to about 10,000 characters in length and may be internal to an Agenda
database or contained in a separate ASCII file. Notes are easily accessible from an item
or category by placing the bar cursor on the item or category and pressing a function key.
You can attached the item "Call Jeff about the R&D budget." Typically,
notes are used to capture some further detail or some secondary information about an item
or category. Another use of an item and its note is to make the note a short document and
use the item itself as a title. Notes on categories are often used to document the intent
behind the category, i.e., what sorts of items should be assigned there.
The categories are organized into a tree structure called the category hierarchy. The
purpose of the hierarchy is to conveniently describe two fundamental structuring
principles: subsumption and mutual exclusion. Items that are assigned to a category in the
hierarchy are also implicitly assigned to the parent of that category in the hierarchy,
i.e., a parent category subsumes its children. A category in the hierarchy can be
optionally designated as exclusive, indicating that no item can be assigned to more than
one child in the category's sub tree.
Subsumption and mutual exclusion, defined through this tree structure implement a
limited class of logical implications: A implies B (subsumption); and A implies not B
(mutual exclusion). Advanced features called conditions and actions allow users to define
more complex logical interrelationships between categories, including a form of
declarative if-then rules. Automatic assignment and other forms of intelligent behavior
are implemented in part by enforcing these relationships.
|