Since last monday, the 2009 edition of the Summer of Code is over, so it’s time for a summary of the work of my project, what has been done, what has not been done, and what I am doing right now; while reading this, keep in mind the picture you see above, taken from one of the most recent code snapshots of the smartsave dialog system.
The project: a little reminder
My project for the GSoC had the aim of developing an alternative semantic load an save dialog system, through which the user would be able to save meta-informations and interrelations about its files, like associating the current context or the current project, or the pdf version of an OpenDocument file; during the opening operation, a new view of the file system would be produced, so the user should navigate and filter through the previously created metadata, narrowing the possible range of files until it finds out what he/she is looking for.
Why is this important/useful?
This is a question that I often hear, especially from those people who think that a semantic desktop engine is not different from, for example, Google Desktop Search, or similar file crawlers; well, a semantic engine is very different from a crawler: the latter just passively crawls through tons of files, extracting text and allowing a search through keywords, while the former can combine its informations, using mathematical logic rules in a process called reasoning, for expanding the metadata associated to a document and allowing a user to search it through paths he/she hadn’t thought about when saving it.
The semantic desktop is not just this, and a very good introduction to it can be found here: it is worth reading it, believe me.
The new dialog system jumps straight into this view: saving files in the current way is somehow old, and it requires the user to create a reasonable directory path, so he/she will be able to find its file back someday, when he/she will need it; in my view, it should be very useful if we are able to associate to a document some informations, about its contents or about the contest in which we have created it, without bothering with a file system structure: wouldn’t it be easier to search for it later?
What has been done in these three months
Ok, so what do we have now? During this GSoC, I have created a new UI, similar in certain aspects but different in others to the current one; an interface to some plugins which are able to analyze file content and extract possible metadata, also querying some online services like OpenCalais; the user is also able to associate personalized metadata.
The open dialog presents a full list of files, comprehensive of those indexed by Strigi, with a list of filters for narrowing the search; the filter system is very similar to the faceted browsing system which you can find on many Web sites.
Currently, files are saved in ~/Nepomuk, with a file path that can be explored also through the standard file manager; the name and the path automatically given by the dialog backend is not *that* beautiful for now, but there are some development already planned.
What has not been done
Reading from the original application, there is just the optional goal which has not been developed, and it consisted in a new view also for the file manager, allowing a file browsing similar to the open dialog one; unfortunately, time has not been enough to develop it too, but other developers are also working on a better file search UI for Dolphin, so there will surely be news in this field in the next weeks.
What is developed now (and where is the code)
The code for this dialog system is in playground, in the Nepomuk-KDE section, but currently it cannot be used as is
But there is a good reason for this: I am currently working in a little hack of kdelibs, for having the dialog shown as an alternative in all the KDE programs (like Okular in the screenshot, or KOffice in a previous post), so the code is now in an intermediate form and you will have to wait a little more to try it out.
This is currently the main development target, with also a couple of todo items still in my list; there will also be new code coming up for the elaboration of the “real” file path, and more plugins for extracting more and more metadata automatically from the document to be saved.
Here are some credits: I have to thank Nicola Vitucci, a great friend who gave me some very good advices, especially when I wrote my application; Sebastian Trueg, my mentor, for having helped me along these months (and for still helping me ), and for having stood for my very basic questions on Qt and KDE libraries; Adam Kidder and its GSoC project about kio-slaves, which I am heavily using in the open dialog, and all those people who commented my posts and discussed their views in chat with me: your opinions and ideas has been very important, and I hope they will be of the same importance also in the next days that I will spend with KDE and its community (yes: I’m staying with you)!
So, stay tuned: some good things are coming out!