News
Blog: Nepomuk und Strigi
Der semantische Desktop, abgeleitet vom semantischen Web versucht Daten und Informationen auf unseren Rechnern über verschiedene Dateiformate hinaus sinnvoll zu verknüpfen. Dazu verwendet es das universelle Dateiformat Resource Description Framework (RDF). Tiefergehende Informationen zum semantischen Desktop gibt es unter http://de.wikipedia.org/wiki/Semantischer_Desktop . Nepomuk beinhaltet auch Strigi zur Indexierung und Desktopsuche. Es wird sehr interessant sein zu verfolgen was uns Nepomuk in Zukunft noch bringt.
Mit KDE4.3 funktionieren Nepomuk / Strigi einwandfrei, aber leider nicht out of the box. Auch sind die Informationen im Netz noch sehr rar und nicht wirklich klar. Deshalb werde ich einmal die Inbetriebnahme bei sidux erklären.
Zunächst einmal etwas nötige Theorie: Nepomuk bedient sich eines objektorientierten RDF Frameworks namens Soprano welches wiederum verschiedene Backends nutzen kann. Soprano ist die zentrale Meta- Datenspeicherung der RDF Daten und kann verschiedene Backends benutzen. Zur Zeit sind das:
* redland
* sesame2
* virtuoso
Debian verwendet momentan redland welches leider sehr langsam ist. sesame2 ist wegen vielen zu integrierenden Java jars nicht wirklich sinnvoll zu paketieren. Die Zukunft bei debian soll virtuoso gehören welches aber noch nicht benutzbar ist.
Eine schematische Darstellung macht die Zusammenhänge etwas klarer:
Schematik von Nepomuk
Weitere Erklärungen hierzu gibt es unter http://liquidat.wordpress.com/2007/06/19/more-about-nepomuk-kde-soprano-and-kde-integration/
Vorbereitung:
Zuerst stellen wir einmal sicher das alle nötigen Pakete installiert sind:
Bitte fehlende Pakete nachinstallieren.dpkg -l *strigi*
ii kdegraphics-strigi-plugins 4:4.3.0-1 graphics file format plugins for Strigi Desktop Search
ii kdepim-strigi-plugins 4:4.3.0-1 PIM file format plugins for Strigi Desktop Search
ii kdesdk-strigi-plugins 4:4.3.0-3 software development file format plugins for Strigi Desktop Search
ii libstrigihtmlgui0 0.7.0-1+b2 library for writing html clients for Strigi Desktop Search
ii libstrigiqtdbusclient0 0.7.0-1+b2 library for writing D-Bus clients for Strigi Desktop Search
ii strigi-applet 0.5.7-1 KDE applet for Strigi Desktop Search
ii strigi-client 0.7.0-1+b2 Qt4 client for Strigi Desktop Search
ii strigi-daemon 0.7.0-1+b2 fast indexing and searching tool for your personal data (daemon)
ii strigi-plugins 0.5.7-1 plugins for Strigi Desktop Search
Nach Aufruf von Systemeinstellungen – Erweitert – Desktopsuche ist es sehr wahrscheinlich dass wir folgenden Fehler zu Gesicht bekommen:
Der Strigi-Dienst kann nicht initialisiert werden - wahrscheinlich liegt ein Installationsproblem vor
Dieser Fehler und/oder andere erschienen bei mir auf allen Rechnern die sun-java verwenden im Gegensatz zu openjdk. Abhilfe schafft hier folgender symbolischer Link:
ln -s /usr/lib/jvm/java-6-sun/jre/lib/i386/server/libjvm.so /usr/lib/libjvm.so (bitte i386 gegen amd64 austauschen bei 64-bit Installationen)
Bei openjdk war dies nicht notwendig, hier zeigte sich Strigi betriebsbereit. Unter 64-bit hatte ich trotzt korrektem Symlink mit sun-java überhaupt kein Glück, hier ging nur openjdk, und das ohne Symlink.
Für openjdk lautet der symlink, falls nötig:
ln -s /usr/lib/jvm/java-6-openjdk/jre/lib/i386/server/libjvm.so /usr/lib/libjvm.so (bitte i386 gegen amd64 austauschen bei 64-bit Installationen)Nun wollen wir noch das sesame2 Backend installieren da es wesentlich schneller ist als das vorinstallierte redland. Da sesame2 in Debian nicht erhältlich ist hat es towo freundlicherweise zum Testen für 32-bit und 64-bit paketiert. Die Pakete sind installierbar nach Eintrag folgender URL in /etc/apt/sources.list.d:
deb http://frickelplatz.de/debian/ sid main contrib non-free
und anschliessend:
apt-get update && apt-get install frickelplatz-keyrings && apt-get install soprano-backend-sesame
Achtung: dies sind keine offiziellen sidux Pakete aber sauber gepackt und ausreichend zum Testen bis es in Debian ein vernünftiges Backend (vermutlich virtuoso) gibt.
Anschliesssend sollte der Befehl sopranocmd --help unter --backend folgendes ausgeben:
--backend The backend to use when accessing a storage directly and not via the Soprano server.
Possible backends are:
redland, sesame2
Wenn wir jetzt aus dem K-Menue Systemeinstellungen aufrufen und unter Erweitert auf Desktopsuche gehen und dort beide Haken setzen sollte alles bereit zur Indizierung sein und diese automatisch starten. Für einen ersten Test bitte unter Erweiterte Einstellungen eine kleine sinnvolle Auswahl aus /home treffen. Es können sowohl Ordner in /home direkt ausgeschlossen werden als auch bestimmte Dateitypen. Die erste Indexierung der Daten dauert eine Weile, bei 200 MB aus /home hier so etwa 4 Stunden. Danach werden nach jedem Booten kurz die neuen Daten indexiert, dies dauert hier einige Minuten. Man kann dies aber auch in den Systemeinstellungen abstellen indem man den unteren der beiden Haken entfernt und nur bei Bedarf neu indexiert.
Achtung: Bei Notebooks sollte die erste Indexierung nur bei Netzbetrieb ausgeführt werden. Strigi erkennt zwar einen niedrigen Akkustand, stoppt die Indexierung und nimmt sie nach einem Neustart wieder auf. Dies führt aber teilweise noch zu einer fehlerhaften Datenbank
Wenn die erste Indexierung abgeschlossen ist kann man nun in Dolphin und K-Runner bequem und (mit sesame2 im Gegensatz zu redland) sehr schnell suchen. Selbst Suchen mit hunderten Treffern dauern 1-2 Sekunden. Dazu benutzt man in Dolphin das Suchfeld oben rechts oder in K-Runner (ALT-F2) den Begriff nepomuksearch:/suchwort


