Bookmark Menu

Overview

Epiphany takes the novel approach of assigning 'topics' to bookmarks, rather than placing them in a hierarchical system. While this is at times brilliant (very easy to create new bookmarks, quick to find things in small collections, provision of a simple form of metadata), it doesn't scale to large collections of bookmarks.

In the coming release we automatically build a hierarchical bookmark menu based upon the user's selections of topics. We achieve this by grouping bookmarks which share common topics into labelled submenus or unlabelled subdivisions. In general, a 'hierarchy' will only emerge whenever the user has some bookmarks listed simultaneously under different topics.

Subdivisions and Submenus

GNOME applications have always tried to avoid long menus and the use of sub-menus (and sub-sub-menus) as these are known to make things harder for the user. When constructing a bookmark menu we attempt to satisfy both principles by using a mix of unlabelled subdivisions and labelled submenus.

Epiphany favours the use of unlabelled subdivisions (groups of bookmarks surrounded by dividers) as submenus hide information from the user. When the menus become too large Epiphany will use labelled submenus to avoid long menus which are difficult to search in. Note that subdivisions do not carry labels - we rely instead on the user's ability to see commonality in their bookmarks, making labels unnecessary.

Multiple Access Paths

An important aspect of the 'topic' approach is that bookmarks can be found through multiple ways. For example, I can find "people I do research with" through either the 'Research' topic or through the 'People' topic. The construction of a hierarchy enhances this feature.

I have taken a snapshot of my collection of 'Research' bookmarks (see image, right). As I have a lot of 'Research' bookmarks Epiphany has constructed a mix of submenus and subdivisions for me. Two submenus 'Constraints' and 'Projects' were created to reduce the length of the menu. Three subdivisions were also created, corresponding to my other topics 'Groups', 'Search' and 'People'. Within the 'Research / Constraints' submenu the topics 'People', 'Groups' and 'Publications' have been used again to form subdivisions.

The Decision Systems Lab is a research group in Wollongong involved in constraint satisfaction techniques. My bookmark for 'Decision Systems Lab' is listed twice within this image - once in the subdivision 'Research / Groups' and once in the subdivision 'Research / Constraints / Groups'. The 'Wollongong' submenu (not shown) also contains this bookmark. Using this system, no matter how I think of the 'Decision Systems Lab', I can quickly find it in my menus.

Effective Use

Also known as "But It Doesn't Do What I Want!"

As a user, you may have a very specific way of arrange your bookmarks into a hierarchy. Epiphany does not support the ability to explicitly construct a hierarchy, and so sometimes you might get frustrated that the hierarchy we build isn't exactly what you want. In this section we will explain how to make the best use of topics in an intuitive way, and you'll find that you do get a very good hierarchy in the process.

The method we use for building a hierarchy is based loosely on a technique called formal concept analysis, where we interpret what a 'topic' means the user and build a menu accordingly. So that the algorithm can understand the way you think of your bookmarks, you are best to:

Use topics that might come to mind first when trying to recall a bookmark

For example, my internet service provider has a News page which tells me of problems with their services. I have a topic 'News' for sites showing recent world events, and a topic 'Internet Service' for sites related to my internet service provider. I should clearly use the 'Internet Service' topic for this bookmark, as I would think of this topic first when trying to recall the bookmark.

I should not use the 'News' topic, as I would never first think of 'News' when trying to find the bookmark again. While the word "news" does match the title and intent of the bookmarked page, the way I think about my 'News' topic does not. If necessary I can add a topic 'Updates' or 'Outages' as these are conceptually different from 'News' and more relevant to the page.

Use multiple topics for bookmarks

As an example, I might bookmark a satirical news site under the topics 'News' and 'Fun'. They are clearly separate concepts, and when looking for a satirical news site I might think of either 'News' or 'Fun'. Using multiple topics leads to multiple paths of access and a hierarchical structure for your bookmarks.

