Vernetzte und normierte Daten für die historischen Wissenschaften

histHub entwickelt eine Plattform für vernetzte und normierte Daten für die historischen Wissenschaften in der Schweiz. Über die Plattform lassen sich zahlreiche herausragende Datenbestände zur Schweizer Geschichte durchsuchen. histHub bindet die historischen Daten in die Workflows (Recherche, Datenbearbeitung und -produktion, Auswertung) der interessierten Zielgruppen ein und wird dadurch zu einer Anlaufstelle für die Forschungscommunity der digitalen Geisteswissenschaften.

Vernetzen

Verschiedene Datenbestände zur Schweizergeschichte durchsuchen? Vergleichen, was in welcher Datenbank über eine historische Person steht?
histHub vernetzt historische Datenbestände für die Forschung und die interessierte Öffentlichkeit.
histHub entwickelt und vertreibt auf die Bedürfnisse der Community zugeschnittene Vernetzungstools, die flexibel genutzt und weiterentwickelt werden können. Auf diese Weise wird die nationale und internationale Vernetzung von historischen Daten gefördert und vereinfacht.

Normieren

Burg, Schloss, veste, castrum oder hus? Henker, meyster, tiller oder doch Scharfrichter? Historische Begriffe verändern sich nicht nur über den Lauf der Zeit, sondern variieren auch geografisch.
Die Normdaten von histHub schaffen Klarheit und verweisen auf die historischen Quellen.
histHub modelliert und verwaltet einen Normdatensatz zur Schweizer Geschichte. Durch den Einsatz semantischer Datenmodellierung ist der histHub-Normdatensatz sowohl einfach adaptierbar als auch in der Lage, feinste historische Unterschiede abzubilden. Mit den histHub-Normdaten sind eindeutige Aussagen über Personen, Orte, Organisationen und Konzepte über Epochen- und Sprachgrenzen hinweg möglich.

Mitmachen

histHub befindet sich im Aufbau und hat eine offene Projektanlage. Bis Ende 2019 soll histHub zu einer Produktions- und Forschungsumgebung der historischen Wissenschaften in der Schweiz werden. histHub entwickelt Nutzerschnittstellen, die es künftigen Partnern ermöglicht, ihre Daten in histHub einzuspeisen, anzulegen, anzureichern und zu vernetzen.
-> Kontaktaufnahme

Deduplizieren mit OpenRefine

In 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. 

Temporale Ausdrücke in historischen Texten

In Texten beschreiben temporale Ausdrücken verschiedene Phänomene, z. B. einen Zeitpunkt oder eine Zeitspanne. Ein Datum kann explizit mit 25. Dezember 2015 oder implizit als Weihnachten 2015 genannt werden. Ebenso kommen relative Begriffe wie «im nächsten Jahr» oder «heute» oder gar freie Formulierungen wie «nach der Verlobung von Prinz Harry» vor.

Für das Tagging solcher Ausdrücke wurde 2009 der TEI-kompatible Standard TimeML eingeführt. Er teilt temporale Ausdrücke in folgende vier Kategorien:

  • DATE für Datierungen nach dem heutigen Kalender (z. B. 25.12.2015)
  • TIME für Ausdrücke, die sich auf eine Tageszeit beziehen (z. B. Mitternacht)
  • DURATION für Ausdrücke, die einen Zeitraum beschreiben (z. B. eine Woche)
  • SET für sich wiederholende Zeiträume (z. B. jedes Jahr)

