Fünf Dinge, die wir an OpenRefine mögen

Red heart made out of binary digits. Photo by Alexander Sinn on Unsplash.

Wir haben uns in den letzten Wochen im Blog ausgiebig mit OpenRefine beschäftigt und wollen einmal festhalten, was uns daran so gefällt.

flowchart LR subgraph server[fas:fa-server Server] server_or[fas:fa-gem OpenRefine] server_api[fas:fa-code Other API] end subgraph laptop[fas:fa-laptop Laptop] browser[far:fa-window-maximize Browser] laptop_or[fas:fa-gem OpenRefine] laptop_api[fas:fa-code Other API] laptop_python[fab:fa-python Python] end browser -.-> laptop_or & server_or laptop_python -.-> laptop_or & server_or laptop_or -.-> laptop_api & server_api server_or -.-> server_api

Architektur

Zuerst mag es seltsam erscheinen, dass sich beim Starten von OpenRefine die Bedienoberfläche im Webbrowser öffnet. Der Grund dafür ist, dass bei OpenRefine die Bedienoberfläche von der eigentlichen Anwendung getrennt ist (Architektur von OpenRefine). Die Kommunikation zwischen Bedienoberfläche und Programm erfolgt via einer Programmierschnittstelle (API von OpenRefine).

Durch die Benutzung über den Webbrowser, kann OpenRefine sowohl auf dem eigenen PC oder Laptop betrieben, als auch auf einem Server zur Verfügung gestellt werden. Über die OpenRefine API lässt sich das Programm programmatisch steuern. Es gibt mehrere Softwarebibliotheken für unterschiedliche Programmiersprachen, die die Verwendung der OpenRefine API vereinfachen. In dem obigen Diagramm haben wir das exemplarisch mit Python dargestellt.

Scripting

Neben den vorgefertigten Funktionen bietet OpenRefine mit der JavaScript ähnlichen General Refine Expression Language (GREL) ein passendes Werkzeug um Daten zu transformieren.

Mit der Einbindung der deutlich mächtigeren Programmiersprachen Clojure und Jython fühlen sich auch Entwickler wohl und können damit komplexe Probleme lösen.

Schnittstellen

OpenRefine ist explizit offen entwickelt und es lassen sich auf unterschiedlichesten Wegen zig Formate einlesen und exportieren.

Darüber hinaus lassen sich mit OpenRefine auch Webdienste beziehungsweise andere APIs verarbeiten. Wir haben bereits gezeigt, wie wir mit der Reconciliation API Daten mit dem von lobid bereitgestellten GND Service abgleichen, wie wir die Reconciliation API mit lokalen CSV Dateien verwenden, und wie wir mit FastAPI beliebige lokale Services selbst erstellen und mit OpenRefine nutzen.

History

Die History ist ein prominentes Element im der Bedienoberfläche. Mit ihr lassen sich Operationen in einem Projekt nachvollziehen und auf andere Projekte übertragen.

Wir verwenden die Funktion häufig im Kontext eines iterativen Vorgehens. Wir springen zu einem früheren Bearbeitungszustand zurück, korrigieren einen Bearbeitungsschritt und wenden anschließend die Folgeschritte automatisiert erneut an.

Das funktioniert nicht bei der manuellen Bearbeitungen von Zellinhalten!

Filter

Bisher haben wir die Filterfunktionen (Facets) nur eingeschränkt genutzt. Die Möglichkeit unterschiedliche Filter miteinander zu kombinieren und sie zu invertieren und anschließend gezielt Operationen auf die Filterergebnisse anzuwenden ist jedoch ziemlich mächtig. Beim Reconciling von Daten mit der GND konnten wir dadurch ziemlich schnell relevante Treffer identifizieren und uns lediglich mit diesen beschäftigen.

Weitere Quellen

Bei der Suche nach Lösungen sind wir über einige Anleitungen gestolpert, die wir an dieser Stelle gerne weiterempfehlen möchten.

Das Projekt histHub in der Schweiz beschäftigte sich schon ausführlich mit OpenRefine und hat eine komplette deutschsprachige Tutorial-Serie zu OpenRefine geschrieben. Weitere Artikel finden sich auf der Projektseite unter dem Tag OpenRefine.

Das Programming Historian Projekt hat zwei mehrsprachige Tutorials zum Säubern von Daten mit OpenRefine und zum Aufbereiten von Daten aus dem Web mit OpenRefine im Angebot.

Eine ausführliche Liste von weiteren Quellen gibt es im OpenRefine Wiki.

Benjamin Rosemann
Benjamin Rosemann
Data Scientist

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

Ähnliches