dynamic search


Rabbit attempts to provide information that you need to make a decision. Unlike other such services, it does not assume that you know anything at all about the way it stores its information. Instead, you simply request whatever you think is relevant and the system will respond with samples.
Donald A. Norman, Things That Make Us Smart

Today's computers can be much more pleasant to use than they presently are simply by making searches dynamic rather than static. Instead of forcing the user to produce exact criteria for an unknown page at the beginning of the search, the system should work with the user to incrementally specify the page.

When the user asks for a page, the system should immediately produce a representative page, even if it isn't certain that that's the requested page. The user may then say "No, not that; it's more like...". This process continues until the user finds the target. For example, Pic1: A Visual Database Interface describes a program that searches large image databases using this scheme.

To function as an adequate player of this game of hot and cold, the system must be able to:

* generate representatives
* present alternatives
* remember choices and choice sequences

Generating Representatives

For every page request the system should generate several representative pages. How is it to do so?

Consider, for example, a top 40 list of songs. Songs come and songs go; what makes one interesting? One attribute of interest might be if the song is presently in (or has ever been in) the top or bottom five (popularity). Another might be when it entered the top 40 list (recency). A third might be how fast it's moving up or down the list (volatility). A fourth might be whether it exits then reenters the list (periodicity). A fifth might be whether it's presently headed for the top or the bottom (currency). And so on.

So any system that has to manage many pages, each of which has multiple attributes, can choose representative pages by choosing among:

* the most frequently chosen pages,
* the most recently chosen pages,
* the most periodically chosen pages,
* the most volatile pages,
* pages similar to the most popular, recent, periodic, volatile (or whatever) pages,
* some randomly chosen pages, and so on.

Imagine a net of attribute names separate from the attributes actually attached to any one page. Every time the user accesses a page, the system increases the activation of the attributes that that page is a representative of. To choose representative pages, it reverses the process by looking for the most activated attributes, then finding which pages have those attributes. It then chooses a small number of those pages at random and they become candidates to be representatives.

Presenting Alternatives

The system cannot guarantee that its choices will be adequate so it must also let the user easily choose other pages. One possible way to do so is to present the entire set of attributes associated with the representative the user has clicked on and allow the user to select among them, perhaps using a text menu.

The system should also let the user take full control of the search, thereby returning everything to today's style of search. Short of that though, the user may select some attribute of one of the current representatives. The system should then generate representatives of pages that have that attribute, and so on.

Every time the user makes a choice the system remembers it and that biases the future presentation of those choices. That way, after the user has been through this fifty or so times, the system is no longer presenting a huge list of attributes at each stage, but a very small menu. At that point, the system should give the user the option of making the remaining attribute-value pairs into permanent categories.

Since the user has very often selected these categories as organizers and finders of information, they are just the same as if the user had put pages having those attribute-values in a directory by themselves except that it's better since any page can appear in multiple categories. So to find such a page all the user has to do is remember at least one of the categories it's likely to be in.

Remembering Choices

The system should also remember sequences of activations. The fact that one attribute is often activated right after another should be remembered. So the system should also keep a net of attribute pairs. Each pair gets a little more activated if the second attribute of the pair is activated right after the first attribute of the pair.



last | | to sitemap | | up one level | | next