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.
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.
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.