A lifestream is a time-ordered stream of documents that functions as a diary of your electronic life; every document you create is stored in your lifestream, as are the documents other people send you. The tail of your stream contains documents from the past, perhaps starting with your electronic birth certificate. Moving away from the tail and toward the present, your stream contains more recent documents such as papers in progress or the latest electronic mail you've received---other documents, such as pictures, correspondence, bills, movies, voice mail and software are stored in between. Moving beyond the present and into the future, the stream contains documents you will need: reminders, your calendar items, and to-do lists.
Figure 1: The Lifestreams Interface.
Users interact with Lifestreams via five primary operations: new, clone, transfer, find and summary. New and clone create documents. New creates an empty document and adds it to your stream. Clone duplicates an existing document. Transfer copies a document from your stream to someone else's. Find prompts the user for a search query and creates a substream .
``Substreaming" provides an organizational framework and an inexpensive way of finding information. Substreams, like virtual directories [5], present the user with a ``view" of a document collection, in our case, all the documents that are relevant to a search query. Substreams differ from conventional directory systems in that, rather than placing documents into fixed, file & folder directory structures, they create virtual organizations of documents from the stream. Documents are not actually stored in the substream; the substream is a temporary collection of documents that already exist on the stream. Two substreams may overlap. Moreover, substreams can be created and destroyed on the fly without affecting the organization provided by the stream or any existing substream. Substreams are dynamic. If you allow a substream to persist, it will collect new documents that match your search criteria as they are added to your stream. For example, a substream created with the query ``find all documents created by other people'' would subsume your mailbox and automatically collect mail as it arrives. A substream created from ``all electronic mail I haven't responded to'' would act as a mailbox that only contains unanswered mail. Substreams can be created incrementally, yielding a nested set of menus. Semantically, this incremental substreaming amounts to a boolean and of each new query with the previous substream's query.
Menus are used to choose among existing substreams, create summaries and reset the ``time" system clock into the past or future. The summary operation allows users to distill the information in a large number of similar documents into a single overview by taking a substream and compressing it into an overview document. The content of the overview depends on the type of documents in the substream. For instance, if the substream contains the daily closing prices of all the stocks and mutual funds in your investment portfolio, the overview document may contain a chart displaying the historical performance of your securities along with your net worth. If the substream contains a list of tasks you need to complete, the overview document might display a prioritized ``to-do" list.
By default Lifestreams presents the user with a view of the stream from the present receding into the past. A lifestream also contains a future portion which is accessible but usually hidden. The interface contains a clock that displays the current time, which may be temporarily reset to the future to observe the future part of the stream. While in the future, users can deposit notes that act as reminders. When the clock is reset to the present these notes are once again hidden, however they arrive on the stream at the appropriate time to remind the user.
The success of Lotus Notes, and the transition in operating systems toward a document-centric model (thus OLE and OpenDoc) suggests that documents are now the sun around which applications revolve. Lifestreams takes this world a step further: It embodies in software the stream of electronic events already facing the user, and brings in applications (filters, summaries, agents, etc.) as needed. Lifestreams replaces the desktop metaphor with a more fluid and natural system that reflects the way users work.