Um das Thema Desktopsuche ist es in den letzten Monaten recht ruhig geworden – außer von Nepomuk [1] gibt es nicht viel zu hören. Mit dem Framework Nepomuk versuchen die Entwickler, die Grundlagen für einen semantischen Desktop zu legen, der Beziehungen zwischen einzelnen Objekten – beispielsweise einem Foto, einem Text und einem E-Mail-Thread – miteinander verbinden kann. Angesichts immer größerer Datenträger und damit Informationsmengen versprechen derartige Verbindungen von Objekten eine Erleichterung bei der Suche nach Informationen. Intern werden Suchanfragen mittels SPARQL [2] (siehe Kasten "Die RDF-Anfragesprache SPARQL") realisiert, einer Anfragesprache für RDF-Dateien [3]. Eine solche Anfrage ähnelt einer SQL-Query, also einer relationalen Datenbankanfrage. Als Grundlage dienen jedoch RDF-Statements, die Sachverhalte und Beziehungen zwischen Objekten modellieren.
Die RDF-Anfragesprache SPARQL
SPARQL steht als rekursives Akronym für "SPARQL Protocol and RDF Query Language". Die RDF-Anfragesprache ähnelt der Structured Query Language (SQL) für relationale Datenbanken. Um etwa aus der Ressource <http://linux-user.de/test> "SPARQL" den Begriff "SPARQL" abzufragen, ist folgende Query notwendig:
SELECT ?title
WHERE
{
<http://linux-user.de/test> nie:title ?title .
}Die Syntax ist etwas gewöhnungsbedürftig, doch die Analogien zu SQL liegen klar auf der Hand.
Die Nepomuk-Ontologie [4] (siehe Kasten "Die Nepomuk-Ontologie") bildet dabei die Grundlage, genauer das Gerüst (Klassen und Eigenschaften zur Verwaltung von Metadaten) für ein RDF-Statement. Andere Ontologien, wie etwa Xesam [5], stampften die Entwickler zugunsten eines gemeinsamen Formats Ende April 2009 ein [6]. Damit steht ein Standard für alle Suchmaschinen bereit, wobei Strigi [7] und Tracker [8] diesen bereits ausgiebig nutzen. KDE setzt derzeit auf das Zugpferd Strigi. Nokia und Gnome verwenden hingegen Tracker, das derzeit in einer stabilen Version (ohne Nepomuk) und einer Entwicklerversion bereitsteht.
Die Nepomuk-Ontologie
Eine Ontologie dient im Allgemeinen dazu, Informationen formal zwischen Anwendungen auszutauschen. Auf diese Weise lassen sich auch Beziehungen zwischen diesen Anwendungen herstellen. Dabei stellen die unterschiedlichen Dateiformate der Anwendungen unterschiedlich ein Problem dar. Durch ein einheitliches Format – bei Nepomuk das RDF-Format – fällt diese Hürde weg, sodass Verknüpfungen erkennbar werden und der reibungslose Informationsaustausch sowie die Informationsextraktion möglich ist.
Beagle, Strigi, Tracker
Der in Mono entwickelten Suchmaschine Beagle [9] sind buchstäblich die Entwickler davongelaufen: Dem früher hauptsächlich von Novell vorangetriebenen Projekt fehlt es seit Mitte August an Programmierern. Die letzte Version 0.3.9 datiert von Anfang 2009, seitdem gab es kaum noch Veränderungen am Code. Auch wenn Beagle weitaus mehr Funktionen bietet, als es Tracker oder Strigi derzeit tun, erscheint fraglich, ob sich Entwickler finden, die das Programm fortführen.
Was Beagle der Konkurrenz voraus hat, sind die sogenannten Extraktoren: Diese Programmteile analysieren die verschiedenen Formate, etwa die Browser-Chronik oder E-Mails, und ziehen die relevanten Informationen heraus. Mehr als zwei Dutzend Extraktoren bietet Beagle, unter anderem für Firefox, Thunderbird, Pidgin oder auch Opera. Sowohl für Gnome als auch KDE stehen Frontends zur Verfügung: Beagle-Suche und Kerry [10], sodass sich die Suchmaschine also für beide große Desktops gleichermaßen eignet. Im Vergleich zu seinen Kontrahenten bringt Beagle einen besseren Suchdialog für Anfragen mit, der die Informationen einzelner Dateien übersichtlicher darstellt. Der Anwender kann durch die Ergebnisse blättern, was für einen wesentlich besseren Überblick sorgt.
Für Strigi gibt es derzeit nur ein Qt-Frontend, das noch immer so spartanisch daherkommt wie bei unserem letzten Test Anfang 2008 [11]. Zwar gibt es auch eine Strigi-Erweiterung für Gnomes Deskbar-Applet, doch funktionierte das Plugin im Test nicht, und so war das Qt-Frontend die einzige Möglichkeit, Strigi grafisch Informationen zu entlocken. Es scheint, dass die Entwickler Strigi nicht als Endbenutzersoftware anbieten möchten, sondern sich eher auf die Integration in KDEs Nepomuk konzentrieren. Im Test erwies es sich immer wieder als schwierig, Strigi Informationen herauszukitzeln. Die Aufbereitung der Sucheergebnisse kann man nicht gerade als gelungen bezeichnen.
Nicht ganz so schlimm ist es um den Tracker-Suchdialog bestellt. Zwar reicht er nicht an den Dialog von Beagle heran (der alle Suchergebnisse, entweder nach Kategorien getrennt oder komplett darstellt), er eignet sich aber, um Informationen der gefundenen Dateien zu entnehmen.
Die Testumgebung
Im Test zogen wir Beagle 0.3.9+git, Strigi 0.7.0 sowie Tracker 0.7.4 heran und verglichen die Indizierungszeit, den Speicherverbrauch, die CPU-Auslastung und die Zeit für eine Suchanfrage. Als Hardware diente ein Thinkpad X61s mit 3 GByte RAM und einer langsam getakteten 1.6 GHz Intel Core Duo CPU. Als Betriebssystem kam die Final von Ubuntu 9.10 "Karmic Koala" zum Einsatz. Die Programme mussten das persönliche Verzeichnis und eine externe Festplatte mit insgesamt 620 GByte an Daten indizieren.
Jede der drei Suchmaschinen wurde für einen unterschiedlichen Zweck entwickelt. Das ist einer der Gründe, wieso die Suchergebnisse für die jeweiligen Anfragen bei den Programmen recht unterschiedlich ausfallen. Auch die Anzahl der indizierten Dateien unterscheidet sich bei Beagle, Strigi und Tracker deutlich. Unter Berücksichtigung dieser Eigenheiten fällt es dennoch nicht schwer, Rückschlüsse auf die Qualität der jeweiligen Engine zu ziehen.
Der Schwerpunkt von Beagle liegt darauf, die Inhalte Dateien zu erfasse, die mit den unterschiedlichsten Anwendungen erstellt wurden. Kein Wunder also, dass Beagle über weitaus mehr Extraktoren verfügt als die Konkurrenz. Übrigens fördert Beagle bei der Suche nach einem Begriff nicht nur relevante Datei-Inhalte zutage, sondern auch Files mit passendem Namen. Strigi dagegen scheint weitaus mehr Wert auf Inhalte als auf Datei(nam)en zu legen: Die Suche nach einem Begriff bringt nicht zwangsläufig einen Treffer, selbst wenn eine Datei Begriff.txt existiert. Tracker wiederum verhält sich ähnlich wie Beagle, findet aber nicht so zuverlässig Inhalte von Dateien. Das hat wohl indirekt mit dem Entwicklungsstand der jeweiligen Extraktoren zu tun. Bei Tracker fehlen außerdem Extraktoren für Instant-Messaging-Programme wie Pidgin oder Empathy.



