GREL

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.

Bereits in früheren Beiträgen sind wir auf die General Refine Expression Language, kurz GREL, gestossen. Befehle an OpenRefine werden in GREL formuliert, es ist jedoch auch möglich andere Sprachen (Python/Jython oder Clojure) zu verwenden. In diesem Beitrag werden wir uns mit GREL befassen, um eigene Befehle formulieren zu können.

Verwendung von GREL

GREL kann sowohl zum Bearbeiten von Zelleninhalten als auch zum Facettieren verwendet werden. Die Sprache funktioniert gleich, egal ob Inhalte gesucht oder geändert werden.

Immer zu beachten ist, dass GREL-Befehle nur über die aktuell gefilterten oder facettierten Einträge und Zeilen ausgeführt werden. Ist also bereits eine Facette aktiv, werden die dadurch «versteckten» Einträge von dem Befehl nicht betroffen. Ebenfalls wichtig ist, dass GREL case-sensitive ist.

Facettieren mit GREL

Eine Spalte kann über Facet – Custom Text Facet ein GREL-Bearbeitungsfenster aufgerufen werden.

openrefine-GREL-facet-menu

Zu Übungszwecken ist diese Art GREL zu verwenden praktisch, weil keine Daten verändert werden.

Das selbe Fenster kann auch bei einer bereits in der linken Seitenleiste angezeigten Facette aufgerufen werden, indem bei der Facette oben rechts auf «change» geklickt wird.

Bearbeiten mit GREL

Häufiger als zum Facettieren wird GREL zum Bearbeiten von Zelleninhalten und Spalten verwendet. Sowohl beim Hinzufügen einer Spalte (Spaltenmenü – Edit column – Add column based on this column) als auch beim Bearbeiten aller Zellen in einer Spalte (Spaltenmenü – Edit cells – Transform) wird ein GREL-Bearbeitungsfenster geöffnet:

GREL edit window

Der Aufbau von GREL

OpenRefine funktioniert sehr stark über Spalten. Befehle werden mithilfe von Variablen auf eine ganze Spalte (oder Zeile) angewendet, wobei auch andere Spalten mit einbezogen werden können.

In einem GREL-Befehl wird die Variable definiert, die über einen Punkt abgetrennt noch genauer spezifiziert werden kann. Daran werden Funktionen angehängt.

Variablen

Es gibt in GREL verschiedene Variablen:

  • value: der Wert in einer (jeder) Zelle der Spalte, über die der GREL-Befehl angewendet wird.
  • row: eine Zeile mit mehreren Zellen
  • cells: alle Zellen der aktuellen Zeile
  • cell: die Zelle in der Spalte, über die der Befehl ausgeführt wird. Für cell gibt es die beiden Ausprägungen
    • cell.value: der Wert in der Zelle
    • cell.recon: das Ergebnis des Reconciling für die Zelle
  • recon: wird in Zusammenhang mit dem Reconciling, also dem Abgleich mit einer online verfügbaren Ressource wie z.B. Wikidata, verwendet
  • record: ein record ist ein Zusammenschluss von einer oder mehr Zeilen

Genauere Beschreibungen der Variablen gibt es im Wiki zu OpenRefine.

Funktionen

GREL-Funktionen gibt es viele, im GREL-Bearbeitungsfenster ist unter «Help» eine Liste zu finden, in der die Funktionen erklärt werden. Deshalb gehen wir hier nicht vertieft darauf ein, welche Funktion was macht.

functions help

In OpenRefine sind die Funktionen alphabetisch geordnet. Thematisch geordnet und ausführlicher erklärt sind die Funktionen im Wiki. Dort sind sie zuerst inhaltlich unterteilt. Suchen wir beispielsweise eine Funktion für einen String, also einen Text, wählen wir die entsprechende Seite.

Befehle können auf verschiedene Arten aufgebaut werden:

  • Zuerst die Funktion, also z.B.
    replace(WERT, "suchen nach", "ersetzen mit")

    WERT kann hier auch eine andere Spalte sein auf die mit

    cells["columnname"].value

    verwiesen wird

  • zuerst der Ort, wo die Funktion angewendet wird, also z.B.
    value.replace("suchen nach", "ersetzen mit")

    Value wendet die Funktion auf die aktuelle Spalte an, auch hier kann mit

    cells["columnname"].value

    auf eine andere Spalte verwiesen werden
    Vorteil dieser Variante ist, dass mehrere Funktionen aneinander gehängt werden können. Es können z. B. alle «:» mit «» ersetzt werden und danach noch Leerschläge am Anfang oder Ende entfernt werden:

    value.replace("suchen nach", "ersetzen mit").trim()

Controls sehen aus wie Funktionen. Controls ermöglichen Loops und Branches, also «wenn X dann Y sonst Z» Konstruktionen.

Arbeiten mit GREL

GREL-Befehle lassen sich mit der integrierten Hilfe zusammenstellen. Oft finden sich in Anleitungen, wie sie auch in diesem Blog publiziert werden, fertig formulierte Beispiele, in denen nur noch die Namen der Spalten für das eigene Projekt angepasst werden müssen.

OpenRefine bietet einige eingebaute Hilfen an. So wird bereits beim Eingeben die Syntax überprüft. Hat sich ein Fehler eingeschlichen, der der Grammatik von GREL widerspricht, wird dies rechts vom Eingabefenster gemeldet. Im Tab «Preview» wird angezeigt, was der Befehl mit den Inhalten der Spalte machen wird. So kann direkt überprüft werden, ob das Resultat den Erwartungen entspricht. Im Tab «History» sind die bisher verwendeten Befehle aufgelistet, sowohl aus dem aktuell offenen Projekt als auch aus anderen Projekten. Da diese Liste schnell unübersichtlich wird, bietet OpenRefine die Möglichkeit, Befehle mit einem Stern zu versehen. Diese werden dann im Tab «Starred» aufgelistet. Häufig genutzte Befehle können so leicht wieder abgerufen werden, und das über Projekte hinweg.

Fragen, Anregungen oder Wünsche zu histHub oder zur Blogserie zu OpenRefine nehmen wir gerne per Mail entgegen.

Spalten bearbeiten

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.

Dabei haben wir festgestellt, dass OpenRefine stark über die Spalten organisiert ist. Bearbeitungsschritte, Facetten oder Filter werden jeweils für eine Spalte aufgerufen. Was ist denn nun, wenn wir den Inhalt von Spalten verändern wollen? Damit befasst sich dieser Beitrag.

