My last article I spoke about the new KDE Activities features Search and Launch Containment Activity (see my article "Using the KDE 4.5 Search and Launch Containment Activity"). This is the first visible sign of KDE's use of the Nepomuk Semantic Desktop. Nepomuk is a system that uses metadata throughout the desktop to aid in file search and peer to peer collaboration. So far the project has yet to reach its full potential (as it is quite new to the desktop).
Strigi, on the other hand, is the desktop search daemon that runs on the KDE desktop. It is these two components that help to create the KDE 4.5 Semantic Desktop (a desktop who's data is easily shared between components). In this article I will introduce you to these two components and how you interact with them to make your KDE desktop as fluid as possible.
Why you want to use these systems
As you have seen, over the last couple of years, the desktop has become a highly integrated system. It is becoming crucial that all components communicate with one another so that data is readily available. We share data. The more we share our data, the more out data must be shared between applications. We want our twitter applications to be aware of our contacts and calendars. We want our email clients to know about our file managers. We want our social networking sites to know about our music and video.
The problem with this has been each of those components were coded in different ways and creating bridges between them has never been easy. Those that work on Kopete might not know enough about Kmail to create a bridge. That's where the Semantic Desktop comes in. And to create that Semantic Desktop KDE uses a number of tools to achieve this.
Soprano is a QT library that is used to access the semantic storage (RDF). Soprano serves as a repository for the storage of information generated by the Nepomuk server, which is finally indexed by Strigi. The end user doesn't really have any interaction on the Soprano level.
As I mentioned, Nepomuk is one of the core components of the Semantic Desktop. There is little configuration between the end user and Nepomuk. You can enable/disable this service by clicking Start > Computer > System Settings > Desktop Search.
Figure 1 shows where you can enable/disable both the Nepomuk Semantic Desktop and the Strigi Desktop File Indexer. NOTE: Strigi is not officially a component of the Semantic Desktop in KDE. But including the indexing search system will only increase the amount of readily-available data on your desktop. You will also note that if you disable the Semantic Desktop the Strigi File Indexer is also disabled. So even though Strigi is not a core component, you must use the Semantic Desktop in order to use Strigi.
Once you have enabled the Semantic Desktop there is only one other configuration available for Nepomuk - memory usage. If you click on the Advanced Settings tab you can change the amount of memory alloted to the Nepomuk System. By default Nepomuk gets 50 Mb of memory. Although this should be plenty, the more memory it gets the better its performance will be. You can check how much memory it is using by opening up the process manager (click Start > Applications > System > System Monitor and look for virtuoso.
Believe it or not, that's pretty much all your configuration for the Semantic Desktop. For such a key aspect of the desktop, it's pretty amazing how little the user interacts with this system. That is a fairly important aspect of where the KDE desktop is heading - less need for end-user configuration. And since the Semantic Desktop is something a user should not have to know is there, having less apparent options is a good thing. The Semantic Desktop is a perfect next evolution of the KDE desktop. The end user will not be aware of the systems and sub-systems that are working to make sure all of their components can communicate with one another. The user will only know their social apps are aware of the bookmarks, and their mail client knows about their music which in turns knows about their files and folders which are all being indexed by other tools.Advertisement