Nepomuk

    From KDE UserBase Wiki
    Revision as of 06:48, 6 December 2011 by FuzzyBot (talk | contribs) (Updating to match new version of source page)

    Nepomuk

    Das Ziel dieser Seite ist es nicht, die Nepomuk-Technologie und jedes ihrer Details vollständig zu erklären, sondern einen kurzen Überblick, einige Beispiele zu geben und die Vision, die dahinter steht zu erklären, sowie weiterführende Links zu hilfreichen Informationen im Netz zu geben.

    Kurze Erklärung

    Wie das Glossar sagt, geht es bei Nepomuk um Klassifikation, Organisation und Präsentation von Daten. Es ist ein bestimmtes Programm, sondern eine Komponente, die von Entwicklern innerhalb ihrer Programme genutzt werden kann.

    Ausprobieren

    Beispielsweise benutzt Dolphin Nepomuk. Damit das folgende funktioniert muss Nepomuk und Strigi in Systemeinstellungen -> Desktopsuche aktiviert sein. Die Seitenleiste ermöglicht es dir, Tags zu vergeben, Dateien mit Bewertungen und Kommentare zu versehen. Diese Informationen werden in Nepomuk gespeichert und durch Strigi indiziert. Du kannst dann nach Tags suchen, indem du das Suchfeld von Dolphin benutzt. Schreibe dazu "nepomuksearch:/" gefolgt von den Suchbegriffen.


    Funktionalitäten

    Nepomuk bietet Applikationen verschiedene Funktionsebenen an. Die einfachste und einfachste ist manuelles Taggen, Bewerten und Kommentieren, wie es in Dolphin benutzt wird. Es hilft dir, deine Dateien schneller zu finden, ist aber auch eine Menge Arbeit.

    Um Textdateien einfacher auffindbar zu machen, bietet Nepomuk eine zweite Funktionalität an: Indizierung des Inhaltes von Dateien. Es benutzt dazu eine Technologie namens Strigi. Du kannst dadurch Dateien auch finden, indem du nach einzelnen Wörtern suchst, die in der Datei vorkommen, oder nur nach (einem Teil) des Titels.

    Die dritte Ebene ist sehr komplex, und der Grund, warum Nepomuk als Forschungsprojekt einiger Firmen und Universitäten der Europäischen Union entworfen wurde. Hier findest du schwierige Begriffe wie "semantischer Desktop" oder "Ontologien". Prinzipiell geht es um Kontext und Verwandtschaften.

    Indexing files

    Strigi 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, and it only indexes certain directories in your home folder. You can change this in System Settings -> Desktop Search -> Desktop index folders -> Customize index folders… -> Strigi Index Folders.

    Note that Strigi as of KDE 4.7 does not follow symbolic links (bug #208602), even if you select folders under the symbolic link for indexing (bug #287593) for index. (A symbolic link is a file that "points" to another file or directory; Dolphin displays symbolic links in italic .) You must find the path to the actual directory (in Dolphin, select the file, choose Properties -> General -> Points to) and tell Strigi to index that.

    In System Settings you can also control whether Strigi indexes files on removable media such as USB drives and CD-ROMs.

    Beispiele

    Lass mich versuchen, anhand von zwei Beispielen zu erklären, was Nepomuk anbietet.

    Verwandtschaft

    Angenommen, du hast von einem Freund vor zwei Wochen ein Foto bekommen. Du hast es irgendwo auf deinem Rechner gespeichert. Wie findest du nun diese Datei? Wenn du dich nicht an den Ort erinnerst, hast du Pech.

    Nepomuk will dir dabei helfen. Du weißt, dass diese Datei von eben jenem Freund kam, dein Rechner weiß dies jedoch nicht. Nepomuk aber kann sich an diesen Zusammenhang erinnern. In dem du nach dem Namen deines Freundes suchst, wird das Bild also erscheinen!

    Eine weitere mögliche Verwandtschaft gibt es zwischen einer Internetseite, von der du Text kopiert hast und dem Dokument, in das du es eingefügt hast, oder zwischen zwei Bildern, die dasselbe Auto zeigen. Solche Relationen können manchmal aus den Dateien selber gezogen werden (man könnte Fotos analysieren und schauen, wer oder was darauf zu sehen ist) oder von den benutzten Programmen bereitgestellt werden (wie im obigen E-Mail-Beispiel). Dieser Teil Nepomuks befindet sich immer noch in der Entwicklungsphase und benötigt die Integration in Programmen, so dass man noch einige Jahre warten muss, bis es wirklich funktioniert.

    Alles in allem geht es in diesem Teil Nepomuks darum, die Suche zu verbessern. Man denke nur daran, wie Google versucht, Suchanfragen intelligent zu verarbeiten. Wenn man ein Hotel und einen Städtenamen sucht, zeigt die Ergebnisseite einen Stadtplan, der Hotels in der angefragten Stadt anzeigt. Es wird sogar die korrekte Schreibweise angeboten, falls man sich vertippt hat. Google versucht auch, die relevantesten Informationen an den Anfang der Liste zu setzen. Nepomuk wird solche intelligenten Ergebnisse bieten und sie nach Relevanz sortieren können, indem diese Verwandtschaftsinformationen benutzt werden.

    Kontext

    Diese Relationen können nicht nur helfen, wenn man nach Dateien sucht, sondern können auch einen Einfluss auf Programme haben und welche Informationen sie darstellen. Denke daran, dass dieser Teil Nepomuks noch eher eine Vision als Realität ist. Viele Komponenten existieren bereits, sind aber noch nicht in den Programmen und den Desktop insgesamt integriert.

    Es folgt ein Beispiel, das dir durch den Kontext hilft, effizienter zu arbeiten.

    Angenommen, du arbeitest an der Nachbearbeitung einiger Notizen, die du in einer Besprechung geschrieben hast. Das Telefon klingelt und jemand fragt dich nach einer Datei mit Preisen, und ob du sie für einen Kunden bearbeiten könntest. Nach ein paar weiteren Unterbrechungen ist dein Desktop voller Dateien und Fenster...

    Es wäre schön, das alles ein wenig besser zu organisieren, oder?

    Schau dir 'Aktivitäten' an. Diese wurden in Plasma eingeführt, und bieten derzeit verschiedene 'Desktops' an. Sie ähneln teils den virtuellen Desktops, außer, dass sich der Desktop selber ändert, nicht die geöffneten Programme. Verschiedene Widgets, ein anderer Hintergrund, und ähnliche Dinge. Natürlich kann seit KDE 4.3 jeder virtuelle Desktop seine eigene Aktivität haben, indem beide miteinander abgeglichen werden.

    Wenn Applikationen und der Desktop sich der Aktivitäten bewusst wären, könnte man eine Aktivität für jede Aufgabe erstellen, an der man regelmäßig arbeitet. Wenn man also oft eine Tabellenkalkulation mit Preisen editieren muss, erstellt man hierfür eine Aktivität: einen oder mehrere Folder View-Widgets auf dem Desktop erstellen, einen Taschenrechner hinzufügen und ein Aufgaben-Widget, um das im Auge zu behalten, was man noch bearbeiten muss. Vielleicht sogar ein E-Mail-Widget, das die E-Mails anzeigt, die Fragen zu diesen Preislisten beinhalten.

    Sobald jemand eine Frage zu diesen Preisen stellt, wechselt man zu dieser Aktivität, und startet das Tabellenkalkulationsprogramm. Dieses hat ebenfalls Zugriff auf die Aktivität, und zeigt dir die aktuellsten Preislisten, und nicht die Inventurliste aus einer anderen Aktivität. Kopete, das Chat-Programm zeigt den Kollegen an, der alles über Preise weiß, und die Person ist, mit der man immer chattet, wenn man in dieser Aktivität arbeitet.

    Wenn man fertig ist, wechsele zurück in eine andere Aktivität, und alle Programme passen ihr Verhalten wiederum dem an, was man tut.

    Die Vorzüge eines solchen aktivitätsbasierten Arbeitsprozesses gehen weiter als man auf den ersten Blick meinen könnte. Es hilft nicht nur dabei, Dateien und Kontaktpersonen zu finden, aber hilft auch, die Aufgabe selber zu wechseln. Das menschliche Gehirn ist nicht sonderlich gut darin, mehrere Dinge gleichzeitig zu machen - die meisten Menschen brauchen mehrere Minuten, um nach einem Aufgabenwechsel wieder Fahrt aufzunehmen. Die 'Umgebung' zu ändern, hilft eine Menge dabei, dieses zu beschleunigen, selbst wenn es sich nur um den Bildschirm handelt. Man vergleiche es damit, in Urlaubslaune zu kommen, indem man lediglich einen Koffer packt.

    Natürlich ist all das eher relevant für Leute, die im Büro oder zu Hause an ihrem Rechner arbeiten. Für Spieler oder nur gelegentliche Benutzer würden solche Aktivitäten wahrscheinlich nicht sehr hilfreich sein.

    Bedenke, dass das oben beschriebene Szenario noch Jahre in der Zukunft liegt. Ein großer Teil der Infrastruktur dafür existiert in KDE bereits, vieles bleibt jedoch noch zu tun.

    Frequently Asked Questions

    The following is taken from a KDE forums post. Please feel free to add/remove/modify details if you have the time!

    Q. What is the Nepomuk Semantic Desktop, and the Strigi Desktop File Indexer?

    A. The Nepomuk Semantic Desktop is the foundation of the all the other modules of the Nepomuk infrastructure. It provides a way to organize, annotate and build relationships among the data (not only file name and content, but for example which applications used a certain file, or how it is tagged). A number of KDE applications and workspaces use this basic infrastructure to deliver features such as email tagging (KMail) or activity setup (Plasma).

    On the other hand, the Strigi Desktop File Indexer is a system to index files so that they can be added to the main Nepomuk repository, a convenient way to use them within Nepomuk without adding any file manually. Also, applications such as Dolphin can then search for files basing on content, name, or other meta-data (e.g. tags) associated to indexed files. Such an indexer can also index non-text files, such as PDFs, by accessing the meta-data contained in these files (author, publication information, etc.). Some KDE components ship additional "analyzers" for more file types. Nepomuk can be fully functional without the use of the File Indexer, which is an additional (and optional) component.

    Q. How can I tell if Strigi has indexed a file?

    A. In Dolphin, select the file. If the Information panel displays "Created at" and "Has hash", then the file was indexed by Strigi.

    Q. How can I disable the semantic desktop?

    A. Most of the times, the easiest way is to disable file indexing, which is usually, among the Nepomuk components, the heavier in resource usage (although many optimizations have been included in the 4.7 release which reduce resource usage). This is done by unchecking Enable Strigi Desktop File Indexer in the Desktop Search section of System Settings. In case you want to turn off all semantic features, uncheck Enable Nepomuk semantic desktop. Notice that this will turn off search in Dolphin as well.

    Notice that with the latter option some programs who use Nepomuk for meta-data will offer reduced functionality: for example KMail will not be able to tag mail, or Plasma activities will not offer additional features such as icons, or program data information.

    Q. Why do I have nepomukservicestub processes even though I've disabled Nepomuk?

    A. It may be a bug. Please file a bug report with a complete description of your problem and the steps to trigger it.

    Q. File indexing of PDF/some other file types doesn't work.

    A. PDF indexing is a known issue and it's being tracked in bug #231936. If you have issues with other files, open a bug, preferably adding a sample file that shows the problem.

    Q. The program nepomukservicestub crashes at startup.

    A. A large number of fixes for crashes has been fixed for the 4.7.2 release of the KDE Workspaces and Applications. If you encounter more, please file bugs report with detailed instructions on how to reproduce the problem, as sometimes the developers are unable to trigger them in their test setups.

    Q. The virtuoso-t process hangs at 100% CPU.

    A. Virtuoso-t is a key component of the Nepomuk infrastructure and in some occasions the commands sent by the other components end up taking too much time (hence showing the effect of 100% CPU). Sebastian Trüg (the lead developer of Nepomuk) has fixed most of these problems in 4.7.1 or newer.

    Q. Sometimes Nepomuk consumes too much RAM.

    A. Many of these problems have been fixed, in other cases however the developers are unable to reproduce the issues correctly. In this case, providing examples and test cases to bug reports increase the chances to get these bugs fixed.

    Q. Nepomuk re-indexes files at startup.

    A. This bug has been fixed in 4.7.0 versions. Now Nepomuk just "scans" for changes, without indexing anything.

    Q. Nepomuk accesses the disk too much on startup.

    A. In 4.7 and newer this problem has been lessened thanks to a throttling mechanism implemented in the file indexer.

    Q. My Nepomuk database has been corrupted. How do I clean it?

    A. In the extreme case your database is really corrupted and all other attempts have failed, you can delete the $KDEHOME/share/apps/nepomuk directory (where $KDEHOME is usually .kde or .kde4) while Nepomuk is not running. The database will be cleared, but you will also lose existing information such as tags, ratings and comments.

    Advanced troubleshooting

    If Nepomuk has trouble indexing a file, in a terminal try running

    nepomukindexer /path/to/file

    and see if there's any useful output. You can compare the output to a similar file that is successfully indexed.

    xmlindexer /path/to/file > /tmp/test.xml

    generates an XML representation of some of the information extracted from a file. You can view this in an XML viewer, such as your browser, and again compare it to the output for a similar file. (xmlindexer may be in a different and optional package in your Linux distribution; for example in Ubuntu it is in the strigi-utils package.)

    This blog post explains how to turn on debugging output from the Nepomuk service. It also shows how to debug the CPU usage of Nepomuk and its storage backend.

    Veröffentlichen und Privatsphäre

    Eine Sache muss ich noch erwähnen, bevor ich auf andere Informationsquellen hinweise: das Veröffentlichen von Nepomukdaten. Es wäre von Vorteil, wenn man Tags, Bewertungen und Kommentare mit anderen teilen könnte, wenn man ihnen Dateien sendet. Wenn man jedoch eine Kontaktperson mit mehr oder weniger beleidigenden Tags ("langweilig im Bett") belegt hätte, würde man wahrscheinlich nicht wollen, dass dieser Tag mit versendet würde...

    Dieser Umstand wird natürlich bedacht und ist ein wichtiger Aspekt in der Forschung um Nepomuk. Zur Zeit ist diese Privatsphäre zusammen mit den technischen Herausforderungen der Grund, dass Nepomukdaten privat sind. Es sei versichert, dass das Nepomukteam alles erdenkliche tut, damit deine Privatsphäre respektiert wird.

    Mehr Informationen:
    Wikipedia - Semantischer Desktop
    Wikipedia - NEPOMUK Framework
    NEPOMUK website
    NEPOMUK KDE site
    article explaining Nepomuk on the DOT