Im Beitrag zum Bearbeiten von Spalten und Zellen haben wir bereits gelernt, Inhalte von Spalten zu trennen. Dafür gibt es ein eigenes Bearbeitungsfenster, das uns die Sache erleichtert. Jetzt werden wir andere Möglichkeiten zum Hinzufügen einer neuen Spalte betrachten.

Spalten hinzufügen

OpenRefine bietet verschiedene Wege, Spalten hinzu zu fügen. Als Programm zum Reinigen und Ergänzen von Daten bietet es, anders als beispielsweise Excel, keine Option zum Einfügen einer leeren Spalte. Es gibt jedoch Möglichkeiten, Inhalte aus einer Spalte in neue Spalten aufzuteilen oder neu zu gliedern. Diese werden im Folgenden gezeigt. Datengrundlage ist weiterhin das Projekt mit den Metadaten zu den Fotografien von Annemarie Schwarzenbach.

Add column based on this column

OpenRefine geht davon aus, dass wir die bestehenden Daten in einem Projekt weiter bearbeiten wollen. Das Programm ist explizit nicht auf das Erheben von Daten ausgelegt, entsprechend ist das Eintippen von Daten in Zellen hier eher mühsam.

Wollen wir nun eine neue Spalte bilden, die von einer der bestehenden Spalten ausgeht, wählen wir im Spaltenmenü «Edit column» – «Add column based on this column». Standardmässig ist im sich daraufhin öffnenden Fenster «value» ausgefüllt, demnach wird in jeder Zelle der neuen Spalte der Wert der Zelle der bereits vorhandenen Spalte ausgefüllt. Eine solche simple Kopie einer Spalte ist immer dann sinnvoll, wenn das Original behalten werden soll. Dies beispielsweise vor weiteren Transformationen wir dem Abgleich mit externen Daten.

Der neuen Spalte muss ein Name gegeben werden. Im Bearbeitungsfeld kann mit GREL («General Refine Expression language») der Inhalt angepasst werden. Soll wie im obigen Beispiel bei allen Zellen in der neuen Spalte ein Text hinzugefügt werden, wird dieser neue Text zwischen ‚ ‚ gesetzt. «value» verweist auf den Wert in der Zelle der Ursprungsspalte. Die verschiedenen Elemente werden mit einem «+» verbunden. Im Tab «Help» im Bearbeitungsfenster sind weitere GREL-Befehle aufgeführt. In einem späteren Blogbeitrag werden wir uns intensiver mit der Sprache befassen.

Spalten verbinden

Sollen die Inhalte mehrerer Spalten in einer einzigen zusammengefasst werden, gibt es dazu zwei mögliche Formeln. Zunächst muss wie eben das Bearbeitungsfenser über Spaltenmenü – «Edit column» – «Add column based on this column» aufgerufen werden.

cells["Column 1"].value + cells["Column 2"].value

Wenn in allen Spalten, die zusammengefügt werden sollen, keine Leerzeichen im Namen vorkommen, geht auch der kürzere Befehl:

cells.Column1.value + cells.Column2.value

Spalten trennen

OpenRefine bietet eine einfache Oberfläche, um Spalten zu trennen. Diese wird in diesem Beitrag gezeigt. Es ist jedoch auch möglich, über „Add column based on this column“ Spalten zu trennen und dabei nur bestimmte Teile zu behalten. Der GREL-Befehl dafür ist:

value.split("X")[Y]

Bei („X“) ist das Zeichen einzufügen, bei dem geteilt werden soll. Bei [Y] wird angegeben, welcher Teil behalten werden soll. Dabei wird bei 0 angefangen zu zählen. Wollen wir beispielsweise aus dem String «Spanien, San Cugat: Stadtansicht» das Wort «Spanien» herauslösen ist der richtige Befehl

value.split(",")[0]

Komplizierter wird es, wenn im obigen Beispiel der Ortsname herausgegriffen werden soll:

value.split(",").join(":").split(":")[1]

Weil unser Beispiel nach dem Muster «Land, Ort: Kurztitel» aufgebaut ist müssen wir hier sowohl bei «,» als auch bei «:» trennen. «split» lässt nicht mehrere Argumente zu, deshalb müssen wir zuerst trennen, dann wieder zusammenfügen. Zum Schluss geben wir mit [1] den zweiten Teil aus.

Die einzelnen Teile der Formel werden mit «.» zusammengehängt. Um die Formel zu verstehen können diese Teile nacheinander eingefügt werden. In der Vorschau wird dann jeweils das aktuelle Ergebnis angezeigt:

openrefine add column based on this column

Anfang 2018 werden wir das Reconciling beschrieben, also den Abgleich eines OpenRefine-Projekts mit anderen Daten, beispielsweise mit Wikidata. Dort werden wir wieder auf das Hinzufügen von Spalten zurückkommen. Denn durch das Reconciling ist es möglich, zusätzliche Informationen aus dem anderen Datenbestand abzugreifen und in das eigene Projekt einzufügen. So können beispielsweise Ortsnamen um Koordinaten oder Personen mit Lebensdaten ergänzt werden.

Fragen, Anregungen oder Wünsche zu histHub oder zu OpenRefine nehmen wir gerne per Mail entgegen.

Deduplizieren mit OpenRefine

openrefineIn einer Blogserie befasst sich histHub mit der Aufbereitung und Anreicherung von Daten in Openrefine. Dieser Beitrag beleuchtet das Deduplizieren, also das finden und löschen doppelter Einträge.

Kriterien zum Deduplizieren

Voraussetzung dafür ist (mindestens) eine Spalte, in der Dubletten eindeutig als solche auftauchen. In den Metadaten zu den Fotografien von Annemarie Schwarzenbach gibt es zwei Signatur-Spalten. Beide diese Spalten enthalten einzigartige Signaturen für jede einzelne Zeile. Richtige Dubletten enthält dieser Datensatz nicht. 

Zu Übungszwecken können wir nun beispielsweise anhand der Spalte Titel_Name deduplizieren, so dass jeweils nur ein Eintrag pro identischen Titel übrigbleibt.  

Die Methode zum Entfernen von Dubletten, die wir gleich zeigen werden, übernimmt jeweils den ersten vorkommenden Eintrag und entfernt alle anderen. 

Vorgehen 

OpenRefine bietet keinen einfachen «Dedupliziere»-Knopf. Die Sortier-Funktion und die Blank-Down Funktion werden in Kombination mit einer Facette zum Ziel führen. Doch der Reihe nach. 

