Known Uses

Apple OS X Address Book

Address cards are very homogeneous entries. They are made up of simple text and are easily searchable. It is common for some users to have a handful of people in their address book. But, users in companies may have all of the employees in their address book. In fact, since the application interfaces with LDAP servers, it's possible to have an entire campus os people in your address book.

Here is the basic layout of the application:

The left hand column holds the side-sets. The middle column is the tabular set; basically a list of everyone's name. The right column shows detail on the selected entry. People can be added to any of the side-sets. For example, people belonging to my "Roomates" set can also belong to my work set, "ISL". The groupings themselves are very useful since the user can perform actions on a group of entries. In this case, I could write an email to everyone in my "Roomates" set.

Suppose I want to find my friend Ben from No Strings Attached. I could accomplish this task a couple of different ways. I could scroll down the list of everyone in my book and find Ben. But this would take some time. Instead, I'll click on the side-set "No Strings Attached". I can select this easily because it is a choice from a small set. This gives me a listing of everyone in No Strings Attached.

From here I can easily see Ben Ferguson in the list. The process of finding Ben with this method takes only two clicks.

This process could have been accomplished a different way. If I had forgotten that Ben was in No Strings Attached, I could have just entered "ben" in the search field to get a listing of all of the people I know with that name. This method takes 3 keystrokes and two clicks.

Acquisition

Acquisition is a peer-to-peer file-sharing client for OS X. Its entries are more heterogeneous than most side-set libraries, but the files are mostly media files that share properties and are displayable in a tabular set. In this application the library is so large that it's technically impossible to show it all at once on the main panel. However, the application uses search parameters to create side-sets of the larger library. These side-sets persist between application launches and can be reused to access subsets of the library. The side-sets are not as modifiable as in other examples, but they can be filtered and sorted on a number of dimensions.

iPhoto

iPhoto is a example of a Side-Set Library where the high-density information display is not a tabular set. In this application the library entries are pictures, so fitting them in a table does not work all that well. Instead, iPhoto uses a main panel display with variable-density to allow the user to actively trade off between seeing more entries and seeing more detail. While pictures are very homogeneous, they are also very hard to search. iPhoto does provide a search function, but most people use the side-sets in combination with the main panel as a method to locate the desired picture.

Related Patterns


Hierarchical Set

This pattern is related to a hierarchical set in that both patterns classify entries for users. The main difference is that hierarchical sets can be nested while side-sets can not. There is also a difference in cardinality. Entries often belong to several side-sets. But it is rare to allow entries to exist at multiple places within a hierarchy.

Navigable Spaces

The Finder in Apple OS X v 10.3 (Panther) is a navigable space that borrows many concepts from a side-set library. While it is not a library, it provides a list of favorites on the left side of the window. These favorite locations speed up finding a file much like side-sets speed up finding an entry. The application also includes a search field which performs the same action as in a side-set library.

Side Set Pattern


A look at how Apple and others have begun to use a particular interaction pattern for grouping files into categories.


Examples

  • Apple iTunes
  • Apple iPhoto
  • Apple OS X Address Book
  • Acquisition

    Context

    An application must present a library of homogeneous content. The library can range anywhere in size from a few entries to several thousand entries. The user must be able to easily access and manipulate the entries.

    Problem

    A user interaction technique is needed to allow for access to this library. The technique must work well for all different sizes of libraries.

    Forces

  • Library entries should be easy to see.
  • The entire library may be too large to be displayed at once.
  • The user needs to easily find a desired entry.
  • The user may want to refer to a collection of entries for a task.
  • The user shouldn't need to do any more manipulation of the interface than is necessary.
  • Solution

    A side-set library is built as a tiled working surface with two side-by-side panels. It consists of main and side-bar panel as well as a search field.

    The main panel is used to display library entries. In order to display as many entries as possible, it is implemented as a high-density information display. In many cases, this display will be a tabular set. However, other kinds of high-density information displays work equally well.

    The side-bar presents a list of editable collections which are referred to as side-sets. The side-sets each define a subsets of the entire library. When a side-set is selected, the main panel shows all elements in that collection. Library entries may be a part of several side-sets. But, side-sets may not contain other side-sets as in a hierarchical set. The user should be able to create, delete, and modify side-sets.


    Both the main panel and the side-bar panel provide the user with a choice from a large set. That is, the side-bar collections help to partition the Library into smaller sets. These library subsets can be easily manipulated by the user and persist between launches of the application.


    The final interface element is a simple search field. When a search is executed, the main panel is used to display the result. A search can be thought of as applying a display filter to the main panel. Optionally, a new side-set may be automatically created to store the result of the search.

    Rationale

    The user should be able to see the library entries easily. To accomplish this, the entries are shown in a high-density information display. This allows for the most entries as possible to be visible to the user at any one time. This makes a lot of sense, since it's relatively easy find an entry in a short list. However, most libraries are too large do display all at once. The user could scroll through a long list of entries in a tabular set, but this would take a lot of time and effort. The high-density information display has a limit to how many items it can effectively present to the user.


    To combat this problem, the notion of side-sets is introduced. The user can categorize a large library into smaller sets. These smaller sets then have a better chance of working will with the high-density information display. Since the user can create side-sets for frequently used entries, they help the user to find individual entries faster. Operations can also be performed on an entire set of entries. An example of this would be to play a set of songs in a music library.


    All this works rather well, but constructing the side-sets can be difficult. A user may have to scroll through the high-density information display in order to find an appropriate entry to include in a set. To combat this problem, a search function is added to allows the user to quickly locate entries in the library.


    So, the process of finding an entry starts by reducing the entire library to a smaller set through side-set selection or search. Then the user can select the appropriate entry from the high-density information display. For example, suppose I want to hear the song "Film" by the jazz band "The Bad Plus". To get this entry quickly, I could start by selecting the jazz side-set in my music library, then find the song from the smaller list of jazz songs in my library. Or, I could type "bad plus" into the search panel and choose the song from a list of the band's catalog.