Free the documents!!
I’m a big fan of the way recent applications have been replacing the “filing” metaphor with a “tagging” metaphor. In traditional email applications, I stick messages someplace in my mail folder hierarchy (e.g., a folder for a particular project), and if I want it to appear in another folder as well (e.g., all mail from a particular person), I have to duplicate the message. By contrast, Gmail lets me stick as many tags as I want onto a message. Each tag can act like a folder, except that a message can be in multiple such “folders” simultaneously. And, I can search on the union or intersection of tags. (I just did that: looked at everything “starred” relevant to a particular project.) Apple’s Mail gets something of the same functionality with “smart folders”, but it’s still a folder-based rather than tag-based system at heart.
Flickr also uses the tag metaphor to great effect. Both Gmail and Flickr, however, have a “flat” tag space; I can’t create nested tags the way I create nested folders, which limits the size and complexity of the tagging system I can set up. Better would be some kind of hierarchical tag system, where tags (e.g., “project x”) can have sub-tags (e.g., “instrumentation”) and sub-sub-tags (e.g., “instrument y”). I read that Apple’s new pro-level photo-editing application Aperture has this, though I haven’t seen it myself.
So, why not chuck the hierarchical-folders metaphor for my computer’s document filing system in favor of a hierarchical tagging system? No more need for “aliases” or “shortcuts”! And throw in a powerful search system, so that files don’t need to “be” anywhere. Let’s ditch the entire idea that a file is “somewhere”, as if it were a piece of paper. All documents will live within my document repository, easily accessible either by search or by various tag-based views I construct. No more nested-folder walls.
But — never easily satisfied — I want more from my document repository. Why should I have to duplicate and rename files to keep old versions around? Build in robust, automatic, always-on, fine-grained version control of the type that Writeboard has. Now I can roll back if needed, or just peek back to see what I said the first time around. We’ve broken down the wall of time as well, or at least as much as mortals are likely to.
If we’re doing away with filing system and temporal walls in my document repository, why not do away with spatial walls as well? Give me an internet-based file respository I can access from any connected computer anywhere, along with local caching and behind-the-scenes synchronization so that I have the illusion that I’m working on a local file system (even to the extent of working off-line) that just happens to miraculously exist and be always identical on every computer I use. (Okay, I’ll accept the occasional bit of latency for updating, but keep it brief. We’ll need smart, anticipatory caching and synchronization scheduling here.) Box.net is already taking a step in that direction, and Google is supposedly cooking up something similar under the catchy name G-Drive.
Mmm… We’re on a roll. Let’s do away with the “mine” vs. “yours” wall as well. Why are files “mine” or “yours”, anyway? Working on a multi-person collaborative project, most of the project files are really “ours”. At the present, we can all keep our own copies, emailing updates back and forth, but that leads to the inevitable problems of “Do I have the latest version?” and “Uh-oh, we both made changes to that doc.” Programming teams have addressed this problem long ago through versioning systems like cvs and subversion. That, however, is far from seamless, and not so accessible to non-geeks. Another possibility is to maintain a project web site that acts as a central file store, uploading and downloading files as necessary with a “content management system” like Plone. This is slow and cumbersome, with the result that most of us keep local copies anyway. The web site simply serves as the “authoritative” repository (and only works well as long as we’re all disciplined enough to upload the latest versions, keep older versions there, and label everything well enough to identify version history).
Instead, let’s have all our files live in a big “cloud”, each tagged by the person who created it as well the people who have the rights to delete or rename or edit or re-tag or read or even be aware of it. This need not be a management nightmare. Imagine I assign files a tag that marks them as belonging to a specific project, and that I tag all the people on the project team as well. (Or all of a subgroup such as “developers”.) Then, with a tag-based permission system, I assert that all documents in this project can be edited (or whatever) by all people on the team. Low-maintenance: any time I want to add a new document to the project’s document cloud, making it available to all the relevant people, I just stick the right tag on. And the file is still “on my machine”, or at least looks that way thanks to all the fancy caching and synchronizing that’s happening.
Getting fine-grained is easy with hierarchical tags. For the tags I attach to people, I’ve got a project tag, and sub-tags for various groups that should have various access privileges. And project sub-tags for documents of various classes (“draft”, “public”, “instrumentation”, “publicity”, etc.). Now, at the same time as I’m making these various documents easy to find and view in various ways, I’m making them easy to share with the right people.
Let’s see… We’ll need a new kind of file-browser to navigate and search this cloud of location-agnostic, potentially group-owned documents. Something better than and different from both Apple’s Finder and Microsoft’s Windows Explorer (not hard). With “smart folders” that can, for example, readily provide all files with certain tags, tag combinations, or search characteristics. And with seamless viewing of various file formats, probably via an extensible plug-in architecture and smooth interop with various applications. Now, if some of these document formats support hyperlinks to documents elsewhere in the cloud, and communicate with the file browser to follow them, I can traipse from document to document if I want to: another way of finding stuff in the cloud. A seamless integration of document filing, document browsing, and link following… Does this start to sound like the future of the Web?
Oh, and I want it next week. Thanks.