Kommentare
tja, auch ich dachte es funzt nicht aber ein Neustart des Systems vollbrachte wahre Wunder ... Alles geht jetzt bestens ! Vielen Dank für die Anleitung.
Danke für Deine Arbeit, Nepomuk und Strigi zu dokumentieren.
Zu Deiner Anleitung habe ich zwei Anmerkungen:
1. Ist o.g. Paket nicht überflüssig? Es zieht bei mir KDE 3 Abhängigkeiten nach:
http://packages.debian.org/sid/strigi-applet
2. Die Paketübersicht hast Du doppelt in den Artikel reingepackt.
Viele Grüße,
Holger
~/.kde/share/config/nepomukserverrc
noch redland statt sesame2 drin stehen hat.
habe alles wie oben versucht, bei mir läuft der Dienst aber nicht (amd64). Nach Neustart steht da: "...Dienst nicht aktiviert", nach Anklicken des zweiten Häkchens und "Anwenden" steht die alte Meldung "...kann nicht initialisiert werden...".
Na ja es kommt ja eh ein größeres Update hierzu, da warte ich mal drauf.
Zwei Hinweise:
1) Gut wäre ein Test mit dem ich rausfinde ob ich java oder openjdk habe. Dann brauche ich auch nur den symlink setzen, den ich benötige (falls zukünftig überhaupt noch nötig).
2) Der Hinweis:
"Anschliesssend sollte der Befehl sopranocmd --help unter --backend folgendes ausgeben:..."
erschließt sich mir nicht. Was gebe ich ein?
> sopranocmd --help --backend ???
oder erst
> --backend und dann sopranocmd --help
> Unter root oder user ???
Man sollte bei solchen Hinweisen an die Nicht-Profis denken!? Dies als Hinweis.
Die Arbeit weiß ich natürlich zu schätzen!!
Nur angemeldete Benutzer dürfen kommentieren. Registrierung oder Anmeldung.