Die Computerlinguistin Natalia Korchagina sammelte für ihre Dissertation bei Prof. Martin Volk zum Thema «Automatische Erkennung temporaler Ausdrücke in historischen Texten» aus verschiedenen Ressourcen temporale Ausdrücke. Mit Hilfe von HeidelTime, einem regelbasierten System zur Extraktion von temporalen Ausdrücken, und zwei Annotatorinnen extrahierte sie solche Ausdrücke aus edierten Quellen der SSRQ von 1450 bis 1550. Zusätzlich wurden temporale Ausdrücke aus der SSRQ Datenbank historischer Begriffe (Schlagworte und normalisierte Lemmata inkl. Schreibvarianten), Zeitangaben aus den Nachbarschaftsfällen der Zürcher Rats- und Richtbüchern des 15. Jahrhunderts (StAZH), die Festtage aus Hermann Grotefends «Zeitrechnung des Deutschen Mittelalters und der Neuzeit» sowie der sechs digital entstehenden Editionen der SSRQ SG und ZH integriert.

Diese Liste mit ca. 3000 Einträgen – geordnet nach den obigen vier Kategorien – wird histHub für einen Thesaurus temporaler Ausdrücke und das Tagging von Texten und Quellen nachnutzen und allen Interessierten zur Verfügung stellen.

Anhand der temporalen Ausdrücke im Laufe der Zeit könnte zum Beispiel erforscht werden, ob diese Ausdrücke wandelnde Zeitwahrnehmungen widerspiegeln oder welchen Einfluss die Einführung der mechanischen Uhren im Spätmittelalter bzw. des gregorianischen Kalenders auf das Zeitgefühl der Menschen hatte.

Abbildung: Der Ketzerturm mit Zifferblatt. Ausschnitt aus dem Plan der Stadt Zürich von Jos Murer, 1576.

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. 

Bericht: Workshop on the creation of an international Data for History consortium


Vom 23. bis 24. November 2017 fand an der École normale supérieure in Lyon ein Workshop zur Gründung des internationalen Konsortiums Data for History statt, der vom Pôle histoire numérique des Laboratoire de recherche historique Rhône-Alpes organisiert wurde. Am Workshop nahmen rund 40 Expertinnen und Experten aus den Niederlanden, Frankreich, Griechenland, Italien, Deutschland, Luxemburg, Österreich und der Schweiz teil.

Nach der herzlichen Begrüssung durch den Gastgeber Bernard Hours (Université Jean-Moulin Lyon 3, Direktor des Laboratoire de recherche historique Rhône-Alpes) führte Georg Bruseker (FORTH, Center for Cultural Heritage – Institute of Computer Science, Heraklion) in das Thema des Workshops ein: Die Special Interest Group (SIG), die das CIDOC-CRM trägt, unterstützt offiziell Data for History, die flexible Erweiterung (extension) des CIDOC-CRM für historische Daten. Solche Erweiterungen für spezifische Wissensdomänen gibt es bereits in anderen Bereichen; z. B. FRBRoo ist eine Erweiterung der Bibliotheken, welche die standardisierte Norm für bibliographische Daten in CIDOC-CRM integriert.

Francesco Beretta (CNRS/Université Lyon, Laboratoire de recherche historique Rhône-Alpes), der Initiator der Erweiterung, stellte das Projekt zur Modellierung, Kuration und Interoperabilität von historischen Daten vor. Das internationale Konsortium ist offen für alle interessierten Projekte und Institutionen, um eine Ontologie für historische Daten zu entwickeln, die zugleich den Bedürfnissen der einzelnen Forschungsprojekte gerecht wird sowie die Interoperabilität der Daten mit denjenigen von allen anderen Projekten ermöglicht. Ziel des Konsortiums ist es, geschlossene Systeme (Datensilos) zu öffnen sowie Forschungsdaten und Datenmodelle zu teilen.

