<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ElasticSearch | FDMLab@LABW</title><link>https://fdmlab.landesarchiv-bw.de/tag/elasticsearch/</link><atom:link href="https://fdmlab.landesarchiv-bw.de/tag/elasticsearch/index.xml" rel="self" type="application/rss+xml"/><description>ElasticSearch</description><generator>Wowchemy (https://wowchemy.com)</generator><language>de-de</language><lastBuildDate>Wed, 01 Mar 2023 00:00:00 +0000</lastBuildDate><image><url>https://fdmlab.landesarchiv-bw.de/media/sharing.jpg</url><title>ElasticSearch</title><link>https://fdmlab.landesarchiv-bw.de/tag/elasticsearch/</link></image><item><title>Workshop - Erweiterter Abgleich mit Wikidata</title><link>https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/</link><pubDate>Wed, 01 Mar 2023 00:00:00 +0000</pubDate><guid>https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/</guid><description>&lt;p>In diesem Tutorial vertiefen wir den Abgleich von Daten mit Wikibase Instanzen wie Wikidata.&lt;/p>
&lt;h2 id="einführung">Einführung&lt;/h2>
&lt;blockquote>
&lt;p>Reconciling in der &lt;a href="https://docs.openrefine.org/manual/reconciling" target="_blank" rel="noopener">OpenRefine Dokumentation&lt;/a>.&lt;br>
Informationssammlung zu &lt;a href="https://wikidata.reconci.link/" target="_blank" rel="noopener">OpenRefine Wikidata Reconciliation&lt;/a>.&lt;br>
&lt;a href="https://openrefine-wikibase.readthedocs.io/en/latest/index.html" target="_blank" rel="noopener">OpenRefine Wikibase Dokumentation&lt;/a>.&lt;br>
&lt;a href="https://gitlab.com/nfdi4culture/ta1-data-enrichment/openrefine-wikibase" target="_blank" rel="noopener">OpenRefine Wikibase Projekt&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;div class="alert alert-note">
Dieser Workshop wurde erstellt mit OpenRefine Version 3.5.0.&lt;br>
Dieser Workshop wurde zuletzt getestet mit OpenRefine Version &lt;strong>3.9.3&lt;/strong>.
&lt;/div>
&lt;p>Auch wenn das Protokoll zum Durchführen eines Abgleichs über eine &lt;a href="https://reconciliation-api.github.io/specs/latest/" target="_blank" rel="noopener">Reconciliation Service API&lt;/a> standardisiert ist, so ist die konkrete Umsetzung der Suchfunktionalität von Dienst zu Dienst unterschiedlich.&lt;/p>
&lt;p>Um dies zu zeigen, verwenden wir ähnliche Daten wie in &lt;a href="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/#aufgabe-2-nutzung-in-openrefine">Aufgabe 2 von Erweiterter GND Abgleich mit lobid&lt;/a>.
Diesmal gleichen wir die Daten jedoch mit &lt;a href="https://www.wikidata.org/" target="_blank" rel="noopener">Wikidata&lt;/a> ab.
Diese Plattform basiert auf der Software &lt;a href="https://wikiba.se/" target="_blank" rel="noopener">Wikibase&lt;/a> und kann mit &lt;a href="https://gitlab.com/nfdi4culture/ta1-data-enrichment/openrefine-wikibase" target="_blank" rel="noopener">OpenRefine-Wikibase&lt;/a> um eine &lt;a href="https://reconciliation-api.github.io/" target="_blank" rel="noopener">Reconciliation Service API&lt;/a> erweitert werden.&lt;/p>
&lt;p>Wie schon in &lt;a href="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-einsteiger/07-reconciling-mit-wikidata/">Reconciling mit OpenRefine und Wikidata&lt;/a> beschrieben, ist in OpenRefine standardmäßig schon der englischsprachige Service für Wikidata aktiviert.
Es ist aber auch möglich den Service in einer spezifischen Sprache zu verwenden.&lt;/p>
&lt;p>Wir verwenden in diesem Tutorial die deutschsprachige Schnittstelle über:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-plain" data-lang="plain">&lt;span class="line">&lt;span class="cl">https://wikidata.reconci.link/de/api
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="aufgabe-1-abgleich-mit-wikidata">Aufgabe 1: Abgleich mit Wikidata&lt;/h2>
&lt;p>Wir benötigen die folgenden Dateien als OpenRefine Projekt:&lt;/p>
&lt;blockquote>
&lt;p>💾 Wir benötigen die folgende Datei (Rechtsklick und &amp;ldquo;Ziel speichern unter&amp;hellip;&amp;rdquo;):&lt;/p>
&lt;/blockquote>
&lt;a href="https://fdmlab.landesarchiv-bw.de/data/openrefine-workshop/16_kretschmann-kabinett-iii-mit-fehlern.csv" target="_blank">
&lt;i class="fas fa-file-csv pr-1 fa-fw">&lt;/i>Kretschmann Kabinett III mit Fehlern&lt;/a>
&lt;p>In dieser Datei ist das Kabinett Kretschmann III.
Wie in Abbildung 1 zu erkennen, sind die Namen mit OCR üblichen Fehlern versehen.
Wir ignorieren die Spalte &amp;ldquo;QID&amp;rdquo;, mit der wir die Namen sofort wieder korrekt aus Wikidata nachladen könnten.
Diese Spalte benötigen wir später zur schnellen Überprüfung der Ergebnisse. Unser Szenario lautet wieder: Wir haben eine Liste mit Namen, deren genaue Schreibweise wir nicht kennen, können diese Namen für den Abgleich jedoch mit einem ungefähren Geburtsdatum und einem Geburtsort ergänzen.&lt;/p>
&lt;figure id="figure-bildschirmfoto-des-projektes-direkt-nach-dem-import">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto des Projektes direkt nach dem Import." srcset="
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-datenset_hud64c547331e2ac5280ba5bb7ce2ff844_29044_95fc74b3c48d0e0e6681bc7e950ac62e.webp 400w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-datenset_hud64c547331e2ac5280ba5bb7ce2ff844_29044_c0827939165853712852855ff32cf722.webp 760w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-datenset_hud64c547331e2ac5280ba5bb7ce2ff844_29044_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-datenset_hud64c547331e2ac5280ba5bb7ce2ff844_29044_95fc74b3c48d0e0e6681bc7e950ac62e.webp"
width="507"
height="308"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto des Projektes direkt nach dem Import.
&lt;/figcaption>&lt;/figure>
&lt;h3 id="transformation-1-name-fuzzy">Transformation 1: Name fuzzy&lt;/h3>
&lt;p>Die Daten in der Spalte &amp;ldquo;Name&amp;rdquo; beinhaltet nicht ganz so viele OCR-Fehler, wie in der Aufgabe zum Abgleich mit der lobid.
Das liegt daran, dass beim OpenRefine-Wikidata Reconciliation Service zwar angegeben werden kann, dass der Name &lt;em>fuzzy&lt;/em> gematcht werden soll.
Anders als bei der lobid gnd API lässt sich jedoch nicht angeben, wie viele Fehler erlaubt sein dürfen. &lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>&lt;/p>
&lt;p>Auch hier fügen wir jedem Wort, welches Fehler beinhalten könnte, den Fuzzy-Operator &lt;code>~&lt;/code> hinzu.
Dafür transformieren wir die Spalte via
&amp;ldquo;Name&amp;quot;
&lt;i class="far fa-caret-square-down pr-1 fa-fw">&lt;/i>&amp;quot;Edit cells&amp;quot;
&lt;i class="fas fa-caret-right pr-1 fa-fw">&lt;/i>&amp;quot;Transform&amp;hellip;&amp;rdquo;
und fügen mit dem folgenden GREL Ausdruck zu jedem Wort &lt;code>~&lt;/code> hinzu.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="nx">forEach&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">value&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">split&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; &amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="nx">v&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">v&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s2">&amp;#34;~&amp;#34;&lt;/span>&lt;span class="p">).&lt;/span>&lt;span class="nx">join&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;div class="alert alert-warning">
&lt;div>
Die Kombination aus Bindestrich &lt;code>-&lt;/code> und Fuzzy-Operator &lt;code>~&lt;/code> scheint zu Problemen zu führen, weshalb wir den Fuzzy-Operator bei dem Nachnamen von Nicole Hoffmeister-Kraut wieder entfernen.
&lt;/div>
&lt;/div>
&lt;h3 id="transformation-2-geburtsdatum-reduzieren">Transformation 2: Geburtsdatum reduzieren&lt;/h3>
&lt;p>Auch bei Wikidata haben wir das Problem, dass uns teilweise nur das Geburtsjahr bekannt ist bzw. umgekehrt in Wikidata nur das Geburtsjahr eingetragen wurde. Bei Wikidata haben wir jedoch kein Wildcard-Zeichen zur Verfügung und müssen uns daher anders behelfen.&lt;/p>
&lt;p>Mit so genannten &lt;em>subfields&lt;/em> können wir beim Reconciliation Vorgang wie in Abbildung 3 direkt angeben, dass es sich bei den Daten in unserer Spalte um eine Jahresangabe aus einem Datum handelt. Um das einheitlich zu handhaben entfernen wir in der Spalte &amp;ldquo;Geburtsdatum&amp;rdquo; den Geburtsmonat und den Geburtstag, sofern vorhanden.
Das funktioniert via
&amp;ldquo;Geburtsdatum&amp;quot;
&lt;i class="far fa-caret-square-down pr-1 fa-fw">&lt;/i>&amp;quot;Edit cells&amp;quot;
&lt;i class="fas fa-caret-right pr-1 fa-fw">&lt;/i>&amp;quot;Transform&amp;hellip;&amp;rdquo;
und dem folgenden GREL Ausdruck.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="nx">value&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">split&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;-&amp;#34;&lt;/span>&lt;span class="p">)[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="subfields">Subfields&lt;/h4>
&lt;p>Die &amp;ldquo;Unterfelder&amp;rdquo; werden nicht bei den Daten selbst erfasst, sondern im Mapping der Datenspalten auf die zusätzlichen Eigenschaften bei den Einstellungen im Reconciliation Dialog. In der folgenden Tabelle ist eine Liste von verfügbaren &lt;em>subfields&lt;/em>:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>Beispiel&lt;/th>
&lt;th>Bedeutung&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>@year&lt;/code>&lt;/td>
&lt;td>2023&lt;/td>
&lt;td>Jahresbestandteil eines Datums.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>@month&lt;/code>&lt;/td>
&lt;td>12&lt;/td>
&lt;td>Monatsbestandteil eines Datums.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>@day&lt;/code>&lt;/td>
&lt;td>24&lt;/td>
&lt;td>Tagesbestandteil eines Datums.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>@isodate&lt;/code>&lt;/td>
&lt;td>2023-12-24&lt;/td>
&lt;td>Datum im Format von ISO 8601.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>@iso&lt;/code>&lt;/td>
&lt;td>2023-12-24:12:00+00:00&lt;/td>
&lt;td>Datum und Zeitangabe im Format von ISO 8601 in UTC.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>@lat&lt;/code>&lt;/td>
&lt;td>48.77909743853026&lt;/td>
&lt;td>Längengrad&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>@lng&lt;/code>&lt;/td>
&lt;td>9.18665139434279&lt;/td>
&lt;td>Breitengrad&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>@urlscheme&lt;/code>&lt;/td>
&lt;td>https://&lt;/td>
&lt;td>Schema einer URL&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>@netloc&lt;/code>&lt;/td>
&lt;td>fdmlab.landesarchiv-bw.de&lt;/td>
&lt;td>Adresse einer URL&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>@urlpath&lt;/code>&lt;/td>
&lt;td>/kontakt/&lt;/td>
&lt;td>Pfad einer URL&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="keine-transformation-beim-geburtsort">Keine Transformation beim Geburtsort&lt;/h3>
&lt;p>Die Spalte &amp;ldquo;Geburtsort&amp;rdquo; beinhaltet zwar ebenfalls kleinere Schreib- oder Tippfehler.
Bei zusätzlichen Spalten wird bei OpenRefine-Wikibase automatisch die Fuzzy-Suche aktiviert.&lt;/p>
&lt;p>Die für den Reconciliation Vorgang umgewandelten Spalten sind in Abbildung 2 abgebildet.&lt;/p>
&lt;figure id="figure-bildschirmfoto-des-projektes-nach-den-transformationen">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto des Projektes nach den Transformationen." srcset="
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-datenset-modified_hu8a50896a136b864b5b5efb595900f5d6_28741_8bb2bca467f6dcff84d8b2f29f04a7a3.webp 400w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-datenset-modified_hu8a50896a136b864b5b5efb595900f5d6_28741_c25c5069e0e885978bda3261db9cf6d6.webp 760w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-datenset-modified_hu8a50896a136b864b5b5efb595900f5d6_28741_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-datenset-modified_hu8a50896a136b864b5b5efb595900f5d6_28741_8bb2bca467f6dcff84d8b2f29f04a7a3.webp"
width="512"
height="307"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto des Projektes nach den Transformationen.
&lt;/figcaption>&lt;/figure>
&lt;h3 id="abgleich-durchführen">Abgleich durchführen&lt;/h3>
&lt;p>Den Reconciliation Vorgang starten wir mit
&amp;ldquo;Name&amp;quot;
&lt;i class="far fa-caret-square-down pr-1 fa-fw">&lt;/i>&amp;quot;Reconcile&amp;quot;
&lt;i class="fas fa-caret-right pr-1 fa-fw">&lt;/i>&amp;quot;Start reconciling&amp;rdquo;
und den in Abbildung 3 gezeigten Einstellungen.
Dabei ist darauf zu achten, dass beim Geburtsdatum nicht nach dem Namen der Eigenschaft (&amp;ldquo;Geburtsdatum&amp;rdquo;) gesucht wird, sondern stattdessen die &lt;em>Property-ID&lt;/em> &lt;code>P569&lt;/code> mit der &lt;em>subfield&lt;/em> Ergänzung &lt;code>@year&lt;/code> verwendet wird.&lt;/p>
&lt;figure id="figure-bildschirmfoto-der-einstellungen-für-den-reconciliation-dialog">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto der Einstellungen für den Reconciliation Dialog." srcset="
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-dialog-settings_hu6bb4ece65fbf59914203758c62c9de4e_29991_7efa3e9ec8efe06d69d92ae8330c9f87.webp 400w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-dialog-settings_hu6bb4ece65fbf59914203758c62c9de4e_29991_2f45f9499045371d9e46f4e0642383fa.webp 760w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-dialog-settings_hu6bb4ece65fbf59914203758c62c9de4e_29991_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-dialog-settings_hu6bb4ece65fbf59914203758c62c9de4e_29991_7efa3e9ec8efe06d69d92ae8330c9f87.webp"
width="760"
height="499"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto der Einstellungen für den Reconciliation Dialog.
&lt;/figcaption>&lt;/figure>
&lt;p>Durch die ergänzenden Spalten konnten bei unserem Experiment 12 von 13 Politikern mit hoher Konfidenz automatisch zugeordnet werden.
Wie in Abbildung 4 gezeigt, konnte für Peter Hauk kein Treffer gefunden werden, weil &lt;code>Haucl&lt;/code> für das Fuzzy-Matching zu weit von &lt;code>Hauk&lt;/code> entfernt ist.&lt;/p>
&lt;figure id="figure-bildschirmfoto-der-ergebnisse-des-reconciliation-vorgangs">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto der Ergebnisse des Reconciliation Vorgangs." srcset="
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-results_huf3975027bcb76935fe0b42adfa4767f3_46907_d930d39a42761681504df7b1d50972f6.webp 400w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-results_huf3975027bcb76935fe0b42adfa4767f3_46907_3478d5c21e600d30046437e8ee461a4e.webp 760w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-results_huf3975027bcb76935fe0b42adfa4767f3_46907_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-wikidata-results_huf3975027bcb76935fe0b42adfa4767f3_46907_d930d39a42761681504df7b1d50972f6.webp"
width="707"
height="537"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto der Ergebnisse des Reconciliation Vorgangs.
&lt;/figcaption>&lt;/figure>
&lt;h3 id="weiterführende-informationen">Weiterführende Informationen&lt;/h3>
&lt;p>Es lohnt sich die &lt;a href="https://openrefine-wikibase.readthedocs.io/en/latest/scoring.html" target="_blank" rel="noopener">Dokumentation über die Bewertung einzelner Feldtypen&lt;/a> genauer durchzulesen.
Zum Beispiel hat die Bewertung einen Bereich von 0 bis 100 (keine Übereinstimmung bis volle Übereinstimmung), und es wird ein Abgleich von Geokoordinaten unterstützt. Wobei beim Koordinatenabgleich schon eine Abweichung von 1km als &amp;ldquo;keine Übereinstimmung&amp;rdquo; interpretiert wird.&lt;/p>
&lt;h2 id="aufgabe-2-suchbereich-einschränken">Aufgabe 2: Suchbereich einschränken&lt;/h2>
&lt;p>In Wikidata befinden sich deutlich mehr Daten, als in der GND, und auch das Datenschema ist deutlich komplexer.
Als Ergänzung bietet der OpenRefine-Wikibase Reconciliation Service die Möglichkeit so genannte &lt;a href="https://www.w3.org/TR/sparql11-query/#propertypaths" target="_blank" rel="noopener">Property Paths&lt;/a> zu verwenden.
Bei den &lt;em>Property Paths&lt;/em> werden aktuell nur die Operatoren &lt;code>/&lt;/code> und &lt;code>|&lt;/code> unterstützt.&lt;/p>
&lt;p>Dies zeigen wir an einem konkreten Beispiel.&lt;/p>
&lt;blockquote>
&lt;p>💾 Wir benötigen die folgende Datei (Rechtsklick und &amp;ldquo;Ziel speichern unter&amp;hellip;&amp;rdquo;):&lt;/p>
&lt;/blockquote>
&lt;a href="https://fdmlab.landesarchiv-bw.de/data/openrefine-workshop/16_staedte.csv" target="_blank">
&lt;i class="fas fa-file-csv pr-1 fa-fw">&lt;/i>Städte&lt;/a>
&lt;p>Was an dem Projekt &amp;ldquo;Städte&amp;rdquo; direkt auffällt ist, dass wir es hier nicht nur mit Städten zu tun haben.
Das Projekt beinhaltet Bundesländer aus Deutschland, Bundestaaten in den USA, sowie gleichnamige Städte in den jeweiligen Ländern.&lt;/p>
&lt;p>Da die im Folgenden entwickelten Anfragen recht lange rechnen, reduzieren wir zum Testen wie in Abbildung 5 die Einträge mit einem Sternchen-Filter auf vier.&lt;/p>
&lt;figure id="figure-bildschirmfoto-der-mit-sternen-gefilterten-einträge">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto der mit Sternen gefilterten Einträge." srcset="
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-cities-starred_hu2489efc0302daaf77ee8417a46d4a3b3_7660_46de870d33f2eea77162344c85956591.webp 400w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-cities-starred_hu2489efc0302daaf77ee8417a46d4a3b3_7660_8cf90b151e5af99251fc0bf0f4b35c8b.webp 760w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-cities-starred_hu2489efc0302daaf77ee8417a46d4a3b3_7660_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-cities-starred_hu2489efc0302daaf77ee8417a46d4a3b3_7660_46de870d33f2eea77162344c85956591.webp"
width="390"
height="118"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto der mit Sternen gefilterten Einträge.
&lt;/figcaption>&lt;/figure>
&lt;p>Ein direktes Vorgehen wäre, den Reconciliation Vorgang in vier Schritten durchzuführen:&lt;/p>
&lt;ol>
&lt;li>Filtern nach &amp;ldquo;Country Code&amp;rdquo; &lt;code>US&lt;/code> und Abgleich mit &lt;a href="https://www.wikidata.org/wiki/Q35657" target="_blank" rel="noopener">Bundesstaat der Vereinigten Staaten&lt;/a>.&lt;/li>
&lt;li>Filtern nach &amp;ldquo;Country Code&amp;rdquo; &lt;code>US&lt;/code> und Abgleich mit &lt;a href="https://www.wikidata.org/wiki/Q1093829" target="_blank" rel="noopener">City in den Vereinigten Staaten&lt;/a>.&lt;/li>
&lt;li>Filtern nach &amp;ldquo;Country Code&amp;rdquo; &lt;code>DE&lt;/code> und Abgleich mit &lt;a href="https://www.wikidata.org/wiki/Q1221156" target="_blank" rel="noopener">Bundesland&lt;/a>.&lt;/li>
&lt;li>Filtern nach &amp;ldquo;Country Code&amp;rdquo; &lt;code>DE&lt;/code> und Abgleich mit &lt;a href="https://www.wikidata.org/wiki/Q42744322" target="_blank" rel="noopener">Stadt in Deutschland&lt;/a>.&lt;/li>
&lt;/ol>
&lt;p>In diesem Fall wollen wir aber einige erweiterte Features der &lt;em>OpenRefine-Wikibase Reconciliation API&lt;/em> testen.&lt;/p>
&lt;h3 id="einfacher-abgleich">Einfacher Abgleich&lt;/h3>
&lt;p>Starten wir direkt auf den vier gefilterten Einträgen einen Reconciliation Vorgang gegen die deutschsprachige Version der Wikidata Reconciliation API, so bekommen wir direkt schon einige Entitätstypen vorgeschlagen.
Nach kurzer Recherche können wir die &lt;a href="https://www.wikidata.org/wiki/Q56061" target="_blank" rel="noopener">Verwaltungseinheit&lt;/a> (&lt;code>Q56061&lt;/code>) als gemeinsame Oberklasse identifizieren.&lt;/p>
&lt;div class="mermaid">---
title: Abfrage in Wikidata - einfacher Abgleich
config:
look: handDrawn
theme: neutral
---
flowchart LR
subgraph entities["Entitäten"]
direction LR
arkansas["Arkansas"]
click bw href "https://www.wikidata.org/wiki/Q1612" "Q1612" _blank
bw["Baden-Württemberg"]
click bw href "https://www.wikidata.org/wiki/Q985" "Q985" _blank
stuttgart_bw["Stuttgart, BW"]
click bw href "https://www.wikidata.org/wiki/Q1022" "Q1022" _blank
stuttgart_ar["Stuttgart, AR"]
click bw href "https://www.wikidata.org/wiki/Q79844" "Q79844" _blank
end
adminBody[["Verwaltungseinheit"]]
click adminBody href "https://www.wikidata.org/wiki/Q56061" "Q56061" _blank
p_instanceOf{{"ist ein(e)"}}
click p_instanceOf href "https://www.wikidata.org/wiki/Property:P31" "P31" _blank
bw --> p_instanceOf --> adminBody
&lt;/div>
&lt;p>Wie in Abbildung 6 gezeigt, verwenden wir also &lt;code>Q56061&lt;/code> als Typ für den Reconciliation Vorgang.&lt;/p>
&lt;figure id="figure-bildschirmfoto-der-einstellungen-für-den-reconciliation-vorgang-mit-wikidata---typeinschränkung">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto der Einstellungen für den Reconciliation Vorgang mit Wikidata - Typeinschränkung." srcset="
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_hufa7d57f95e6721aad0e68555810f3fdc_38405_64258401194b3e2b1257ec7403649729.webp 400w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_hufa7d57f95e6721aad0e68555810f3fdc_38405_4bdfef1ff7a7b6c3b958140f416bc895.webp 760w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_hufa7d57f95e6721aad0e68555810f3fdc_38405_3e1cd8ec225e2b86f73af42c6220e1f5.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_hufa7d57f95e6721aad0e68555810f3fdc_38405_64258401194b3e2b1257ec7403649729.webp"
width="760"
height="496"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto der Einstellungen für den Reconciliation Vorgang mit Wikidata - Typeinschränkung.
&lt;/figcaption>&lt;/figure>
&lt;p>Hier bekommen wir zwar schon richtige Ergebnisse zurück.
Diese sind jedoch gemischt mit Wahlbezirken, historischen Orten, usw. und müssten manuell richtig zugeordnet werden.&lt;/p>
&lt;h3 id="abgleich-mit-instanzfilter">Abgleich mit Instanzfilter&lt;/h3>
&lt;p>Wenn wir in einem Reconciliation Vorgang nach mehreren Typen suchen wollen, so können wir das mit einem Trick in OpenRefine umsetzen.
Konkret suchen wir nach &lt;a href="https://www.wikidata.org/wiki/Q107390" target="_blank" rel="noopener">Bundesstaat&lt;/a>, &lt;a href="https://www.wikidata.org/wiki/Q515" target="_blank" rel="noopener">Stadt&lt;/a> und &lt;a href="https://www.wikidata.org/wiki/Q3957" target="_blank" rel="noopener">Kleinstadt&lt;/a>.
Dafür deaktivieren wir den Filter auf die markierten Zeilen und fügen via
&amp;ldquo;Item&amp;quot;
&lt;i class="far fa-caret-square-down pr-1 fa-fw">&lt;/i>&amp;quot;Edit column&amp;quot;
&lt;i class="fas fa-caret-right pr-1 fa-fw">&lt;/i>&amp;quot;Add column based on this column&amp;hellip;&amp;rdquo;
eine neue Spalte &amp;ldquo;Types&amp;rdquo; hinzu.&lt;/p>
&lt;p>Als Werte für die neue Spalte &amp;ldquo;Types&amp;rdquo; nehmen wir &lt;code>&amp;quot;Bundesstaat|Stadt|Kleinstadt&amp;quot;&lt;/code> und wandeln sie via
&amp;ldquo;Types&amp;quot;
&lt;i class="far fa-caret-square-down pr-1 fa-fw">&lt;/i>&amp;quot;Edit cells&amp;quot;
&lt;i class="fas fa-caret-right pr-1 fa-fw">&lt;/i>&amp;quot;Split multi-valued cells&amp;hellip;&amp;rdquo;
auf dem Trennzeichen &lt;code>|&lt;/code> in eine Record Struktur um. Das gefilterte Ergebnis sollte dann aussehen, wie in Abbildung 7.&lt;/p>
&lt;figure id="figure-bildschirmfoto-des-projektes-nach-dem-hinzufügen-der-spalte-types">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto des Projektes nach dem Hinzufügen der Spalte Types." srcset="
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-cities-starred-record_hu81fd005f3aa34aa450a0571d2c1568d7_18927_c17aba1946a60fc32020ab1ca2c8212f.webp 400w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-cities-starred-record_hu81fd005f3aa34aa450a0571d2c1568d7_18927_72bd73753af08e62bc4b4955d0df4439.webp 760w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-cities-starred-record_hu81fd005f3aa34aa450a0571d2c1568d7_18927_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/screenshot-openrefine-cities-starred-record_hu81fd005f3aa34aa450a0571d2c1568d7_18927_c17aba1946a60fc32020ab1ca2c8212f.webp"
width="460"
height="295"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto des Projektes nach dem Hinzufügen der Spalte Types.
&lt;/figcaption>&lt;/figure>
&lt;p>Der Hintergrund für diese Datenerweiterung ist, dass OpenRefine mehrere Werte in einer Record Struktur als &amp;ldquo;Oder&amp;rdquo; verknüpft betrachtet.
Baden-Württemberg kann also ein Bundesstaat sein, oder eine Stadt, oder eine Kleinstadt. &lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref">2&lt;/a>&lt;/sup>&lt;/p>
&lt;div class="mermaid">---
title: Abfrage in Wikidata - Abgleich mit Instanzfilter
config:
look: handDrawn
theme: neutral
---
flowchart LR
subgraph entities["Entitäten"]
direction LR
arkansas["Arkansas"]
click bw href "https://www.wikidata.org/wiki/Q1612" "Q1612" _blank
bw["Baden-Württemberg"]
click bw href "https://www.wikidata.org/wiki/Q985" "Q985" _blank
stuttgart_bw["Stuttgart, BW"]
click bw href "https://www.wikidata.org/wiki/Q1022" "Q1022" _blank
stuttgart_ar["Stuttgart, AR"]
click bw href "https://www.wikidata.org/wiki/Q79844" "Q79844" _blank
end
adminBody[["Verwaltungseinheit"]]
click adminBody href "https://www.wikidata.org/wiki/Q56061" "Q56061" _blank
federatedState["Bundesstaat"]
click federatedState href "https://www.wikidata.org/wiki/Q107390" "Q107390" _blank
city["Stadt"]
click city href "https://www.wikidata.org/wiki/Q515" "Q515" _blank
town["Kleinstadt"]
click town href "https://www.wikidata.org/wiki/Q3957" "Q3957" _blank
p_instanceOf{{"ist ein(e)"}}
click p_instanceOf href "https://www.wikidata.org/wiki/Property:P31" "P31" _blank
p_instanceOf2{{"ist ein(e)"}}
click p_instanceOf2 href "https://www.wikidata.org/wiki/Property:P31" "P31" _blank
or{"oder"}
bw --> p_instanceOf --> adminBody
bw --> p_instanceOf2 --> or --> federatedState &amp; city &amp; town
&lt;/div>
&lt;p>Die neue Spalte &amp;ldquo;Types&amp;rdquo; berücksichtigen wir beim Reconciliation Dialog in Abbildung 8 als Property &lt;code>P31&lt;/code> &amp;ldquo;ist ein(e)&amp;rdquo;.
Dadurch werden die Einträge mit einem &amp;ldquo;falschen&amp;rdquo; Typ zwar nicht weggefiltert, sie bekommen aber einen niedrigeren Score und rutschen weiter nach unten.&lt;/p>
&lt;figure id="figure-bildschirmfoto-der-einstellungen-für-den-reconciliation-vorgang-mit-wikidata---spalte-types">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto der Einstellungen für den Reconciliation Vorgang mit Wikidata - Spalte Types." srcset="
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_hu3935471ce17dd1ce3c507cf99f31c84f_40104_27938291cbe50b3c5846e5367c16860c.webp 400w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_hu3935471ce17dd1ce3c507cf99f31c84f_40104_5c7f7ab68d3c135daafb520a84ad0089.webp 760w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_hu3935471ce17dd1ce3c507cf99f31c84f_40104_66eac04df174323f8c0380ee09556249.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_hu3935471ce17dd1ce3c507cf99f31c84f_40104_27938291cbe50b3c5846e5367c16860c.webp"
width="760"
height="494"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto der Einstellungen für den Reconciliation Vorgang mit Wikidata - Spalte Types.
&lt;/figcaption>&lt;/figure>
&lt;h3 id="abgleich-mit-country-code">Abgleich mit Country Code&lt;/h3>
&lt;p>In der Spalte &amp;ldquo;Country Code&amp;rdquo; haben wir passende Ländercodes für die einzelnen Entitäten.
Die Ländercodes sind jedoch nicht direkt mit den einzelnen Entitäten verknüpft.
Hier helfen uns so genannte &lt;em>Property Paths&lt;/em>.
Mit dem &lt;em>Property Path&lt;/em> &lt;code>P17/P297&lt;/code> in Abbildung 9 können wir ausdrücken, dass Baden-Württemberg in einem Land mit dem Ländercode &lt;code>DE&lt;/code> liegen soll.&lt;/p>
&lt;div class="mermaid">---
title: Abfrage in Wikidata - Abgleich mit Country Code
config:
look: handDrawn
theme: neutral
---
flowchart LR
subgraph entities["Entitäten"]
direction LR
arkansas["Arkansas"]
click bw href "https://www.wikidata.org/wiki/Q1612" "Q1612" _blank
bw["Baden-Württemberg"]
click bw href "https://www.wikidata.org/wiki/Q985" "Q985" _blank
stuttgart_bw["Stuttgart, BW"]
click bw href "https://www.wikidata.org/wiki/Q1022" "Q1022" _blank
stuttgart_ar["Stuttgart, AR"]
click bw href "https://www.wikidata.org/wiki/Q79844" "Q79844" _blank
end
adminBody[["Verwaltungseinheit"]]
click adminBody href "https://www.wikidata.org/wiki/Q56061" "Q56061" _blank
countryCode["DE"]
click countryCode href "https://www.iso.org/obp/ui/#iso:code:3166:DE" "DE" _blank
federatedState["Bundesstaat"]
click federatedState href "https://www.wikidata.org/wiki/Q107390" "Q107390" _blank
city["Stadt"]
click city href "https://www.wikidata.org/wiki/Q515" "Q515" _blank
town["Kleinstadt"]
click town href "https://www.wikidata.org/wiki/Q3957" "Q3957" _blank
p_instanceOf{{"ist ein(e)"}}
click p_instanceOf href "https://www.wikidata.org/wiki/Property:P31" "P31" _blank
p_instanceOf2{{"ist ein(e)"}}
click p_instanceOf2 href "https://www.wikidata.org/wiki/Property:P31" "P31" _blank
p_country{{"Land"}}
click p_country href "https://www.wikidata.org/wiki/Property:P17" "P17" _blank
p_iso_country{{"ISO 3166-1 alpha-2"}}
click p_iso_country href "https://www.wikidata.org/wiki/Property:P297" "P297" _blank
sequence1{"/"}
click sequence1 href "https://www.w3.org/TR/sparql11-query/#propertypaths" "Sequence" _blank
bw --> p_instanceOf --> adminBody
bw --> p_country --> sequence1 --> p_iso_country --> countryCode
bw --> p_instanceOf2 --> or --> federatedState &amp; city &amp; town
&lt;/div>
&lt;figure id="figure-bildschirmfoto-der-einstellungen-für-den-reconciliation-vorgang-mit-wikidata---spalte-country-code">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto der Einstellungen für den Reconciliation Vorgang mit Wikidata - Spalte Country Code." srcset="
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_huf1e791da0098100c858970edab7e0266_43135_f26e98461fcde988fd0ed0e45dd4d23d.webp 400w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_huf1e791da0098100c858970edab7e0266_43135_ea4e20db4d0a88eac987a752cb084905.webp 760w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_huf1e791da0098100c858970edab7e0266_43135_e223d72da9f16104a0304154930f1363.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_huf1e791da0098100c858970edab7e0266_43135_f26e98461fcde988fd0ed0e45dd4d23d.webp"
width="760"
height="496"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto der Einstellungen für den Reconciliation Vorgang mit Wikidata - Spalte Country Code.
&lt;/figcaption>&lt;/figure>
&lt;p>Der Abgleich dauert nun schon deutlich länger, jedoch passt die Sortierung der Ergebnisse deutlich besser.
Nur bei den verschiedenen gleichnamigen Städten in den USA haben wir noch Probleme bei der (korrekten) Sortierung der Suchvorschläge.&lt;/p>
&lt;h3 id="abgleich-mit-state-code">Abgleich mit State Code&lt;/h3>
&lt;p>In der Spalte &amp;ldquo;State Code&amp;rdquo; haben wir zusätzlich das Kürzel des jeweiligen Bundeslandes/staates, in dem die jeweilige Stadt liegt.
Diese Werte finden wir zum Beispiel bei den alternativen Bezeichnungen für die einzelnen Bundesländer/staaten.
Die so genannten Aliase lassen sich über spezielle Eigenschaften abfragen, bei denen man ein Kürzel mit einem Sprachcode kombiniert.
Die englischsprachigen Aliase erhält man also über &lt;code>Aen&lt;/code>. In der folgenden Tabelle sind weitere Kürzel mit Beispielen gelistet.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Kürzel&lt;/th>
&lt;th>Steht für&lt;/th>
&lt;th>Bedeutung&lt;/th>
&lt;th>Beispiel&lt;/th>
&lt;th>Inhalt&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>L&lt;/code>&lt;/td>
&lt;td>Label&lt;/td>
&lt;td>Bezeichnung&lt;/td>
&lt;td>&lt;code>Lde&lt;/code>&lt;/td>
&lt;td>Baden-Württemberg&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>D&lt;/code>&lt;/td>
&lt;td>Description&lt;/td>
&lt;td>Beschreibung&lt;/td>
&lt;td>&lt;code>Den&lt;/code>&lt;/td>
&lt;td>Land (federal state) in southwestern Germany&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>A&lt;/code>&lt;/td>
&lt;td>Alias&lt;/td>
&lt;td>Alternative Bezeichnungen&lt;/td>
&lt;td>&lt;code>Afr&lt;/code>&lt;/td>
&lt;td>BW, Baden-Württemberg, Land Baden-Württemberg, État du Bade-Wurtemberg, DE-BW, BaWü&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>S&lt;/code>&lt;/td>
&lt;td>Sidelink&lt;/td>
&lt;td>Seitenlink&lt;/td>
&lt;td>&lt;code>Sdewiki&lt;/code>&lt;/td>
&lt;td>&lt;a href="https://de.wikipedia.org/wiki/Baden-W%C3%BCrttemberg" target="_blank" rel="noopener">https://de.wikipedia.org/wiki/Baden-W%C3%BCrttemberg&lt;/a>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Hier haben wir das Problem, dass wir wieder eine Art &amp;ldquo;Oder Verknüpfung&amp;rdquo; benötigen.
Diesmal haben wir nicht verschiedene Werte, sondern verschiedene Arten von Verknüpfungen.
Bei den Bundesländern/staaten selbst befindet sich das Kürzel in der Liste der Aliase.
Bei den Städten befindet sich das Kürzel des Bundeslandes/staates in &lt;strong>einem&lt;/strong> der übergeordneten Objekte.&lt;/p>
&lt;p>Auch hier helfen uns die &lt;em>Property Paths&lt;/em>.
Mit &lt;code>Aen|(P131/Aen)|(P131/P131/Aen)&lt;/code> in Abbildung 10 können wir ausdrücken, dass der gesuchte Wert entweder im englischsprachigen Alias (&lt;code>Aen&lt;/code>), oder (&lt;code>|&lt;/code>) im Alias einer der beiden übergeordneten Verwaltungseinheiten (&lt;code>P131/Aen&lt;/code> bzw. &lt;code>P131/P131/Aen&lt;/code>) zu finden sein soll.&lt;/p>
&lt;div class="mermaid">---
title: Abfrage in Wikidata - Abgleich mit State Code
config:
look: handDrawn
theme: neutral
---
flowchart LR
subgraph entities["Entitäten"]
direction LR
arkansas["Arkansas"]
click bw href "https://www.wikidata.org/wiki/Q1612" "Q1612" _blank
bw["Baden-Württemberg"]
click bw href "https://www.wikidata.org/wiki/Q985" "Q985" _blank
stuttgart_bw["Stuttgart, BW"]
click bw href "https://www.wikidata.org/wiki/Q1022" "Q1022" _blank
stuttgart_ar["Stuttgart, AR"]
click bw href "https://www.wikidata.org/wiki/Q79844" "Q79844" _blank
end
adminBody[["Verwaltungseinheit"]]
click adminBody href "https://www.wikidata.org/wiki/Q56061" "Q56061" _blank
countryCode["DE"]
click countryCode href "https://www.iso.org/obp/ui/#iso:code:3166:DE" "DE" _blank
stateCode["BW"]
click stateCode href "https://www.wikidata.org/wiki/Help:Aliases" "Alias" _blank
federatedState["Bundesstaat"]
click federatedState href "https://www.wikidata.org/wiki/Q107390" "Q107390" _blank
city["Stadt"]
click city href "https://www.wikidata.org/wiki/Q515" "Q515" _blank
town["Kleinstadt"]
click town href "https://www.wikidata.org/wiki/Q3957" "Q3957" _blank
p_instanceOf{{"ist ein(e)"}}
click p_instanceOf href "https://www.wikidata.org/wiki/Property:P31" "P31" _blank
p_instanceOf2{{"ist ein(e)"}}
click p_instanceOf2 href "https://www.wikidata.org/wiki/Property:P31" "P31" _blank
p_country{{"Land"}}
click p_country href "https://www.wikidata.org/wiki/Property:P17" "P17" _blank
p_iso_country{{"ISO 3166-1 alpha-2"}}
click p_iso_country href "https://www.wikidata.org/wiki/Property:P297" "P297" _blank
p_alias{{"Aen"}}
click p_alias "https://www.wikidata.org/wiki/Help:Aliases" "Alias" _blank
p_located1{{"befindet sich in"}}
click p_located1 href "https://www.wikidata.org/wiki/Property:P131" "P131" _blank
p_located2{{"befindet sich in"}}
click p_located2 href "https://www.wikidata.org/wiki/Property:P131" "P131" _blank
p_located3{{"befindet sich in"}}
click p_located3 href "https://www.wikidata.org/wiki/Property:P131" "P131" _blank
or{"oder"}
union{"|"}
click union href "https://www.w3.org/TR/sparql11-query/#propertypaths" "Union" _blank
sequence0{"/"}
click sequence0 href "https://www.w3.org/TR/sparql11-query/#propertypaths" "Sequence" _blank
sequence1{"/"}
click sequence1 href "https://www.w3.org/TR/sparql11-query/#propertypaths" "Sequence" _blank
sequence2{"/"}
click sequence2 href "https://www.w3.org/TR/sparql11-query/#propertypaths" "Sequence" _blank
sequence3{"/"}
click sequence3 href "https://www.w3.org/TR/sparql11-query/#propertypaths" "Sequence" _blank
bw --> p_instanceOf --> adminBody
bw --> p_country --> sequence0 --> p_iso_country --> countryCode
bw --> union --> p_alias &amp; p_located1 &amp; p_located2
p_alias --> stateCode
p_located1 --> sequence1 --> p_alias
p_located2 --> sequence2 --> p_located3 --> sequence3 --> p_alias
bw --> p_instanceOf2 --> or --> federatedState &amp; city &amp; town
&lt;/div>
&lt;figure id="figure-bildschirmfoto-der-einstellungen-für-den-reconciliation-vorgang-mit-wikidata---spalte-state-code">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto der Einstellungen für den Reconciliation Vorgang mit Wikidata - Spalte State Code." srcset="
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_hu0f682581000c6cc89e53ca2d9331eecf_41997_5f24a6f63dd459f8d70df9781915db52.webp 400w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_hu0f682581000c6cc89e53ca2d9331eecf_41997_73af2435f784a4733bff4d14e8037301.webp 760w,
/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_hu0f682581000c6cc89e53ca2d9331eecf_41997_8b4ffef2f0628638f6e752676c7fc096.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/_hu0f682581000c6cc89e53ca2d9331eecf_41997_5f24a6f63dd459f8d70df9781915db52.webp"
width="760"
height="496"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto der Einstellungen für den Reconciliation Vorgang mit Wikidata - Spalte State Code.
&lt;/figcaption>&lt;/figure>
&lt;h3 id="ergebnis">Ergebnis&lt;/h3>
&lt;p>Bei unserem Experiment konnten wir mit dieser komplexen Reconciliation Abfrage die Bundesländer/staaten und gleichnamigen Städte fast immer voneinander &amp;ldquo;trennen&amp;rdquo;.&lt;/p>
&lt;p>Ausnahmen gibt es zum Beispiel in einzelnen amerikanischen Bundesstaaten, wo es teilweise ebenfalls mehrere Städte mit dem gleichen Namen gibt, so dass das Staatskürzel zur Identifikation nicht ausreichend ist.&lt;/p>
&lt;p>Der Reconciliation Vorgang benötigte für die knapp 100 Objekte mehrere Anläufe von jeweils mehreren Minuten.
Je nachdem, wie gut sich die Daten im Vorfeld separieren lassen, lohnt sich im Vergleich die in der Einleitung erwähnte Strategie des mehrmaligen Abgleichs auf einer gefilterten Untermenge der Daten bzw. die separate Behandlung von Einzelfällen.&lt;/p>
&lt;h2 id="fazit">Fazit&lt;/h2>
&lt;p>Die &lt;em>OpenRefine-Wikibase Reconciliation API&lt;/em> bietet nicht so viele Suchfeatures wie die &lt;em>lobid gnd OpenRefine Reconciliation API&lt;/em>.
Es ist interessant, dass bei der Spalte auf der abgeglichen wird, das Fuzzy-matching manuell aktiviert werden muss, es auf den zusätzlich Spalten aber automatisch durchgeführt wird.&lt;/p>
&lt;p>Etwas versteckt ist die Möglichkeit auf sprachspezifische Bezeichnungen &lt;code>L&lt;/code>, Beschreibungen &lt;code>D&lt;/code>, Aliase &lt;code>A&lt;/code> und Seitenlinks &lt;code>S&lt;/code> durch Hinzufügen des jeweiligen Sprachcodes zuzugreifen.&lt;/p>
&lt;p>Das Matching von Teilausdrücken über &lt;em>subfields&lt;/em> wie &lt;code>@year&lt;/code> ist recht komfortabel, da dadurch die Information der Datentransformation, also nur Jahr zu berücksichtigen, in der Reconciliation Abfrage und nicht in den Daten selbst steckt.&lt;/p>
&lt;p>Mit den &lt;em>Property Paths&lt;/em> können wir komplexe Anfragen durchführen und die Suchmenge sehr spezifisch einschränken.
Jedoch benötigt die Berechnung der Antwort recht lange und wir erlebten bei unseren Tests häufigere Abbrüche des Vorgangs.&lt;/p>
&lt;p>Da als Suchtechnologie bei Wikibase üblicherweise wie bei lobid gnd &lt;a href="https://www.elastic.co/de/elasticsearch/" target="_blank" rel="noopener">ElasticSearch&lt;/a> als Suchtechnologie eingesetzt wird, könnte es sein, dass weitere Features der &lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax" target="_blank" rel="noopener">Query string syntax&lt;/a> zukünftig ebenfalls nutzbar sein werden.&lt;/p>
&lt;hr>
&lt;p>Im nächsten Teil beschäftigen wir uns mit dem erweiterten Datenabgleich zwischen OpenRefine und Getty.&lt;/p>
&lt;ul class="cta-group">
&lt;li>
&lt;a href="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/17-erweiterter-abgleich-mit-getty" class="btn btn-primary px-3 py-3">16 Erweiterter Abgleich mit Getty&lt;/a>
&lt;/li>
&lt;/ul>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>GitLab Issue zum Thema &lt;a href="https://gitlab.com/nfdi4culture/ta1-data-enrichment/openrefine-wikibase/-/issues/11" target="_blank" rel="noopener">Fuzzy-matching mit OpenRefine-Wikibase&lt;/a>.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:2">
&lt;p>Details zu Records beim Reconciliation Vorgang unter &lt;a href="https://github.com/OpenRefine/OpenRefine/issues/3139" target="_blank" rel="noopener">Store and expose reconciliation candidate features&lt;/a> und darin verknüpften Issues.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>Workshop - Erweiterter GND Abgleich mit lobid</title><link>https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/</link><pubDate>Sun, 01 May 2022 00:00:00 +0000</pubDate><guid>https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/</guid><description>&lt;p>In diesem Tutorial vertiefen wir den Abgleich von Daten mit der GND über das lobid API.&lt;/p>
&lt;h2 id="einführung">Einführung&lt;/h2>
&lt;blockquote>
&lt;p>Reconciling in der &lt;a href="https://docs.openrefine.org/manual/reconciling" target="_blank" rel="noopener">OpenRefine Dokumentation&lt;/a>.&lt;br>
OpenRefine API in der &lt;a href="https://lobid.org/gnd/api#openrefine" target="_blank" rel="noopener">lobid API Dokumentation&lt;/a>.&lt;br>
GND reconciliation (advanced) im &lt;a href="https://blog.lobid.org/2019/09/30/openrefine-examples.html" target="_blank" rel="noopener">lobid Blog&lt;/a>.&lt;br>
Komplexe Suchanfragen im &lt;a href="https://blog.lobid.org/2018/07/06/lobid-gnd-queries.html" target="_blank" rel="noopener">lobid Blog&lt;/a>.&lt;br>
Query string syntax in der &lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax" target="_blank" rel="noopener">Elasticsearch Dokumentation&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;div class="alert alert-note">
Dieser Workshop wurde erstellt mit OpenRefine Version 3.5.0.&lt;br>
Dieser Workshop wurde zuletzt getestet mit OpenRefine Version &lt;strong>3.9.3&lt;/strong>.
&lt;/div>
&lt;p>Das von lobid zur Verfügung gestellte API zur Nutzung der Gemeinsamen Normdatei (GND) verwendet unter der Haube die &lt;a href="https://www.elastic.co/de/elasticsearch/" target="_blank" rel="noopener">Suchtechnologie Elasticsearch&lt;/a>.
Wie andere Suchmaschinen kennt auch Elasticsearch Möglichkeiten eine Suchanfrage zu präzisieren.
Durch Verwendung von besonderen Zeichen (Operatoren) können sehr komplexe Suchanfragen gestellt werden.&lt;/p>
&lt;p>Die genauen Details sind unter &lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax" target="_blank" rel="noopener">Query string syntax&lt;/a> in der Elasticsearch Dokumentation zu finden.
Es sind bei dem lobid API jedoch nicht alle Features der &amp;ldquo;Abfragesprache&amp;rdquo; aktiviert.
Im Zweifel die entsprechenden Operatoren erst einmal an einem Beispiel ausprobieren.&lt;/p>
&lt;h2 id="aufgabe-1-operatoren-in-der-weboberfläche">Aufgabe 1: Operatoren in der Weboberfläche&lt;/h2>
&lt;p>Wir führen die Operatoren zur Verbesserung der Suchergebnisse an (Such-)Beispielen ein, welche wir Stück für Stück weiter entwickeln.
Da sich sowohl die Inhalte der GND, als auch die Algorithmen von Elasticsearch immer wieder ändern, ist es möglich, dass sich die Ergebnisse zu einem späteren Zeitpunkt von den hier beschriebenen unterscheiden.&lt;/p>
&lt;h3 id="beispiel-1-maria-oder-marie">Beispiel 1: Maria oder Marie?&lt;/h3>
&lt;p>Wir suchen eine Frau mit Vornamen &lt;code>Maria&lt;/code> oder &lt;code>Marie&lt;/code> und lernen dabei einige Sprachbestandteile kennen, mit denen wir die Suche in der GND via der lobid Weboberfläche einschränken können.
Die Links verweisen zum Ergebnis in der lobid Weboberfläche.&lt;/p>
&lt;p>&lt;strong>Versuch 1:&lt;/strong> &lt;a href="https://lobid.org/gnd/search?q=Maria&amp;#43;Marie" target="_blank" rel="noopener">Maria Marie&lt;/a>.&lt;/p>
&lt;p>Diese Anfrage macht jetzt nicht das, was wir (vielleicht) erwarten würden.
Mit dieser Anfrage wird nach Einträgen gesucht, die sowohl Maria als auch Marie beinhalten (&lt;code>Maria AND Marie&lt;/code>).
Die Verknüpfung via &lt;code>AND&lt;/code> ist die Standardeinstellung.
Dies können wir für unsere Anfrage anpassen, indem wir boolsche Operatoren wie &lt;code>AND&lt;/code>, &lt;code>OR&lt;/code> und &lt;code>NOT&lt;/code> explizit verwenden.&lt;/p>
&lt;p>&lt;strong>Versuch 2:&lt;/strong> &lt;a href="https://lobid.org/gnd/search?q=Maria&amp;#43;OR&amp;#43;Marie" target="_blank" rel="noopener">Maria OR Marie&lt;/a>&lt;/p>
&lt;p>Nun finden wir sowohl Personen mit Vornamen Maria, als auch mit Vornamen Marie.
Aber auch viele andere Ergebnisse, wie zum Beispiel Lieder mit dem Titel &amp;ldquo;Maria&amp;rdquo;.
Wir benötigen also weitere Einschränkungen für die mehr als 100.000 Treffer.&lt;/p>
&lt;p>&lt;strong>Versuch 3:&lt;/strong> &lt;a href="https://lobid.org/gnd/search?q=%28Maria&amp;#43;OR&amp;#43;Marie%29&amp;#43;AND&amp;#43;dateOfBirth%3A%5B1850&amp;#43;TO&amp;#43;1875%5D" target="_blank" rel="noopener">(Maria OR Marie) AND dateOfBirth:[1850 TO 1875]&lt;/a>&lt;/p>
&lt;p>Wir wissen, dass die Person zwischen 1850 und etwa 1875 geboren wurde.
Das können wir mit einer &lt;em>Range-Query&lt;/em> auf dem Feld &lt;code>dateOfBirth&lt;/code> durchführen.
Bitte auch die Klammerung beim ersten Ausdruck &lt;code>(Maria OR Marie)&lt;/code> und die Verknüpfung mit &lt;code>AND&lt;/code> beachten!
Ein weiterer Vorteil einer Einschränkung über das Feld &lt;code>dateOfBirth&lt;/code> ist, dass wir uns die zusätzliche Einschränkung auf &lt;code>type:Person&lt;/code> sparen, da in der GND hauptsächlich Personen ein Geburtsdatum haben.&lt;/p>
&lt;p>&lt;strong>Versuch 4:&lt;/strong> &lt;a href="https://lobid.org/gnd/search?q=%28Maria&amp;#43;OR&amp;#43;Marie%29&amp;#43;AND&amp;#43;dateOfBirth%3A%5B1850&amp;#43;TO&amp;#43;1875%5D&amp;#43;AND&amp;#43;dateOfDeath%3A%3C1939" target="_blank" rel="noopener">(Maria OR Marie) AND dateOfBirth:[1850 TO 1875] AND dateOfDeath:&amp;lt;1939&lt;/a>&lt;/p>
&lt;p>Wir wissen außerdem, dass die Person den Ersten Weltkrieg erlebt hat, den Zweiten jedoch nicht.
Das könnten wir wieder über eine &lt;em>Range-Query&lt;/em> abbilden: &lt;code>[1918-11-11 TO 1939-01-01}&lt;/code>.
Geschweifte Klammern &lt;code>{&lt;/code>, &lt;code>}&lt;/code> zeigen dabei an, dass der entsprechende Wert nicht in den Bereich eingeschlossen wird.
Also &lt;code>[2000 TO 2022]&lt;/code> hat die gleiche Bedeutung wie &lt;code>{1999 TO 2023}&lt;/code>.
Wir haben für den Ausdruck stattdessen einen der Vergleichsoperatoren &lt;code>&amp;lt;&lt;/code>, &lt;code>&amp;lt;=&lt;/code>, &lt;code>&amp;gt;&lt;/code>, &lt;code>&amp;gt;=&lt;/code> verwendet.&lt;/p>
&lt;p>&lt;strong>Versuch 5:&lt;/strong> &lt;a href="https://lobid.org/gnd/search?q=%28Maria&amp;#43;OR&amp;#43;Marie%29&amp;#43;AND&amp;#43;dateOfBirth%3A%5B1850&amp;#43;TO&amp;#43;1875%5D&amp;#43;AND&amp;#43;dateOfDeath%3A%3C1939&amp;#43;AND&amp;#43;placeOfBirth%3AWarschau" target="_blank" rel="noopener">(Maria OR Marie) AND dateOfBirth:[1850 TO 1875] AND dateOfDeath:&amp;lt;1939 AND placeOfBirth:Warschau&lt;/a>&lt;/p>
&lt;p>Wir wissen, dass die Person in Warschau geboren wurde.
Die Anfrage liefert aber keine Ergebnisse.
Das liegt daran, dass der Geburtsort nicht mit einem Wert, sondern mit einem anderen Objekt in der GND verknüpft ist.
Eine Möglichkeit trotzdem ein Ergebnis zu bekommen ist mit &lt;code>placeOfBirth.\*:Warschau&lt;/code> alle Felder des verknüpften Objektes zu durchsuchen.&lt;/p>
&lt;p>Die präzisere Variante ist die GND-Nummer des Ortes zu verwenden.
Diese wird dann in Anführungsstriche &lt;code>&amp;quot;...&amp;quot;&lt;/code> gesetzt, da wir hier eine exakte Phrasensuche durchführen.&lt;/p>
&lt;p>&lt;strong>Versuch 6:&lt;/strong> &lt;a href="https://lobid.org/gnd/search?q=%28Maria&amp;#43;OR&amp;#43;Marie%29&amp;#43;AND&amp;#43;dateOfBirth%3A%5B1850&amp;#43;TO&amp;#43;1875%5D&amp;#43;AND&amp;#43;dateOfDeath%3A%3C1939&amp;#43;AND&amp;#43;placeOfBirth.id%3A%22https%3A%2F%2Fd-nb.info%2Fgnd%2F4079048-4%22" target="_blank" rel="noopener">(Maria OR Marie) AND dateOfBirth:[1850 TO 1875] AND dateOfDeath:&amp;lt;1939 AND placeOfBirth.id:&amp;ldquo;https://d-nb.info/gnd/4079048-4&amp;rdquo;&lt;/a>&lt;/p>
&lt;p>Es ist inzwischen klar, dass wir nach &lt;a href="https://lobid.org/gnd/118523023" target="_blank" rel="noopener">Marie Curie&lt;/a> suchen.
Zur Übung nehmen wir jedoch noch eine weitere Einschränkung vor: Wir wissen, dass die Person eine Naturwissenschaftlerin war.
Entweder Chemikerin, oder Physikerin oder beides.&lt;/p>
&lt;p>Die Berufe sind ebenfalls als Objekte verknüpft über &lt;code>professionOrOccupation&lt;/code> und können mit &lt;code>OR&lt;/code> verknüpft mit in die Anfrage aufgenommen werden.&lt;/p>
&lt;p>&lt;strong>Bonusversuch 7:&lt;/strong> &lt;a href="https://lobid.org/gnd/search?q=%28Maria&amp;#43;OR&amp;#43;Marie%29&amp;#43;AND&amp;#43;dateOfBirth%3A%5B1850&amp;#43;TO&amp;#43;1875%5D&amp;#43;AND&amp;#43;dateOfDeath%3A%3C1939&amp;#43;AND&amp;#43;placeOfBirth.id%3A%22https%3A%2F%2Fd-nb.info%2Fgnd%2F4079048-4%22&amp;#43;AND&amp;#43;professionOrOccupation.id%3A%28%22https%3A%2F%2Fd-nb.info%2Fgnd%2F4219058-7%22&amp;#43;OR&amp;#43;%22https%3A%2F%2Fd-nb.info%2Fgnd%2F4337175-9%22&amp;#43;OR&amp;#43;%22https%3A%2F%2Fd-nb.info%2Fgnd%2F4202451-1%22%29" target="_blank" rel="noopener">(Maria OR Marie) AND dateOfBirth:[1850 TO 1875] AND dateOfDeath:&amp;lt;1939 AND placeOfBirth.id:&amp;ldquo;https://d-nb.info/gnd/4079048-4&amp;rdquo; AND professionOrOccupation.id:(&amp;ldquo;https://d-nb.info/gnd/4219058-7&amp;rdquo; OR &amp;ldquo;https://d-nb.info/gnd/4337175-9&amp;rdquo; OR &amp;ldquo;https://d-nb.info/gnd/4202451-1&amp;rdquo;)&lt;/a>&lt;/p>
&lt;p>Das ist ein Beispiel, wie die unterschiedlichen Anforderungen einer Personenrecherche in die &amp;ldquo;Suchsprache&amp;rdquo; von lobid-gnd/Elasticsearch übertragen werden können. Es gibt noch weitere Operatoren, die nicht mehr in das obige Beispiel reingepasst haben.&lt;/p>
&lt;h3 id="beispiel-2-das-nicht">Beispiel 2: Das &lt;strong>nicht&lt;/strong>&lt;/h3>
&lt;p>Manchmal kommt es vor, dass die Ergebnisse von nicht gesuchten Einträgen überschwemmt werden.
So gibt es für die Suchanfrage &lt;a href="https://lobid.org/gnd/search?q=Freiburg" target="_blank" rel="noopener">Freiburg&lt;/a> tausende Ergebnisse aus allen Kategorien.
Ein typisches Vorgehen ist, die Anfrage auf einen bestimmten Entitätstyp einzuschränken &lt;a href="https://lobid.org/gnd/search?q=Freiburg&amp;#43;AND&amp;#43;type%3APlaceOrGeographicName" target="_blank" rel="noopener">Freiburg AND type:PlaceOrGeographicName&lt;/a>.&lt;/p>
&lt;p>Neben einschränkenden Filtern gibt es auch ausschließende. So können wir in der Anfrage mit &lt;code>NOT&lt;/code> alle Einträge mit Freibug ausschließen, die in Baden-Württemberg vorkommen: &lt;a href="https://lobid.org/gnd/search?q=Freiburg&amp;#43;AND&amp;#43;type%3APlaceOrGeographicName&amp;#43;AND&amp;#43;NOT&amp;#43;geographicAreaCode.id%3A%22https%3A%2F%2Fd-nb.info%2Fstandards%2Fvocab%2Fgnd%2Fgeographic-area-code%23XA-DE-BW%22" target="_blank" rel="noopener">Freiburg AND type:PlaceOrGeographicName AND NOT geographicAreaCode.id:&amp;ldquo;https://d-nb.info/standards/vocab/gnd/geographic-area-code#XA-DE-BW&amp;rdquo;&lt;/a>.&lt;/p>
&lt;p>Wir können auch mit &lt;code>+&lt;/code> und &lt;code>-&lt;/code> betonen welche Begriffe wir explizit suchen bzw. ausschließen: &lt;a href="https://lobid.org/gnd/search?q=%2BFreiburg&amp;#43;AND&amp;#43;type%3APlaceOrGeographicName&amp;#43;AND&amp;#43;-Breisgau" target="_blank" rel="noopener">+Freiburg AND type:PlaceOrGeographicName AND -Breisgau&lt;/a>.&lt;/p>
&lt;h3 id="beispiel-3-ungenaue-suche">Beispiel 3: Ungenaue Suche&lt;/h3>
&lt;p>Manchmal kennen wir die genaue Schreibweise eines Namens nicht, oder es gibt mehrere Varianten.
Zum Glück ist die GND üblicherweise sehr großzügig alternative Schreibweisen eines Namens zu listen, so dass mit dem Suchbegriff &lt;a href="https://lobid.org/gnd/search?q=Tschaikowski" target="_blank" rel="noopener">Tschaikowski&lt;/a> auch der gesuchte Komponist &lt;a href="https://lobid.org/gnd/118638157" target="_blank" rel="noopener">Čajkovskij&lt;/a> zu finden ist.&lt;/p>
&lt;p>Bei weniger bekannten Personen, oder unpraktischen OCR- oder Tippfehlern ist das komplizierter.
Zum Beispiel gibt es zum Zeitpunkt des Schreibens dieses Tutorials für &lt;a href="https://lobid.org/gnd/search?q=Eleonore&amp;#43;Prockaska" target="_blank" rel="noopener">Eleonore Prockaska&lt;/a> keine Treffer. Mit dem Unschärfeoperator &lt;code>~&lt;/code> und einer Distanz von &lt;code>1&lt;/code> &lt;a href="https://lobid.org/gnd/search?q=Eleonore&amp;#43;Prockaska%7E1" target="_blank" rel="noopener">Eleonore Prockaska~1&lt;/a> finden wir die gesuchte &lt;a href="https://lobid.org/gnd/13305506X" target="_blank" rel="noopener">Elenonore Prochaska&lt;/a> auf Anhieb.&lt;/p>
&lt;p>Ebenfalls hilfreich bei ungenauen Suchen sind die Operatoren &lt;code>?&lt;/code> für ein unbekanntes Zeichen und &lt;code>*&lt;/code> für möglicherweise mehrere unbekannte Zeichen.
Beispielsweise findet die Anfrage &lt;a href="https://lobid.org/gnd/search?q=Winfried&amp;#43;Kretschmann&amp;#43;dateOfBirth%3A1948" target="_blank" rel="noopener">Winfried Kretschmann AND dateOfBirth:1948&lt;/a> keine Ergebnisse, da bei &lt;a href="https://lobid.org/gnd/143926683" target="_blank" rel="noopener">Winfried Kretschmann&lt;/a> das Geburtsdatum komplett (1948-05-17) angegeben ist. Mit dem Operator &lt;code>*&lt;/code> in der Anfrage &lt;a href="https://lobid.org/gnd/search?q=Winfried&amp;#43;Kretschmann&amp;#43;dateOfBirth%3A1948*" target="_blank" rel="noopener">Winfried Kretschmann AND dateOfBirth:1948*&lt;/a> lässt sich das kompensieren.&lt;/p>
&lt;h3 id="übersicht-über-die-operatoren">Übersicht über die Operatoren&lt;/h3>
&lt;p>Es gibt noch mehr Operatoren, die wir hier nicht am Beispiel besprochen haben.
Dazu gehört die exakte Phrasensuche mit &lt;code>&amp;quot;...&amp;quot;&lt;/code> und das Boosting von einzelnen Begriffen mit &lt;code>...^5&lt;/code>.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Operatoren&lt;/th>
&lt;th>Beispiel&lt;/th>
&lt;th>Bedeutung&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>[&lt;/code>, &lt;code>]&lt;/code>&lt;/td>
&lt;td>&lt;code>[1939-09-01 TO 1945-09-02]&lt;/code>&lt;/td>
&lt;td>Einschließende &amp;ldquo;Range-Query&amp;rdquo;.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>{&lt;/code>, &lt;code>}&lt;/code>&lt;/td>
&lt;td>&lt;code>{0 TO 100}&lt;/code>&lt;/td>
&lt;td>Ausschließende &amp;ldquo;Range-Query&amp;rdquo; (1-99).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>&amp;gt;&lt;/code>, &lt;code>&amp;gt;=&lt;/code>, &lt;code>&amp;lt;&lt;/code>, &lt;code>&amp;lt;=&lt;/code>&lt;/td>
&lt;td>&lt;code>&amp;lt;2000&lt;/code>&lt;/td>
&lt;td>Offene Einschränkung auf Bereiche.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>AND&lt;/code>, &lt;code>OR&lt;/code>, &lt;code>NOT&lt;/code>, &lt;code>(&lt;/code>, &lt;code>)&lt;/code>&lt;/td>
&lt;td>&lt;code>(a OR b) AND NOT c&lt;/code>&lt;/td>
&lt;td>Boolsche Operatoren und Gruppierungen.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>+&lt;/code>, &lt;code>-&lt;/code>&lt;/td>
&lt;td>&lt;code>+Hund -Katze&lt;/code>&lt;/td>
&lt;td>Begriffe explizit ein- bzw. ausschließen.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>~&lt;/code>, &lt;code>~3&lt;/code>&lt;/td>
&lt;td>&lt;code>unschraf~2&lt;/code>&lt;/td>
&lt;td>Unscharfe Suche mit erlaubtem Abstand.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>&amp;quot;...&amp;quot;&lt;/code>&lt;/td>
&lt;td>&lt;code>&amp;quot;des Pudels Kern&amp;quot;&lt;/code>&lt;/td>
&lt;td>Exakte Suche (Phrasensuche).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>&amp;quot;...&amp;quot;~3&lt;/code>&lt;/td>
&lt;td>&lt;code>&amp;quot;des Pudels Kern&amp;quot;~3&lt;/code>&lt;/td>
&lt;td>Unscharfe Suche in Phrase.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>^&lt;/code>&lt;/td>
&lt;td>&lt;code>Wichtig^5&lt;/code>&lt;/td>
&lt;td>Boosting/Gewichtung einzelner Suchbegriffe.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>?&lt;/code>&lt;/td>
&lt;td>&lt;code>M?ier&lt;/code>&lt;/td>
&lt;td>Ein unbekannter Buchstabe.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>*&lt;/code>&lt;/td>
&lt;td>&lt;code>Politik*&lt;/code>&lt;/td>
&lt;td>Kein/mehrere unbekannte Buchstaben.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>:&lt;/code>&lt;/td>
&lt;td>&lt;code>type:Person&lt;/code>&lt;/td>
&lt;td>Suche in bestimmten Feldern.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>_exists_&lt;/code>&lt;/td>
&lt;td>&lt;code>_exists_:dateOfBirth&lt;/code>&lt;/td>
&lt;td>Nur Einträge mit Geburtsdatum.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>feld.\*&lt;/code>&lt;/td>
&lt;td>&lt;code>hasBirthPlace.\*:Warschau&lt;/code>&lt;/td>
&lt;td>Geburtsort mit Warschau in beliebigem Feld.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="aufgabe-2-nutzung-in-openrefine">Aufgabe 2: Nutzung in OpenRefine&lt;/h2>
&lt;p>Über das Reconciliation API für OpenRefine funktioniert die Nutzung der Operatoren für die Suche ähnlich.
Wir wählen eine Spalte aus, deren Daten wir an den Reconciliation Service übermitteln wollen.
Für diese Spalte können wir in dem in Abbildung 1 abgebildeten Dialog anschließend eine Typeinschränkung vornehmen.
In der rechten Spalte können wir zusätzlich die Inhalte weiterer Spalten mit Feldern in der GND verknüpfen und mit übermitteln.&lt;/p>
&lt;figure id="figure-bildschirmfoto-des-reconciliation-dialogs-in-openrefine">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto des Reconciliation Dialogs in OpenRefine." srcset="
/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-dialog_huced79df3f49bec1b72c3454a39aafc69_29684_8ef9af7561646e8a40bf5e996e31d0e3.webp 400w,
/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-dialog_huced79df3f49bec1b72c3454a39aafc69_29684_aa8aec2d9739a0ccc13724a873dada32.webp 760w,
/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-dialog_huced79df3f49bec1b72c3454a39aafc69_29684_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-dialog_huced79df3f49bec1b72c3454a39aafc69_29684_8ef9af7561646e8a40bf5e996e31d0e3.webp"
width="760"
height="510"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto des Reconciliation Dialogs in OpenRefine.
&lt;/figcaption>&lt;/figure>
&lt;p>Das schauen wir uns direkt in OpenRefine an und laden dafür die folgende Datei in ein Projekt.&lt;/p>
&lt;blockquote>
&lt;p>💾 Wir benötigen die folgende Datei (Rechtsklick und &amp;ldquo;Ziel speichern unter&amp;hellip;&amp;rdquo;):&lt;/p>
&lt;/blockquote>
&lt;a href="https://fdmlab.landesarchiv-bw.de/data/openrefine-workshop/15_kretschmann-kabinett-iii-mit-fehlern.csv" target="_blank">
&lt;i class="fas fa-file-csv pr-1 fa-fw">&lt;/i>Kretschmann Kabinett III mit Fehlern&lt;/a>
&lt;p>In dieser Datei ist das Kabinett Kretschmann III.
Wie in Abbildung 2 zu erkennen, sind die Namen mit OCR üblichen Fehlern versehen.
Wir ignorieren die Spalte &amp;ldquo;GND-ID&amp;rdquo;, mit der wir die Namen sofort wieder korrekt aus der GND nachladen könnten.
Diese Spalte benötigen wir später zur schnellen Überprüfung der Ergebnisse. Unser Szenario lautet daher: Wir haben eine Liste mit Namen, deren genaue Schreibweise wir nicht kennen, können diese Namen für den Abgleich jedoch mit einem ungefähren Geburtsdatum und einem Geburtsort ergänzen.&lt;/p>
&lt;figure id="figure-bildschirmfoto-des-projektes-direkt-nach-dem-import">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto des Projektes direkt nach dem Import." srcset="
/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-datenset_huebcf56212d057c6a25197604ef4d79f8_24387_aac9bee388070d6f7f4070b5a6e5d5b9.webp 400w,
/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-datenset_huebcf56212d057c6a25197604ef4d79f8_24387_f9ec8a4bb4d1fad7d4098577330780b1.webp 760w,
/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-datenset_huebcf56212d057c6a25197604ef4d79f8_24387_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-datenset_huebcf56212d057c6a25197604ef4d79f8_24387_aac9bee388070d6f7f4070b5a6e5d5b9.webp"
width="600"
height="325"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto des Projektes direkt nach dem Import.
&lt;/figcaption>&lt;/figure>
&lt;h3 id="transformation-1-name-fuzzy">Transformation 1: Name fuzzy&lt;/h3>
&lt;p>Zuerst wollen wir dem lobid GND Reconciliation Service mitteilen, dass die Begriffe in der Spalte potentiell fehlerhaft sind.
Dafür haben wir in Aufgabe 1 den Fuzzy-Operator &lt;code>~&lt;/code> kennen gelernt.
Wir transformieren also die Spalte via
&amp;ldquo;Name&amp;quot;
&lt;i class="far fa-caret-square-down pr-1 fa-fw">&lt;/i>&amp;quot;Edit cells&amp;quot;
&lt;i class="fas fa-caret-right pr-1 fa-fw">&lt;/i>&amp;quot;Transform&amp;hellip;&amp;rdquo;
und fügen mit dem folgenden GREL Ausdruck zu jedem Wort &lt;code>~3&lt;/code> hinzu.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="nx">forEach&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">value&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">split&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; &amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="nx">v&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">v&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s2">&amp;#34;~3&amp;#34;&lt;/span>&lt;span class="p">).&lt;/span>&lt;span class="nx">join&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="transformation-2-geburtsdatum-reduzieren">Transformation 2: Geburtsdatum reduzieren&lt;/h3>
&lt;p>Bei den Geburtsdaten ist in der GND manchmal das komplette Geburtsdatum angegeben, manchmal aber auch nur das Geburtsjahr.
Sollten unsere Daten genauer sein, als die in der GND, also wir das komplette Geburtsdatum haben, die GND aber nur das Geburtsjahr, oder umgekehrt, dann würden wir mit der Spalte Geburtsdatum richtige Treffer ausschließen.&lt;/p>
&lt;p>Daher nehmen wir nur das Geburts&lt;strong>jahr&lt;/strong> und ergänzen das Wildcard-Zeichen &lt;code>*&lt;/code> via
&amp;ldquo;Geburtsdatum&amp;quot;
&lt;i class="far fa-caret-square-down pr-1 fa-fw">&lt;/i>&amp;quot;Edit cells&amp;quot;
&lt;i class="fas fa-caret-right pr-1 fa-fw">&lt;/i>&amp;quot;Transform&amp;hellip;&amp;rdquo;
und dem folgenden GREL Ausdruck.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="nx">value&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">split&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;-&amp;#34;&lt;/span>&lt;span class="p">)[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s2">&amp;#34;*&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="transformation-3-geburtsort-ergänzen">Transformation 3: Geburtsort ergänzen&lt;/h3>
&lt;p>Über den lobid GND Reconciliation Service können wir auch direkt verknüpfte Objekte durchsuchen.
Wir könnten im Reconciliation Dialog also direkt die Spalte &amp;ldquo;Geburtsort&amp;rdquo; mit der Eigenschaft &amp;ldquo;Geburtsort&amp;rdquo; in der GND verknüpfen.&lt;/p>
&lt;p>Da wir die noch präzisere GND-ID des Geburtsortes haben, verwenden wir diese für unseren Abgleich.
Dafür muss die Spalte noch mit dem Präfix &lt;code>https://d-nb.info/gnd/&lt;/code> ergänzt werden.
Das funktioniert über
&amp;ldquo;Geburtsort (GND-ID)&amp;ldquo;
&lt;i class="far fa-caret-square-down pr-1 fa-fw">&lt;/i>&amp;quot;Edit cells&amp;quot;
&lt;i class="fas fa-caret-right pr-1 fa-fw">&lt;/i>&amp;quot;Transform&amp;hellip;&amp;rdquo;
und dem folgenden GREL Ausdruck.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;https://d-nb.info/gnd/&amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="nx">value&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Die für den Reconciliation Vorgang umgewandelten Spalten sind in Abbildung 3 abgebildet.&lt;/p>
&lt;figure id="figure-bildschirmfoto-des-projektes-nach-den-transformationen">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto des Projektes nach den Transformationen." srcset="
/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-datenset-modified_hue3b001b1aeae5cf1a1be814852903a66_26680_2c7978826d1bd4a16c105acc8c5c6612.webp 400w,
/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-datenset-modified_hue3b001b1aeae5cf1a1be814852903a66_26680_4b1229418db49307c7af1d942ab7ba5c.webp 760w,
/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-datenset-modified_hue3b001b1aeae5cf1a1be814852903a66_26680_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-datenset-modified_hue3b001b1aeae5cf1a1be814852903a66_26680_2c7978826d1bd4a16c105acc8c5c6612.webp"
width="485"
height="324"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto des Projektes nach den Transformationen.
&lt;/figcaption>&lt;/figure>
&lt;h3 id="abgleich-durchführen">Abgleich durchführen&lt;/h3>
&lt;p>Den Reconciliation Vorgang starten wir mit
&amp;ldquo;Name&amp;quot;
&lt;i class="far fa-caret-square-down pr-1 fa-fw">&lt;/i>&amp;quot;Reconcile&amp;quot;
&lt;i class="fas fa-caret-right pr-1 fa-fw">&lt;/i>&amp;quot;Start reconciling&amp;rdquo;
und den in Abbildung 4 gezeigten Einstellungen.&lt;/p>
&lt;figure id="figure-bildschirmfoto-der-einstellungen-für-den-reconciliation-dialog">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto der Einstellungen für den Reconciliation Dialog." srcset="
/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-dialog-settings_hua6951dc4ac8f9d05ca8937eff804199a_31297_d86b1fca3e4fa2a1dc9dae615387cdaf.webp 400w,
/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-dialog-settings_hua6951dc4ac8f9d05ca8937eff804199a_31297_d1041910f8813041684436cf6b50e041.webp 760w,
/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-dialog-settings_hua6951dc4ac8f9d05ca8937eff804199a_31297_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/15-erweiterter-gnd-abgleich-mit-lobid/screenshot-openrefine-lobid-gnd-dialog-settings_hua6951dc4ac8f9d05ca8937eff804199a_31297_d86b1fca3e4fa2a1dc9dae615387cdaf.webp"
width="760"
height="508"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto der Einstellungen für den Reconciliation Dialog.
&lt;/figcaption>&lt;/figure>
&lt;p>Durch die ergänzenden Spalten konnten bei unserem Experiment schon 11 von 13 Politikern mit hoher Konfidenz automatisch gematcht werden.
Die restlichen Kandidaten &lt;em>matchen&lt;/em> wir automatisch via
&amp;ldquo;Name&amp;quot;
&lt;i class="far fa-caret-square-down pr-1 fa-fw">&lt;/i>&amp;quot;Reconcile&amp;quot;
&lt;i class="fas fa-caret-right pr-1 fa-fw">&lt;/i>&amp;quot;Actions&amp;quot;
&lt;i class="fas fa-caret-right pr-1 fa-fw">&lt;/i>&amp;quot;Match each cell to its best candidate&amp;rdquo;.&lt;/p>
&lt;p>Um die Überprüfung der Ergebnisse automatisch vorzunehmen, speichern wir uns die GND-ID der vom Reconciliation Service gefundenen Treffer in einer neuen Spalte &amp;ldquo;Abgleich&amp;rdquo; über
&amp;ldquo;Name&amp;quot;
&lt;i class="far fa-caret-square-down pr-1 fa-fw">&lt;/i>&amp;quot;Edit column&amp;quot;
&lt;i class="fas fa-caret-right pr-1 fa-fw">&lt;/i>&amp;quot;Add column based on this column&amp;rdquo;
und vergleichen sie dort direkt mit der Original &amp;ldquo;GND-ID&amp;rdquo; Spalte mit dem folgenden GREL Ausdruck.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="nx">cell&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">recon&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">match&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">id&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="nx">row&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">cells&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;GND-ID&amp;#34;&lt;/span>&lt;span class="p">].&lt;/span>&lt;span class="nx">value&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Bei unserem Experiment waren alle Treffer korrekt (&lt;code>true&lt;/code>).&lt;/p>
&lt;h3 id="weitere-operationen">Weitere Operationen&lt;/h3>
&lt;p>Mit ähnlichen Transformationen können wir zum Beispiel auch &amp;ldquo;Range-Queries&amp;rdquo; oder andere Operatoren wie &lt;code>AND&lt;/code>, &lt;code>OR&lt;/code>, &amp;hellip; erzeugen.&lt;/p>
&lt;p>&lt;del>Jedoch gibt es mit manchen Operatoren (&lt;code>+&lt;/code>, &lt;code>-&lt;/code>, &lt;code>^&lt;/code>, &lt;code>&amp;gt;&lt;/code>, &lt;code>&amp;lt;&lt;/code>, &lt;code>&amp;gt;=&lt;/code>, &lt;code>&amp;lt;=&lt;/code>) aktuell ein Problem, da sie von dem lobid GND Reconciliation API gefiltert und nicht an Elasticsearch weitergegeben werden.&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>
Daher benötigen wir zur Verwendung dieser Operatoren aktuell einen Workaround.&lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref">2&lt;/a>&lt;/sup>&lt;/del>&lt;/p>
&lt;p>&lt;del>Bei Anfragen an das lobid GND Reconciliation API mit Gruppierungen wie &lt;code>(... OR ...)&lt;/code> werden die oben genannten Operatoren &lt;strong>nicht&lt;/strong> gefiltert. Wir können in OpenRefine also die Anfrage &lt;code>&amp;lt;1939&lt;/code> umwandeln in &lt;code>(&amp;lt;1939 OR &amp;lt;1939)&lt;/code> oder anstatt &lt;code>+Freiburg -Breisgau&lt;/code> können wir explizit &lt;code>(+Freiburg AND -Breisgau)&lt;/code> verwenden.&lt;/del>&lt;/p>
&lt;div class="alert alert-note">
&lt;div>
&lt;strong>Update 15. Juni 2022&lt;/strong>: Der beschriebene Workaround ist mit der Umsetzung von &lt;a href="https://github.com/hbz/lobid-gnd/issues/309" target="_blank" rel="noopener">Use ElasticSearch validation endpoint to check queries before executing them&lt;/a> nicht mehr notwendig.
&lt;/div>
&lt;/div>
&lt;h2 id="fazit">Fazit&lt;/h2>
&lt;p>Mit dem GND Reconciliation API als Aufbau auf die Suchtechnologie Elasticsearch verbindet die lobid Daten in OpenRefine mit den Daten der Gemeinsamen Normdatei.
Die von Elasticsearch unterstützten Operatoren zur Einschränkung und Verbesserung der Suchergebnisse sind insbesondere beim Abgleich von großen Datenmengen ein sehr wertvolles Mittel, um auch für große Datenmengen eine übersichtliche Menge an idealerweise passenden Treffern automatisch zu ermitteln.&lt;/p>
&lt;hr>
&lt;p>Im nächsten Teil beschäftigen wir uns mit dem erweiterten Datenabgleich zwischen OpenRefine und Wikidata.&lt;/p>
&lt;ul class="cta-group">
&lt;li>
&lt;a href="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata" class="btn btn-primary px-3 py-3">16 Erweiterter Abgleich mit Wikidata&lt;/a>
&lt;/li>
&lt;/ul>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>Siehe &lt;a href="https://github.com/hbz/lobid-gnd/issues/304" target="_blank" rel="noopener">Using range query parameter via OpenRefine Reconciliation&lt;/a> auf GitHub.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:2">
&lt;p>Eine Lösung ist mit &lt;a href="https://github.com/hbz/lobid-gnd/issues/309" target="_blank" rel="noopener">Use ElasticSearch validation endpoint to check queries before executing them&lt;/a> in Arbeit.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item></channel></rss>