However, we do not recommend you use topics to represents obscure aspects of a website. You should not use a topic such as 'Conforms to XHTML1.1' or 'Uses MySQL'. Similarly, do not use the topic 'Word Processing' for your local newspaper, even though they do use word processors. Again, the reason is to use those topics that might come to mind first when trying to recall a bookmark. Be practical with your selection of topics. Following this method you will find that Epiphany develops a very decent hierarchy for you automatically, and you will saved yourself a lot of time thanks to it.

Technical Details

To avoid overcomplicating the bookmark menu (and it's submenus), we must avoid creating too many subdivisions/submenus. Hence our use of minimum set covers.

Given a set of bookmarks (initially the whole set), we attempt to find a minimal set cover of topics (ie. a set of topics so that as many bookmarks as possible belong to at least one of them). We construct this 'covering' set of topics with a greedy heuristic (the real problem is NP-complete) which just tests each topics in order of largest to smallest (contact me for details). We use this heuristic because we assume that the largest topics are those which the user would like to categorise bookmarks by first. For each topic included in the set cover, we construct an unlabelled subdivision to contain those bookmarks in the topic, or a labelled submenu on which this procedure is called recursively.

We follow a simple scheme for determining whether to create submenus or subdivisions. We first determine the number of bookmarks for each topic (with respect to our current location in the menu hierarchy). We initially assume that all topics will be subdivisions, and determine the total size of the menu. We then take each topic in the set cover in order of largest to smallest. If a topic has more than 3 bookmarks, and the total length of the menu is currently more than 20, we will create a submenu from this topic. Creating a submenu will shorten the size of the current menu accordingly. The result is that:

  1. Every submenu should have no more than 21 items
  2. Every submenu should have at least 3 items

There are some exceptions to these rules. For example, we don't allow subdivisions in the main menu, so there are some submenus corresponding to very small topics which have less than 3 items. Also, in the case that a submenu can only be divided into many small subdivisions, or no subdivisions at all, the menu may exceed 21 items. Regardless the effect is to construct a reasonably flat and efficient menu structure.

Bookmark Dialog

Overview

The bookmark properties dialog is now much more compact and looks very similar when adding or editing a bookmark. When opening a bookmark for the first time you are presented with 3 text fields:

  1. Title: the title by which this bookmark will be known
  2. Address: the address (URL) which this bookmark refers to
  3. Topics: a list of comma-separated topics that the user associates this bookmark with

To the right are two examples of the bookmark properties dialog, showing the creation of a new bookmark, and the editing of an existing bookmark. Explanations of specific widgets follow.

Similar Bookmarks

It is often the case that a user will mistakenly create two bookmarks with the same or very similar address. We used to address this by a warning dialog, but it was inconvenient if you wished to create a new bookmark and change the address. We have replaced this with a more subtle and more flexible button in the bookmark properties window itself. This button will show the number of bookmarks similar to the one you are currently editing (regardless of whether it is newly created or not).

When pressed, it offers to merge all bookmarks with identical addresses, then presents a list of those bookmarks, followed by a list of similar bookmarks that the user may find interesting.

Topics Field

The topics field provides an easy way to enter and create topics for a bookmark, and to quickly review those that have been selected. The user enters topics from their set of existing topics that they think are appropriate, with an auto-completion list provided as assistance.

Note that we use a comma separator for topic names, which implies that topics can no longer use comma in their names. Spaces are allowed however. We also allow the user to create a new topic directly from what they have typed, which is much more efficient and convenient.

Topics List

The topics list provides a useful mouse-oriented enhancement to the topics field, and is particularly useful for large sets of topics. Using the same algorithms as the hierarchical bookmark menu, it orders the topics into:

  1. Selected: those topics the user has selected;
  2. Suggested: those topics which have been used to further categorise other bookmarks with the selected topics;
  3. Others: all other topics.

Note that the labels are omitted - the user simply sees the topics sorted such that topics which are most relevant/useful are listed at the top. To show exactly how it works, we have made a video of using the topic list.