Mit Hilfe eines Ontologie-Management-Tools, eines Forums sowie von Workshops zu verschiedenen Themen soll kollaborativ eine Extension für CIDOC-CRM erarbeitet werden. Neue Unterklassen zur Ergänzung der Klassen (histC), domänenspezifische Thesauri (histT) und Properties von CRM (histP), die Projekte für die Arbeit mit historischen Daten benötigen, können in Data for History als Vorschlag (proposal) publiziert werden. Dadurch erhält die Community die Möglichkeit, sie zu prüfen und zu validieren. Das Tool erscheint auch für Forschende attraktiv, die keine Ontologiespezialisten sind, aber ihre Daten gut kennen, denn sie können sich an hier publizierten Modellen, z. B. zu Personen, orientieren. Der Prototyp des Ontologie-Management-Tools wurde in Lyon von symogih.org für das Konsortium entwickelt und hilft den Forschenden miteinander zu kommunizieren.

Nach der Einführung folgten zehn Kurzpräsentationen von den an Data for History interessierten Projekten. Bernhard Ruef (Informatiker der Rechtsquellenstiftung des Schweizerischen Juristenvereins und Teilprojektleiter histHub-Norm) stellte «histHub – a hub for historical data in Switzerland» vor. Die folgenden Diskussionen im Anschluss an die Referate und während des gemeinsamen Abendessens in einem typischen Lyoner Bouchon zeigten, dass das Konsortium Data for History ein reales Bedürfnis ist.

Am zweiten Tag wurden die verschiedenen Aufgaben des Konsortiums besprochen und Koordinatoren gefunden, die einen Bereich des Konsortiums bis zum nächsten Treffen voranbringen werden. Dieses entwickelt eine Online-Plattform, die flexible und projektspezifische Anpassungen des CIDOC-CRM für historische Daten ermöglicht.

Es erscheint sinnvoll, dass histHub sich an der entstehenden Erweiterung des CIDOC-CRM für historische Daten aktiv beteiligt und die histHub-Ontologie in diesem Rahmen produziert. Dies wird histHub von Anfang an eine internationale Dimension verleihen und die Dateninteroperabilität und -integration erleichtern.

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.

histHub-Ontologie

In histHub entstehen Normdaten zu den Hauptentitäten Personen, Orte, Organisationen und Konzepte sowie Thesauri zu verschiedenen Unterentitäten wie z. B. Vornamen (histHub-fornames), Orts- und Organisationstypen, Berufen etc. Thesauri sind standardisierte Vokabulare, die sowohl hierarchisch als auch in beliebigen Relationen strukturiert sind und das in einem Themengebiet gebrauchte Vokabular beschreiben und normieren.

histHub modelliert die Normdaten mit Hilfe einer Ontologie. Die histHub-Ontologie strukturiert Daten anhand eines eindeutig definierten und dokumentierten Datenmodells und bildet den historischen Diskurs über die Wirklichkeit in Daten ab. Die Ontologie ist flexibel und erweiterbar. Anhand der Ontologie werden Merkmale und Beziehungen von Entitäten – sei es abstrakt (Äquivalenz, Hierarchie etc.) oder konkret (in Raum und Zeit) – samt Metadaten zu ihrer Definition und Entstehung in Form von strukturierten Daten gesammelt. Die Informationen sind dadurch explizit (ohne verborgene Annahmen) und maschinenlesbar.

Das konzeptuelle Datenmodell von histHub lehnt sich an das Modell von CIDOC-CRM (Comité International pour la Documentation-Conceptual Reference Model, ISO 21127) an, das unterschiedliche Museen, historische Projekte und andere Institutionen weltweit seit mehr als zwanzig Jahren für die Interoperabilität ihrer Daten nutzen. Im Bereich historischer Forschung befindet sich derzeit das Konsortium «Data for History» im Aufbau. Dieses entwickelt eine Online-Plattform, die flexible und projektspezifische Anpassungen des CIDOC-CRM ermöglicht. histHub nimmt in diesem Rahmen am internationalen Workshop vom 23.–24. November 2017 teil, der vom Laboratoire de recherche historique Rhône-Alpes in Lyon organisiert wird.

Für Auskünfte und Anfragen stehen wir gerne zur Verfügung (Mail).

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 einem späteren Beitrag behandelt.

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. 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.