Ergänzen eines OpenRefine Projekts mit einem anderen

openrefinehistHub befasst sich in einer Blogserie mit der Aufbereitung und Anreicherung von Daten in OpenRefine. Alle Beiträge der Serie werden in einer Übersicht gesammelt. In diesem Beitrag befassen wir uns mit dem Zusammenfügen von Inhalten aus verschiedenen Tabellen. Dabei greifen wir auf das im letzten Beitrag erstellte Projekt zurück.

Tabellen mit abgleichbaren Spalten

Für das Ergänzen eines OpenRefine Projekts mit Inhalten aus einem anderen Projekt braucht es eine Spalte mit Identifikatoren, die abgeglichen werden können. Das heisst, in beiden Projekten benötigen wir eine Spalte mit gleichen Inhalten. Im Idealfall sind das normierte IDs, z.B. von Wikidata, der GND oder in Zukunft auch von histHub. Es können auch Namen oder andere Bezeichnungen abgeglichen werden.

Als Beispiel verwenden wir wieder die Metadaten zu den Fotografien von Annemarie Schwarzenbach. Wir möchten die Tabelle um Informationen zur Anzahl EinwohnerInnen der Länder, die sie bereist hat, ergänzen.

Wie bereits erwähnt, benötigen wir für das Hinzufügen einer Spalte eindeutige IDs. Diese haben wir noch nicht, denn in den Metadaten von Annemarie Schwarzenbach sind die Länder in Deutsch, bei Wikipedia aber auf Englisch. Mit einem Reconciling lassen sich über Wikidata die englischen Namensvarianten in die deutschsprachige Tabelle holen. Beim Reconciling bleibt der Wert (value) einer Zelle gleich, auch wenn er manchmal anders dargestellt wird. Über «Edit column – Add column from reconciled values» können wir mit der Auswahl «country» die englischsprachige Variante holen.

Auf dieser Spalte, von OpenRefine automatisch «country» benannt, führen wir nun den Befehl aus, der in einer neuen Spalte die Bevölkerungszahlen der jeweiligen Länder im Jahr 1939 angibt:

cell.cross("1939", "Land").cells["Bevölkerung"].value[0]

Der Befehl ist also nach folgendem Muster aufgebaut:

cell.cross("anderes Projekt", "ID-Spalte im anderen Projekt").cells["hinzuzufügende Spalte"].value[0]

Einige Zellen werden nicht erkannt, weil sie in den beiden Tabellen in unterschiedlicher Schreibweise vorhanden sind (z.B. «United States of America» und «United States»). OpenRefine ist mit diesem Befehl auf eine exakte Übereinstimmung angewiesen. Wegen solchen Fällen ist es nötig, die Ergebnisse zu überprüfen und bei Bedarf Zellen anzupassen. Auch deshalb ist es gut, wenn mit normierten IDs gearbeitet werden kann.

Fragen, Anregungen oder Wünsche zu histHub oder zur Blogserie zu OpenRefine nehmen wir gerne per Mail entgegen.