Sortieren 

Nachdem wir entschieden haben, anhand welcher Spalte dedupliziert werden soll, sortieren wir alle Einträge in dieser Spalte. Dazu zuerst «Sort» wählen,

openrefine sort

und im sich darauf öffnenden Fenster auf «ok» klicken: 

openrefine sort 

Dies sortiert die Zeilen alphabetisch. Die Sortierung ist jedoch noch nicht permanent. In der Spalte «All», in der OpenRefine jeder Zeile selbst einen Identifier gibt, haben alle Zeilen ihren ursprünglichen Identifier behalten. Und nach dieser Spalte richtet sich die Sortierung, von der OpenRefine ausgeht. Die Sortierung permanent zu machen benötigt nur wenige Klicks.  

In der Kopfzeile gibt es neu neben den Schaltflächen zur Auswahl der Anzahl sichtbarer Zeilen den Butten «Sort». Ein Klick darauf öffnet ein Dropdown-Menü, aus dem wir «Reorder rows permanently» wählen. 

 openrefine sort permanent

Die Identifier in der Spalte «All» beginnen jetzt wieder bei 1, das heisst alle Zeilen haben einen neuen Identifier von OpenRefine erhalten. Erst jetzt ist die Sortierung eine Transformation an den Daten, die auch im Undo/Redo Tab rückgängig gemacht werden kann. 

Blank down 

Die Funktion «Blank down» ist im Standardrepertoire von OpenRefine. Sie entfernt den Inhalt aller aufeinanderfolgenden identischen Einträge, wobei sie den ersten beibehält. Zu finden ist die Funktion unter Edit cells – Blank down: 

 openrefine blank down

Wie immer zeigt OpenRefine an, wie viele Zeilen bearbeitet wurden. 

Facettieren 

Die «doppelten» Einträge sind nun dadurch markiert, dass sie in der Spalte «Titel_Name» keinen Inhalt haben. Zeilen mit leeren Zellen in einer Spalte lassen sich ganz leicht per Facette herausgreifen. 

 openrefine facet by blank

In der Facettenauswahl muss nun «true» gewählt werden. Bei der Betrachtung der Facette wird deutlich, dass es in dem Datensatz bei fast 3500 Einträgen 950 unterschiedliche Titel gibt. So viele Zeilen werden nach dem Deduplizieren übrigbleiben. (Keine Sorge, die Schritte lassen sich ganz leicht rückgängig machen). 

Entfernen 

Das Entfernen von Zeilen wird über die Spalte «All» aufgerufen. 

 openrefine remove all matching rows

Übrig bleiben «0 matching rows», da eine Facette aktiv ist. Diese kann nun einfach entfernt werden. 

Rückgängig machen 

Das Deduplizieren ist zwar ein relativ aufwändiger Ablauf, für OpenRefine sind es jedoch nur drei Schritte. Sichtbar wird das, wenn wir auf «Undo/Redo» gehen.  

 openrefine undo redo deduplicate

Hier lassen sich diese Arbeitsschritte nachvollziehen und rückgängig machen.

Fragen, Anregungen oder Wünsche zu OpenRefine oder zu histHub nehmen wir gerne per Mail entgegen. 

Annemarie Schwarzenbach

histHub setzt sich seit Oktober mit den Metadaten zu den Fotografien von Annemarie Schwarzenbach auseinander. In einer Blogserie zeigen wir, wie die tabellenförmigen Daten in OpenRefine verbessert und angereichert werden können.

Aus Anlass des 75. Todestags von Annemarie Schwarzenbach hat das Schweizerische Literaturarchiv nun über 3000 Fotografien auf Wikimedia Commons zur Verfügung gestellt. Für histHub bietet dies Gelegenheit, den Blick über die Metadaten zu den Fotografien hinaus auf das Schaffen von Annemarie Schwarzenbach und ihre jetzt offen verfügbaren Bilder zu erweitern.

Reisende

Die meisten der auf Wikimedia Commons publizierten Fotografien entstanden auf den ausgedehnten Reisen Annemarie Schwarzenbachs. Die 1908 in eine reiche Zürcher Familie hineingeborene Frau unternahm vor allem in den 1930er Jahren Reisen auf vier Kontinenten, bis sie 1942 an den Folgen eines Velounfalls starb. Unterwegs verfasste sie literarische Werke, aber auch Reportagen für heimische Zeitungen und Zeitschriften. Ihre Fotografien begleiteten diese Reisereportagen.

Die Fotografien sind angereichert und ergänzt mit Metadaten, mit denen sich die Blogserie von histHub bisher auseinandergesetzt hat. Die Kombination von Metadaten mit den auf Wikimedia Commons verfügbaren Digitalisaten hilft bei der Orientierung. Eine Facette in OpenRefine zeigt schnell, dass in dem verfügbaren Bestand Fotografien aus über 30 Ländern vorhanden sind.

Spanien

Öffnen wir die Metadaten, so wie sie auf opendata.swiss angeboten werden, verweisen die ersten Einträge auf eine Reise nach Spanien. Eine Facette auf der Spalte „Land“ zeigt, dass Annemarie Schwarzenbach 1933 in Katalonien und im Baskenland weilte, und 1936 Mallorca besuchte. Dies lässt sich allein anhand der Metadaten herausfinden. Von diesen Reisen sind 21 Fotografien auf Wikimedia Commons verfügbar.

CH-NB_-_Spanien,_San_Sebastian-_Hafen_-_Annemarie_Schwarzenbach_-_SLA-Schwarzenbach-A-5-01-055
Spanien, San Sebastian – Hafen – SLA-Schwarzenbach-A-5-01-055

Auf die Bilder aus Spanien stossen wir eher zufällig, es sind quantitativ nicht sehr viele. Wie kann uns die bisherige Arbeit an den Metadaten in OpenRefine beim Überblick über die Fotografien helfen?

USA

Sortieren wir, wieder in OpenRefine, die Facetten nach «Land» anhand der Anzahl Einträge zeigt sich, dass über 500 der Fotografien in den USA verortet sind. Diese Bilder entstanden alle zwischen 1936 und 1938, genauere Datierungen gibt es kaum. Es ist bekannt, dass Annemarie Schwarzenbach in diesen Jahren mehrfach in die USA reiste.  

CH-NB_-_USA,_Cincinnati-OH-_Menschen_-_Annemarie_Schwarzenbach_-_SLA-Schwarzenbach-A-5-10-092
USA, Cincinnati-OH – Menschen – SLA-Schwarzenbach-A-5-10-092

