Tuesday, 1 April 2008

Tags as interface? Discuss.

This post started as a response to a comment made by tumbleweed to my previous blog post. A couple of hundred words later, I realised I had more to say than I had anticipated. A thousand words after that, I decided to split my thoughts into a few separate posts, lest I receive the dreaded "tl;dr" (too long; didn't read).

I have a few thoughts, as a starting point. I'm not lecturing, I'm asking... That's the beauty of being friends with people who are smarter than you; they often have better ideas.

Why not add an abstraction layer between the filesystem and the user? I know, I know, extra system load, complexity, et cetera... but think of the benefits!

I'm thinking of a couple of directions one can take with this. Maybe the abstraction layer works with tags. All you need to do in order to save the file in the correct place, would be to tag it appropriately. Let's say, tagging a file with "documents books manuscript chapter1" would file it under "~/Documents/Books/Manuscript/Chapter1.odt" or whatever. (The format is obviously contextual to the program used, but giving arbitrary extentions should be as easy as adding ODF or CONF or whatever, in the tag cloud.) Adding "done" to the tags may, in this context, move each successive chapter into a subdirectory called "Finalised".

What if your document is suddenly part of another workflow? Let's say you've been editing your manuscript, and your editor wants to see the latest chapter. Adding the tag "email" will make your email client aware of the file, and your computer can do all kinds of nice things to make the process as painless as possible: conversion to a different file format, virus scanning, archiving, perhaps even encrypt your work. All of that makes sense, contextually speaking.

Let's look at this step-by-step, from the point of view of an office worker.

You are a regional assistant sales manager. You receive a work-related spreadsheet document attached to an email. Now what? You need to edit it with the latest sales figures. So you download it to a directory (aka. a "folder", for the youngfolk among us). Now that it's downloaded, you can either (a) open your file manager, browse to the file, and double-click it to open the default application (right-clicking to open it with a different application); or (b) You fire up your word processor manually, open the File Open dialog box, browse to the correct directory, select the file, and click Open. NOW we can start working... when you're done editing, you save the document again. You need to email it back to the appropriate person. Here we go again... open email client, start new email, CC: all the usual suspects, type a subject and some body text, click Attach, browse to the directory, open the file, click OK, click Send. Someone's secretary receives your spreadsheet. Oh, and you need to make a colour print of the graph for staff motivational purposes. "File --> Print --> Choose colour laser printer --> OK".

Is all that navigating-around-the-interface really necessary? What if there's an easier way?

You receive a work-related spreadsheet document attached to an email. Your work tag is "sales manager"; your interface finds the "sales figures" tag in the document. You're given the choice to open the document. The document is tagged with "unfinished", "return urgently" and "email". As soon as you're done adding the sales figures, you add "illustrate" and "print colour" and remove the "unfinished" from the tag cloud. The spreadsheet is furnished with a lovely colour graph and emailed to whomever needs it, and your graph is printed in such large letters as they write.

Is this impossible? Of course not.

Does this support the Interface Rules? If it's done right, you won't notice an interface.

Is this a good idea? Let's discuss it.


  1. There's already a partial move in this direction -- some programs let you tag files that you save, and when you retrieve them you do it by tag, not by remembering the physical directory (which is automatically or semi-automatically generated according to some simple and unambiguous system, like "date" or "upload batch").

    This mostly seems to be happening in photo gallery programs, because people with digital cameras have craploads of photos which they really don't want to meticulously file away by hand.

    There's also Epiphany's bookmark manager, which uses tags instead of folders.

    Analogously, wmii (and other tiling window managers, I think) let you tag applications instead of putting them on physical workspaces.

    But I agree that it would be a good idea if you could routinely do this with all data, and if it were built in at a lower level. I'd love to see some functionality for it in a shell -- like an alternative path syntax for finding files by sets of tags.

    (Somebody, somewhere, is probably considering this as we speak.)

  2. We can but hope that someone is considering a more pervasive low-level tagging system.

    Yes, phototags are a good example of this... I was thinking along those same lines while planning my next blogpost.

    A preparatory exercise for the alert reader: you might want to http://en.wikipedia.org/wiki/Metcalfe's_law and other laws concerned with information theory.

  3. While tagging and searching by tags are a good idea, I really don't like using tags to do things. I also don't like it being the only way to store things.

    Take the book example: "documents books manuscript chapter1". The next time I work on it, I might use the tags "book draft ch2". The format should be additional metadata (perhaps a mime-type?) apart from the tags. What happens if I tag a document with "JPG", which happens to be the initials of one of the authors? Too much magic.

    In your example, "print colour" (what about color?) sends it to the colour printer. What about when I have "print colour" and "screen colour" versions of a doc?

    I'll have to think on this a bit more.

  4. I know it's not perfect yet, but it is evocative, isn't it? It has possibilities.

    Mime-type may be a good starting point, but once again needs to be well integrated into the overall interface/filesystem/tag cloud.

    Not to want to exclude the colour blind, but what about coloured tags? Colour as an "emotional modifier", as it were.