Workshop - Projekte in OpenRefine laden und verwalten

Folie - Projekte in OpenRefine laden und verwalten Folie - Projekte in OpenRefine laden und verwalten

Wir laden mehrere Dateien in OpenRefine Projekte und bearbeiten deren Metadaten.

Projekte in der OpenRefine Dokumentation.

Dieser Workshop wurde erstellt mit OpenRefine Version 3.5.0.
Dieser Workshop wurde zuletzt getestet mit OpenRefine Version 3.8.4.

Hintergrund

OpenRefine kann unterschiedliche Dateiformate über verschiedene Quellen in das interne Projektformat importieren. Der “übliche” Weg ist der Import von einer oder mehreren Dateien, weshalb wir uns vorerst darauf beschränken.

Aufgabe 1: Eine Datei laden

Wir werden im Laufe des Workshops häufiger mit einem Ausschnitt der Gurs-Deportationsliste arbeiten, die vom Generallandesarchiv Karlsruhe recherchiert und im FDMLab bereinigt und mit weiteren Normdaten ergänzt wurde.

Für diesen Workshop wurde die Liste nachträglich mit einigen “Problemen” versehen, die wir in den nachfolgenden Aufgaben bereinigen werden. Für diese Aufgabe wollen wir erst einmal nur die Datei 01_gurs.csv in das Projekt “Gurs” laden.

💾 Wir benötigen die folgende Datei (Rechtsklick und “Ziel speichern unter…”):

Gurs als CSV

Beim Projektimport verwenden wir die folgenden Einstellungen:

  • Project name: Gurs
  • Tags: Gurs, GND, Workshop, 2024

Die Optionen für das Format sind als Bildschirmfoto hinterlegt.

Bildschirmfoto von OpenRefine Parsing Options.
Bildschirmfoto von OpenRefine Parsing Options.
Die Gurs-Daten wurden zur Veröffentlichung im Blog aufbereitet, indem Zeilen und Spalten gelöscht sowie die restlichen Spalten zufällig sortiert wurden. Für die Verwendung in den Aufgaben des Workshops ist die Datei nach wie vor geeignet, jedoch nicht für Recherche und Forschungszwecke!

Aufgabe 2: Mehrere Dateien gleichzeitig laden

Wir haben die Beteiligten des Kabinetts Kretschmann III getrennt nach Frauen und Männern in zwei CSV Dateien gespeichert (01_kretschmann-kabinett-frauen.csv und 01_kretschmann-kabinett-maenner.csv).

💾 Wir benötigen die folgenden zwei Dateien (Rechtsklick und “Ziel speichern unter…”):

Kretschmann Kabinett Frauen als CSV
Kretschmann Kabinett Maenner als CSV

Diese Dateien laden wir gemeinsam in ein OpenRefine Projekt.

Beim Projektimport verwenden wir die folgenden Einstellungen:

  • Project name: Kretschmann Kabinett III
  • Tags: GND, Workshop, 2024

Die Optionen für das Format sind als Bildschirmfoto hinterlegt.

Bildschirmfoto von OpenRefine Parsing Options.
Bildschirmfoto von OpenRefine Parsing Options.

Aufgabe 3: Projektdaten anpassen

OpenRefine bietet noch mehr Einstellungen für Projekte, als die die wir beim Erstellen angeben. Dazu gehören zum Beispiel der Name des Erstellers, ein Vorschaubild, die Lizenz, …

Bildschirmfoto von OpenRefine Projekt Metadaten.
Bildschirmfoto von OpenRefine Projekt Metadaten.

Um diese anzupassen, verwendet man den Link “About” in der Projektübersicht wie in Abbildung 3 und fügt die Informationen via “Edit” ein. Um dies einmal durchzuführen, ergänzen wir bei dem Gurs-Projekt im Feld Homepage die URL des LABW, wie in Abbildung 4 gezeigt.

https://www.landesarchiv-bw.de
Bildschirmfoto von dem Bearbeitungsdialog der OpenRefine Projekt Metadaten.
Bildschirmfoto von dem Bearbeitungsdialog der OpenRefine Projekt Metadaten.

Aufgabe 4: Aktionsverlauf

OpenRefine speichert Änderungen automatisch und erstellt einen Verlauf aller auf ein Projekt angewendeter Aktionen. Diese können im Tab “Undo/Redo” angesehen, rückgängig gemacht oder importiert werden.

Um das besser kennen zu lernen laden wir ein OpenRefine Projekt und übertragen die Änderungshistorie auf ein Projekt von uns.

💾 Wir benötigen die folgende Datei (Rechtsklick und “Ziel speichern unter…”):