Dabei interessierte sie sich für die Auswirkungen der Grossen Depression auf die Menschen und ihren Alltag. So zeigt dieses Bild eine Frau beim Durchsuchen von Müll. Die Metadaten geben mit einer Facette über die Spalte «Kurzbeschreibung» preis, dass ein Drittel dieser Fotografien, nämlich rund 160 von über 500, mit dem Wort «Menschen» beschrieben wurde. Natürlich ist eine solche Suche auf in Wikimedia Commons möglich. Der Suchbegriff für alle Einträge, die sowohl «USA» und «Menschen» enthalten ist «USA Menschen incategory:CH-NB-Annemarie_Schwarzenbach». Der Zugang über die Metadaten ermöglicht eine explorative Herangehensweise, die nicht vom Bild selbst ausgeht.

Persien

Annemarie Schwarzenbach reiste mehrfach nach Persien, 450 Bilder in der Sammlung auf Wikimedia Commonst sind dort entstanden. Sie nahm an archäologischen Ausgrabungen teil und bereiste verschiedene Gebiete des Landes. In Teheran heiratete sie 1935 einen französischen Diplomaten, was ihr einen Diplomatenpass verschaffte.

CH-NB_-_Persien-_Reisealltag_-_Annemarie_Schwarzenbach_-_SLA-Schwarzenbach-A-5-04-044
Persien – Reisealltag – SLA-Schwarzenbach-A-5-04-044

Annemarie Schwarzenbach interessierte sich für das Alltägliche. Sie fotografierte nicht nur die Landschaften, Menschen, Bauten und die Natur, sondern auch den Alltag der europäischen Reisenden.

Fotografien

Der Nachlass von Annemarie Schwarzenbach ist seit 1980 im Schweizerischen Literatutarchiv. Seit den 1980er Jahren wurde sie auch als Person und als Schriftstellerin wieder bekannter. 75 Jahre nach ihrem Tod sind Annemarie Schwarzenbachs Werke gemeinfrei. Dass die Bilder jetzt auf Wikimedia Commons zugänglich gemacht wurden erhöht ihre Sichtbarkeit. Verfügbar sind sie aber auch im Katalog HelveticArchives und damit auch über swissbib.

Besonders schön an der Publikation dieser Fotografien ist der hohe Grad der Erschliessung. Die Metadaten sind ausführlich für jedes einzelne Bild erfasst. So ist nicht nur der visuelle Zugang direkt über die Bilder möglich. Die Metadaten vereinfachen es, die Reisen der Annemarie Schwarzenbach anhand ihrer Fotografien nachzuzeichnen. 

Fragen, Anregungen oder Wünsche nehmen wir gerne per Mail entgegen. 

Cluster

openrefineHistHub befasst sich in einer Blogserie mit der Aufbereitung und Anreicherung von Daten in Openrefine. Dieser Beitrag beschäftigt sich mit Clustern als Methode zum Reinigen von Daten und mit den verschiedenen Methoden, die OpenRefine dafür bietet.

Die Beispiele und Screenshots in diesem Beitrag stammen wieder aus dem Projekt mit den Metadaten zu den Fotografien von Annemarie Schwarzenbach. Die Arbeitsschritte können mit einem anderen Datensatz (oder über andere Spalten dieses Datensatzes) nachvollzogen werden.

Cluster sind Vorschläge des Computers, welche Einträge in einer Spalte das gleiche meinen könnten. Bei den Facetten wird jeweils das Vorkommen des exakt gleichen Eintrags gezählt. Schon ein kleiner Unterschied wie ein Leerschlag macht aus eigentlich identischen Einträgen verschiedene. Mit Clustern ist die Korrektur solcher Fehler ganz einfach. histHub zeigt wie.

Es gibt zwei Möglichkeiten, Cluster aufzurufen

  • Eine Text-Facette für die zu bearbeitende Spalte aufrufen (Spaltenmenü -> «Facet» -> «Text facet»), dann in der Facetten-Anzeige oben rechts auf den Button «Cluster»
  • Über Spaltenmenü -> «Edit cells» -> «Cluster and edit…»

Beide Wege führen zum gleichen Ziel:

OpenRefine Cluster

OpenRefine hat hier mit einem Algorithmus nach ähnlichen Einträgen gesucht. In diesem Beispiel sind die Einträge bis auf einen Doppelpunkt gleich. In der Spalte «Merge?» kann nun ein Haken gesetzt werden, wenn die Einträge vereinheitlicht werden sollen. In der Spalte «New Cell Value» schlägt OpenRefine vor, wie der vereinheitlichte Inhalt aussehen soll. Alle Einträge werden mit diesem Text ersetzt.

Diese Vorschläge richten sich, je nach gewähltem Algorithmus, entweder danach

  • Welche Ausprägung des vermutlich gleichen Werts zuerst vorkommt, oder
  • Welche Ausprägung des vermutlich gleichen Werts häufiger vorkommt.

Es muss also immer kontrolliert werden, ob hier der gewünschte Wert eingegeben wurde.

Unten links können bequem alle Vorschläge ausgewählt oder die Auswahl aufgehoben werden. «Export Clusters» ermöglicht den Export als JSON. «Merge Selected & Re-Cluster» vereinheitlicht die ausgewählten Einträge und erstellt neue Cluster. Danach kann mit anderen Algorithmen (siehe unten) nach weiteren Vorschlägen gesucht werden. «Merge Selected & Close» vereinheitlicht die ausgewählten Einträge und schliesst das Cluster-Fenster. «Close» bricht die Aktion ab.

Clustervorschläge können nur als Ganzes angenommen oder abgelehnt werden. Wenn also von vier Einträgen in einem Cluster drei zusammengehören, der Vierte jedoch eigenständig bleiben soll, muss der Cluster abgelehnt werden. Ein anderer Algorithmus liefert möglicherweise das gewünschte Ergebnis, ansonsten muss von Hand nachgebessert werden.

Der Link «Browse this Cluster» erscheint bei Mouseover. Damit lassen sich alle Zeilen in einem vorgeschlagenen Cluster ansehen und bei Bedarf von Hand vereinheitlichen.

Erkennt Openrefine mehrere Cluster, bietet es mit Facetten die Möglichkeit zur Einschränkung.

OpenRefine Cluster Facetten

So können beispielsweise zuerst die Cluster bearbeitet werden, die mehr als 40 Zeilen in der Tabelle betreffen, oder die eine bestimmte Zeichenanzahl nicht über- oder unterschreiten.

