Zeilen und Einträge – Rows und Records

HistHub 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 zeigen wir den Unterschied zwischen «Row»- und «Record»-Modus. 

Oben links im OpenRefine Bearbeitungsfenster kann gewählt werden, ob die Daten das «row» oder als «record» angezeigt werden.  

Unterschied zwischen Row und Record 

Eine «row» ist eine einzelne Zeile in OpenRefine. Sie enthält Daten zu einem bestimmten Objekt. Im Idealfall enthält sie zu Beginn eine Spalte mit eindeutigen Identifiern. Nun kann es vorkommen, dass das gleiche Objekt mehrere Zeilen enthält. Hier kommen die «records» ins Spiel. In einem «record» können mehrere Zeilen zusammengenommen werden. Das kann dann etwa so aussehen: 

OpenRefine benutzt die erste Spalte zum Erstellen der «records». Dabei fasst es ab jedem Eintrag in dieser ersten Spalte alle darunterliegenden Zeilen, die in der ersten Spalte eine leere Zelle aufweisen, zu einem «record» zusammen. Die verschiedenen «records» sind über die Hintergrundfarbe klar getrennt. 

So können in einem «record» Objekte zusammengefasst werden, die über die gleiche ID verfügen. Beispielsweise können so Namensvarianten erfasst werden, oder Präzisierungen wie Stadtquartiere, die alle unter einer gemeinsamen Eigenschaft in der ersten Spalte zusammengefasst sind. 

Im «Record»-Modus wird beim Facettieren jeweils der ganze «record» angezeigt, wenn die Facette eine der Zeilen erfasst. Dadurch zeigt der «Record»-Modus auch bei aktiven Facetten mehr Kontext zu den Daten. Im «Row»-Modus ist hier nur die einzelne gematchte Zeile zu sehen. Ein weiterer Vorteil des «Record»-Modus zeigt sich bei der Verwendung von «Fill-down»-Funktionen. Diese sind gierig, das heisst sie füllen alles bis zur nächsten nicht leeren Zelle. Im «Record»-Modus füllen sie jeweils nur den «record» auf. 

Records erstellen 

Zur Veranschaulichung werden wir aus den Metadaten zu den Fotografien von Annemarie Schwarzenbach «records» erstellen. In diesem Beispiel erstellen wir die «records» anhand der Spalte mit den Ortsangaben. Diese Spalte muss zuerst an den Beginn verschoben werden. 

Nun müssen die Zeilen oder «rows», wir sind ja nach wie vor im «Row»-Modus, sortiert werden. Dieser Schritt ist notwendig, damit jeweils alle Einträge zum selben Ort zusammengefasst werden und nicht nur die, die in der Ursprungstabelle aufeinanderfolgen. Dazu gehen wir gleich vor wie beim Deduplizieren: Wir wählen «Sort» im Spaltenmenü, und dann «reorder rows permanently» um die Sortierung fest zu machen. Dann wählen wir auch hier «Blank down».  

Nun können wir oben links in den «Record»-Modus wechseln. Mit einer Facette, beispielsweise für das Jahr 1938, sehen wir den Effekt der «records». OpenRefine gibt nicht nur Ergebnisse mit diesem Jahr zurück, sondern auch solche die mit einer anderen Jahreszahl aber mit der gleichen Ortsangabe versehen sind. 

OpenRefine braucht im «Record»-Modus mehr Rechenkapazität und Zeit, besonders wenn grosse Datensätze verarbeitet werden. Ist der «Record»-Modus für die gewünschten Ergebnisse notwendig, kann es sinnvoll sein, die Daten zu unterteilen und jeweils nur mit einem Teil zu arbeiten. 

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