Nachdem wir am Donnerstagabend bereits über Metadatenmodellierung und Schnittstellen gesprochen hatten, wurde das Thema am Freitagnachmittag weiter behandelt. Der Schwerpunkt lag dieses Mal auf der Transformation von Metadaten mittels OpenRefine. Am Vorabend hatten wir mit MARCedit Crosswalks behandelt.

Einführung in OpenRefine

OpenRefine ist ein freies open source Tool für die Bereinigung von schmutzigen Daten. Es wird häufig in Bibliotheken und Archiven eingesetzt. Zwar denkt man, dass Bibliotheken aufgrund der Standards und Regelwerke wohl eher kaum schmutzige Daten haben, doch aufgrund der komplexen Formate kann es trotzdem zu Fehlern und Unreinheiten kommen. OpenRefine wird somit zur Analyse, Bereinigung, Konvertierung und Anreicherung von Daten verwendet. Gerade die Anreicherung ist eine Spezialfunktion, die andere Software teilweise nicht leisten können. So können z.B. eigene Daten mit externen Daten (z.B. für Personendaten aus der GND oder Wikidata) kombiniert werden. Die graphische Oberfläche sieht sehr ähnlich zu Excel aus. Installiert wird die Software auf dem Computer und wird dann im Browser bedient. Durch die lokale Installation besteht daher auch kein Problem mit dem Datenschutz. Dieses würde erst bei der Verwendung von externen Schnittstellen auftreten. 1

OpenRefine in der Praxis

Nach einer kurzen Einführung haben wir OpenRefine 3.5.0 auf unserer Linux-Umgebung auf der VDI der FHGR installiert. Mit ‘cd ~/openrefine-3.5.0’ und anschliessend ‘./refine’ wird die Datei gestartet, sodass wir die Software anschliessend über http://localhost:3030 öffnen konnten. In einem ersten Schritt haben wir nach der Installation Beispieldaten in ein neues Projekt geladen.

Beispieldaten
Beispieldaten in OpenRefine

Anschliessend lernten wir die Basisfunktionen kennen. Mithilfe Textfacetten können, ähnlich wie in einer Suchmaschine, Werte angeklickt werden (wie bei einem Filter). Im Beispieldatensatz war die Sprache Englisch sowohl als Abkürzung EN als auch ausgeschrieben English erfasst. In einer Massenverarbeitung wurde der Sprachcode vereinheitlicht.

Anpassung nachher
Links: vor Anpassung, rechts: nach Anpassung

Die Funktion der Massenverarbeitung kenne ich so ähnlich aus unserem Bibliothekssystem WinMedio in der Benutzerverwaltung. Dort mache ich regelmässig Abfragen, setze Filter und verarbeite anschliessend einzelne Werte. So werden z.B. bei jedem Benutzer die Korrespondenzart erfasst. Intern haben wir die Regelung, dass bei vorhandener Mailadresse die Erinnerung, Abholungseinladung und die 1. Mahnung per Mail verschickt wird. Nun kommt es aber regelmässig vor, dass die Mailadresse im Nachhinein erfasst wird, die Korrespondenzeinstellung aber nicht mitangepasst wird. Durch eine Abfrage im System kann ich dann anschliessend eine Massenverarbeitung machen und die Korrespondenzart entsprechend ändern, dies geschieht ganz einfach und nur mit wenigen Klicks.

Es ist aber auch möglich, Zellen aufzutrennen und diese zu Editieren. Mithilfe von Algorithmen werden Verbesserungsvorschläge generiert.

Cluster und Edit-Funktion
Mithilfe der Cluster und Edit-Funktion werden Verbesserungsvorschläge generiert

Es wurden auch noch Daten mit anderen Daten zusammengeführt. In unserem Beispiel ordneten wir ein Journal anhand der ISSN Wikidata zu. Als Abschluss haben wir ein CSV nach MARCML übertragen. Dort lernten wir die Template-Sprache GREL (General Refine Expression Language) kennen.2 So wie ich es verstanden habe, kann mit GREL eine Abbildung dargestellt werden, wo definiert bzw. angezeigt wird, wo welche Spalte im Export angezeigt wird. Dies ermöglicht die individuelle Anpassung der Darstellung. So haben wir dem bestehenden Template noch die Rubrik «Subjects» hinzugefügt.

Da dieser Prozess sehr Fehleranfällig ist, lässt sich das Ergebnis mit xmllint validieren. Das Ergebnis haben wir dann als XML-Datei heruntergeladen. Anders als am Vorabend, wo wir mit dem XSLT Crosswalk Metadatenstandarts «umgewandelt» haben, haben wir heute also Datenformate konvertiert.


Total Zeichen: 3’967

Quellen

  1. https://openrefine.org/documentation.html , zuletzt abgerufen am 16.12.21 

  2. https://docs.openrefine.org/manual/grel , zuletzt abgerufen am 16.12.21