Ein sinnvolles Vorgehen ist es, die verschiedenen Cluster-Methoden einfach durch zu probieren, ein vertieftes Verständnis der dahinterstehenden Mechanismen ist nicht zwingend nötig. Ein Überblick über die Eigenheiten der Cluster-Methoden ist aber sinnvoll, da so gezielt die passende Methode für die vorliegenden Daten gewählt werden kann. Die Reihenfolge der Methoden orientiert sich daran, wie exakt die Übereinstimmung für einen Clustervorschlag sein muss.

Key collision

Unter diesem Begriff werden Clustermethoden gesammelt, die nach dem wesentlichen Teil («key») des Werts suchen. Stimmt dieser überein, schlägt die Methode Cluster vor.

Key collision Methoden brauchen wenig Zeit für die Berechnung, auch wenn grosse Datensätze bearbeitet werden.

fingerprint

FIngerprint ist die Standardmethode, weil sie wenige falsche Treffer vorschlägt. Sie entfernt Leerzeichen und Satzzeichen, betrachtet alle Buchstaben als Kleinbuchstaben und ignoriert Umlaute. Einzelne Worte werden auseinandergenommen. Da Satzzeichen ignoriert werden, fügt die Methode also beispielsweise «Schwarzenbach, Annemarie» und «Annemarie Schwarzenbach» in einem Cluster zusammen.

Die Methode ist nicht ideal für Datensätze mit vielen Umlauten, weil sie diese ignoriert.

ngram-fingerprint

Diese Methode funktioniert ähnlich, wird aber durch ein N-Gramm ergänzt. Dadurch werden auch Cluster erkannt, wenn innerhalb des Strings, also der Zeichenkette, Buchstaben vertauscht sind.

Die Grösse des N-Gramms kann gewählt werden. Ein grosser Wert hat keine Vorteile gegenüber der Standard fingerprint Methode. Ein 2-Gramm oder 1-Gramm hingegen wird einige falsche Vorschläge, aber auch neue Matches hervorbringen.

Beispielsweise findet ein normaler fingerprint keine Übereinstimmung zwischen «Teheran» und «Tehran». Ein ngram-fingerprint mit dem Wert 1 clustert die Einträge zusammen.

metaphone-3

Diese Methode basiert auf einem phonetischen fingerprint. Metaphone-3 ist spezifisch auf die englische Aussprache zugeschnitten, ist also vor allem bei englischsprachigen Datensätzen anzuwenden.

cologne-phonetic

Wie metaphone-3 ist cologne-phonetic eine phonetische fingerprint Methode. Cologne-phonetic ist auf die deutsche Sprache ausgelegt.

Die phonetischen Methoden helfen, Schreibfehler oder Ungleichheiten aufgrund verschiedenener Rechtschreibungen aufzuspüren.

nearest neighbour

Die bisher beschriebenen Methoden brauchen kaum Berechnungszeit. Oft sind sie aber entweder zu eng oder zu locker, so dass es viele falsche Cluster gibt, aber auch Einträge nicht zusammen geclustert werden, obwohl sie zusammengehören.

Präziser sind Methoden, die nach der Nächste-Nachbarn-Klassifikation funktionieren. Strings werden verglichen, und wenn die Abweichung einen bestimmten Grenzwert nicht überschreitet, wird ein Cluster vorgeschlagen.

Der Nachteil daran ist, dass es schon für kleine Datenmengen sehr viele Berechnungen braucht, was die Methode langsam macht. OpenRefine schaltet deshalb eine key collision davor, die Blöcke mit ähnlichen Einträgen schafft. Es ist möglich, die Grösse der Blöcke im Feld «Block» zu bestimmen, wenn eine «nearest neighbour» Methode gewählt wurde. Werte unter drei verlangsamen die Berechnung und bringen selten bessere Ergebnisse.

Der Unterschied zwischen den nearest neighbour Methoden liegt in der Art der Berechnug der Differenz zwischen zwei Strings.

levensthein

Auch Bearbeitungs-Distanz genannt, berechnet diese Methode die Anzahl Bearbeitungsschritte zwischen zwei strings. «Teheran» und «Tehran» ist einen Arbeitsschritt entfernt (einen Buchstaben einfügen), «Buenos Aires» und «Buenosaires» zwei.

In OpenRefine kann die Distanz im Feld «Radius» eingestellt werden. Grosse Zahlen liefern hier, vor allem bei kurzen Zeichenketten, übermässig viele Treffer.

PPM

Diese Methode baut auf der Kompression von Textstrings auf. Eine solche Kompression berechnet den Inhalt eines Strings. Entsprechend muss der Inhalt von Zelle A ungefähr dem Inhalt von A+B entsprechen.

Diese Methode gibt sehr viele Treffer zurück. Deshalb sollte sie erst nach den anderen Cluster-Methoden genutzt werden. Ausserdem ist sie für längere Einträge pro Zelle präziser als für kürzere.

Mehr Informationen zum Clustern

OpenRefine selbst hat auf Github ausführliche Erläuterungen zu den Clustermethoden publiziert, die auch als Grundlage für diesen Artikel dienen.

Fragen, Anregungen oder Wünsche zu OpenRefine oder zu histHub nehmen wir gerne per Mail entgegen.

Bearbeiten von Spalten und Zellen

openrefineHistHub befasst sich in einer Blogserie mit der Aufbereitung und Anreicherung von Daten in Openrefine. Dieser Beitrag zeigt häufig angewandte Transformationen.

Als Grundlage dienen weiterhin die Metadaten zu den Fotografien von Annemarie Schwarzenbach, die im Beitrag über das Erstellen eines OpenRefine Projekts vorgestellt wurden.

Häufige Transformationen

Die Spalte «Titel_Name» enthält Informationen über die Fotografie, die meist aus einem Land, einem Ortsnamen und einer genaueren Bezeichnung bestehen. Diese wollen wir extrahieren. Es gibt in der Tabelle zwar eine Spalte «Ort», mit einer Facette lässt sich aber schnell herausfinden, dass diese nur Orte in der Schweiz enthält. Um eine Spalte mit Ortsangaben weltweit zu erstellen, wollen wir aus der Spalte «Titel_Name» Ortsangaben extrahieren. Davor putzen wir die Einträge.

Whitespace entfernen

