The aim of this page is not to fully explain KDE's Semantic Search technology and every detail, but to give a short overview, some examples, share the vision behind it and link to relevant information on the web.
From KDE Applications 4.13 onwards, the 'Baloo' file indexing and file search framework replaces Nepomuk. Read details on the changes for Applications 4.13 here. Semantic Search no longer uses a single, big database, but separate, specialized databases for each type of data. The new search databases are in $HOME/.local/share/baloo. If you upgraded to KDE Applications 4.13 from an earlier KDE release, you can delete $KDEHOME/share/apps/nepomuk.
As the Glossary mentions, Semantic Search is about classification, organisation and presentation of data. It is not an application, but a component which can be used by developers within applications.
For example, the Dolphin file manager makes use of Search. In KDE Applications versions prior to 4.13 Semantic Search must be enabled from . The information sidebar of Dolphin ( , or press F11) presents information extracted by Search about the selected file, and also allows you to assign tags, ratings and comments to files. This information is then stored and indexed by Search. You can then search for metadata using the navigation bar in Dolphin. Click to , or press Ctrl+F, and search for file names or file contents.
KDE's Semantic Search offers several 'layers' of functionality to applications. The first and most simple of those is manual tagging, rating and commenting, as used in Dolphin. This helps you to find your files faster, but is also a lot of work.
To make finding files containing text easier, Search offers a second functionality: indexing the text of files. You can find files by entering some words which you know are in there, or just (part of) their title.
The third layer is a very complex one, and the reason why the underlying technology, Nepomuk, was conceived as a research project of several companies and universities in the European union. This is where you will find difficult words like 'semantic desktop' and 'ontologies'. Basically, it is about context and relationships.
Search does not index every file on the hard drive. Its default configuration in most Linux distributions excludes some common patterns for backup files and configuration directories. You can change this in. Add folders to be excluded. If you want to turn off indexing of files entirely, just add your home folder there.
In System Settings you can also control whether Search indexes files on removable media such as USB drives and CD-ROMs. In KDE Applications 4.13 this is not available, removable media are not indexed. Future versions are planned to reintroduce this functionality.
Let me try to explain what Semantic Search offers using two examples. These features are not available fully yet - the base is there but application developers need to integrate this in their applications.
Say you received a photo from a friend of yours, 2 weeks ago. You saved it somewhere on your computer. Now how to you find that file? If you don't remember the location, you're out of luck.
Now Semantic Search aims to help you. You know this file came from that friend of yours, your computer does not. Search, however, can remember this relationship. Searching on the name of your friend will therefor pop up the photo!
Another potential relationship is between a web page you copied text from and the document you pasted it into, or two images showing the same car. Such relations can sometimes be extracted from the files themselves (you could analyze photos and see who or what is on there) or supplied by the applications involved (as in the above email example). This part of Search is still under heavy development, and needs integration in applications, so you can expect it to take a few more years to really shine.
All in all, this part of Semantic Search is about making search smart. Think about how Google tries to be smart with your searches: when you search for a hotel and a city name, it shows above the website results a google map showing hotels in the city you mentioned! It might even suggest a better name in case you made a spelling mistake. Google also tries to put the most relevant information on top of the list of results, using complex calculations on relationships (links) between websites. Semantic Search will be able to offer such smart results and order them on relevancy using relationship information.
These relationships can not only help you while searching for files, but also have an influence on applications and what information they present. Note that this way of using Search is still more a vision than reality! Many of the components are in place, but it is not yet integrated in applications and the desktop as a whole.
So here an example of bringing context awareness to your desktop could help you work more efficiently.
Say you are working on finishing some notes you took in a meeting. The phone rings, and somebody asks you to find that spreadsheet with prices, adjust it for a customer. After a few more interruptions you find your desktop full of files and windows...
It'd be nice to be able to organize all that a bit better, right?
Enter 'activities'. These have been introduced in Plasma, and currently offer different 'desktops'. They are a bit like virtual desktops, except that the desktop itself changes, not the set of applications. Different widgets, background, things like that. Of course, since Plasma 4.3, each virtual desktop can have its own activity, bringing the two in sync.
If applications and desktop were aware of activities, you could create an activity for each of the tasks you regularly work on. So if you often have to change a spreadsheet with prices, you create an activity for that: put a Folder View (or several) widget on the desktop, add a calculator and a todo-widget to keep track of what you still have to change. Maybe even an email folder widget showing the mails with questions regarding these prices spreadsheets!
As soon as somebody asks a question about prices, you switch to this activity. Fire up your spreadsheet application. It is aware of your activity so it shows recent price spreadsheets, not the recent list of inventory you were working on in another activity! Kopete, the chat application shows your colleague who knows all about prices, as she is the person you always chat with when working on this activity.
When you are finished, you go back to another activity, and once again all applications adjust their behavior to fit what you are doing.
The benefits of such an activity-based work flow go further than you might at first expect. It not only helps you find files and contact persons, but also helps in switching tasks itself. The human brain isn't very good at multi-tasking - it takes most people several minutes to get up to speed after switching tasks. Changing the 'environment' helps a lot in speeding this up, even if it's just on the screen. Compare it with getting in the mood for your holiday by packing your bag!
Of course, the above is mostly relevant to people working behind their computer in the office or at home. A gamer or a casual user would probably not use these activities much.
The scenario described above is already partially implemented in the Activities but much work is still left.
The following is taken from a KDE forums post. Please feel free to add/remove/modify details if you have the time!
In versions of the KDE Applications before 4.13, Semantic Search would have components running separate from applications. This functionality could be disabled by unchecking Desktop Search section of System Settings. In case you want to turn off all semantic features, uncheck . Notice that this will turn off search in Dolphin as well.in the
Virtuoso is no longer used by Semantic Search starting the Applications 4.13 release.
There is one thing I need to touch on before pointing to other sources of information: sharing Nepomuk data. It'd be great if your tags, ratings and comments would be shared with others when you send them files. However, if you tagged a contact with a slightly embarrassing tag ('boring in bed') and send that persons contact information to a mutual friend you probably don't want that tag to be send as well...
This issue is of course being considered and an important subject of research by the Nepomuk researchers. For the time being, these privacy concerns, combined with technical challenges, are the reason Nepomuk context is private. Rest assured the Nepomuk team does all it can to make sure your privacy is respected.
The new Search technology (post KDE Applications 4.13):
The old Search technology: