Die flinke Feder

Relevante Projekte im Kontext: Apache Solr, UIMA, Stanbol, Jena, Clerezza

Bernd Fondermann

Rückblende: Bevor es Suchmaschinen gab, gab es Such-Directories. Man war gezwungen, sich Schritt für Schritt vom Allgemeinen wie z. B. „Flora und Fauna“, über das Genauere „Säugetiere“ zum Speziellen „Wale“ zu hangeln. Und hoffentlich ist man nicht bei „Fische“ falsch abgebogen. Passiert mir übrigens heute noch manchmal in den SharePoints dieser Welt: Ist das Excel, in dem ich meinen Urlaub eintrage, jetzt unter „Team“ oder unter „Termine“ abgelegt? Gruselig.

Eine andere Form der Suche war das Blättern in zig Seiten von Tabellen. Scannen aller Einträge, nächste Seite, scannen, nächste Seite. Viel verlorene Zeit. Will man so etwas seinen Nutzern nicht zumuten, setzt man zum Beispiel Apache Solr ein, den Suchserver, der auf Lucene aufbaut. Doch auch die Solr/Lucene-Kombination benutzt eine vergleichsweise naive Herangehensweise, um relevante Ergebnisse zu liefern. Es gewichtet solche Index-Einträge als bessere Treffer, die den Suchbegriff weiter vorne und öfter enthalten. Die großen Suchmaschinen gehen aber weiter. Sie versuchen schon beim Aufbau des Index, der so genannten „Analyse“ des indizierten Textes, semantische Fragen mit zu beantworten: In welcher Sprache ist der Text verfasst? Welche Art von Text ist es? Worum geht es? Welches sind die zentralen Begriffe? In welcher Bedeutung werden doppeldeutige Begriffe verwendet? Und so weiter. Diese Informationen wird man spätestens bei der Suche gut verwenden können. Es macht nämlich für den Nutzer einen Unterschied, ob er einen enzyklopädischen Treffer, ein Blog-Posting, eine Twitter-Nachricht oder eine Zeitungsmeldung findet. Und ob er auch in einer Sprache geschrieben wurde, die er versteht. Gibt der User einen Ortsnamen ein, wird er sich freuen, wenn man ihm eine Karte anzeigt.

Um unstrukturierten geschriebenen oder gesprochenen Text in seine grammatikalischen Bestandteile zu zerlegen und ihn zu „erkennen“, ist Apache UIMA [1] eine erste Anlaufstelle. UIMA implementiert die gleichnamige Spezifikation [2] der OASIS, die knackig-kurze 100 Seiten lang ist. Sie beschreibt einen Standard, um unstrukturierte Daten und ihre Metadaten zu analysieren, abzubilden und zwischen Systemen auszutauschen. Apache Stanbol [3] ist ein Projekt, dessen erfolgreicher Inkubator-Abschluss in der nächsten Zeit zu erwarten ist. Es ist vielleicht das ambitionierteste Projekt in diesem Zusammenhang, indem es versucht, von der Textextraktion über die Metadaten-Anreicherung den ganzen Ablauf der semantischen Analyse abzudecken, bis hin zur Verknüpfung des Textinhalts mit bestehendem Wissen, so genannten „Named Entities“ [4] und „Knowledge Databases“. „Wissen“ bedeutet in diesem Zusammenhang, dass die einzelnen Bestandteile des Textes identifiziert werden: Person, Organisationen, Mengenangaben etc. werden als solche gekennzeichnet. Durch die Verknüpfung dieser Informationen untereinander bilden sich die so genannten Ontologien [5]. Diese sind die Basis dafür, durch regelbasierte Systeme viel bessere Such- und Analyseergebnisse liefern zu können. Stanbol wurde im Rahmen des EU-geförderten Projektes IKS („Interactive Knowledge Stack“) [6] aus der Taufe gehoben, der die Erweiterung von Content-Management-Systemen um semantische Fähigkeiten zum Ziel hat.

Mit dem Thema Semantik beschäftigt sich nicht zuletzt auch das W3C. Als Gralshüter des Webs ist es natürlicherweise für das Semantic Web zuständig und pflegt in einem eigenen Track [7] ein ganzes Füllhorn an Spezifikationen, allen voran RDF, um semantische Modelle zu abzubilden und SPARQL zur Abfrage von RDF. In Abwandlung des sprichwörtlichen Werbespruchs könnte man fragen: „Gibt’s da auch was von Apache?“ und die Antwort ist: „Ja!“: Apache Jena [8], das im April dem Inkubator entwachsen ist, hat es sich zur Aufgabe gemacht, die W3C-Spezifikationen zum Semantic Web zu implementieren. Soweit ist Clerezza [9] noch nicht, die Plattform um RDFs zu speichern und über Web Services mittels SPARQL zuzugreifen, befindet sich noch im Apache Incubator.

Wenn Suche mehr sein soll als nur das Finden eines Wortes in einem Dokument, kommt man nicht drum herum, eigene Logik an den Start zu bringen. Denn wie für Software im Allgemeinen gilt auch für Suchapplikationen: Jede hat ihre speziellen Funktionalitäten und Features, also eigene Suchinhalte, eigene Nutzer und Spezialfälle. Eine Reihe von Technologien steht mittlerweile bereit, um Semantik für den Suchkontext bereitzustellen. Die technologische Brücke allerdings zwischen Semantik und Suche muss man derzeit noch selber schlagen.

Bernd Fondermann (bernd@zillion-one.com) ist freiberuflicher Softwarearchitekt und Consultant in Frankfurt a. M. und Member der Apache Software Foundation. Er beschäftigt sich mit innovativen Open-Source-Technologien wie Apache Hadoop oder Lucene und bietet unter zillion-one.com einen Big-Data-Hosting-Service an.
Geschrieben von
Bernd Fondermann
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.