Thoughs on Semantic Desktop and filesystems
Some days ago, I wrote a blog entry on my experience with MacOS. I anticipated a new post on "semantic desktop" applications.
In the first place, I must insert a disclaimer. I'm not involved in any semantic desktop project. There are some projects, such as Nepomuk, that are investing a lot of money to realize the vision of the semantic desktop. Although I've read some published papers, and I attended to some talks on this topic, I think that I'm not really aware of the current state of the art, and therefore, I'm not really qualified to talk about this topic. Therefore, you should read these paragraphs as a few thoughts from an outsider to the semantic desktop community.
I don't know anything about the status of the semantic desktop in the Windows platform, because I don't use it. However, in the open source world and in the Mac world, it is easy to find some progress. One of the main changes that the semantic desktop should bring to us is the invisibility of the file systems. Some years ago, when I was a studying Operative Systems Design at the University, I read an article that argued that filesystems were doomed. Unfortunately, I don't remember the citation, but since that moment, I've been convincing myself that the visionary assertion was right. Actually, traditional filesystems and partitions are ridiculous. Their main abstractions (files and directories) were OK when the size of magnetic disks was measured in KBytes or MBytes. Today, we have home devices with GBytes or even with TBytes, and we use them to store and share huge amounts of data. It is often difficult to organize the information in a hierarchical structure, but it is even more difficult to find it when it is stored in this way. But is it possible to store and find documents without a hierarchical filesystem? Well, I think that the web and Google have already proved that point. In the web, we don't browse hierarchical directories, we just discover and follow links. Big information repositories, with millions of documents, such as Flickr or Youtube, are not organized using folders.
So what an OS without filesystems looks like? In the first place, directory browsers (Explorer, Nautilus, Finder) will probably loose their central position in the user interface and the desktop metaphore. Their place will be taken by desktop search tools such as Beagle, Google Desktop and Spotlight. I've tried these three, and now I use the second and the third one everyday.
I don't know which one pioneered the idea, but nowadays, there are some applications that do a decent job to abstract the user from the filesystem. I imagine that iTunes is the most popular example, although the free software world has also a number of them. These applications use the meta-data to provide faceted browsing and searching, which are very convenient features for multimedia repositories. This paradigm shift is not welcome by everyone. Some advanced users still prefer to keep control on how their files are stored in their hard disks. Novice users, on the other hand, may be confused by having to learn new things (meta-data, ID3 tags, etc.). Anyway, I think this is a step in the right direction.
Strict hierarchical structures are also a burden to store our "bookmarks". From my experience, only a few people use the bookmarking feature of their browser. Most people use their preferred search engine to look for the page they want to visit. Many times, it is quicker to look up in Google than to browse through your bookmarks. On the other hand, advanced users have discovered the joy of collaborative bookmarking services such as Del.icio.us (by the way, this is my favourite Firefox extension).
What about using a hierarchical menu to look for the application you want to launch? Even in a well-organized menu, such as the GNOME one, it takes some time to find something. With respect to Windows... well, I feel sad for its users. In a semantic desktop, most applications should be transparent utilities, that are opened by the system when they're necessary (can anyone help me to understand why Windows users need an "Acrobat Reader" icon on their desktops?). But sometimes you really need to fire an application. Some months ago I discovered a very nice application called QuickSilver, which is very convenient for launching applications (and other things, see below). Recently, a GNOME clone has been created. It is difficult to define these applications, but once you have learned to use them, they're addictive.
A remarkable thing about QuickSilver is that does much more than just launching applications. From a semantic point of view, I think it is interesting from two points of view. In the first place, it allows me to launch applications, play music, open documents, see my agenda... and I don't have to think about where they are. I just type some characters, and they show up. In the second place, the QuickSilver metaphor is based on building sentences with a subject and a verb, but some actions also need an object. When they are displayed next to each other, they resemble an RDF statement.
In order to be able to abstract from the filesystems, we need to have meta-data rich objects in our desktops. I'm using MailTags to tag my email. MacOS has support for metadata in the filesystem, so I can also tag my files, but this is often a burden. TagBot makes this task as easy as drag-and-drop the files to tag them.
At this point, maybe you are convinced that we can live without filesystems. But wait a moment... sometimes, I need to now where my files are. For instance, at some point ¡, the file I need may live in my laptop hard disk, but now I'm using my desktop PC and I don't have access to it. I think this kind of problems also has a solution. The solution is simple: the files must be available everywhere! Historically, I've been using CVS and SVN to synchronize and distribute my files (not as far as Joey Hess does, but close). Recently I discovered EverNote, an application that smoothly stores and synchronizes your files across multiple machines. I can even access my files from a borrowed computer though the web interface. This new kind of Web 2.0 applications still have a long way to go, but they are showing us the future. All our data (our huge GMail account, our photos in Flickr, our bookmarks in Del.icio.us...) will be transparently available from everywhere.
Even an operation such as making backups, which a priori is completely dependent on the filesystem, can be abstracted from them. TimeMachine is so easy and transparent to use that it makes all the other backup applications look like they are from the past.
I think we are getting closer to the semantic desktop, but we aren't there yet. I expect to see more progress on integrating all these applications. Smooth synchronization of PIM data (agenda, contacts, tasks) among all my devices will be also a cornerstone, and it is almost done. Blending the barrier between local and remote data is, from my point of view, the main challenge.