Such!

Beagle, Strigi und Tracker

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.

Beagle

Das in Mono programmierte Beagle ist der Testkandidat mit der längsten Entwicklungshistorie: Bereits seit Mitte 2003 [12] gibt es eine Mailingliste für die Anwendung. Ursprünglich trug sie noch den Namen Dashboard und war nicht mehr als eine Software, die Informationen aus diversen Quellen zusammentrug – etwa aus Chats, Lesezeichen oder Blogs. Schnell war klar, dass Dashboard Potenzial für mehr bot, und so entschlossen sich die Entwickler, daraus eine Desktop-Suchmaschine zu entwickeln. Nicht ganz ein Jahr später war Beagle in der Version 0.0.0 geboren [13].

In den vergangenen Jahren flossen eine Vielzahl von Features in Beagle ein. Anfangs lag der Speicherverbrauch der Suchmaschine – nicht zuletzt wegen Mono – recht hoch. Die aktuell getestete Version geht sehr sorgsam mit den Betriebsmitteln wie CPU und Arbeitsspeicher um: Im Leerlauf benötigt der Beagle-Hintergrunddienst gerade einmal zwischen 20 und 30 MByte Arbeitsspeicher. Im Vergleich zur Version, die wir vor knapp zwei Jahren im Test hatten, haben die Entwickler den Speicherverbrauch also um Einiges gesenkt, wozu sicherlich auch die wesentlich neuere Mono-Version beiträgt: Auf dem System nistete sich Mono 2.4.2.3 ein. Ein zweiter Dienst mit dem Namen beagle-helper verputzt weitere 20 MByte, sodass das Beagle in etwa 50 MByte verbraucht.

Beim Erzeugen des Index arbeitet Beagle um ein Mehrfaches langsamer als die Konkurrenten Strigi und Tracker. Andererseits geht die Spürnase dafür recht verantwortungsvoll mit den Ressourcen um, der Lüfter des Test-Laptops heulte zu keinem Zeitpunkt laut auf. Am Ende indizierte Beagle knapp 20 000 Dateien. Bei Anfragen reagierte der Suchdialog angenehm schnell: Das Ergebnis lieferte Beagle stets in weniger als fünf Sekunden, egal wie komplex die Anfragen auch waren. Das erscheint zunächst vorteilhaft, hat jedoch eine unschöne Ursache.

Bei der Anzeige der Ergebnisse beschränkt sich die Engine nämlich stets auf 100 Datei-Treffer. So beschäftigt sich das System nicht allzu lang mit der Suche und liefert schnell eine Antwort. Das mag ja durchaus sinnvoll sein – Tracker limitiert die Anzeige gleichermaßen. Es fördert jedoch nicht immer die gewünschte Antwort zutage.

Was den Suchdialog selbst betrifft, erweist sich Beagle als der Konkurrenz um Längen voraus (Abbildung 1). Die Einteilung des Suchergebnisses in Kategorien fördert die Übersichtlichkeit. Im unteren Teil zeigt der Dialog die Eigenschaften der gewählten Datei beziehungsweise des gewählten Ordners an.

Abbildung 1

Abbildung 1: Der Suchdialog von Beagle ist sehr übersichtlich gestaltet. Beim Klick auf eine Datei oder einen Ordner zeigt der Dialog im unteren Bereich Informationen dazu an.

Beagle setzt derzeit nicht auf die Nepomuk-Ontologie, als Alternative steht ein Xesam-Modul bereit. Damit ist Beagle auf diesem Gebiet nicht ganz auf der Höhe der Zeit, da ja Xesam mittlerweile in Nepomuk aufging. Dieser Rückstand hängt sicherlich mit dem Entwicklerschwund der vergangenen Monate zusammen. Schade wäre, falls Beagle komplett stirbt: Gerade die Genauigkeit der Suchanfragen macht Beagle zu einer der besten freien Desktop-Suchmaschinen, und auch hinsichtlich der Vielzahl an Extraktoren muss die Konkurrenz passen. Novell selbst scheint allerdings kein besonderes Interesse mehr an Beagle zu haben, sondern konzentriert sich lieber auf Mono selbst und verwandte Projekte wie Moonlight.

Strigi

Bei Strigi handelt es sich um die derzeit vom KDE-Projekt präferierte und in KDE 4 eingebundene Suchmaschine. In unserem letzten Test schnitt Strigi nicht eben gut ab, und so waren wir sehr gespannt, welche Verbesserungen die Entwickler in der Zwischenzeit implementiert haben.

