
HistHub befasst sich in einer Blogserie mit der Aufbereitung und Anreicherung von Daten in OpenRefine. Alle Beiträge der Serie sind in einer Übersicht gesammelt.
In einem anderen Beitrag dieser Serie finden Sie Informationen zum Anreichern von Daten mit im Internet verfügbaren Quellen wie Wikidata, oder dem histHub Geolinker. Dieses sogenannte Reconciling gleicht die Inhalte einer Spalte mit der gewählten Datenquelle (Wikidata, GND…) ab. Beim Reconciling werden Links zu der externen Ressource erstellt oder, wo die Übereinstimmung unsicher ist, Vorschläge für Links angezeigt. Durch diese Links können in einem weiteren Schritt zusätzliche Informationen aus der externen Quelle in die eigene Tabelle eingefügt werden.
Doch was ist, wenn die Daten nicht online und nicht mit einem bestehenden OpenRefine Reconciling-Service verfügbar sind? Open Knowledge Labs stellt ein Script zur Verfügung, das genau dieses Problem löst: Es ermöglicht das Reconciling mit einer lokal verfügbaren, als csv-Tabelle vorhandenen Datenquelle.
Das Script, ebenso wie eine englischsprachige Anleitung dazu, finden Sie unter diesem Link. Im Folgenden zeigen wir an einem Beispiel die Verwendung des Scripts. Momentan kann das Script nur auf einer lokalen OpenRefine-Instanz und nicht im histHub Lab verwendet werden.
Daten vorbereiten
Im Folgenden arbeiten wir, wie bisher in dieser Serie, wieder mit Daten zu Annemarie Schwarzenbachs Fotografien aus der Schweizerischen Nationalbibliothek. Dort gleichen wir die Spalte mit Informationen zum Land, in dem das jeweilige Foto gemacht wurde, mit einer Tabelle mit weiteren Informationen über diese Länder ab. Dazu verwenden wir den Wikipedia-Eintrag Liste von Staaten und Territorien nach Bevölkerungsentwicklung. Dieser enthält eine Liste mit Namen von aktuellen Staaten, Gebieten und Territorien mit der Bevölkerungszahl in den Jahren 1950 und 2018, sowie der erwarteten Bevölkerungszahl für die Jahre 2050 und 2100. Die Namen der Gebiete, Territorien und Staaten sind, wie unsere Ausgangstabelle, in deutscher Sprache. Die Sprache ist relevant, weil das Reconciling über die Ähnlichkeit der Worte Links setzt oder vorschlägt. Sind die Daten in unterschiedlichen Sprachen vorhanden empfiehlt sich eine Übersetzung.

Die Tabelle benötigen wir als csv. Dazu markieren wir direkt im Wikipedia-Eintrag die ganze Tabelle, und zeigen mit einem Rechtsklick und «Auswahl-Quelltext anzeigen» das html an.

Dieses kopieren wir als ganzes in einen beliebigen Texteditor, beispielsweise den Editor oder TextEdit. Das Dokument wird nun als xls Format abgespeichert. Also einen Dateinamen wählen, die Endung .xls anfügen und speichern. Wird nun das .xls in einem Tabelleneditor wie Excel oder Libre Office Calc geöffnet, kommen wir zurück zu einer Tabelle. Diese kann nun, falls nötig, etwas bearbeitet werden. Wichtig ist, auf die Zeichencodierung zu achten, damit Umlaute oder Sonderzeichen korrekt dargestellt werden. Im Fall dieser Tabelle sind zudem die Namen der Staaten, Territorien und Gebiete sowie die Links zu den jeweiligen Wikipedia-Einträgen enthalten. Diese müssen wir für das Reconciling auseinander nehmen.
Ausserdem benötigt das Reconciling eindeutige Identifier. Dafür eignet sich eine fortlaufende Zahlenfolge in einer neuen Spalte. Die Tabelle wird dann als .csv abgespeichert, und steht nun für das Reconciling zur Verfügung.
Möchten Sie mit den Beispieldaten diese Anleitung durchgehen, können Sie das von histHub-Net erstellte .csv hier herunterladen.
Wenn Sie mit ihren eigenen Daten arbeiten, verwenden Sie ein einfaches csv. Auch dieses muss eine Spalte mit eindeutigen Identifiern enthalten.
Reconciling
Nachdem die verwendeten Daten vorbereitet sind, starten wir das Reconciling. Dafür müssen Sie das Script herunterladen und an einem geeigneten Ort abspeichern. Dann öffnen Sie eine Kommandozeile (Windows: Mit Windows-Taste + R das «Ausführen» Fenster öffnen, dort den Programmnamen «cmd» eingeben und die Eingabetaste drücken; Mac: über das Launchpad unter «Other» finden Sie das Terminal; Linux-User wissen schon wie). Darin navigieren Sie zum Ordner, in dem Sie das Script abgespeichert haben. (tippen sie «cd» und den entsprechenden Pfad, also beispielsweise
cd /home/user/Downloads
Dort starten Sie das Script mit dem Befehl
java -Xmx2g -jar reconcile-csv-0.1.2.jar <csv-File> <search column> <ID column>
Als Nächstes starten Sie in OpenRefine ein Reconciling. Fügen Sie einen neuen Reconcling-Service hinzu, mit der Adresse
http://localhost:8000/reconcile
Je nach Umfang der Daten wird das Reconciling etwas Zeit in Anspruch nehmen.
Das Script unterstützt die Suche in der Vergleichstabelle, so können Sie neue oder andere Schreibweisen umgehen. In der Schwarzenbach-Tabelle kommt beispielsweise «USA» vor, in der Wikipedia-Tabelle die «Vereinigten Staaten». Über einen Klick auf «Search for Match» kann so der richtige Eintrag verlinkt werden.
Das csv-reconcile Script wird jeweils für ein bestimmtes Reconciling konfiguriert. Für ein neues Reconciling mit einem anderen csv oder einer anderen Konfiguration, oder auch nach einem Neustart des Computers, muss der Service ebenfalls neu gestartet werden.
Anreichern
Sind alle Einträge so weit wie möglich oder nötig gematched, erstellen Sie eine neue Spalte auf die reconcilte mit dem Wert
cell.recon.match.id
Hier wird nun der Identifier angezeigt. Nun erstellen Sie ein neues OpenRefine Projekt mit der csv-Tabelle. Anhand der Spalten mit den Identifiern können Sie die Projekte nun miteinander ergänzen. Wie das funktioniert, erklärt Ihnen histHub-Net in diesem Beitrag.
Leider ist es mit dem csv-Reconciling-Script nicht möglich, eine neue Spalte direkt anhand der reconcilten Links einzufügen, deshalb müssen wir den Umweg über ein zweites OpenRefine Projekt machen.
Fragen, Anregungen oder Wünsche zu histHub oder zur Blogserie zu OpenRefine nehmen wir gerne per Mail entgegen.