I’ve been following the idea of a semantic desktop for a few years now, waiting for someone to implement a framework that enables a user to actually do something that’s useful. I think that time has come. It seems as if KDE has managed to integrate the Networked Environment for Personalized, Ontology-based Management of Unified Knowledge (Nepomuk) into their new 4.0 release, and while it’s far from perfect (not least because of the hideous name), it seems at least to be a usable solution and manages to give us a glimpse of the power of the semantic desktop.
So, what’s a semantic desktop and why is it cool? First, we have to understand why current filesystem managers aren’t cool. The file/folder hierarchy has been around since the first graphical user interface and for the most part, has handled the task of providing users with a visual of the filesystem in an easy to understand way. Of course, it’s only a metaphor and “files” and “folders” are actually scattered all over the disk. The interface presents the information in a hierarchical and linear fashion, which is not even close to how we think about and organise information, and this is where we can start to see the system breaking down. The metaphor of files and folders that we use for managing information on a computer has worked reasonably well until now. What’s changed?
When I only had a few thousand files on my computer, it was pretty simple to put them into folders and more or less remember where they were. Over time, I had to start using dates or descriptions in the files and folder names to give me more information about what it’s contents were. Again, this served me well until I began my masters thesis and had to start working with large numbers of large documents. Now, not only did I need to know where I could find certain information (eg. what folder a file was in), I needed to know “deeper” information, such as author, publication and perhaps most importantly, what ideas were in that document (remember, that “document” could include videos and audio files). The default search application could only index the name and type of the file, so if my document name wasn’t descriptive enough (i.e. have author, title and main idea in it), it’d sometimes take ages to find what I was looking for just by searching.
This was partly solved with Desktop Search, which indexed not only the document location, name and type, but also all the text within the document (if it was supported). Now we could search by keywords within documents. Awesome. Except sometimes ideas are not articulated using the same words across documents. Or the ideas are related but not the same. Or you could spell the word/s incorrectly and now your keywords don’t match the keywords in the database. Besides, Desktop Search couldn’t index the text within an image or the ideas within a video. So it was a great temporary solution but still not good enough.
It’s a big problem, especially for me. I can name a file using author and title, and if I have a good memory (which I don’t), I can maybe remember the gist of the ideas in the document with a few keywords included in the name of the file. However, try doing that with a 150 page White paper or thesis that contains many different ideas or themes. It gets worse. Suppose I have multiple documents, all with different main themes but related subthemes (for example, contradictions of the same idea), or with the same ideas framed in different ways. Suppose those documents actually deal with different topics in general but each comes to a similar conclusion and I’ve filed them according to the main idea in different folders. Now I have to remember not only the author, title and main theme of the document, but also the subthemes and their relationships to other documents, in different folders, by different authors, with different titles. What if their are multiple ideas relating to multiple other documents, as their often are?
As you can see, once you start dealing with large numbers of large documents, multiple themes or ideas and different relationships between all of these things, the file/folder metaphor breaks down pretty quickly. So, what’s the solution?
The semantic desktop is an idea that has been around for a while but has taken a long time to bear fruit (I’m not sure why, although possibly because there’s not enough demand or because technology limited development). It suggests that with the huge proliferation of content we store locally (photos, emails, music, text documents and everything else we hoard), finding information and remembering the relationships between that information is going to become increasingly difficult. An example given often includes trying to remember who emailed you that image you want to show someone, but don’t remember where it is or what it’s called. It’s the same idea as trying to find that article by that author who had that great idea (we find it easier to recall ideas, rather than specific information like author and location).
So, the semantic desktop is a framework that exists as a data layer within the operating system that “remembers” not only the relationships between objects on your computer (for example, the email address and name of the person who sent a photo) but can also store any metadata you ascribe to it. Metadata is data about data, so the date information that’s encoded into your photo or the ID3 tag you apply to an MP3 is all metadata. What if we could ascribe metadata to articles?
We can. The good people at KDE (there may be others, although I’m not familiar with them) have implemented the Nepomuk framework into KDE 4.0 (another article here) and it seems to be working OK, although right now it’s quite limited. At this point you can only apply tags to a document, provide a description and rate it. While that doesn’t sound terribly exciting, think of the possibilities. Now I can design textual Tags to loosely describe the main themes or ideas within a document (of course, multiple tags are possible, which means describing multiple ideas), as well as use the Description component to highlight the key features of the article, as well as any other information that might be useful. The rating system could be used to define the strength of an article, for example, newspaper articles might get one star, while systematic reviews could be given 4 stars.
Now it’s possible to search through hundreds of documents in multiple folders (or all thrown together in the same document) by themes or ideas (tags) and quickly establish which of the documents dealing with those themes contain the key points (description) I want to review, as well as determine the strength of the article (ratings).
This is just the beginning of the potential that Nepomuk will bring to the desktop. It’ll also create a system that will allow people to decide what information (and ideas) to share across distributed environments. So for example, researchers on the same team can each have access to everyone’s information dealing with that project but not everyone’s personal data. Sounds pretty cool to me.
Note: Nepomuk and KDE only run on Linux at this point. However, Qt4 can be compiled to run on Windows, so the coolness could theoretically be coming to you soon.