Ein häufiges Phänomen sind überzählige Leerzeichen am Anfang oder Ende einer Zelle. OpenRefine stellt eine Funktion zur Verfügung, die mit einem Klick solche Zeichen entfernt. Über das Spaltenmenü -> «Edit cells» -> «Common transforms» -> «Trim leading and trailing whitespace» wird diese aufgerufen. In diesem Beispiel gibt es keine Leerzeichen am Anfang oder Ende eines Eintrags, OpenRefine bearbeitet also 0 Zeilen.

Auch die Funktion «Collapse consecutive whitespace» sollte vor weiteren Transformationen ausgeführt werden. Mit dieser Funktion werden 10 Zeilen bearbeitet, in denen es offenbar aufeinander folgende Leerzeichen gab.

Spalten trennen

Die meisten Einträge in der Spalte «Titel_Name» sind so aufgebaut, dass zuerst das Land, nach einem Komma die Ortschaft und danach eine genauere Bezeichnung für das Bild angegeben ist.

OpenRefine

Dies machen wir uns zunutze.

Über das Menü der Spalte «Titel_Name» wird «Edit column» -> «Split into several columns…» aufgerufen.

Darauf können die Parameter der Trennung der Spalte eingestellt werden. Zuerst trennen wir die genauere Bezeichnung hinter der Ortsbezeichnung ab.

OpenRefine bietet zwei Möglichkeit zur Trennung von Spalten an:

  • Bei einem bestimmten Trennzeichen, oder
  • bei einer bestimmten Anzahl von Zeichen.

Für unser Problem bietet sich einer Trennung nach dem «: » an. Der Leerschlag ist notwendig, sonst beginnt die zweite Spalte mit einem solchen. Reguläre Ausdrücke sind möglich. Eine Einführung inklusive Übungen  zu Regulären Ausdrücken bietet der Regexr. In OpenRefine kann bei der Trennung von Spalten eine maximale Anzahl neu zu bildender Spalten angegeben werden.

Rechts im Bearbeitungsfenster können weitere Optionen angewählt werden, die OpenRefine nach der Trennung der Spalten ausführt. «Guess cell type» bestimmt automatisch den Inhaltstyp der Zelle, also ob es sich um einen String (Text), eine Zahl oder ein Datum handelt. «Remove this column» entfernt die ursprüngliche Spalte. Diese Option soll jetzt nicht gewählt werden, wir wollen die ursprüngliche «Titel_Name» Spalte beibehalten.

Ein Klick auf «OK» trennt die Spalten. Neben der Spalte «Titel_Name» befinden sich jetzt die Spalte «Titel_Name 1» und die Spalte «Titel_Name 2» mit der genaueren Bezeichnung des Inhalts der Fotografie, und «Titel_Name 3».

Diese letzte Spalte wurde so nicht erwartet. Eine Facette zeigt, dass lediglich zwei Zeilen in dieser Spalte einen Inhalt haben.

OpenRefine Facet

Offensichtlich befand sich in diesen Zellen mehr als ein «: », so dass sie mehr als einmal geteilt wurden. Dies hätte sich mit einer «2» bei «Split into _ columns at most (leave blank for no limit)» verhindern lassen. Beheben lässt sich der Fehler, indem der letzte Schritt rückgängig gemacht (siehe unten) und mit dieser Einstellung nochmal wiederholt wird.

Die Spalte «Titel_Name 1» wird nun erneut aufgeteilt, diesmal beim «, ». Der Prozess ist derselbe wie vorhin. Diesmal setzen wir aber ein Häkchen bei «Remove this column», und legen die maximale Anzahl der Spalten auf 2 fest. Daraus entstehen die Spalten «Titel_Name 1 1» und «Titel_Name 1 2».

Umbenennen von Spalten

Diese Namen sind etwas unhandlich, wir werden deshalb sinnvollere Spaltenüberschriften vergeben.

Dies wird im Spaltenmenü unter «Edit column» -> «Rename this column» gemacht. Aussagekräftigere Titel sind z.B. «Land» für «Titel_Name 1 1», «Ort_weltweit» für «Titel_Name 1 2» und «Kurztitel» für «Titel_Name 2». Aus einer Spalte, die Ortsnamen und andere Inhalte enthielt, haben wir jetzt übersichtliche Informationen extrahiert.

OpenRefine lässt Leerzeichen in Spaltenüberschriften zu. Da andere Anwendungen damit Probleme haben ist es dennoch sinnvoll, von Anfang an auf Leerzeichen oder Sonderzeichen wie Umlaute zu verzichten.

Undo/Redo

Verschiedentlich wurde schon auf die Möglichkeit verwiesen, Arbeitsschritte rückgängig zu machen.

Schnell und einfach geht das mit der Tastenkombination Ctrl + Z. OpenRefine bietet aber mehr.

Im Tab «Undo/Redo» in der linken Seitenspalte können einzelne oder mehrere Schritte rückgängig gemacht oder wiederholt werden. Der aktuelle Stand des Schwarzenbach-Metadaten-Projekts sieht so aus:

Alle Arbeitsschritte sind aufgelistet, jeweils mit den umgesetzten Befehlen. Auch über das Menü ausgeführte Befehle sind hier als Text dargestellt.

Ein Klick auf einen Arbeitsschritt setzt das ganze Projekt wieder auf diesen Stand zurück.

Ausserdem kann der Code aller oder einiger der bisherigen Arbeitsschritte kopiert werden. Danach können sie in einem anderen oder auch im selben Projekt angewendet werden. Dazu auf «Extract» klicken. Hier können die gewünschten Arbeitsschritte ausgewählt werden.

Auf der rechten Seite wird das JSON angezeigt. Sind die gewünschten Arbeitsschritte ausgewählt, kann der Code mit Ctrl + A markiert und mit Ctrl + C kopiert werden.

Zur Übung kopieren wir den Code aller Arbeitsschritte. Dann setzen wir das Projekt im Tab Undo/Redo auf den Schritt 0 zurück, indem wir auf «0. Create Project» klicken. Danach «Apply» wählen, den zuvor kopierten Code mit Ctrl + V in das Textfeld einfügen, und mit «Perform Operations» anwenden. Das Projekt ist jetzt wieder auf dem gleichen Stand wie zuvor.

Auf diese Weise Arbeitsschritte zu kopieren funktioniert auch über Projekte hinweg, wenn die Spaltenüberschriften dieselben sind.

Fragen, Anregungen oder Wünsche nehmen wir gerne per Mail entgegen.

Facetten und Filter

openrefine

