Zeilen und Einträge – Rows und Records

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 zeigen wir den Unterschied zwischen Row- und Record-Mode. 

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 darunter liegenden 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 dem 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 wir jeweils alle Einträge zum selben Ort zusammengefasst werden und nicht nur die, die in der Ursprungstabelle aufeinander folgen. 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.