3.7 Bonus: Automatisierung
Die Systemarchitektur von OpenRefine macht es möglich, die Anwendung nicht nur über die grafische Oberfläche, sondern auch über eine API "fernzusteuern". Für die HTTP-API von OpenRefine gibt es Clients in den Programmiersprachen Python, Ruby, node.js, PHP und für R. Am ausgereiftesten ist der Python-Client von Paul Makepeace.
Darauf aufbauend habe ich ein Shell-Script geschrieben, das gespeicherte Transformationsregeln auf eine Vielzahl von Dateien anwenden kann. Es lädt sich alle benötigten Komponenten wie beispielsweise den Python-Client automatisch aus dem Internet. Die zu verarbeitenden Daten und die Transformationsregeln (als JSON-Dateien) müssen vorab in Dateiordnern bereitgestellt werden. Das Script ist bei GitHub frei verfügbar: felixlohmeier/openrefine-batch.
Transformationshistorie
OpenRefine verfügt über hilfreiche Undo/Redo-Funktionen, mit denen Sie auch alle bisher in einem Projekt durchgeführten Transformationsregeln speichern und auf ein anderes Projekt anwenden können.
Transformationsregeln extrahieren (altes Projekt):
- Oben links im Reiter "Undo / Redo" den Button "Extract..." drücken
- Alles im rechten Textfeld in die Zwischenablage kopieren (z.B. mit
STRG
+A
undSTRG
+C
)
Transformationsregeln anwenden (neues Projekt):
- Neues OpenRefine-Projekt mit ähnlichen oder gleichen Datenstrukturen erstellen
- Oben links im Reiter "Undo / Redo den Button "Apply..." drücken
- Den Inhalt der Zwischenablage einfügen (z.B. mit
STRG
+V
) und den Button "Perform Operations" drücken.
Download des Shell-Scripts openrefine-batch
- Falls OpenRefine im Terminal noch läuft, beenden Sie es durch die Tastenkombination
STRG
+C
. - Geben Sie im Terminal folgende Befehle ein:
wget https://github.com/felixlohmeier/openrefine-batch/archive/master.zip
unzip master.zip
cd openrefine-batch-master
chmod +x openrefine-batch.sh
Tutorial aus Kapitel 3.4 automatisiert bearbeiten
In dem Download sind die Daten aus dem Tutorial enthalten. Wenn Sie mögen, können Sie die mitgelieferte JSON-Datei im Ordner examples/powerhouse-museum/config/ durch Ihre eigene Transformationshistorie ersetzen.
Geben Sie im Terminal folgenden Befehl ein, um das Script openrefine-batch.sh
auf den mitgelieferten Beispieldaten laufen zu lassen:
./openrefine-batch.sh \
-a examples/powerhouse-museum/input/ \
-b examples/powerhouse-museum/config/ \
-c examples/powerhouse-museum/output/ \
-f tsv \
-i processQuotes=false \
-i guessCellValueTypes=true \
-RX