Hands on „Open Semantic (Desktop) Search“

Seit einigen Monaten beschäftige ich mich im Kontext der Digitalen Geschichtswissenschaft intensiver mit einem Softwarebundle mit dem Namen Open Semantic (Desktop) Search (OSDS) und möchte meine Erfahrungen gerne teilen. Zunächst einmal – worum handelt es sich? OSDS ist eine freie Software, die nur aus Open Source Bestandteilen zusammengestellt wurde und auf dieser Grundlage als Donationware weiter entwickelt wird. Das Projekt stammt aus dem Journalismus und spezieller aus dem Bereich des investigativen Journalismus, der sich heutzutage mit teilweise riesigen Datenmengen (Stichwort: Panama Papers) auseinander setzen muß.

Der Entwickler hinter OSDS ist Markus Mandalka, der sich selber als Journalist und Informatiker bezeichnet. Auf seiner Homepage stellt er sich als politisch eher links orientiert dar – ein Detail, das mir sein Softwarebundle noch sympathischer macht. Zwar bin ich als Historiker mit Spezialisierung auf das späte Mittelalter nicht so auf Datenschutz, Privatheit und Anonymität aus, wie das im investigativen Journalismus der Fall sein mag, aber es schadet natürlich auch nicht, dass Markus Mandalka sein Softwarebundle auch als verschlüsseltes und auf USB-Stick betreibbares Livesystem unter dem Namen InvestigateIX anbietet. Ich beschäftige mich im folgenden aber nur mit den drei! anderen Varianten, die er über die Webseite www.opensemanticssearch.org und ein dazugehöriges github-repository anbietet:

1. Open Semantic Desktop Search

2. Open Semantic Search Appliance

3. Open Semantic Search Server (Package)

Paket 1 ist eine VM Appliance, die man mit Oracle Virtual Box laden und lokal auf einem Rechner betreiben kann. Die Appliance wird in zwei Varianten zum Download angeboten: einmal mit englischen und einmal mit deutschen Keyboard Settings. Beide Varianten sind relativ aktuell (Juli bzw. August 2018). Das Projekt selber scheint seit drei oder vier Jahren zu bestehen. Das alleine ist schon eine Leistung für ein Softwarepaket des Umfangs und der Leistensfähigkeit von OSDS, das von nur einer Person gepflegt und weiterentwickelt wird.

Die zweite Variante ist ebenfalls eine Appliance, die ebenfalls unter Oracle Virtual Box läuft, aber nur einen Server als localhost bereit stellt. Dort fehlt der „Desktop“ im Debian Linux, auf dem beide Distributionen aufsetzen. Wie das so bei virutuellen Maschinen für Virtual Box üblich sind, bringen die Appliances ein gewisses Gewicht auf die Waage. Die OSDS Version schlägt mit 3GB zu Buche, die Servervariante OSS mit (nur) 1.8 GB. Das dritte Paket (OSSS) ist mit etwa 300 MB am Leichtgewichtigsten, aber erwartet natürlich auch eine (manuelle) Installation und vor allem Konfiguration auf einem Debian oder Ubuntu basierten System. Letzteres habe ich bislang noch nicht ausprobiert – ich beschränke meinen Bericht daher auf die ersten beiden Varianten, die komfortabel in Virtual Box laufen.

