The KnownSpace Datamanager
"Halfway To Anywhere"


Working in a Space

Correcting the current constraints on data mangement leads to a completely different class of interfaces----interfaces to a much smarter and more aware data manager than any presently in existence.

Saving Pages

Ideally, a single interface should be running as the front end of a user's web browser, mail handler, news reader, ftp client, editor, and operating system. To save a new page it would then be sufficient to simply access it; any access transparently results in storage. The system analyzes the page to find its attributes, then determines which pages it already has that are most similar to the given page.

Further, the system must also analyze the user. Users aren't issuing commands at random, they each have a history and a current context. So the system must remember the user's behavior---where the user tends to save different kinds of pages, for instance---and it must note the user's current context, because that can alter where the user would like this particular page to go---it may be natural to save things in one particular place when reading news, but in a totally different place when reading mail.

From these analyses (the page, the user's history, and the user's current context), the system should determine where its user is most likely to think of searching for the page later. Then it puts links to the page into each of those piles of pages based on which other pages it seems to be closest to given the page's content, the user's history, and the user's current context.

The system must also let the user explicitly name, place, and categorize any page or cluster of pages if the user wishes.

Naming Pages

The system shouldn't force its user to always have to name every page, especially pages it fetches. Further, the system should let the user label a page or a page cluster (that is, a category) with a graphic that might be easier to remember than a text label (although using text labels only is reasonable if the user insists).

Placing Pages

The system should let the user place the page's icon anywhere in the space and it should remember that location. If the user moves the page's icon, its new location should be remembered as well. Note that at present there's no mechanism to remember what other page icons were near to the page's icon before it was moved, although if that information is needed in future it's deducible with sufficient effort since all icon locations are saved at all times.

Finding Pages

To find a page all a user should have to remember is something about the page itself (maybe how it looked, what's in it, how big it was, when it was saved, what else was saved at around the same time---or just before---or just after, what other pages contain stuff that it might also contain, and so on). In other words, the user must remember the value of at least one of the page's attributes. That alone should be sufficient to find the page.

Categorizing Pages

Categorizing a page today means placing the page in a hierarchy of categories, no two of which can share a page unless one encloses the other. The strictness of the hierarchy and the weak visual presentation of the hierarchy are two key weaknesses of today's desktops.

* First, categories need not nest. A page should be able to belong to several categories and none of those categories need necessarily contain any of the others (although they can if the user wishes).
* Second, a category should also be able to belong to several categories and none of them need be nested inside another.
* Third, categories need not be visible---they could be completely separate from the pages they contain. Visible categories can be shown simply by the arrangement of the pages inside them, or they might be shown explicitly, but in either case each category should be visually distinct.
* Fourth, the attributes a user might use for categorizing pages should be dynamic---they should be dependent on what the user is interested in at present.

The dominant metaphor today is that of a dictionary: you're fine if you happen to know the word whose meaning you're looking for (and if you know how to spell it) but completely lost otherwise. What we need in addition is a dynamically growing thesaurus of words. Simply knowing a word's rough meaning should be sufficient to find the word. Each word is like a page and each category is like another listing in a thesaurus of words; simply adding a new entry does not destroy the entries already there nor does it preclude the possibility of some of the words in the entry also appearing in other entries.

The user should also be allowed to take any arbitrary set of pages and put them in a new category, whether or not those pages share attributes the system can presently detect. Of course, once they're put into a category they then share the (new) attribute of being in that category, so from then on the system knows that they are linked.

Categorizing pages cannot be indicated solely by clustering pages within a space. Spatial placement alone is insufficient to indicate all the different ways of viewing complexly related pages. The spatial arrangement of pages indicates how the pages are related according to the most indicative measure (if there is one), so things that are related in other ways cannot be easily found using spatial arrangement alone.

Navigating Among Pages

Navigation is the act that most suggests to users that they are in a space. It's crucial to give this illusion because then spatial memory can be exploited to help users place pages and then find them later. If it can be done well, then many activities that are now chores should become simpler and more intuitive.

It is possible to map relevant portions of the space of pages incrementally by starting with a nucleus of pages that a particular user has already demonstrated interest in, then branching out from there. Each new page can be placed relative to the other pages in a two- or three-dimensional space of pages, thereby aiding search, organization, and recall. The key is to focus on the interests of each single user, analyze pages to estimate out what relates them, and to map pages to a user-navigable space.

The system should be designed so that as the user gains familiarity with it, the user soon stops thinking of the interaction as a reading experience and starts thinking of it as an exploring experience. The user stops being a computer user and becomes an inhabitant of a space.