In einer Blogserie befasst sich histHub mit der Aufbereitung und Anreicherung von Daten in OpenRefine. Alle Beiträge der Serie werden in einer Übersicht gesammelt.

Im letzten Beitrag haben wir ein Projekt mit den Metadaten zu den Fotografien von Annemarie Schwarzenbach erstellt, heute befassen wir uns mit Facetten und Filtern. Die Erklärungen beziehen sich auf die Metadaten der Fotografien von Annemarie Schwarzenbach, können aber natürlich auch mit einem anderen Datansatz nachvollzogen werden.

Filter und Facetten werden jeweils für eine Tabellenpalte über deren Menü aufgerufen und angewandt. Bei einem geöffneten Projekt gibt es in der linken Seitenspalte zwei Tabs, mit denen man zwischen den Ansichten «Facet/Filter» und «Undo/Redo» wechseln kann. Für den Moment interessiert uns nur der «Facet/Filter» Tab.

Facetten

Wenn wir in der Spalte Orientierung_Form das Menü mit einem Klick auf den Pfeil neben der Spaltenüberschrift öffnen, dann «Facet» und «Text facet» wählen, wird in der linken Seitenleiste folgendes Fenster dargestellt:

Hier sind alle in dieser Spalte vorkommenden Werte mit Anzahl des Vorkommens aufgelistet. Es kann alphabetisch oder nach Anzahl sortiert werden. Ein Klick auf einen  der Werte wählt alle Zeilen mit diesem Wert aus und zeigt sie an.

Facetten sind hilfreich, um beispielsweise Schreibfehler oder Inkonsistenzen schnell zu finden und gegebenenfalls zu korrigieren. Die Einträge «QuadratHorizontal» und «HorizontalQuadrat» im obigen Beispiel könnten das gleiche meinen, zumal einer davon nur ein einziges Mal auftaucht.

Zeigen wir nun die Zeilen zu diesen beiden Ausprägungen an. Bei Mousevoer wird der aktive Eintrag im Facettenfenster grau hinterlegt, und rechts erscheinen die Schaltflächen «edit» und «include». Mit einem Klick auf «include» bei den beiden Zeilen werden nur noch die entsprechenden Beiträge in der Tabelle angezeigt. In der blau hinterlegten Kopfzeile ist «28 matching rows (3486 total)» zu sehen. Diese Information ist besonders wichtig für weitere Transformationen. Werden jetzt Transformationen auf eine Spalte oder auf Zellen einer Spalte gemacht, geschieht dies nur in diesen gematchten Zeilen.

Zur Vereinheitlichung dieser 28 Zeilen bieten sich verschiedene Möglichkeiten an:

  • Im Facetten-Fenster in der linken Seitenleiste kann «edit» gewählt werden. Das ändert alle Vorkommen dieses Eintrags. Bei einer überschaubaren Anzahl Werte wie in diesem Beispiel ist das oft die schnellere Variante.
  • Der zweite Weg ist etwas komplexer. Hier ist wichtig, dass nur die Zeilen gematched sind, also angezeigt werden, die auch bearbeitet werden sollen.
    Über das Spalten-Menü zuerst auf «Edit cells», dann «Transform…». Hier öffner sich ein Bearbeitungsfenster. In Openrefine wird üblicherweise mit der General Refine Expression Language GREL gearbeitet, es sind aber auch andere Sprachen möglich. GREL wird in einem späteren Beitrag in dieser Blogserie vertieft behandelt werden.
    Zu Beginn ist im Eingabefenster immer «value» angegeben. Wollen wir nun alle aktiven (also gematchten) Zeilen mit einem einzigen Wert befüllen, können wir diesen in Anführungszeichen eingeben. «value» benötigen wir dazu nicht:

    Nach dem Klick auf «OK» wird oben vor gelbem Hintergrund angezeigt, wie viele Zellen bearbeitet wurden. Bei diesem Beispiel ist dies eine einzige Zeile.

Filter

Ein anderer Ansatz, nur bestimmte Zeilen anzuzeigen und gegebenenfalls zu bearbeiten sind Filter. Diese betreffen nicht den gesamten Inhalt der Zelle wie die Facetten.

Im Spaltenmenü kann unter «Text filter» ein Filter aufgerufen und angewandt werden. Es ist möglich, hier Reguläre Ausdrücke zu verwenden.

In der Spalte «Orientierung_Form» kann z.B. nach «Quadrat» gefiltert werden. Gematched werden dann nicht nur die Zeilen mit dem exakten Inhalt «Quadrat», sondern beispielsweise auch «QuadratHorizontal».

Ist ein Filter aktiv, werden wie bei Facetten weitere Transformationen nur über die sichtbaren Zeilen ausgeführt. Umgekehrt kann mit Filter eine über Facetten getroffene Auswahl weiter eingeschränkt werden. Die Anzahl der gematchten, also sichtbaren Zeilen ist jeweils oberhalb der Tabelle in der blau hinterlegten Zeile zu sehen.

Kennenlernen der Daten

Facetten helfen, sich einen Überblick über die Daten zu verschaffen. Tippfehler lassen sich hier schnell beheben, wenn die Anzahl der Werte überschaubar ist. Bei grösseren Datenmengen oder wenn viele unterschiedliche Werte in einer Spalte vorhanden sind, eignet sich dafür das Clustern besser. Das Clustern wird in diesem Beitrag gezeigt.

Mit Filtern kann gezielt nach einem bestimmten Begriff in einer Spalte gesucht werden.

Filter und Facetten helfen, die eigenen Daten kennenzulernen. Fehler in den Daten lassen sich so schnell aufspüren und korrigieren. Ausserdem ermöglichen es Filter und Facetten, nur eine bestimmte Auswahl an Zeilen zu transformieren. Dazu gibt es mehr im nächsten Beitrag.

Wünsche oder Anregungen für weitere Beiträge in dieser Blogserie nehmen wir gerne per Mail entgegen.

Erste Schritte mit OpenRefine: ein erstes Projekt

openrefineIn einer Blogserie befasst sich histHub mit der Aufbereitung und Anreicherung von Daten in OpenRefine. Alle Beiträge der Serie werden in einer Übersicht gesammelt.

OpenRefine starten

HistHub arbeitet an einer Webinstanz, in die künftig neben OpenRefine weitere Tools zur Bearbeitung historischer Daten integriert werden. Eine Alpha-Version ist bereits verfügbar. Wer schon jetzt die Online-Version testen will, kann unter net@histhub.ch einen Zugang beantragen.