Bevor wir zur eigentlichen Installation kommen, vorab noch einige Informationen zum Leistungsumfang des Pakets und warum es sich überhaupt lohnt, sich damit zu beschäftigen. Kernstück der Enterprise Suchmaschine ist ein Lucene SOLR Indexer (Elastic Search ist ebenfalls verwendbar), mit dem recht beliebige Dokumente indexiert werden können. Die enthaltenen Informationen werden damit als Keyword im Kontext findbar und referenzierbar. Aber OSDS ist noch wesentlich mehr. In dem Paket ist auch ein sogenanntes Open Semantic ETL (Extract-Transform-Load) Framework integriert, in dem die Texte für die Extraktion, Integration, die Analyse und die Anreicherung vorbereitet werden. Es handelt sich um eine Pipeline, die einem sehr viel von Arbeit hinsichtlich der Bereitstellung der Texte für den Indexer abnimmt. Wer mit Lucene/Solr arbeitet weiß, wie viel Zeit die Aufbereitung der Daten in der Regel beansprucht. OSDS nimmt einem sehr viel davon ab und kümmert sich nach dem Prinzip eines überwachten Ordners um sämtliche Schritte, die von der Extraktion über die linguistische Analyse bis zur Anreicherung mit weiteren Metadaten notwendig sind. Schliesslich stellt das Paket auch einen Webservice (Rest-API) für die maschinelle Kommunikation sowie ein durchdachtes User Interface zur Verfügung, mit dem die Suchmaschine bedient, konfiguriert und natürlich auch durchsucht werden kann. Die facettierte Suche spielt dabei eine besondere Rolle, da die Facetten mehr oder weniger automatisch aus der linguistischen Analyse der Texte und auf der Grundlage von  (konfigurierbaren) Namen Entities (Personen, Orte, Organisationen etc.) gebildet werden. Entsprechend sind auch die Hauptfunktionen des Softwarepakets angelegt: Sucheninterface, ein Thesaurus für Named Entities, Extraktion von Entitäten in neu zugefügten Texten, eine listenbasierte Suche sowie eine Indexfunktion, die den Aufbau des Suchindex neu anstößt. Und das alles in einem einfach zu bedienden Userinterface, das mit der Maus bedient werden kann.

Wer nun neugierig oder enthusiastisch geworden ist, dem sei gesagt, dass es wie meist im Leben einen Wermutstropfen gibt: insbesondere OSDS aber auch OSS brauchen gewisse Ressourcen, um ihre Arbeit effizient verrichten zu können. Als Mindestausstattung für einen Betrieb unter Orcale Virtual Box gebe ich 8 GB RAM und (der Größe des Projekts entsprechend) ausreichend Speicherplatz auf einer SSD an. Auf einem immerhin mit 8GB ausgstatteten Notebook mit Doppelkernprozessor der Core Duo Reihe ist es mir nicht mehr gelungen, in vertretbaren Zeiten einen Index zu produzieren. Allerdings waren meine Testdaten auch recht umfangreich (25 GB PDF Dateien mit zehntausenden von Seiten). Alternativ kann man sich, bei schwacher Hardware, eines Tricks bedienen und den Index auf einer schnellen Maschine (aktueller Mehrkernprozessor mit möglichst üppigem RAM) erstellen lassen und dann beides (Appliance und Solr-Index) auf das betreffende Gerät zurückspielen. Meist reicht dann die Performance, um zumindest die Suchfunktionalität auch auf schwächerer Hardware zu ermöglichen. Ein weiterer Ressourcenfresser beim Anlegen des Index ist OCR. OSDS hat Tesseract als eigene OCR Egine inkl. (hört hört) Frakturerkennung! integriert. Wenn man seine PDF Dokumente aber vor der Indexierung erst noch mit der OCR behandelt, kann man den Rechner bei entsprechender Materialfülle gerne mal ein oder zwei Tage durchrödeln lassen, bevor sich (hoffentlich) ein brauchbares Ergebnis zeigt. Daher rate ich (ebenso wie der Entwickler es tut) dazu, OCR erst mal abzustellen, wenn man es nicht unbedingt braucht (geht im Konfigurationsmenue) und den Index zunächst mal nur mit schon vorhandenen Textlayern oder am besten mit Dokumenten zu füttern, die eh nur aus Text bestehen. Dabei ist die Suchmaschine recht offen für Formate und bringt eine Menge Filter mit, die den Text extrahieren können (hier mal die Liste von der Webseite kopiert: text files, Word and other Microsoft Office documents or OpenOffice documents, Excel or LibreOffice Calc tables, PDF, E-Mail, CSV, doc, images, photos, pictures, JPG, TIFF, videos and many other file formats). Im Hintergrund werkelt hier natürlich Apache Tika.

Weiterlesen