Informal or soft hierarchies have become popular mechanisms for data storage and retrieval, as seen in applications such as Flickr, del.icio.us, and others. What differentiates soft from hard hierarchies is the use of overlapping categories, or tags, instead of namespaces. Tags can be used to describe more than one object, and hence they will appear in various contexts (a context consisting of a group of tags).
Tags are used to help find objects which have something in common. They connect to objects, as well as other tags—applications such as del.icio.us surface tags which are used in context of the one which is currently selected. As a filtering and sorting device, they have proven to be exceptionally useful.
The problem with tags is that their usefulness as a browsing device decreases, the higher the number of tagged objects. Browsing, unlike filtering, should not inherently narrow down results, yet it often does. In very large arrays, selecting a single tag will still yield a multitude of results, results which must be browsed linearly—a fairly tedious process in large lists. Typically, results can be narrowed further by incrementally adding tags to filter by. However, apart from pivoting on a single tag, a more effective browsing method might entail pivoting on a group of tags, centered around an object.
Consequently, pivoting on an object would yield a mechanism by which to browse related objects, as connected by their individual tags. For instance, an algorithm would attempt to match all tags of an object. These results would turn up first-degree related objects. Then, it would begin looking incrementally for tags related to one of the pivot tags, by increasing degree of separation. It might systematically look for pivot tags with the least matches, replacing them with second-degree tags with the most matches. Because the the algorithm is exclusionary, it would conceivably lend itself well to browsing large arrays of tagged objects.
How is this different from the Amazon or iTunes ‘related items’ model? The (subtle) difference is navigation. The typical browsing experience starts with a large pool of objects, filters down incrementally to a single object, and then connects back to a pool of related objects. On the other hand, my proposed navigation would remain ‘high-level’—sorting and rearranging objects based on their semantic relatedness. It doesn’t narrow down, but remains open, simply shifting the focus in relation to the pivot object.
As a design construct, this method offers interesting opportunities for visualization, based on the degree of relatedness between objects. It may also have potential for use in operating systems, as a way to browse large collections of data by means of an exploratory, object-centered navigation.