Prinzipiell kann OpenRefine aber auch auf dem eigenen Computer installiert werden. Der Download und Anleitungen zur Installation für verschiedene Betriebssysteme sind auf der Website von OpenRefine verfügbar.

Beispieldatensatz – Fotosammlung Annemarie Schwarzenbach (Schweizerische Nationalbibliothek)

Für die ersten Übungen verwenden wir die Metadaten zu den Fotografien von Annemarie Schwarzenbach. Die Daten werden von der Nationalbibliothek zur Verfügung gestellt und sind auf dem Portal opendata.swiss abrufbar. Die Metadaten sind im csv-Format vorhanden.

Die Digitalisate der Fotos sind auf Wikimedia Commons verfügbar, Links auf die Digitalisate sind in der Tabelle vorhanden.

Hier geht es direkt zum Download.

Upload der Daten

In dieser ersten Übung verwenden wir den simplen Upload einer Datei vom eigenen Computer aus. Nach dem Start von OpenRefine in der Navigation links «Create Project» wählen, dann unter «Get data from» «This Computer» aussuchen. Mit einem Klick auf «Durchsuchen» kann zur zuvor gespeicherten csv-Datei navigiert werden.


Mit einem Klick auf «Next» werden die Daten geladen. Der Upload kann ein paar wenige Minuten dauern.

Konfiguration der Tabelle

Danach zeigt sich folgender Bildschirm:

Hier werden die Textdateien für den eigentlichen Import vorbereitet.

Wichtige Parameter, die häufig benötigt werden sind:

  • Zeichencodierung (Character encoding)
    In unserem Fall ist die Codierung UTF-8.
    Einen ersten Überblick über die unterschiedlichen Codierungsmäglichkeiten für westeuropäische Alphabete bietet dieser Wikipedia-Artikel.
  • Zeichen, die die Spaltengrenzen markieren (Columns are separated by)
    Die Spalten sind in unserem Beispiel mit «;» voneinander getrennt, dementspchend muss unter «custom» ein ; eingetragen werden. Neben Komma und Tab, die Standard sind, können im Customfeld alle beliebigen Zeichen eingetragen werden, an denen eine neue Spalte beginnen soll.
  • Im rechten unteren Bildschirmbereich kann man die Bearbeitung der Zeilen auswählen.
    Hierbei ist es möglich, den Import erst ab einer bestimmten Zeile zu beginnen. Hier kann unter anderem angegeben werden, ob die Spalte eine Kopfzeile hat oder nicht. («Parse next _ line(s) as column header»).

Sobald die Vorschau wie gewünscht aussieht, kann oben rechts noch ein aussagekräftiger Name gewählt werden, bevor mit einem Klick auf «Create Project» das OpenRefine Projekt angelegt wird.

Orientierung in OpenRefine

Bevor wir im nächsten Blogbeitrag mit den ersten Bearbeitungen loslegen, wollen wir uns zuerst etwas orientieren.

Oben erscheint direkt neben dem OpenRefine-Logo der Name des aktuell offenen Projekts. Mit einem Doppelklick kann der geändert werden. Das Logo führt zurück auf die Startseite von OpenRefine, wo ein neues Projekt gestartet oder ein bereits vorhandenes Projekt geöffnet werden kann. Oben rechts sind Buttons für das Öffnen eines neuen OpenRefine-Fensters, den Export des aktuell offenen Projekts und zur Hilfe.

In der linken Seitenspalte gibt es zwei Tabs. Der Facet/Filter Tab zeigt Facetten und Filter an, wenn solche ausgewählt wurden. Dort können auch Cluster angewählt werden. Der Tab Undo/Redo ermöglicht es, Schritte rückgängig zu machen oder zu wiederholen. Dort ist es ausserdem möglich, Schritte zu exportieren oder zu importieren. Die Undo/Redo Funktion sowie Filter und Facetten werden in anderen Blogbeiträgen ausführlich behandelt.

In der blauen Zeile oben wird die Anzahl Zeilen angezeigt. Darunter lässt sich einstellen, wie viele Zeilen sichtbar sein sollen. In der Zeile mit den Titeln der Spalten ist bei jeder Spalte ein Pfeilsymbol. Damit lässt sich ein Menü öffnen. Fast alle Funktionen von OpenRefine verbergen sich hier. Die Spalte ganz links («All») wird von OpenRefine für jedes Projekt automatisch erstellt. Dort lassen sich Zeilen mit Stern oder Fähnchen markieren, ausserdem vergibt OpenRefine selbständig eindeutige IDs.

Soviel zum Erstellen eines Projekts und zur Orientierung in OpenRefine. Fragen, Wünsche und Anregungen können jederzeit per Mail an uns gerichtet werden.

Über OpenRefine

openrefineWer oft mit automatisch generierten oder übernommenen historischen Daten arbeitet, kennt das Problem von sogenannten «Messy Data»: Daten, die in Form und Aufbereitung noch nicht den Bedürfnissen einer historischen Fragestellung entsprechend oder in dieser Form noch nicht mit anderen Tools weiterverwendet werden können. Es kann einiges an Aufwand erfordern, diese Daten aufzubereiten und für die weitere Verarbeitung, zum Beispiel in einer Visualisierung, aufzuwerten.

Ausserdem besteht immer öfter der Wunsch, den bestehenden Grundstock an Daten mit anderen existierenden Informationen im Netz anzureichern. Derzeit bietet beispielsweise Wikidata eine einfach zu nutzende Schnittstelle an und in der Zukunft wird auch histHub seine Daten maschinenlesbar zur Verfügung stellen.

Wir werden uns in den nächsten Monaten ganz tief in unseren Daten vergraben und uns sehr intensiv mit den Möglichkeiten zur Vernetzung von historischen Forschungsdaten beschäftigen. Um die Community an unseren Erkenntnissen teilhaben zu lassen und Lösungshilfen bei ähnlichen Problemen leisten zu können, lancieren wir eine Blogserie, die sich mit den vielfältigen Möglichkeiten zur Datenaufbereitung und -anreicherung mit Hilfe von OpenRefine beschäftigen wird. OpenRefine ist ein Tool zur Bearbeitung von Messy Data. Die Beiträge zielen darauf ab, Schritt für Schritt in die Arbeit mit OpenRefine einzuführen, grundlegende Funktionsweisen und Abfragen zu erklären und einen Dialog mit der Community in Gang zu setzen.

Fragen, Wünsche und Anregungen können jederzeit per Mail an uns gerichtet werden.