Paperbox


Paperbox was a document browser for GNOME desktop.

I wanted to create an interface which would show all documents a user has on her computer, let her organize them by system-wide tags and ultimately eliminate the concept of files. This is essentially how mobile apps work in 2010s. It relied on Tracker, a desktop search engine and metadata store.

I worked on it during 2007 and showed a live demo during a lightning talk at Guadec 2008 in Istanbul.

Here's the initial project proposal, as published on my blog on March 4, 2007.

Here I will lay out an idea I’ve had in my head for a while, about a program for browsing and organizing documents with categories and tags, which retrieves and stores metadata in Tracker. My intention is to propose it in a few weeks as a Summer of Code project. However, since it attempts to change things on the desktop a little bit, I’d like to first hear opinions from the GNOME community and developers about the idea in general (and in specifics).

Introducing…

The idea is to provide make a step forward in the way a user views and organizes her documents, and provide a way which is more natural to our minds than the generic file/directory view. For example, when locating a certain document, a user would not need to recall one of numerous file paths, but would follow a map of terms she defined in easily understandable words and expressions.

Currently this is possible using metadata, and Tracker specifically. While one may argue that it is possible to achieve this effect by having some default desktop-wide places, ie bookmarked directories, and then having the user name and structure files and directories with discipline, this is simply put not good enough, and things could be better. For instance, if you have a document’s title, it’s file path doesn’t really matter. Actually, even that it is a file (as if a “file” is something real anyway) stored in a certain directory would not necessarily need to be known! And tags are already a proven method for categorizing data, used and well understood by a large number of people on the Internet.

So note that this program would not offer some huge functionality, lots of options to “explore” etc; it serves the aim to bring the computer desktop a bit closer to our perception of the world.

Here’s an initial mockup:

Initial Paperbox mockup

The main means of organizing and browsing data are user defined categories and tags.

Categories

A category is defined with:

Parameters may include a list of MIME types to consider, and a combination of generic file and document metadata. A category making dialog should provide an easy way to specify them. For example, it could offer ready combo boxes, similar to the original Gnome file search dialog. The data entered would then serve to store RDF queries, which the program runs on demand.

A category may contain other categories. Browsing a category would activate a “tag cloud” showing all tags attached to the documents inside it. Selecting a document would update a lower tile showing relevant metadata. This tile would be customizable, and it would replace the current approach in file managers of showing a number of columns which, in my experience, never fit on the screen. So there would be only one column; it’s probably best for it to display file names by default, however it could be customizable for each category and it would be natural to expect a move towards displaying document titles.

!(Nautilus integration)

Here’s why I think this should not be integrated in Nautilus. First of all, Nautilus is a general purpose file browser. The functionality proposed here offers a higher level abstraction in HCI, and does not intend to cover all file types, but instead focuses solely on documents. Adding it as a new kind of a “view” in Nautilus would lead to a requirement to cover music, video and images as well. This is not the point. There are already many good media players and photo/image browsers. They should take care of that (or their) part of, strictly speaking, file and MIME type-specific management and presentation. One could say that there could be separate “views”. Yes, but not bundled in a single program. And lastly, Tracker is still not an official GNOME dependancy.

This is of course not to say that Nautilus should not have it’s own metadata tile and tagging mechanism, which is happily already under development.

I released the first version of Paperbox on November 6, 2007.

Here's a screencast of the program below, showing its main features.

I was very interested in new types of GUI elements at that time, such as those made on a 2D or 3D canvas (such as Clutter). The tag cloud is implemented with a canvas library called goocanvas.

Last version of Paperbox is 0.4.4, released on October 19, 2009. Paperbox is available on GitHub under the GPL 2 license.

Paperbox is among my past work.