Das Indizieren der Daten zumindest geht mittlerweile recht schnell vonstatten. Allerdings führt jeder Suchvorgang nach wie vor zu einer extrem hohen CPU-Last. Regelmäßig verursachte der Strigi-Hintergrunddienst auf unserem Testrechner eine Auslastung von 180 Prozent, verbrauchte also jeweils neun Zehntel der Rechenleistung beider CPU-Kerne. Das erscheint in heutiger Zeit als schlichtweg zu viel und obendrein für den Anwender unzumutbar: Die hohe Last macht das Gesamtsystem träge, andere Anwendungen reagieren nur noch verzögert, und ein vernünftiges Arbeiten ist nicht mehr ohne Weiteres möglich. Den Speicherverbrauch hingegen optimierten die Entwickler: Nur 15 MByte Arbeitsspeicher vereinnahmt der Hintergrunddienst für sich, solange keine Suchanfrage ansteht – noch genügsamer arbeitet nur noch Tracker.

Die Ergebnisse einer Anfrage präsentiert Strigi nicht ganz so zügig wie Beagle und lässt sich beim Suchvorgang deutlich mehr Zeit. Das kann (muss aber nicht) am Suchdialog liegen, der sich derzeit weniger für den Endanwender eignet. Auch die Aufbereitung der Ergebnisse gelingt nur bedingt. Im Vergleich der vor fast zwei Jahren getesteten Version haben die Entwickler in diesem Bereich überhaupt nichts verbessert (Abbildung 2).

Abbildung 2

Abbildung 2: Der Strigi-Suchdialog lässt sich bestenfalls als spartanisch bezeichnen: Die Suchergebnisse werden nicht besonders übersichtlich dargestellt.

Strigi verwendet wie Tracker die Nepomuk-Ontologie und ist somit für die Zukunft bestens gerüstet. Das Einsatzgebiet der Suchmaschine erstreckt sich ausschließlich auf das Durchsuchen von Dateien nach Zeichenketten und lässt das Auffinden von Dateien außen vor. Unklar bleibt, ob sich dieser Umstand in Zukunft noch ändert oder ob schlichtweg der Suchdialog die Schuld daran trägt.

Unter dem Strich steht Strigi in der derzeitigen Version vom Speicherverbrauch her zwar nun besser da, geht aber nach wie vor verschwenderisch mit der CPU-Performance um. Verglichen mit Beagle oder Tracker nimmt Strigi immer noch den letzten Platz ein. Die Tracker-Entwickler testen momentan Teile von Strigi, um sie gegebenenfalls später in Tracker zu integrieren. Eventuell hilft diese Kooperation zwischen Strigi und Tracker, die KDE-Suchmaschine in den schwachen Disziplinen voranzubringen.

Tracker

Tracker verwendet als Backend die schlanke, aber dennoch leistungsfähige Datenbank SQLite. Durch den recht modularen Aufbau der Suchmaschine lassen sich verschiedene Konfigurationen realisieren, so auch eine, die den Analyseteil von Strigi verwendet. Im Test verzichteten wir jedoch auf diese Möglichkeit, vor allem, da diese Variante noch als experimentell deklariert ist.

Tracker geht im Vergleich zu Strigi äußerst schonend mit der CPU um. Auch der Speicherverbrauch kann sich sehen lassen: Der zentrale "Store"-Prozess benötigt gerade einmal gut 11 MByte Arbeitsspeicher, der eigentlich Datei-Schnüffler etwa 5 MByte. Im Ruhezustand geht der Verbrauch beider Prozesse noch weiter zurück, zusammen auf 13 MByte. Einzig der Extraktionsprozess braucht verlangt der CPU etwas mehr ab: Kurzzeitig lassen sich Spitzen bis knapp zur Hälfte der verfügbaren Prozessorleistung erkennen. Das System blieb aber gut zu bedienen – Einschränkungen wie bei Strigi gab es nicht. Nach etwa sechs Minuten waren alle Daten indiziert.

Im Test deaktivierten wir die Stopwords-Liste: In ihr befinden sich Wörter, die – sofern sie in Dateinamen vorkommen – nicht indiziert werden. Grund für die Existenz der Stopwords: Der Indizierungsvorgang soll nicht zu lange dauern und nicht unnötig Dateien analysieren. Die Stopword-Dateien für die verschiedenen Sprachen finden sich unter /usr/share/tracker/languages/.

Tracker liefert ähnlich gute Suchergebnisse wie Beagle, der Suchdialog beantwortet Anfragen recht zügig. In der Regel vergeht auch etwa die gleiche Zeit wie bei Beagle, bis die Ergebnisse erscheinen. Der Dialog (Abbildung 3) erscheint noch nicht ganz so ausgefeilt wie jener von Beagle, stellt jedoch die Suchergebnisse recht übersichtlich dar. Es bleibt abzuwarten, in welche Richtung die Entwickler den Dialog weiter ausbauen.

Abbildung 3

