Reconciliation mit OpenRefine
Für die Erstellung der Beispiele wurde eine adaptierte Version von Metadaten von Kulturpool-Objekten verwendet. Die Inhalte wurden so verändert, dass sie typische Anwendungsfälle und Bearbeitungsschritte in OpenRefine besser veranschaulichen. Sie entsprechen daher nicht den Originaldaten.
Reconciliation ermöglicht es, Dateneinträge mit externen Wissensquellen abzugleichen und anzureichern. Es wird die Reconciliation anhand von existierenden IDs (z.B.: Wikidata QID, GND, AAT, ...) gezeigt, als auch die Reconciliation über Textwerte.
Reconciliation Service hinzufügen
Zugriff auf die Reconciliation-Funktionen erhalten wir über Column Dropdown → Reconcile. Das Reconciliation-Menü finden wir dabei unter Column Dropdown → Reconcile > Start reconciling.... Dabei öffnet sich nun ein Fenster in welchem wir die Services verwalten können. Standardmäßig ist bereits die englische Version der Wikidata-API konfiguriert. Um einen anderen Service hinzuzufügen wählen wir Add standard service.... Dort fügen wir die URL des Service ein um ihn hinzuzufügen. Über Discover services... gelangen wir zur Reconciliation service test bench, wo wir nicht nur eine Auswahl an verfügbaren Services finden, sondern auch eine Möglichkeit um APIs zu testen.
Auswahl an Services
- Wikidata Deutsch:
https://wikidata.reconci.link/de/api - GND:
https://lobid.org/gnd/reconcileoderhttps://reconcile.gnd.network - Getty Vocabularies Reconciliation Service:
https://services.getty.edu/vocab/reconcile/ - Bionomia:
https://api.bionomia.net/reconcile - GeoNames from FornPunkt:
https://fornpunkt.se/apis/reconciliation/geonames
Conciliator und RDF Extension
Für manche Reconciliation‑Workflows in OpenRefine reicht ein einzelner externer Dienst nicht aus oder es fehlt eine direkte Schnittstelle. In solchen Fällen kann Conciliator eine hilfreiche Ergänzung sein. Dabei handelt es sich um einen lokal laufenden Reconciliation‑Server, der verschiedene Quellen unterstützt und als flexible Middleware zwischen OpenRefine und externen Datenquellen dient.
Conciliator bietet out‑of‑the‑box Unterstützung für Dienste wie VIAF, ORCID, Open Library sowie für beliebige Apache‑Solr‑Collections. Darüber hinaus stellt das Projekt ein Java‑Framework zur Verfügung, mit dem sich eigene Reconciliation‑Services entwickeln lassen, wenn institutionelle Daten oder Spezialvokabulare angebunden werden sollen.
Der Dienst wird in einem Docker‑Container lokal ausgeführt. Dazu wird das GitHub‑Repository heruntergeladen und der Container entsprechend der Anleitung aufgebaut. Nach dem Start kann ein neuer Reconciliation‑Service in OpenRefine konfiguriert werden, beispielsweise:
- VIAF:
http://localhost:8080/reconcile/viaf - ORCID - Smart Names:
http://localhost:8080/reconcile/orcid/smartnames
Weitere Informationen zur Installation, zur Nutzung zusätzlicher Services sowie zur Entwicklung eigener Reconciliation‑Endpunkte finden sich im offiziellen Repository
Mit der RDF Extension können wir aber auch SPARQL-Endpoints für die Reconciliation verwenden. Eine Anleitung wie die Reconciliation API für DBpedia konfiguriert werden kann findet man hier.
Reconciliation über Zellenwerte
Das standardmäßige Vorgehen beim Abgleich von Daten mit externen Quellen besteht darin, die vorhandenen Zellenwerte über eine Textsuche mit passenden Einträgen der jeweiligen Datenbank zu matchen. Reconciliation‑Services analysieren dabei den Inhalt einer Zelle, senden diesen als Suchanfrage an eine externe Wissensquelle und bewerten anschließend, welche der zurückgelieferten Treffer am wahrscheinlichsten zu dem Eintrag passen.
Reconciliation mit Wikidata
Ein häufig genutzter Service hierfür ist Wikidata, eine offene, kollaborativ gepflegte Wissensdatenbank, die strukturierte Informationen zu Personen, Orten, Werken, Konzepten und vielen weiteren Entitäten enthält. Durch seine Vielzahl verknüpfter IDs eignet sich Wikidata besonders gut, um Daten aus unterschiedlichen Systemen zusammenzuführen.
Um eine Spalte mit Wikidata abzugleichen können wir folgende Schritte durchführen:
- Column Dropdown →
Start reconciling.... - Wikidata reconci.link (de) wählen. Falls dieser noch nicht vorhanden ist, über
Add standard service..mit dem URLhttps://wikidata.reconci.link/de/apihinzufügen. - Den passenden Wikidata Typ auswählen.
Auto-match candidates with high confidenceauswählen.- Mit
Start reconciling...bestätigen.
Wikidata Typen
Es wird empfohlen für die Reconciliation mit Wikidata zuerst einen detaillierteren Typen zu wählen und ihn über mehrere Durchgänge an Abgleichen zu erweitern. Es besteht auch die Möglichkeit nach einem bestimmten Typ zu suchen oder gegen keinen bestimmten Typ abzugleichen.
OpenRefine kennzeichnet gematchte Entitäten durch eine dunkelblaue Schriftfarbe und der Option Choose new match unterhalb. Wurde für einen Wert noch kein Match ausgewählt erscheint der Wert in schwarz mit einer Liste an möglichen Begriffen. Stimmt einer der Vorschläge überein kann dieser durch klicken auf das Feld mit einem Haken nur auf die jeweilige Zelle angewendet werden. Durch Auswahl der zwei Haken wird das Matching für die gesamte Spalte übernommen.
Generell ist bei der Reconciliation auf potenzielle Namensgleichheit und damit einhergehende False Positives zu achten. False Negatives durch unterschiedliche Schreibweisen und Fehler sind ebenfalls möglich.
Der Wikidata Reconciliation Service ermöglicht es durch überfahren des Begriffs mit der Maus weitere Infos in einem Pop-up Fenster aufscheinen zu lassen.
Stimmt keiner der Vorschläge überein, oder wurden keine potenziellen Kandidaten gefunden, kann über Search for match auch nach Kandidaten gesucht werden.
Da Wikidata eine offene und kollaborative Wissensdatenbank ist, besteht hier generell auch die Möglichkeit neue Begriffe hinzuzufügen, falls kein Match für einen relevanten Begriff gefunden wird. Hierfür muss aber zuerst festgestellt werden, dass der Begriff tatsächlich noch nicht existiert um Duplikate zu vermeiden.
Relevante Informationen nutzen
Zusätzlich zur Suche mit Textabgleich können wir auch andere relevante Informationen aus unseren Daten für den Abgleich verwenden. Im Reconciliation Menü besteht dafür die Option Columns als As property zu übergeben. Wollen wir, zum Beispiel, Künstler mit Wikidata abgleichen und haben zusätzlich zu den Namen auch eine Spalte mit Geburtsdaten, können wir diese Spalte als Property P569 (Geburtsdatum) an Wikidata übergeben.
Mögliche Properties können über das jeweilige As property-Feld oder in den jeweiligen Reconciliation Service Dokumentation gefunden werden. In Wikidata ist es hilfreich ähnliche Entitäten auf Wikidata zu suchen und die vorhandenen Properties zu erkunden.
Property Paths
In Wikidata ist es auch möglich sogenannte Property Paths zu übergeben. Sind für die Künstler nur die Geburtsjahre verfügbar können wir diese als SPARQL: P569@year übergeben. Dadurch werden die Werte direkt auf die relevante Wikidata Information gematched.
Property Paths können die Dauer einer Reconciliation-Anfrage erheblich verlängern. Daher sollten Property Paths sparsam und nur dann eingesetzt werden, wenn sie für das gewünschte Matching wirklich notwendig sind.
Reconciliation über vorhandene IDs
IDs aus vorhandenen URLs extrahieren
In manchen Daten befinden sich bereits URLs, die auf externe Identifikatoren verweisen (z. B. GND, AAT, VIAF).
Wir wollen daraus zunächst konsistente ID‑Werte extrahieren. Dazu können wir die Transform-Funktion über
Column Dropdown → Edit cells > Transform... nutzen.
Haben wir z.B. URLs in der Form http://vocab.getty.edu/aat/300264737 können wir mit folgendem GREL Ausdruck, die IDs inklusive jeweiliger Prefixes erhalten.
value.replace(/^.*?(gnd|aat|ulan|tgn|ulan|viaf|wikidata)\/([^\/?#]+).*$/,"$1/$2")
AAT‑IDs können wir nun direkt mit dem Getty Vocabularies Reconciliation Service abgleichen:
- Über einen Textfilter „aat“ selektieren
- Column Dropdown → Reconcile > Use values as identifiers...
- Reconciliation‑Service: Getty Vocabularies Reconciliation Service
- Bestätigen mit
OK
Für GND-IDs müssen wir zuerst das Prefix „gnd/“ entfernen.
Dies kann über Filter + Transformation erfolgen. Danach können wir analog zu den AAT-IDs mit dem GND Reconciliation Service den abgleich durchführen.
Externe IDs mit Wikidata abgleichen
Wikidata bietet die Möglichkeit, eine Vielzahl unterschiedlicher Identifikatoren über einen einzigen Reconciliation‑Service abzugleichen. Dadurch lassen sich Daten aus verschiedenen Quellen miteinander verknüpfen und zu einem zusammenhängenden Netzwerk von Werten verbinden. Dieser Ansatz ermöglicht es, bestehende IDs wie GND, VIAF oder AAT gemeinsam zu nutzen, um präzisere Matches zu erzielen und Datensätze effizient miteinander in Beziehung zu setzen. Dies funktioniert über sogenannte Wikidata-Properties. Damit können wir Werte gezielt gegen Properties von Wikidata Entitäten abgleichen und somit bessere Ergebnisse erzielen.
Mithilfe von Wikidata-Properties können wir verschiedene IDs gegen einen einzigen Service abgleichen und somit eine bessere Verbindung der Werte herstellen.
Da AAT und GND in Wikidata unterschiedliche Properties nutzen, trennen wir die IDs in eigene Spalten.
Zuerst erstellen wir eine neue Spalte für die AAT-IDs.
Dies machen wir über Column Dropdown → Edit column > Add column based on this column... und folgendem GREL-Ausdruck:
if(value.startsWith("aat/"), value, null)
Anschließend geben wir der Spalte einen passenden neuen Namen. Da für unsere GND-IDs im vorherigen Schritt das Prefix bereits entfernt wurde können wir nun folgenden Ausdruck verwenden um eine neue Spalte für die GND-IDs zu erstellen:
if(value.contains("/"), "", value)
Um die AAT Propertie in Wikidata verwenden zu können, müssen zuerst der aat/ Prefix vor den IDs entfernt werden. Dazu verwenden wir eine Transformation und den GREL-Ausdruck:
value.replace("aat/","")
Nachdem die Daten nun entsprechend vorbereitet wurden, kann die Reconciliation mit Wikidata durchgeführt werden:
-
Column Dropdown →
Start reconciling... -
Wikidata reconci.link (de) wählen.
-
Den passenden Wikidata Typ auswählen
-
Auto-match candidates with high confidenceauswählen -
Zusätzliche Properties übergeben. Dazu wählen können wir in der Spalte
Also user relevant details from other columns:folgende Properties auswählen:Column As property GND-ID P227 AAT-ID P1014 -
Mit
Start reconciling...bestätigen.
Nun können wir wie zuvor die Matches und Vorschläge kontrollieren und ergänzen oder ändern.
Reconciliation Values nutzen
Wir führen Abgleiche mit externen Wissensdatenbanken durch um unsere Daten mit zusätzlichen Informationen anzureicheren. OpenRefine bietet dafür verschiedene Möglichkeiten um die Ergebnisse der Reconciliation zu nutzen. Sobald eine Zelle erfolgreich reconciliert wurde, stehen neben dem eigentlichen Wert zusätzliche Informationen zur Verfügung — etwa die eindeutige Identifikationsnummer (Q‑ID bei Wikidata), der bevorzugte Label‑Name, der Matching‑Score oder alternative Kandidaten. Diese angereicherten Informationen können wir auf unterschiedliche Weise verwenden:
- Entitäten‑IDs hinzufügen: Mit Column Dropdown →
Reconcile > Add entity identifiers column…lässt sich eine neue Spalte mit den IDs der gematchten Entität erzeugen, die sich ideal für Weiterverarbeitung oder Verknüpfungen eignet. - Weitere Eigenschaften abrufen: Über Column Dropdown →
Edit column > Add columns from reconciled values…können zusätzliche Metadaten (z. B. Geburtsjahr, Standort, Typen, Bezeichnungen) aus der externen Datenquelle in neuen Spalten importiert werden. Dabei kann überAdd propertynach verfügbaren Werten gesucht werden.
Wurden Werte mit Wikidata reconciliert, können beim Import zusätzlicher Informationen sowohl Property‑IDs (z. B.P569für Geburtsdatum) als auch Property‑Paths verwendet werden, um gezielt bestimmte Bestandteile eines Werts abzurufen (z. B. nur das Jahr mitSPARQL: P569@year). Über die jeweiligen Properties können somit auch die IDs von anderen Reconciliation Services bezogen werden.
Verlinkte Werte, die über Eigenschaften wie z.B. has part(s) (P527) referenziert sind, werden bei erfolgreicher Reconciliation automatisch mit dem jeweiligen Service verbunden. Solche verknüpften Entitäten können nun wie andere angereicherte Werte behandelt werden, inklusive des Imports ihrer eigenen Eigenschaften (Labels, IDs, zusätzliche Metadaten). - URLs hinzufügen: Über Column Dropdown →
Reconcile > Add column with URLs of matched entities...kann auch direkt eine Spalte mit den URLs zu den jeweiligen Werten hinzugefügt werden. - Badges und Status nutzen: Reconciliation‑Ergebnisse liefern Informationen darüber, ob ein Wert auto‑gematcht, manuell bestätigt oder noch unentschieden ist. Über Column Dropdown →
Reconcile > Facets > By judgmentlassen sich diese Statuswerte filtern, um fehlende oder zweifelhafte Matches zu korrigieren.
Wichtiger Hinweis zur Performance & Verfügbarkeit von Eigenschaften
Die Leistung (Antwortzeiten, Stabilität) sowie die Verfügbarkeit von Properties/Values hängen ausschließlich vom jeweiligen Reconciliation‑Service ab und nicht von OpenRefine.
Je nach Dienst (z. B. Wikidata, GND, VIAF, Getty) können Umfang der bereitgestellten Eigenschaften, unterstützte Property‑Paths, Drosselungen (Rate Limits) und Wartungsfenster variieren.
Bei langsamen Antworten, fehlenden Properties oder temporären Ausfällen liegt die Ursache in der Regel beim externen Service, nicht in OpenRefine.
Weiters unterscheiden sich die Score‑Werte je nach verwendetem Reconciliation‑Service.
Während bei Wikidata ein Score von 100 einem perfekten Match entspricht, gelten bei Getty bereits Werte ab 40 als sehr gute Übereinstimmung.
Welche Score‑Bereiche genau als „gut“ oder „akzeptabel“ gelten, ist dienstspezifisch und sollte in der jeweiligen Service‑Dokumentation nachgelesen werden.
werden.