Kretschmann Kabinett (Vorlage) als OpenRefine Projektdatei

Wir laden die OpenRefine Projektdatei über das in Abbildung 5 gezeigte Formular zum Importieren von OpenRefine Projekten.

Bildschirmfoto vom Formular zum Importieren von OpenRefine Projekten.
Bildschirmfoto vom Formular zum Importieren von OpenRefine Projekten.

Anschließend öffnen wir den Reiter für die Änderungshistorie in OpenRefine. Dort werden automatisch alle automatisch gespeicherten Arbeitsschritte gezeigt. Frühere Zustände des Projektes können durch Anklicken des entsprechenden Eintrages in der Änderungshistorie wiederhergestellt oder überschrieben werden. Geht man in der Änderungshistorie zum Beispiel zu Schritt 2 zurück und fügt dann eine neue Änderung ein, dann werden die nachfolgenden Schritte (3-4) überschrieben.

Wie in Abbildung 6 gezeigt können die Arbeitsschritte eines Projektes auch extrahiert werden.

Bildschirmfoto des Reiters für die Änderungshistorie in OpenRefine.
Bildschirmfoto des Reiters für die Änderungshistorie in OpenRefine.

Der in Abbildung 7 gezeigte Dialog zum Extrahieren erlaubt es auch einzelne Schritte zum Export aus- oder abzuwählen. Wir extrahieren den kompletten Text und kopieren ihn in die Zwischenablage.

Bildschirmfoto des Dialogs zum Extrahieren von Änderungen.
Bildschirmfoto des Dialogs zum Extrahieren von Änderungen.

Der kopierte Text sieht in etwa wie folgt aus, wobei die Beschreibung (description) nachträglich mit einer deutschsprachigen Erklärung versehen wurde.

[
  {
    "op": "core/column-split",
    "engineConfig": {
      "facets": [],
      "mode": "row-based"
    },
    "columnName": "Bevorzugter Name",
    "guessCellType": true,
    "removeOriginalColumn": true,
    "mode": "separator",
    "separator": ",",
    "regex": false,
    "maxColumns": 2,
    "description": "Spalte nach Vorname und Nachname auftrennen."
  },
  {
    "op": "core/column-rename",
    "oldColumnName": "Bevorzugter Name 1",
    "newColumnName": "Nachname",
    "description": "Spalte Bevorzugter Name 1 in Nachname umbenennen."
  },
  {
    "op": "core/column-rename",
    "oldColumnName": "Bevorzugter Name 2",
    "newColumnName": "Vorname",
    "description": "Spalte Bevorzugter Name 2 in Vorname umbenennen."
  },
  {
    "op": "core/text-transform",
    "engineConfig": {
      "facets": [],
      "mode": "row-based"
    },
    "columnName": "Geschlecht",
    "expression": "grel:if(value == \"Weiblich\", \"w\", \"m\")",
    "onError": "keep-original",
    "repeat": false,
    "repeatCount": 10,
    "description": "Männlich und Weiblich als m und w kodieren."
  }
]

Um die Änderungen in unserem eigenen Projekt anzuwenden öffnen wir das Projekt “Kretschmann Kabinett III”, öffnen dort den Tab “Undo/Redo”, drücken auf “Apply” und kopieren wie in Abbildung 8 den Text in den Dialog.

Anwenden von Aktionen über die History Funktion von OpenRefine.
Anwenden von Aktionen über die History Funktion von OpenRefine.

Da wir in unserem Projekt die gleichen Spaltennamen haben, wie im Vorlagenprojekt, konnten wir die Änderungen direkt übernehmen und haben nun den gleichen Stand.

Fazit

OpenRefine öffnet viele unterschiedliche Dateitypen, extrahiert Archive, rät die Einstellungen für den Import und bietet mit der Vorschau eine tolle Möglichkeit die Einstellungen anzupassen. Das Metadatenmanagement der Projekte ist etwas lieblos implementiert. Die Möglichkeit (fast) jeden Bearbeitungsschritt wieder rückgängig zu machen gibt die Sicherheit, auch mal Datenbearbeitungen ausprobieren zu können, ohne sich in verschiedenen Versionen einer “Datei” zu verlaufen. Beim Verlauf der Bearbeitungsschritte wäre es noch praktisch, wenn man verschiedene Stände markieren könnte, um schneller dorthin zurückzuspringen.


Im nächsten Teil lernen wir, wie wir Daten in OpenRefine filtern und sortieren können.

Benjamin Rosemann
Benjamin Rosemann
Data Scientist

Ich evaluiere KI- und Software-Lösungen und integriere sie in den Archivalltag.

Ähnliches