Import nicht tabellenförmiger Daten in OpenRefine

openrefinehistHub befasst sich in einer Blogserie mit der Aufbereitung und Anreicherung von Daten in OpenRefine. Alle Beiträge der Serie sind in einer Übersicht gesammelt. Bisher haben wir in dieser Blogserie jeweils mit den Metadaten zu den Fotografien von Annemarie Schwarzenbach gearbeitet. Diese kommen als csv daher, sind also bereits tabellenförmig.

In diesem Beitrag werden wir zeigen, wie andere, nicht tabellenförmige Daten in OpenRefine importiert werden können, um sie dort aufzubereiten und anzureichern. Openrefine bietet den Import sehr unterschiedlicher Formate an. Für die untenstehenden Beispiele nutzen wir Daten aus der Bauhistorischen Fotosammlung von Uster (1893-1909) von Julius Gujer, online verfügbar auf opendata.swiss.

JSON

Die Daten sind in einer ganzen Reihe von Formaten verfügbar. Im Folgenden zeigen wir auf, wie ein Import von json und von xml funktioniert. Andere Dateiformate können auf ähnliche Weise importiert werden. Zunächst holen wir uns die Metadaten als json.

https://data.stadt-zuerich.ch/dataset/f8dc2871-6a04-42bc-96bb-69470e1d0798/resource/83454c07-9f57-49a0-978d-ccd567afb087/download/metadatengeojson.geojson

Die Link-Adresse kopieren wir und fügen sie unter «Create Project» – «Web Adresses (URL)» ein.

OpenRefine fordert uns auf, den ersten einzelnen Eintrag zu markieren. Anhand dieser Markierung erstellt das Programm dann die Tabelle.

Die Spaltenüberschriften setzen sich aus den Tags zusammen:

 

Hier sehen wir, dass OpenRefine jeweils Records erstellt. In diesem Beispiel sind jeweils die Koordinaten auf zwei Zeilen verteilt. Wie diese in einer einzigen Zelle zusammengefügt werden wird in einem späteren Beitrag in dieser Serie erklärt.

XML

Metadaten zur Bauhistorischen Fotosammlung von Uster (1893-1909) von Julius Gujer sind auch nach dem EAD-Standart in xml formatiert zu haben. Mit diesen Daten erstellen wir ein weiteres OpenRefine Projekt. Dazu kreieren wir ein neues Projekt aus folgender URL:

https://data.stadt-zuerich.ch/dataset/f8dc2871-6a04-42bc-96bb-69470e1d0798/resource/c7e3a3f6-5c5a-49ef-9d73-794e74242419/download/eadbauhist-fotosamm-gujer-uster-1893-190920170427.xml

OpenRefine fordert uns nun auf, den ersten Eintrag im xml zu markieren:

Auch hier werden wieder Records, nicht Rows, erstellt. Und wieder sind Daten, die eigentlich in die gleiche Zeile gehören, auf verschiedene Zeilen innerhalb eines Records verteilt. Wie sich das lösen lässt erklären wir in einem nächsten Beitrag.

Beim Import insbesondere von xml-Daten erstellt OpenRefine manchmal auf den ersen Blick unerklärliche leere Zeilen. Dies liegt daran, dass OpenRefine Leerzeichen zwischen den xml-tags in eigene Zeilen einfügt, weil es nicht unterscheiden kann was tatsächlicher Inhalt und was überflüssiger Whitespace ist. Auch die Option «Trim leading & trailing whitespace from strings» löst dieses Problem nicht. Weitere Infos zu diesem Thema gibt es hier. In einem solchen Fall ist eine praktikable Lösung, nach leeren Zellen in verschiedenen (oder allen) Spalten zu facettieren und dann die entsprechenden Zeilen zu löschen. Eine weitere, etwas sicherere Methode zum Löschen komplett leerer Zeilen wird im nächsten Beitrag dieser Serie gezeigt.

HTML

Dem Erstellen eines Projekts aus html ist ein eigener Beitrag gewidmet.

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