Abbildung 3: Der Suchdialog von Tracker ist zwar nicht ganz so weit entwickelt wie der von Beagle, zeigt aber die Ergebnisse einer Suchanfrage bereits recht ansprechend an.

Abschließende Bewertung

Im Vergleich zum letzten Test Anfang 2008 rücken die Testkandidaten enger zusammen: Tracker liegt bei der Genauigkeit der Suchergebnisse nicht mehr weit von Beagle entfernt. Dabei geht er sorgsamer mit dem Arbeitsspeicher um. Zwar beansprucht Tracker die CPU etwas mehr, dafür verläuft der Indizierungsprozess wesentlich schneller. Die Zeit, die bis zur Beantwortung einer Anfrage vergeht, fällt bei beiden Suchmaschinen praktisch identisch aus.

Nicht so gut sieht es bei Strigi aus: Das Problem der hohen CPU-Last aus früheren Zeiten haben die Entwickler immer noch nicht behoben. Zudem scheint Strigi mehr Wert auf die Inhalte von Dateien zu legen, sodass das Programm bei einer Anfrage auf Dateinamen keine brauchbaren Resultat liefert. Ein weiteres Manko stellt das Frontend dar: Bislang gibt es keinen desktopneutralen, ordentlich bedienbaren Suchdialog. Immerhin konnten die Entwickler den Speicherverbrauch reduzieren.

Wer die Wahl hat, der sollte im Moment auf Beagle oder Tracker setzen. Bei Beagle gilt es jedoch anzumerken, dass noch nicht geklärt ist, ob das Programm neue Entwickler findet, die es weiter voranbringen [14]. Um Tracker scheint es besser bestellt zu sein: Nokia hat daran ein großes Interesse und integrierte es bereits in die neueste Maemo-Version [15].

Glossar

RDF

Resource Description Framework. Umfasst eine Reihe von Standards, die vom W3C herausgegeben werden. RDF dient zur formalen Beschreibung von Informationen über Objekte ("Ressourcen"), die durch eindeutige Bezeichner identifiziert werden.

Mono

Zu Microsoft .NET kompatible, freie Entwicklungs- und Laufzeitumgebung für plattformunabhängige Software. Zunehmend umstritten, da Teile der Mono-Klassenbibliothek möglicherweise Patente der Firma Microsoft berühren.

Xesam

Extensible Search and Metadata. Ursprünglich als Projekt Wasabi von Freedesktop.org gegründet, um eine Spezifikation für ein Framework zur Desktop-Suche zu spezifizieren.

Moonlight

Vom Mono-Projekt vorangetriebene Portierung des Webanwendungs-Frameworks Microsoft Silverlight, eines Konkurrenzprodukts zu Adobe Flash beziehungsweise Java FX.

Tip a friend    Druckansicht beenden Bookmark and Share
Kommentare
Tracker 0.7.14 wo ist die GUI
Reto Reto, Sonntag, 03. Januar 2010 15:43:19
Ein/Ausklappen

Hallo

Ich habe mir nun den neusten Tracker heruntergeladen und gemäss der ReadMe Datei losgelegt. Nach dem installieren aller Abhängigkeiten
sudo apt-get install zlib1g-dev libglib2.0-dev libpango1.0-dev libdbus-1-dev libdbus-glib-1-dev uuid-dev intltool libhal-dev libhal-storage-dev libxml2-dev libsqlite3-dev libtracker-gtk-dev

und der Feststellung, dass es keine Leerschläge im Installations-Pfad haben darf endlich stolzer besitzer eines indizierten PCs :)

Aber was ich noch vermisse, ist der schöne Suchdialog, wie in dem Artikel. Weiss jemand wie ich den Aufrufe oder installiere?

Vielen Dank für Tipps und Hinweise

Gruess
Reto


Bewertung: 174 Punkte bei 14 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
Alternative recoll
Jan (unangemeldet), Samstag, 21. November 2009 15:16:45
Ein/Ausklappen

Schade, dass Du nicht auch recoll getestet hast. Ich setze recoll schon seit vielen Monaten erfolgreich zur Desktopsuche ein, nachdem ich mit den anderen getesteten Kandidaten nicht zufrieden war.


Bewertung: 118 Punkte bei 21 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
Kann Tracker imap Postfächer scannen?
Jan Baden, Donnerstag, 05. November 2009 14:31:00
Ein/Ausklappen

Hallo,

weiß jemand, wie Tracker auch imap-Postfächer unter evolution durchsucht, die auch für den Offlinebetrieb heruntergeladen sind? Bei mir scheint das Standardmäßig nicht zu gehen.


Bewertung: 119 Punkte bei 17 Stimmen.
Den Beitrag bewerten: Gut / Schlecht