<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Experimente | FDMLab@LABW</title><link>https://fdmlab.landesarchiv-bw.de/tag/experimente/</link><atom:link href="https://fdmlab.landesarchiv-bw.de/tag/experimente/index.xml" rel="self" type="application/rss+xml"/><description>Experimente</description><generator>Wowchemy (https://wowchemy.com)</generator><language>de-de</language><lastBuildDate>Mon, 31 Jul 2023 00:00:00 +0000</lastBuildDate><image><url>https://fdmlab.landesarchiv-bw.de/media/sharing.jpg</url><title>Experimente</title><link>https://fdmlab.landesarchiv-bw.de/tag/experimente/</link></image><item><title>Abschluss des FDMLab@LABW</title><link>https://fdmlab.landesarchiv-bw.de/post/2023-07-abschluss-des-fdmlab/</link><pubDate>Mon, 31 Jul 2023 00:00:00 +0000</pubDate><guid>https://fdmlab.landesarchiv-bw.de/post/2023-07-abschluss-des-fdmlab/</guid><description>&lt;p>Nach drei Jahren endet das Projekt FDMLab@LABW.
Wir nutzen die Gelegenheit, um hier im Blog noch einmal einen Überblick über unsere Ergebnisse und Projekte zu geben.&lt;/p>
&lt;div class="alert alert-">
&lt;div>
Einen ausführlichen &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2022-07-ein-rueckblick-auf-zwei-jahre-fdmlab/">Rückblick über die Arbeit in den ersten beiden Jahren des FDMlab&lt;/a> haben wir schon letztes Jahr geschrieben.
&lt;/div>
&lt;/div>
&lt;p>In der &amp;ldquo;Phase II&amp;rdquo; unserer Förderzeit haben wir uns mehr auf praktische Aufgaben konzentriert.&lt;/p>
&lt;h2 id="ki-im-archiv">KI im Archiv&lt;/h2>
&lt;p>Das FDMLab wurde dazu eingeladen an den EDV-Tagen 2022 einen &lt;a href="https://fdmlab.landesarchiv-bw.de/event/2022-ki-fuer-erschliessung/">Vortrag zum Thema KI im Archiv&lt;/a> zu halten.
Das Thema beschäftigte uns auch mit dem Aufkommen eines allgemeinen Zugangs zu Large Language Modellen via ChatGPT bei einer Gastvorlesung bei der &lt;a href="https://ufind.univie.ac.at/de/course.html?lv=070185&amp;amp;semester=2022W" target="_blank" rel="noopener">VU Digitalisierung an der Universität Wien im Wintersemester 2022/2023&lt;/a>.&lt;/p>
&lt;p>Gerade das Thema Künstliche Intelligenz ist ein Bereich, für den es scheinbar schon viele fertige Lösungen gibt.
In der Domäne von archivischem Material liefern diese fertigen Lösungen häufig noch nicht die benötigte Qualität.
Umso wichtiger ist ein regelmäßiger Austausch zu funktionierenden und nicht funktionierenden Ansätzen.
Bei unserem Vortrag an den EDV-Tagen konnten wir nicht nur über unsere Erfahrungen berichten, sondern darauf aufbauend Feedback, Ideen und weitere Datenservices anderer Projekte kennen lernen.&lt;/p>
&lt;h2 id="openrefine">OpenRefine&lt;/h2>
&lt;p>Die OpenRefine Workshops wurden mit weiteren Anleitungen versehen.
Zum Beispiel, wie man &lt;a href="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/16-erweiterter-abgleich-mit-wikidata/">komplexe Datenabgleiche mit Wikidata&lt;/a> und den &lt;a href="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/17-erweiterter-abgleich-mit-getty/">Getty Thesauri&lt;/a> durchführen kann.
Außerdem wurden weitere Tricks zum &lt;a href="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/12-daten-zwischen-projekten-abgleichen/">Abgleich von Daten zwischen Projekten&lt;/a> ergänzt.&lt;/p>
&lt;p>Neben der Begleitung von Workshops, führte das FDMLab zusammen mit &lt;a href="https://fdmlab.landesarchiv-bw.de/author/verena-mack/">Verena Mack&lt;/a> von der &lt;a href="https://www.leo-bw.de/web/guest/gnd-agentur" target="_blank" rel="noopener">GND-Agentur LEO-BW-Regional&lt;/a> einen &lt;a href="https://fdmlab.landesarchiv-bw.de/event/2023-normdatenworkshop/">Normdatenworkshop beim 82. Südwestdeutscher Archivtag&lt;/a> durch.&lt;/p>
&lt;div class="alert alert-">
&lt;div>
Die Inhalte der OpenRefine Workshops bleiben vorerst mit dem FDMLab Blog online verfügbar.
Es gibt jedoch Überlegungen die Workshop Inhalte vom Blog zu entkoppeln und in einem anderen Format anzubieten.
&lt;/div>
&lt;/div>
&lt;h2 id="dokument--layout--und-texterkennung">Dokument-, Layout- und Texterkennung&lt;/h2>
&lt;p>Mit unseren eher &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2021-09-training-strukturmodell-tabellen-mit-p2pala/">durchwachsenen Erfahrungen bei der Layouterkennung von tabellarischen Inhalten in Transkribus&lt;/a>, beschäftigten wir uns mit Technologien, die für uns für die Formular- und Tabellenerkennung besser geeignet sein könnten.
Außerdem beschäftigte uns nach wie vor die Erkennung von Texten, die aus unterschiedlichen Handschriften bestehen.&lt;/p>
&lt;p>Dabei betrachteten wir unter anderem &lt;a href="https://github.com/facebookresearch/detectron2/" target="_blank" rel="noopener">Detectron2&lt;/a> und die Transformer basierte Texterkennung (TrOCR bzw. TrHTR).
Da diese Technologien noch 2023 in Transkribus selbst verfügbar sein werden, verzichteten wir auf umfangreichere Experimente.&lt;/p>
&lt;p>Unsere Erkenntnisse konnten wir weiterhin bei der Unterstützung und der nun vertieften Zusammenarbeit im Projekt &lt;a href="https://www.landesarchiv-bw.de/de/landesarchiv/projekte/transformation-der-wiedergutmachung/71002" target="_blank" rel="noopener">Transformation der Wiedergutmachung&lt;/a> anwenden.&lt;/p>
&lt;h2 id="provenienzforschung">Provenienzforschung&lt;/h2>
&lt;p>In der Phase II kooperierte das FDMLab intensiv mit &lt;a href="https://fdmlab.landesarchiv-bw.de/author/katharina-hardt/">Katharina Hardt&lt;/a> bei der Bearbeitung des Projektes &lt;a href="https://www.landesarchiv-bw.de/de/landesarchiv/projekte/provenienzforschung-im-landesarchiv/projektueberblick-/61576" target="_blank" rel="noopener">Provenienzforschung im Landesarchiv&lt;/a>.&lt;/p>
&lt;p>Konkret ging es um eine Aufarbeitung von Metadaten mit Methoden des maschinellen Lernens.&lt;/p>
&lt;h3 id="extraktion-von-schlagwörten-zu-kunst--und-kulturobjekten">Extraktion von Schlagwörten zu Kunst- und Kulturobjekten&lt;/h3>
&lt;p>Es sollten automatisiert aus relevanten Akten spezifische Schlagwörter extrahiert werden.
Dabei konnten wir zeigen, dass wir mit einem selbst trainierten Modell zum Named-entity Recognition mit überschaubarem Mehraufwand deutlich bessere Ergebnisse erzielen konnten, als mit lexikon- oder regelbasierten Ansätzen. Details zum Vorgehen und dem Diagramm in Abbildung 1 finden sich unter &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2022-09-ner-modell-mit-gnd-starthilfe-trainieren/">NER Modell mit GND Starthilfe trainieren&lt;/a>.&lt;/p>
&lt;figure id="figure-scatterplot-für-precision-und-recall-für-die-einzelnen-datensätze">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Scatterplot für Precision und Recall für die einzelnen Datensätze." srcset="
/post/2023-07-abschluss-des-fdmlab/metrics_hu25f59ad08821a07f7e62d84347c9b3d7_25695_670776311626ecdef0eb7da8ead0b65c.webp 400w,
/post/2023-07-abschluss-des-fdmlab/metrics_hu25f59ad08821a07f7e62d84347c9b3d7_25695_015a3bc5bbc9919d78426f9f78d34840.webp 760w,
/post/2023-07-abschluss-des-fdmlab/metrics_hu25f59ad08821a07f7e62d84347c9b3d7_25695_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2023-07-abschluss-des-fdmlab/metrics_hu25f59ad08821a07f7e62d84347c9b3d7_25695_670776311626ecdef0eb7da8ead0b65c.webp"
width="423"
height="432"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Scatterplot für Precision und Recall für die einzelnen Datensätze.
&lt;/figcaption>&lt;/figure>
&lt;h3 id="massenabgleich-mit-gnd">Massenabgleich mit GND&lt;/h3>
&lt;p>Die extrahierten Schlagwörter wurden anschließend mit den Daten der Gemeinsamen Normdatei (GND) angereichert.
Fehlende Begriffe wurden in Kooperation mit der &lt;a href="https://www.leo-bw.de/web/guest/gnd-agentur" target="_blank" rel="noopener">GND-Agentur LEO-BW-Regional&lt;/a> in der GND angelegt.&lt;/p>
&lt;div class="mermaid">---
title: Workflow GND
config:
look: handDrawn
theme: neutral
---
flowchart LR
filtern["Filtern"]
ner["NER"]
normalisieren["Normalisieren"]
gnd_abgleich["GND Abgleich"]
gnd_netzwerk["Netzwerk erstellen"]
gnd_beantragen["Begriffe Beantragen"]
netzwerk_anpassen["Netzwerk anpassen"]
import["Importieren"]
filtern --> ner --> normalisieren --> gnd_abgleich --> gnd_netzwerk &amp; gnd_beantragen --> netzwerk_anpassen --> import
&lt;/div>
&lt;p>Neben dem Vorteil, dass Normdaten durch einheitliche Benennung und Identifizierung die Auffindbarkeit erhöhen, konnten wir die Netzwerkstruktur der GND verwenden, um die Schlagwörter durch weitere relevanten Schlagwörter anzureichern.
Details zum Vorgehen finden sich im Artikel &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2023-02-ner-und-gnd-zur-verbesserung-der-erschliessung/">Named-entity Recognition und Gemeinsame Normdatei zur Verbesserung der Erschließung&lt;/a>.&lt;/p>
&lt;div class="mermaid">flowchart LR
4175414-1(["Porzellantasse"]):::initial
click 4175414-1 href "https://lobid.org/gnd/4175414-1" "4175414-1" _blank
4184488-9["Tasse"]
click 4184488-9 href "https://lobid.org/gnd/4184488-9" "4184488-9" _blank
4124863-6["Essgeschirr"]
click 4124863-6 href "https://lobid.org/gnd/4124863-6" "4124863-6" _blank
4186181-4["Trinkgefäß"]
click 4186181-4 href "https://lobid.org/gnd/4186181-4" "4186181-4" _blank
4140542-0["Geschirr #lt;Hausrat#gt;"]
click 4140542-0 href "https://lobid.org/gnd/4140542-0" "4140542-0" _blank
4128003-9["Gefäß"]
click 4128003-9 href "https://lobid.org/gnd/4128003-9" "4128003-9" _blank
4132060-8["Hausrat"]
click 4132060-8 href "https://lobid.org/gnd/4132060-8" "4132060-8" _blank
4020299-9["Gerät"]
click 4020299-9 href "https://lobid.org/gnd/4020299-9" "4020299-9" _blank
4175414-1 --> 4184488-9
4184488-9 --> 4124863-6
4184488-9 --> 4186181-4
4124863-6 --> 4140542-0
4186181-4 --> 4128003-9
4140542-0 --> 4132060-8
4128003-9 --> 4020299-9
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
classDef category fill:#FFF,stroke:#1fbeb8,stroke-width:3px,color:#000;
classDef initial fill:#FFF,stroke:#4dbd05,stroke-width:3px,color:#000;
&lt;/div>
&lt;h3 id="schlagwörter-netzwerk">Schlagwörter Netzwerk&lt;/h3>
&lt;p>Die Anreicherung mit Oberbegriffen, funktionierte nicht in allen Schlagwortbereichen wie erwartet.
Darüber haben wir ausführlich unter &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/">GND Hierarchieinformationen zur Verbesserung der Erschließung&lt;/a> berichtet.
Bei einer erweiterten Analyse der Netzwerkstrukturen der Schlagwörter in der GND konnten wir nicht nur zeigen, dass es sehr viele unverknüpfte Schlagwörter gibt. Wie in Abbildung 2 zu sehen, gibt es viele Strukturen, die nur aus einem Oberbegriff und sehr vielen direkten Unterbegriffen bestehen.&lt;/p>
&lt;figure id="figure-boxplot-zur-darstellung-der-verteilung-der-anzahl-von-kindknoten-pro-komponentengröße">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Boxplot zur Darstellung der Verteilung der Anzahl von Kindknoten pro Komponentengröße." srcset="
/post/2023-07-abschluss-des-fdmlab/gnd-hierarchy-analyze-boxplot-degree_hu87aeaab33c49bee17e43933941fdaea1_99270_f3f65ead298de022d683cbda529f81c3.webp 400w,
/post/2023-07-abschluss-des-fdmlab/gnd-hierarchy-analyze-boxplot-degree_hu87aeaab33c49bee17e43933941fdaea1_99270_7d4d0a7e2424787f62b2d02185cce7b4.webp 760w,
/post/2023-07-abschluss-des-fdmlab/gnd-hierarchy-analyze-boxplot-degree_hu87aeaab33c49bee17e43933941fdaea1_99270_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2023-07-abschluss-des-fdmlab/gnd-hierarchy-analyze-boxplot-degree_hu87aeaab33c49bee17e43933941fdaea1_99270_f3f65ead298de022d683cbda529f81c3.webp"
width="760"
height="507"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Boxplot zur Darstellung der Verteilung der Anzahl von Kindknoten pro Komponentengröße.
&lt;/figcaption>&lt;/figure>
&lt;p>Mit Methoden der Netzwerkanalyse und manuellen Verknüpfungen erarbeiteten wir das in Abbildung 3 annotierte Netzwerk von verknüpften Schlagwörten für relevante Akten für die Provenienzforschung in den Archivabteilungen des Landesarchivs Baden-Württemberg.&lt;/p>
&lt;figure id="figure-annotierte-visualisierung-des-schlagwortnetzwerkes-von-prov-relevanten-akten">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Annotierte Visualisierung des Schlagwortnetzwerkes von Prov. relevanten Akten." srcset="
/post/2023-07-abschluss-des-fdmlab/netzwerk-nach-restrukturierung_hu21ac6ff23c36a1c7eb015ad7158805e9_574541_37eade792fef720490e5a67bad2f4603.webp 400w,
/post/2023-07-abschluss-des-fdmlab/netzwerk-nach-restrukturierung_hu21ac6ff23c36a1c7eb015ad7158805e9_574541_07db364cd2f153c52910d2524e938d90.webp 760w,
/post/2023-07-abschluss-des-fdmlab/netzwerk-nach-restrukturierung_hu21ac6ff23c36a1c7eb015ad7158805e9_574541_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2023-07-abschluss-des-fdmlab/netzwerk-nach-restrukturierung_hu21ac6ff23c36a1c7eb015ad7158805e9_574541_37eade792fef720490e5a67bad2f4603.webp"
width="683"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Annotierte Visualisierung des Schlagwortnetzwerkes von Prov. relevanten Akten.
&lt;/figcaption>&lt;/figure>
&lt;h3 id="ner-für-metadaten-im-archiv">NER für Metadaten im Archiv&lt;/h3>
&lt;p>Neben der Erkennung von spezifischen Objekten experimentierten wir auch mit der Möglichkeit ein allgemeineres Modell für NER zu trainieren.&lt;/p>
&lt;p>Hier ein mit einem Standard NER Modell verarbeiteter Beispieltext über das Landesarchiv Baden-Württemberg, welcher von der englischsprachigen Wikipedia angepasst wurde. &lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>&lt;/p>
&lt;div class="entities" style="line-height: 2.5; direction: ltr">&lt;br>
&lt;mark class="entity" style="background: #cedb9c; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
The State Archives
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">ORG&lt;/span>
&lt;/mark>
of Baden-Württemberg (
&lt;mark class="entity" style="background: #cedb9c; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
LABW
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">ORG&lt;/span>
&lt;/mark>
) encompasses all state archives in
&lt;mark class="entity" style="background: #e7ba52; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
Baden-Württemberg
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">GPE&lt;/span>
&lt;/mark>
.&lt;br>
&lt;mark class="entity" style="background: #cedb9c; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
The State Archives
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">ORG&lt;/span>
&lt;/mark>
of Baden-Württemberg is part of the portfolio of
&lt;mark class="entity" style="background: #d6616b; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
the Baden-Württemberg Ministry for Science, Research and Arts
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">FAC&lt;/span>
&lt;/mark>
.&lt;br>It keeps historic documents that reach back to
&lt;mark class="entity" style="background: #e7cb94; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
the middle ages
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">DATE&lt;/span>
&lt;/mark>
.&lt;br>The current President of
&lt;mark class="entity" style="background: #cedb9c; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
the State Archives
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">ORG&lt;/span>
&lt;/mark>
of Baden-Württemberg has been Prof. Dr.
&lt;mark class="entity" style="background: #a55194; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
Gerald Maier
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">PERSON&lt;/span>
&lt;/mark>
since
&lt;mark class="entity" style="background: #e7cb94; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
February 1st, 2018
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">DATE&lt;/span>
&lt;/mark>
.&lt;br>It employs
&lt;mark class="entity" style="background: #843c39; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
around 250
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">CARDINAL&lt;/span>
&lt;/mark>
people at
&lt;mark class="entity" style="background: #843c39; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
8
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">CARDINAL&lt;/span>
&lt;/mark>
locations.&lt;br>&lt;/div>
&lt;hr>
&lt;p>Das Model &lt;em>en_core_web_lg&lt;/em> hat generell einen &lt;strong>f-score&lt;/strong> von &lt;strong>0,85&lt;/strong> und unterscheidet &lt;strong>18&lt;/strong> Arten von &lt;strong>Entitäten&lt;/strong>: CARDINAL, DATE, EVENT, FAC, GPE, LANGUAGE, LAW, LOC, MONEY, NORP, ORDINAL, ORG, PERCENT, PERSON, PRODUCT, QUANTITY, TIME und WORK_OF_ART. &lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref">2&lt;/a>&lt;/sup>&lt;/p>
&lt;hr>
&lt;p>Eine ähnliche Auswahl an Entitätenklassen und Qualität wäre natürlich auch für unsere Daten im Archiv wünschenswert.
Daher haben wir zusätzliche Experimente mit dem Training eines spezifischen NER Modells mit den folgenden Klassen durchgeführt:&lt;/p>
&lt;ul>
&lt;li>PER: Person - Personen und fiktive Personen wie z.B. Künstlernamen&lt;/li>
&lt;li>ORG: Organization - Firmen, Behörden, Institutionen, Vereine, &amp;hellip;&lt;/li>
&lt;li>FAC: Facility - Gebäude, Flughäfen, Straßen, Brücken, &amp;hellip;&lt;/li>
&lt;li>GPE: Geopolitical Entities - Länder, Bundesländer, Landkreise, Städte&lt;/li>
&lt;li>LOC: Location - Non-GPE Locations - Berge, Landschaftsgebiete, Flüsse, Seen, &amp;hellip;&lt;/li>
&lt;li>EVENT: Benannte Events - Weltmeisterschaften, Zweiter Weltkrieg, &amp;hellip;&lt;/li>
&lt;/ul>
&lt;p>Mit dem auf Transformern basierten Modell von &lt;a href="https://spacy.io/" target="_blank" rel="noopener">spaCy&lt;/a> konnten wir auf unseren Testdaten die in der folgenden Tabelle gelisteten Werte erzielen:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Label&lt;/th>
&lt;th style="text-align:right">Precision&lt;/th>
&lt;th style="text-align:right">Recall&lt;/th>
&lt;th style="text-align:right">F1-Score&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>GPE&lt;/td>
&lt;td style="text-align:right">96,10&lt;/td>
&lt;td style="text-align:right">97,14&lt;/td>
&lt;td style="text-align:right">96,62&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>PER&lt;/td>
&lt;td style="text-align:right">96,45&lt;/td>
&lt;td style="text-align:right">96,62&lt;/td>
&lt;td style="text-align:right">96,54&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>FAC&lt;/td>
&lt;td style="text-align:right">95,11&lt;/td>
&lt;td style="text-align:right">94,40&lt;/td>
&lt;td style="text-align:right">94,76&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ORG&lt;/td>
&lt;td style="text-align:right">91,72&lt;/td>
&lt;td style="text-align:right">89,78&lt;/td>
&lt;td style="text-align:right">90,74&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>LOC&lt;/td>
&lt;td style="text-align:right">90,48&lt;/td>
&lt;td style="text-align:right">89,76&lt;/td>
&lt;td style="text-align:right">90,12&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>EVENT&lt;/td>
&lt;td style="text-align:right">94,41&lt;/td>
&lt;td style="text-align:right">90,00&lt;/td>
&lt;td style="text-align:right">92,15&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Das Modell hat für die Klassen EVENT, FAC und LOC jedoch zu wenig Beispiele in den Trainings- und Testdaten, um verlässliche Aussagen zu treffen.
Auch sind die Metadaten für die für die Provenienzforschung relevanten Akten sehr spezifisch, so dass das Modell für die Anwendbarkeit auf anderen Beständen ein Nachtraining erfordert.&lt;/p>
&lt;p>Im Vergleich zum Training des spezifischen NER Modells für die Erkennung von Kunst- und Kulturobjekten war das Training deutlich aufwendiger. Wir gehen jedoch davon aus, die Trainingsdaten in anderen Projekten ergänzen zu können und so Schritt für Schritt zu einem generischen Modell für unsere Daten zu kommen.&lt;/p>
&lt;div class="alert alert-">
&lt;div>
Da etwas mehr als die Hälfte der für die Provenienzforschung relevanten Akten noch einer Sperrfrist unterliegen, können wir weder die Trainings- bzw. Testdaten noch das Modell veröffentlichen.
&lt;/div>
&lt;/div>
&lt;h3 id="spancat-für-personendaten">SpanCat für Personendaten&lt;/h3>
&lt;p>Ein komplexerer Fall stellt die Erkennung von semi-strukturierten Pesonendaten in den Akten und Metadaten unserer Aktenbestände dar. Hier hatten wir Probleme mit klassischen NER Ansätzen, da wir teilweise sehr lange Entitäten haben, die sich auch überlappen können.&lt;/p>
&lt;p>Hier experimentierten wir mit &lt;a href="https://explosion.ai/blog/spancat" target="_blank" rel="noopener">SpanCat&lt;/a> und konnten initial recht gute Ergebnisse erzielen.&lt;/p>
&lt;figure id="figure-erkennung-von-strukturierten-personendaten-mit-spancat">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Erkennung von strukturierten Personendaten mit SpanCat." srcset="
/post/2023-07-abschluss-des-fdmlab/labw-span-per-example_hu38b48133166d875a38630c05e607b05a_12036_ecb2520151642ac7f9bdac2e6e1302c3.webp 400w,
/post/2023-07-abschluss-des-fdmlab/labw-span-per-example_hu38b48133166d875a38630c05e607b05a_12036_9fe6547ceae69780f5201cc5529be1ca.webp 760w,
/post/2023-07-abschluss-des-fdmlab/labw-span-per-example_hu38b48133166d875a38630c05e607b05a_12036_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2023-07-abschluss-des-fdmlab/labw-span-per-example_hu38b48133166d875a38630c05e607b05a_12036_ecb2520151642ac7f9bdac2e6e1302c3.webp"
width="759"
height="71"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Erkennung von strukturierten Personendaten mit SpanCat.
&lt;/figcaption>&lt;/figure>
&lt;p>Es stellte sich jedoch heraus, dass wir im Vergleich zu unserem oben beschriebenen NER Modell deutlich mehr und diversere Trainingsdaten benötigen. Besonders das Trainieren von proportional unterrepräsentierten Features, wie zum Beispiel Berufsangaben, Titel und Aliasen, stellte sich als problematisch heraus.
Als Zwischenlösung trainierten wir für diese Features separate Modelle und fassten sie mit dem ursprünglichen SpanCat Modell in einer Pipeline zusammen. Dies stellte sich als komplizierter raus, als ursprünglich erwartet. &lt;sup id="fnref:3">&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref">3&lt;/a>&lt;/sup>&lt;/p>
&lt;div class="mermaid">---
title: Pipeline für Personendaten
config:
look: handDrawn
theme: neutral
---
flowchart LR
text["Text"] ---> spancat1
custom_component --> entities["Entities"]
subgraph pipeline["Pipeline"]
direction LR
spancat1["SpanCat1"] --> spancat2["SpanCat2"]
spancat2 --> custom_component
subgraph custom_component["Custom Component"]
sc
end
end
subgraph pipeline_spancat1["Pipeline SpanCat1"]
subgraph component_spancat1["Spancat1"]
direction LR
spancat1_tok2vec["Tok2Vec"]
sc_spancat1
end
end
subgraph pipeline_spancat2["Pipeline SpanCat2"]
subgraph component_spancat2["Spancat2"]
direction LR
spancat2_tok2vec["Tok2Vec"]
sc_spancat2
end
end
sc_spancat1 -.merge-.-> sc
sc_spancat2 -.merge-.-> sc
component_spancat1 -.source-.-> spancat1
component_spancat2 -.source-.-> spancat2
&lt;/div>
&lt;p>Insgesamt ist der Ansatz jedoch sehr vielversprechend und wir hätten gerne mehr Zeit gehabt, ausführlicher über unsere Ansätze zu berichten und sie weiter zu vertiefen.&lt;/p>
&lt;p>Hierzu standen wir auch im fachlichen Austausch mit dem &lt;a href="https://www.leuphana.de/institute/ipk/provenance-lab.html" target="_blank" rel="noopener">Provenance Lab an der Leuphana&lt;/a>, die in &lt;a href="https://doi.org/10.1515/jbwg-2023-0005" target="_blank" rel="noopener">Hidden Value: Provenance as a Source for Economic and Social History&lt;/a> die Umsetzung einer ähnlichen Anwendung von SpanCat beschreiben.&lt;/p>
&lt;h2 id="weitere-datenprojekte">Weitere Datenprojekte&lt;/h2>
&lt;h3 id="reichskammergericht">Reichskammergericht&lt;/h3>
&lt;div class="mermaid">---
title: Workflow Reichskammergericht
config:
look: handDrawn
theme: neutral
---
flowchart LR
text[fas:fa-file-alt Text]
data[fas:fa-table Table]
gnd[fas:fa-database GND]
semantic[fas:fa-project-diagram Graph]
text --> data --> semantic
gnd --> semantic
&lt;/div>
&lt;p>Wir hatten schon in Phase I über die Retrodigitalisierung von analogen Findbüchern berichtet.
Unter anderem haben wir exemplarisch einen &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2021-07-findbuch-index-mit-openrefine-aufbereiten/">Findbuch Index mit OpenRefine aufbereitet&lt;/a>.&lt;/p>
&lt;p>Für Findbücher zu den Akten des Reichskammergerichts&lt;sup id="fnref:4">&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref">4&lt;/a>&lt;/sup> haben wir nun die Personen- und Orts-Indizes ebenfalls in Tabellenform überführt und mit Normdaten der Gemeinsamen Normdatei abgeglichen.&lt;/p>
&lt;p>Neben weiteren Erfahrungen mit dem Massenabgleich von Daten über die OpenRefine Schnittstell der &lt;a href="https://lobid.org/gnd/reconcile/" target="_blank" rel="noopener">lobid-gnd&lt;/a>, konnten wir dabei zusammen mit &lt;a href="https://fdmlab.landesarchiv-bw.de/author/verena-mack/">Verena Mack&lt;/a> von der &lt;a href="https://www.leo-bw.de/web/guest/gnd-agentur" target="_blank" rel="noopener">GND-Agentur LEO-BW-Regional&lt;/a> einige Dubletten identifizieren und fehlende Einträge ergänzen.&lt;/p>
&lt;h3 id="digitalisierung-von-heimlisten">Digitalisierung von Heimlisten&lt;/h3>
&lt;p>Für das Projekt &lt;a href="https://www.landesarchiv-bw.de/de/landesarchiv/projekte/aufarbeitung-von-heimerziehung-und-zwangsunterbringungen/projektueberblick/61032" target="_blank" rel="noopener">Aufarbeitung von Heimerziehung und Zwangsunterbringungen&lt;/a> wurden ursprünglich analog vorliegende Adresslisten von Heimen digitalisiert, tabellarisch aufbereitet und die Ortsangaben mit Normdaten, sowie Geokoordinaten versehen.&lt;/p>
&lt;h3 id="abgleich-von-findbüchern-mit-dateistrukturen">Abgleich von Findbüchern mit Dateistrukturen&lt;/h3>
&lt;p>Im AV Archiv im Hauptstaatsarchiv Stuttgart werden digitale Medien erfasst und archiviert.
Das FDMLab unterstützte das AV Archiv bei einer Analyse der vorliegenden Dateistruktur und einem Abgleich mit den zugehörigen Findmitteln.&lt;/p>
&lt;h3 id="verlinkung-der-tomi-actorum">Verlinkung der Tomi Actorum&lt;/h3>
&lt;p>Bei der &lt;a href="https://www.landesarchiv-bw.de/de/aktuelles/nachrichten/74877" target="_blank" rel="noopener">Digitalisierung der Verhandlungsprotokolle der württembergischen Landstände&lt;/a> wurden im Hauptstaatsarchiv Stuttgart Protokolle digitalisiert und die Sachregister zusätzlich transkribiert.
Es konnte in dem &lt;a href="http://www.landesarchiv-bw.de/plink/?f=1-2861" target="_blank" rel="noopener">Online Findmittelsystem&lt;/a> jedoch keine direkte Verbindung zwischen einem Eintrag im Sachregister zu dem zugehörigen Digitalisat des Protokolleintrags genutzt werden.
Das FDMLab unterstützte das Projekt, indem etwa 50.000 Verlinkungen von Sachregistereinträgen zu den zurgehörigen Protokolleinträgen mit der Unterstützung von Methoden der Mustererkennung automatisch vorgenommen wurde.&lt;/p>
&lt;h3 id="veröffentlichung-von-forschungsdaten">Veröffentlichung von Forschungsdaten&lt;/h3>
&lt;p>Das FDMLab unterstützte das Staatsarchiv Wertheim bei der Veröffentlichung einer &lt;a href="https://www.landesarchiv-bw.de/de/aktuelles/nachrichten/75633" target="_blank" rel="noopener">Forschungsdatenbank auf Radar4Culture&lt;/a>. Dazu gehörte die Auswahl eines geeigneten Forschungsdatenrepositoriums, die Konvertierung in ein geeignetes Veröffentlichungsformat, sowie Hinweise zur Datenbeschreibung, Lizenzierung und Anreicherung mit Normdaten.&lt;/p>
&lt;h2 id="schluss-">Schluss ⛔&lt;/h2>
&lt;p>In den drei Jahren FDMLab@LABW konnten wir viele Projekte bei der Umsetzung von Digitalisierungsaufgaben unterstützen.
Dabei versuchten wir neue Wege zu gehen und dabei nachvollziehbare Beschreibungen unserer Wanderungen zu hinterlassen.&lt;/p>
&lt;p>Ohne die fachliche Zusammenarbeit mit Kolleginnen und Kollegen hätte das FDMLab nicht funktionieren können.
Vielen Dank an alle, die sich mit Fragen, Beiträgen und fachlicher Unterstützung an den Projekten des FDMLabs beteiligt haben.&lt;/p>
&lt;p>Finanziert wurde das FDMLab@LABW aus Mitteln der Zukunftsoffensive III durch das Ministerium für Wissenschaft, Forschung und Kunst Baden-Württemberg.&lt;/p>
&lt;p>Nach drei Jahren endet die Förderung und wir schließen das FDMLab@LABW.&lt;/p>
&lt;p>Die Inhalte des FDMLab Blogs werden wir vorläufig in einer statischen Form weiter vorhalten.&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>Wikipedia Autoren, „Landesarchiv Baden-Württemberg“, Wikipedia – Die freie Enzyklopädie, &lt;a href="https://de.wikipedia.org/w/index.php?title=Landesarchiv_Baden-W%C3%BCrttemberg&amp;amp;oldid=223510351" target="_blank" rel="noopener">https://de.wikipedia.org/w/index.php?title=Landesarchiv_Baden-W%C3%BCrttemberg&amp;oldid=223510351&lt;/a> (aufgerufen am 20. Juli 2022).&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>NER erstellt mit spaCy 3.3 &lt;a href="https://spacy.io/models/en#en_core_web_lg" target="_blank" rel="noopener">en_core_web_lg&lt;/a>.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:3">
&lt;p>Siehe auch &lt;a href="https://github.com/explosion/spaCy/discussions/12462" target="_blank" rel="noopener">https://github.com/explosion/spaCy/discussions/12462&lt;/a>&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:4">
&lt;p>Akten des Reichskammergerichts im Hauptstaatsarchiv Stuttgart: Inventar des Bestands C. Bearb. von A. Brunotte, R.J. Weber, Veröffentlichungen der Staatlichen Archivverwaltung Baden-Württemberg, Band 46 Nr.1-8, Stuttgart 1993-2008. Außerdem: Akten des Reichskammergerichts im Staatsarchiv Sigmaringen: Inventar des Bestands R 7. Bearb. von R.J. Weber, Veröffentlichungen der Staatlichen Archivverwaltung Baden-Württemberg; Band 57, Stuttgart 2004.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>GND Hierarchieinformationen zur Verbesserung der Erschließung</title><link>https://fdmlab.landesarchiv-bw.de/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/</link><pubDate>Tue, 07 Mar 2023 00:00:00 +0000</pubDate><guid>https://fdmlab.landesarchiv-bw.de/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/</guid><description>&lt;p>In der Gemeinsamen Normdatei (GND) sind für Sachbegriffe Hierarchieinformationen enthalten.
In diesem Blogbeitrag berichten wir, wie wir diese Informationen verwenden, um die Verschlagwortung von relevanten Akten für die Provenienzforschung zu verbessern.&lt;/p>
&lt;p>Wir berichteten bereits, wie wir ein &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2022-09-ner-modell-mit-gnd-starthilfe-trainieren/">Named-entity Recognition Modell mit Starthilfe durch die Gemeinsame Normdatei trainieren&lt;/a> und wie wir die dadurch extrahierten &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2023-02-ner-und-gnd-zur-verbesserung-der-erschliessung/">Sachbegriffe normalisieren und mit der GND Sachbegriffen verknüpfen&lt;/a>.&lt;/p>
&lt;p>In diesem Blogbeitrag geht es um den letzten Workflowschritt, nämlich die Anreicherung von Oberbegriffen aus der GND zur Verbesserung der Verschlagwortung. &lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>&lt;/p>
&lt;div class="mermaid">---
title: Workflow
config:
look: handDrawn
theme: neutral
---
flowchart LR
filtern["1. Filtern"]
ner["2. NER"]
normalisieren["3. Normalisieren"]
gnd_abgleich["4. GND Abgleich"]
begriffe_nachladen["5. Oberbegriffe"]
filtern --> ner --> normalisieren --> gnd_abgleich --> begriffe_nachladen
style begriffe_nachladen stroke:#000,stroke-width:4px
&lt;/div>
&lt;h2 id="schritt-5-oberbegriffe-nachladen">Schritt 5: Oberbegriffe nachladen&lt;/h2>
&lt;p>Wir haben 1.753 Begriffe aus der GND verlinkt. Aus diesen wollen wir basierend auf den Hierarchieinformationen in der GND ein hierarchisches Netzwerk aufbauen. Dafür müssen für die 1.753 Begriffe alle verknüpften Oberbegriffe sowie deren Oberbegriffe usw., nachgeladen werden.
Da das potentiell ein recht großes Netzwerk werden könnte, haben wir das Netzwerk mit einer lokalen Kopie der &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2022-12-gnd-in-lokale-datenbank-laden-reloaded/">GND in ihrer LOD-Form in Oxigraph&lt;/a> berechnet.
Dafür wurden mit SPARQL die relevanten Knoten und Verbindungen extrahiert, anschließend mit &lt;a href="https://networkx.org/" target="_blank" rel="noopener">NetworkX&lt;/a> zu einem Netzwerk zusammengefügt, und mit &lt;a href="https://pyvis.readthedocs.io/en/latest/" target="_blank" rel="noopener">PyVis&lt;/a> visualisiert.&lt;/p>
&lt;p>Konkret haben wir alle Knoten vom Typ &lt;a href="https://d-nb.info/standards/elementset/gnd#SubjectHeading" target="_blank" rel="noopener">SubjectHeading&lt;/a> und den entsprechenden Subtypen geladen.
Als Verbindungen haben wir
&lt;a href="https://d-nb.info/standards/elementset/gnd#broaderTerm" target="_blank" rel="noopener">broaderTerm&lt;/a>,
&lt;a href="https://d-nb.info/standards/elementset/gnd#broaderTermGeneral" target="_blank" rel="noopener">broaderTermGeneral&lt;/a>,
&lt;a href="https://d-nb.info/standards/elementset/gnd#broaderTermGeneric" target="_blank" rel="noopener">broaderTermGeneric&lt;/a>,
&lt;a href="https://d-nb.info/standards/elementset/gnd#broaderTermInstantial" target="_blank" rel="noopener">broaderTermInstantial&lt;/a>,
&lt;a href="https://d-nb.info/standards/elementset/gnd#broaderTermPartitive" target="_blank" rel="noopener">broaderTermPartitive&lt;/a>,
&lt;a href="https://d-nb.info/standards/elementset/gnd#broaderTermWithMoreThanOneElement" target="_blank" rel="noopener">broaderTermWithMoreThanOneElement&lt;/a> und
&lt;a href="https://d-nb.info/standards/elementset/gnd#complexSeeReferenceSubject" target="_blank" rel="noopener">complexSeeReferenceSubject&lt;/a>
verwendet.&lt;/p>
&lt;p>Dieses Netzwerk verwendeten wir zum einen für unsere Analysen.
Zum anderen extrahierten wir daraus einen &lt;strong>Teilgraphen&lt;/strong> mit den für uns relevanten Begriffen.&lt;/p>
&lt;div class="alert alert-warning">
&lt;div>
Die folgenden Analysen basieren auf der Linked Open Data Variante der GND.
Abweichungen von den tatsächlichen Daten in der GND sind daher möglich.
&lt;/div>
&lt;/div>
&lt;figure id="figure-bildschirmfoto-der-ersten-version-unseres-gnd-teilgraphen">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto der ersten Version unseres GND Teilgraphen." srcset="
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/screenshot-netzwerk_huea75dcb3b215d90b33a4ae6210b59eec_315371_8dbe8506096f42cf7689d17d81fc6728.webp 400w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/screenshot-netzwerk_huea75dcb3b215d90b33a4ae6210b59eec_315371_e16305a7289db35e1e65ca37485bcef5.webp 760w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/screenshot-netzwerk_huea75dcb3b215d90b33a4ae6210b59eec_315371_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/screenshot-netzwerk_huea75dcb3b215d90b33a4ae6210b59eec_315371_8dbe8506096f42cf7689d17d81fc6728.webp"
width="760"
height="711"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto der ersten Version unseres GND Teilgraphen.
&lt;/figcaption>&lt;/figure>
&lt;p>In dem von uns in Abbildung 1 gezeigten, extrahierten Teilgraphen sind zwar hierarchische Strukturen zu erkennen.
Insgesamt sind jedoch sehr viele Einzelknoten um den Wurzelknoten herum zu sehen, und die üblichen Algorithmen zur Darstellung von Hierarchien weigerten sich das vermeintlich hierarchische Netzwerk verständlich darzustellen.&lt;/p>
&lt;p>Im Folgenden besprechen wir die Probleme, über die wir gestolpert sind und prüfen, ob einige (problematische) Eigenschaften unseres extrahierten Teilgraphen auch im Gesamtnetzwerkes aller Sachbegriffe zu finden sind.&lt;/p>
&lt;h3 id="typen-von-oberbegriffen">Typen von Oberbegriffen&lt;/h3>
&lt;figure id="figure-bildschirmfoto-der-unterklassen-von-authority-resources-in-der-gnd-ontologie">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto der Unterklassen von *Authority Resources* in der GND Ontologie." srcset="
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-ontology-authority-resources_huc2fd5ef60259cb939e2f1be69042268b_197325_07d793a52872355986c9a4a128a6d207.webp 400w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-ontology-authority-resources_huc2fd5ef60259cb939e2f1be69042268b_197325_58d747c9bc3d31060d41f13fc7ff2d8f.webp 760w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-ontology-authority-resources_huc2fd5ef60259cb939e2f1be69042268b_197325_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-ontology-authority-resources_huc2fd5ef60259cb939e2f1be69042268b_197325_07d793a52872355986c9a4a128a6d207.webp"
width="760"
height="578"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto der Unterklassen von &lt;em>Authority Resources&lt;/em> in der GND Ontologie.
&lt;/figcaption>&lt;/figure>
&lt;p>In Abbildung 2 sind noch einmal die Unterklassen (Typen) von Normdatenressourcen (&lt;em>Authority Resource&lt;/em>) in der GND Ontologie gezeigt.
Wir arbeiten mit Schlagworten (&lt;em>SubjectHeading&lt;/em>) und den zugehörigen Unterklassen.&lt;/p>
&lt;blockquote>
&lt;p>Die Diagramme wurden mit unserer experimentellen &lt;a href="https://fdmlab.landesarchiv-bw.de/experiment/gnd-hierarchy-vis/">Webanwendung zur GND Hierarchie Visualisierung von Sachbegriffen&lt;/a> erstellt. Hier die Legende:&lt;/p>
&lt;/blockquote>
&lt;div class="mermaid">flowchart LR
initial(["Fokussierter Begriff"]):::initial
broader["Oberbegriff"]
initial --> broader
broaderMarked["Oberbegriff mit anderem Typ"]:::nonHeading
initial --> broaderMarked
narrower["Unterbegriff"]
narrower --> initial
similar["#Auml;hnlicher Begriff"]
initial &lt;-.-> similar
broader &lt;-.-> similar
broaderMarked &lt;-.-> similar
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
classDef category fill:#FFF,stroke:#1fbeb8,stroke-width:3px,color:#000;
classDef initial fill:#FFF,stroke:#4dbd05,stroke-width:3px,color:#000;
classDef nonHeading fill:#FFF,stroke:#F04D0E,stroke-width:3px,color:#000;
&lt;/div>
&lt;p>Wir hatten im &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2023-02-ner-und-gnd-zur-verbesserung-der-erschliessung/">letzten Blogbeitrag&lt;/a> schon den &lt;em>Perserteppich&lt;/em> erwähnt, der über &lt;code>complexSeeReferenceSubject&lt;/code> mit den Begriffen &lt;em>Teppich&lt;/em> und &lt;em>Iran&lt;/em> verknüpft ist.
Im folgenden Diagramm haben wir einige weitere Beispiele für Begriffe, die über Komposita definiert sind.
Darüber werden als Oberbegriffe auch GND Konzepte nachgeladen, die &lt;strong>nicht&lt;/strong> vom Typ &lt;a href="https://d-nb.info/standards/elementset/gnd#SubjectHeading" target="_blank" rel="noopener">Subject heading&lt;/a> oder einem Untertypen davon sind.
Diese können zum Beispiel vom Typ oder einem Untertypen von
&lt;a href="https://d-nb.info/standards/elementset/gnd#ConferenceOrEvent" target="_blank" rel="noopener">Conference or Event&lt;/a>,
&lt;a href="https://d-nb.info/standards/elementset/gnd#CorporateBody" target="_blank" rel="noopener">Corporate Body&lt;/a>,
&lt;a href="https://d-nb.info/standards/elementset/gnd#Person" target="_blank" rel="noopener">Person&lt;/a>,
&lt;a href="https://d-nb.info/standards/elementset/gnd#PlaceOrGeographicName" target="_blank" rel="noopener">Place or geographic name&lt;/a> oder
&lt;a href="https://d-nb.info/standards/elementset/gnd#Work" target="_blank" rel="noopener">Work&lt;/a> sein.&lt;/p>
&lt;div class="mermaid">flowchart LR
7505070-5(["Perserteppich"]):::initial
click 7505070-5 href "https://lobid.org/gnd/7505070-5" "7505070-5" _blank
4059482-8["Teppich"]
click 4059482-8 href "https://lobid.org/gnd/4059482-8" "4059482-8" _blank
4027653-3["Iran"]:::nonHeading
click 4027653-3 href "https://lobid.org/gnd/4027653-3" "4027653-3" _blank
7608344-5(["Venustempel"]):::initial
click 7608344-5 href "https://lobid.org/gnd/7608344-5" "7608344-5" _blank
11876800X["Venus, Göttin"]:::nonHeading
click 11876800X href "https://lobid.org/gnd/11876800X" "11876800X" _blank
4059416-6["Tempel"]
click 4059416-6 href "https://lobid.org/gnd/4059416-6" "4059416-6" _blank
7509659-6(["Osterweiterung / Europäische Union"]):::initial
click 7509659-6 href "https://lobid.org/gnd/7509659-6" "7509659-6" _blank
4128080-5["Erweiterung"]
click 4128080-5 href "https://lobid.org/gnd/4128080-5" "4128080-5" _blank
4075739-0["Osteuropa"]:::nonHeading
click 4075739-0 href "https://lobid.org/gnd/4075739-0" "4075739-0" _blank
5098525-5["Europäische Union"]:::nonHeading
click 5098525-5 href "https://lobid.org/gnd/5098525-5" "5098525-5" _blank
7505070-5 -->|complexSeeReferenceSubject| 4059482-8
7505070-5 -->|complexSeeReferenceSubject| 4027653-3
7608344-5 -->|complexSeeReferenceSubject| 11876800X
7608344-5 -->|complexSeeReferenceSubject| 4059416-6
7509659-6 -->|complexSeeReferenceSubject| 4128080-5
7509659-6 -->|complexSeeReferenceSubject| 4075739-0
7509659-6 -->|complexSeeReferenceSubject| 5098525-5
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
classDef category fill:#FFF,stroke:#1fbeb8,stroke-width:3px,color:#000;
classDef initial fill:#FFF,stroke:#4dbd05,stroke-width:3px,color:#000;
classDef nonHeading fill:#FFF,stroke:#F04D0E,stroke-width:3px,color:#000;
&lt;/div>
&lt;p>Dies betrifft jedoch nicht nur die Verbindungen vom Typ &lt;code>complexSeeReferenceSubject&lt;/code>.
In den folgenden Diagrammen ist das Beispiel der &lt;em>Thora&lt;/em> und des islamische Feiertags &lt;em>Maulid an-Nabi&lt;/em> gezeigt.
Hier werden jeweils Sachbegriffe mit &lt;em>Werken&lt;/em> über Verbindungen vom Typ &lt;code>broaderTermGeneral&lt;/code> verknüpft.&lt;/p>
&lt;div class="mermaid">flowchart LR
4226122-3(["Thora"]):::nonHeading
click 4226122-3 href "https://lobid.org/gnd/4226122-3" "4226122-3" _blank
7849405-9["Thorakrone"]
click 7849405-9 href "https://lobid.org/gnd/7849405-9" "7849405-9" _blank
4590779-1["Thorakapsel"]
click 4590779-1 href "https://lobid.org/gnd/4590779-1" "4590779-1" _blank
4457982-2["Thorawimpel"]
click 4457982-2 href "https://lobid.org/gnd/4457982-2" "4457982-2" _blank
4617346-8["Thoramantel"]
click 4617346-8 href "https://lobid.org/gnd/4617346-8" "4617346-8" _blank
7526823-1["Thorazeiger"]
click 7526823-1 href "https://lobid.org/gnd/7526823-1" "7526823-1" _blank
4232170-0["Thoraschrein"]
click 4232170-0 href "https://lobid.org/gnd/4232170-0" "4232170-0" _blank
4185330-1["Thorarolle"]
click 4185330-1 href "https://lobid.org/gnd/4185330-1" "4185330-1" _blank
7849405-9 -->|broaderTermGeneral| 4226122-3
4590779-1 -->|broaderTermGeneral| 4226122-3
4457982-2 -->|broaderTermGeneral| 4226122-3
4617346-8 -->|broaderTermGeneral| 4226122-3
7526823-1 -->|broaderTermGeneral| 4226122-3
4232170-0 -->|broaderTermGeneral| 4226122-3
4185330-1 -->|broaderTermGeneral| 4226122-3
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
classDef category fill:#FFF,stroke:#1fbeb8,stroke-width:3px,color:#000;
classDef initial fill:#FFF,stroke:#4dbd05,stroke-width:3px,color:#000;
classDef nonHeading fill:#FFF,stroke:#F04D0E,stroke-width:3px,color:#000;
&lt;/div>
&lt;div class="mermaid">flowchart LR
7566591-8(["Maulid an-Nabi"]):::initial
click 7566591-8 href "https://lobid.org/gnd/7566591-8" "7566591-8" _blank
4310274-8["Maulid"]:::nonHeading
click 4310274-8 href "https://lobid.org/gnd/4310274-8" "4310274-8" _blank
4121583-7["Religiöses Fest"]
click 4121583-7 href "https://lobid.org/gnd/4121583-7" "4121583-7" _blank
7566591-8 -->|broaderTermGeneral| 4310274-8
7566591-8 -->|broaderTermInstantial| 4121583-7
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
classDef category fill:#FFF,stroke:#1fbeb8,stroke-width:3px,color:#000;
classDef initial fill:#FFF,stroke:#4dbd05,stroke-width:3px,color:#000;
classDef nonHeading fill:#FFF,stroke:#F04D0E,stroke-width:3px,color:#000;
&lt;/div>
&lt;p>Nach unseren Analysen kommen wir auf 558 Knoten mit mindestens einem Oberbegriff, der &lt;strong>nicht&lt;/strong> vom Typ &lt;em>SubjectHeading&lt;/em> ist.
Das ist bei 204.560 Sachbegriffen ein recht kleiner Anteil von circa 0,27 Prozent.
Die entsprechenden Oberbegriffe mit anderem Typ müssen beim Netzwerkaufbau und der anschließenden Analyse jedoch mit berücksichtigt werden.&lt;/p>
&lt;h3 id="mehrere-oberbegriffe">Mehrere Oberbegriffe&lt;/h3>
&lt;p>Die Verknüpfung von mehreren Oberbegriffen sorgt für Probleme bei der Berechnung von Hierarchielayouts.
Wir haben zur Visualisierung unseres Teilgraphen die Anzahl an Oberbegriffen pro Knoten auf einen Oberbegriff begrenzt.
Dadurch verlieren wir zwar Informationen &lt;strong>in der Visualisierung&lt;/strong>, können den Teilgraphen jedoch besser visuell inspizieren.&lt;/p>
&lt;h3 id="keine-oberbegriffe">Keine Oberbegriffe&lt;/h3>
&lt;p>In unserem Teilgraphen haben etwa 25 Prozent der Begriffe &lt;strong>keinen&lt;/strong> Oberbegriff.
Das hat unter anderem damit zu tun, dass die GND in vielen Bereichen entweder gar keine Hierarchieinformationen beinhaltet, oder sie inkonsequent gepflegt werden.&lt;/p>
&lt;p>Zu den in unserem Projekt verwendeten Begriffen &lt;strong>ohne&lt;/strong> Hierarchieinformationen gehören zum Beispiel &lt;a href="https://lobid.org/gnd/4000925-7" target="_blank" rel="noopener">Akte&lt;/a>, &lt;a href="https://lobid.org/gnd/4142968-0" target="_blank" rel="noopener">Archivalie&lt;/a>, &lt;a href="https://lobid.org/gnd/4002325-4" target="_blank" rel="noopener">Antiquität&lt;/a>, &lt;a href="https://lobid.org/gnd/4154290-3" target="_blank" rel="noopener">Feuerzeug&lt;/a>, &lt;a href="https://lobid.org/gnd/4029423-7" target="_blank" rel="noopener">Kamm&lt;/a>, &lt;a href="https://lobid.org/gnd/4154290-3" target="_blank" rel="noopener">Nähzeug&lt;/a>, &lt;a href="https://lobid.org/gnd/4051230-7" target="_blank" rel="noopener">Säge&lt;/a>, &amp;hellip;&lt;/p>
&lt;h3 id="ähnliche-begriffe">Ähnliche Begriffe&lt;/h3>
&lt;p>Manchmal lassen sich für verwandte Begriffe Hierarchieinformationen ermitteln.
Beispielsweise ist der Begriff &lt;a href="https://lobid.org/gnd/4181725-4" target="_blank" rel="noopener">Sofa&lt;/a> unter den &lt;a href="https://lobid.org/gnd/4055183-0" target="_blank" rel="noopener">Sitzmöbeln&lt;/a> einsortiert.
Der Begriff &lt;a href="https://lobid.org/gnd/4197693-9" target="_blank" rel="noopener">Couch&lt;/a> hingegen ist ohne jede Hierarchieinformation als verwandter Begriff zu &lt;a href="https://lobid.org/gnd/4181725-4" target="_blank" rel="noopener">Sofa&lt;/a> erfasst. Verknüpft man eine Couch mit der GND, so erhält man keine Hierarchieinformationen, verknüpft man hingegen ein Sofa, dann erhält man umfangreiche Hierarchieinformationen.
Es liegt also nahe, die Couch ebenfalls unter den Sitzmöbeln einzuordnen.&lt;/p>
&lt;p>Nach unseren Beobachtungen ist es jedoch &lt;strong>keine&lt;/strong> allgemeine Regel, dass die Hierarchieinformationen bei verwandten Begriffen weggelassen werden.
Im folgenden Diagramm ist ein (reduziertes) Beispiel zu den Begriffen &lt;a href="https://lobid.org/gnd/4184488-9" target="_blank" rel="noopener">Tasse&lt;/a> und &lt;a href="https://lobid.org/gnd/4697377-1" target="_blank" rel="noopener">Untertasse&lt;/a> gezeigt.&lt;/p>
&lt;div class="mermaid">flowchart LR
4197693-9(["Couch"]):::initial
click 4197693-9 href "https://lobid.org/gnd/4197693-9" "4197693-9" _blank
4181725-4(["Sofa"]):::initial
click 4181725-4 href "https://lobid.org/gnd/4181725-4" "4181725-4" _blank
4055183-0["Sitzmöbel"]
click 4055183-0 href "https://lobid.org/gnd/4055183-0" "4055183-0" _blank
4039860-2["Möbel"]
click 4039860-2 href "https://lobid.org/gnd/4039860-2" "4039860-2" _blank
4190181-2["Wohnungseinrichtung"]
click 4190181-2 href "https://lobid.org/gnd/4190181-2" "4190181-2" _blank
4132060-8["Hausrat"]
click 4132060-8 href "https://lobid.org/gnd/4132060-8" "4132060-8" _blank
4181725-4 --> 4055183-0
4055183-0 --> 4039860-2
4039860-2 --> 4190181-2
4190181-2 --> 4132060-8
4181725-4 &lt;-.-> 4197693-9
4184488-9(["Tasse"]):::initial
click 4184488-9 href "https://lobid.org/gnd/4184488-9" "4184488-9" _blank
4124863-6["Essgeschirr"]
click 4124863-6 href "https://lobid.org/gnd/4124863-6" "4124863-6" _blank
4697377-1(["Untertasse"]):::initial
click 4697377-1 href "https://lobid.org/gnd/4697377-1" "4697377-1" _blank
4184660-6["Teller"]
click 4184660-6 href "https://lobid.org/gnd/4184660-6" "4184660-6" _blank
4140542-0["Geschirr #lt;Hausrat#gt;"]
click 4140542-0 href "https://lobid.org/gnd/4140542-0" "4140542-0" _blank
4132060-8["Hausrat"]
click 4132060-8 href "https://lobid.org/gnd/4132060-8" "4132060-8" _blank
4184488-9 --> 4124863-6
4697377-1 --> 4184660-6
4124863-6 --> 4140542-0
4184660-6 --> 4124863-6
4140542-0 --> 4132060-8
4184488-9 &lt;-.-> 4697377-1
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
classDef category fill:#FFF,stroke:#1fbeb8,stroke-width:3px,color:#000;
classDef initial fill:#FFF,stroke:#4dbd05,stroke-width:3px,color:#000;
&lt;/div>
&lt;p>Wir konnten in dem GND Graphen 3.907 Knoten identifizieren, die ggf. auf diese Art mit weiteren Hierarchieinformationen versehen werden könnten.
In unseren Daten waren es 105 Knoten, die wir mit dieser Strategie in die Hierarchie einbinden konnten.
Dabei ist jedoch zu beachten, dass durch die Einbindung über &lt;code>relatedTerm&lt;/code> Zyklen entstehen können.
Im folgenden Diagramm wird dies am Beispiel der Begriffe Körper und Leib dargestellt, wo Leib sowohl ein Oberbegriff, als auch ein verwandter Begriff zu Körper ist.&lt;/p>
&lt;div class="mermaid">flowchart LR
4031575-7(["Körper"])
click 4031575-7 href "https://lobid.org/gnd/4031575-7" "4031575-7" _blank
4132852-8(["Leib"])
click 4132852-8 href "https://lobid.org/gnd/4132852-8" "4132852-8" _blank
4031575-7 -->|broaderTermGeneral| 4132852-8
4132852-8 -.->|relatedTerm| 4031575-7
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
&lt;/div>
&lt;h2 id="analyse-subgraph">Analyse Subgraph&lt;/h2>
&lt;p>Mit den oben beschriebenen Erfahrungen und Anpassungen konnten wir aus dem Netzwerk eine darstellbare Hierarchie erzeugen, die wir visuell inspizieren können.
Dabei ist uns aufgefallen, dass die Hierarchie in vielen Bereichen ziemlich flach ausfällt.
Abbildung 3 zeigt einen &lt;strong>kleinen&lt;/strong> Ausschnitt der Hierarchie.&lt;/p>
&lt;figure id="figure-bildschirmfoto-der-zweiten-version-unseres-gnd-teilgraphen-als-hierarchie">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto der zweiten Version unseres GND Teilgraphen als Hierarchie." srcset="
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/screenshot-hierarchie-detail_hu37bdd6cfb39b08386bdc91a9763660b7_36461_8d1a0f9a817fab14e47de01b07bf8976.webp 400w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/screenshot-hierarchie-detail_hu37bdd6cfb39b08386bdc91a9763660b7_36461_cf951e0e3f897b2d39ab6a4f32910b26.webp 760w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/screenshot-hierarchie-detail_hu37bdd6cfb39b08386bdc91a9763660b7_36461_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/screenshot-hierarchie-detail_hu37bdd6cfb39b08386bdc91a9763660b7_36461_8d1a0f9a817fab14e47de01b07bf8976.webp"
width="85"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto der zweiten Version unseres GND Teilgraphen als Hierarchie.
&lt;/figcaption>&lt;/figure>
&lt;p>Der Radius der grauen Knoten gibt ungefähr an, wie viele Akten mit diesem Begriff direkt gefunden werden würden.
Die Skalierung musste jedoch nach unten auf 5 Treffer und oben auf 50 Treffer begrenzt werden.
Ansonsten wären Kreise mit einem kleineren Durchmesser nicht mehr sichtbar, und einzelne Begriffe mit mehr als 1.000 betroffenen Akten würden große Teile des Graphen überdecken.&lt;/p>
&lt;p>Die roten Knoten zeigen Begriffe, für die wir keine direkten Treffer in den Akten haben. Diese wurden über die Hierarchieinformationen der GND als zusätzliche Begriffe nachgeladen. Diese zusätzlichen Begriffe machen in manchen Bereichen Sinn.&lt;/p>
&lt;p>In den Bereichen Biologie und Chemie, die sehr ausführliche und tiefe Hierarchieinformationen haben, sollten die Begriffe in unserem Teilgraphen jedoch reduziert werden. So ist es fachlich zwar korrekt, dass Messing eine Kupferlegierung ist, die zu den Buntmetalllegierungen gehört, welche zu den Schwermetallegierungen gehört, welches eine Legierung ist&amp;hellip; diese Informationen bieten in unserem Kontext jedoch keinen Mehrwert.&lt;/p>
&lt;p>Hier werden wir in Nachfolgearbeiten versuchen, mit verschiedenen Algorithmen aus der Netzwerkanalyse &amp;ldquo;überflüssige&amp;rdquo; Knoten wieder aus der Hierarchie zu entfernen.&lt;/p>
&lt;figure id="figure-bildschirmfoto-der-dritten-version-unseres-gnd-teilgraphen-als-hierarchie-mit-einfärbungen">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto der dritten Version unseres GND Teilgraphen als Hierarchie mit Einfärbungen." srcset="
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/screenshot-hierarchie-detail-farbig_huc6ad8d76e162113c75a855bf90cd30f4_77111_241104071964809e5afef24ed0721a2d.webp 400w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/screenshot-hierarchie-detail-farbig_huc6ad8d76e162113c75a855bf90cd30f4_77111_9f79c6fe332babf1213f3723179ad7c9.webp 760w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/screenshot-hierarchie-detail-farbig_huc6ad8d76e162113c75a855bf90cd30f4_77111_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/screenshot-hierarchie-detail-farbig_huc6ad8d76e162113c75a855bf90cd30f4_77111_241104071964809e5afef24ed0721a2d.webp"
width="760"
height="569"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Bildschirmfoto der dritten Version unseres GND Teilgraphen als Hierarchie mit Einfärbungen.
&lt;/figcaption>&lt;/figure>
&lt;p>In einer weiteren Verbesserung der Visualisierung der Hierarchie in unserem GND Teilgraphen in Abbildung 4 haben wir einzelne Knoten zusätzlich eingefärbt.&lt;/p>
&lt;ul>
&lt;li>Orange: Gegenstand&lt;/li>
&lt;li>Grün: Material&lt;/li>
&lt;li>Blau: Marke/Herkunft&lt;/li>
&lt;li>Lila: Stil&lt;/li>
&lt;li>Gemischt Rot: mehrere Kategorien&lt;/li>
&lt;/ul>
&lt;p>So konnten bei der visuellen Prüfung schon einige Probleme und fehlerhafte GND Abgleiche identifiziert werden, die in der Liste der mehr als 67.500 Einzelbegriffe untergegangen waren.
In Abbildung 4 ist zum Beispiel das Glas in einem gemischten Rot markiert, weil der Begriff sowohl für den &lt;strong>Gegenstand&lt;/strong> Glas, als auch für das &lt;strong>Material&lt;/strong> Glas verwendet wurde. &lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref">2&lt;/a>&lt;/sup>&lt;/p>
&lt;h2 id="analyse-gnd-subjectheading-graph">Analyse GND &lt;em>SubjectHeading&lt;/em> Graph&lt;/h2>
&lt;p>Wir haben uns gefragt, ob wir bei der Extraktion unseres GND Teilgraphen Fehler gemacht haben, oder einfach Pech mit unseren Daten hatten, oder ob sich manche Eigenschaften unseres GND Teilgraphen auch im großen Graphen der GND &lt;em>SubjectHeadings&lt;/em> wiederfinden.&lt;/p>
&lt;p>Daher haben wir eine oberflächliche Analyse des &lt;em>SubjectHeadings&lt;/em> Graphen durchgeführt.&lt;/p>
&lt;h3 id="komponenten-und-größen">Komponenten und Größen&lt;/h3>
&lt;figure id="figure-streudiagramm-zur-darstellung-der-eigenschaften-von-komponenten-im-gnd-subjectheading-graph">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Streudiagramm zur Darstellung der Eigenschaften von Komponenten im GND *SubjectHeading* Graph." srcset="
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze_hu52002487e9390097dde4028970c89462_29818_c75bd9213a447cac0c6c98aeb7873746.webp 400w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze_hu52002487e9390097dde4028970c89462_29818_9686bbdae67d69fdf5d40ed2f08b37f1.webp 760w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze_hu52002487e9390097dde4028970c89462_29818_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze_hu52002487e9390097dde4028970c89462_29818_c75bd9213a447cac0c6c98aeb7873746.webp"
width="640"
height="480"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Streudiagramm zur Darstellung der Eigenschaften von Komponenten im GND &lt;em>SubjectHeading&lt;/em> Graph.
&lt;/figcaption>&lt;/figure>
&lt;p>Unsere erste Feststellung war, dass der Gesamtgraph der GND &lt;em>SubjectHeadings&lt;/em> mit 204.560 Knoten in 47.388 Teilgraphen (Komponenten) zerfällt, die nicht miteinander verbunden sind.&lt;/p>
&lt;p>In Abbildung 5 ist ein Streudiagramm gezeigt, wo auf der X-Achse die Größe der Komponente und auf der Y-Achse die Anzahl an Komponenten dieser Größe dargestellt ist. Die Größe des Symbols zeigt, wie viele unterschiedliche (Sub)Typen von &lt;em>SubjectHeading&lt;/em> betroffen sind.&lt;/p>
&lt;p>Auf Grund der enormen Größenunterschiede ist das Diagram logarithmisch skaliert, so dass die Interpretation schwierig(er) ist.&lt;/p>
&lt;p>Der Stern ganz links oben stellt 41.465 Komponenten dar, die jeweils nur aus &lt;strong>einem&lt;/strong> Knoten bestehen.
Dies umfasst die Typen &lt;em>CharactersOrMorphemes&lt;/em> (2.912), &lt;em>EthnographicName&lt;/em> (1.257), &lt;em>GroupOfPersons&lt;/em> (158), &lt;em>HistoricSingleEventOrEra&lt;/em> (635), &lt;em>Language&lt;/em> (5), &lt;em>MeansOfTransportWithIndividualName&lt;/em> (8), &lt;em>NomenclatureInBiologyOrChemistry&lt;/em> (15.132), &lt;em>ProductNameOrBrandName&lt;/em> (422), &lt;em>SoftwareProduct&lt;/em> (134), &lt;em>SubjectHeading&lt;/em> (12), &lt;em>SubjectHeadingSensoStricto&lt;/em> (20.900).&lt;/p>
&lt;p>Der Stern ganz rechts unten stellt &lt;strong>eine&lt;/strong> Komponente mit einer Größe von 140.105 Knoten dar, welche die Typen &lt;em>CharactersOrMorphemes&lt;/em> (261), &lt;em>EthnographicName&lt;/em> (2.510), &lt;em>GroupOfPersons&lt;/em> (589), &lt;em>HistoricSingleEventOrEra&lt;/em> (4.031), &lt;em>Language&lt;/em> (5.942), &lt;em>MeansOfTransportWithIndividualName&lt;/em> (1.479), &lt;em>NomenclatureInBiologyOrChemistry&lt;/em> (11.428), &lt;em>ProductNameOrBrandName&lt;/em> (6.994), &lt;em>SoftwareProduct&lt;/em> (8.056), &lt;em>SubjectHeading&lt;/em> (8.220) und &lt;em>SubjectHeadingSensoStricto&lt;/em> (91.381) umfasst.&lt;/p>
&lt;h3 id="anteil-von-komponenten-bestimmter-größen">Anteil von Komponenten bestimmter Größen&lt;/h3>
&lt;p>Aus dem Diagramm in Abbildung 5 lässt sich ablesen, dass der Graph nicht vollständig verbunden ist und sich in zwei Extreme verteilt.
Viele Knoten sind gar nicht, oder nur wenig in Hierarchien eingebunden, andere sind in einem Netzwerk mit 140.105 Knoten zusammengefasst.
In dem Diagramm in Abbildung 6 ist dies noch einmal visuell dargestellt. Der letzte große Teilgraph mit den 140.105 Knoten ist im Diagramm abgeschnitten.&lt;/p>
&lt;figure id="figure-diagramm-zur-kumulierten-darstellung-des-prozentualen-anteils-von-komponenten-bestimmter-größen">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Diagramm zur kumulierten Darstellung des prozentualen Anteils von Komponenten bestimmter Größen." srcset="
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze-cum_hu9e16205d3fa40412855eeee4ec8222cb_26124_992b7fe053cfe79ac10d998663d75edf.webp 400w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze-cum_hu9e16205d3fa40412855eeee4ec8222cb_26124_9386aab1ea96c0401f2501861cf14e84.webp 760w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze-cum_hu9e16205d3fa40412855eeee4ec8222cb_26124_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze-cum_hu9e16205d3fa40412855eeee4ec8222cb_26124_992b7fe053cfe79ac10d998663d75edf.webp"
width="640"
height="480"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Diagramm zur kumulierten Darstellung des prozentualen Anteils von Komponenten bestimmter Größen.
&lt;/figcaption>&lt;/figure>
&lt;p>Auf der X-Achse ist wieder die Größe der Komponenten abgebildet und auf der Y-Achse der prozentuale Anteil an Knoten, den Komponenten dieser Größe im Gesamtgraphen innehaben.&lt;/p>
&lt;ul>
&lt;li>Etwa 20 Prozent der Knoten haben &lt;strong>keine&lt;/strong> Hierarchieinformationen.&lt;/li>
&lt;li>Etwa 30 Prozent der Knoten sind in Teilgraphen mit weniger als 20 Knoten verbunden.&lt;/li>
&lt;li>Etwa 68 Prozent der Knoten sind in einem Teilgraphen mit 140.105 Knoten zu finden.&lt;/li>
&lt;/ul>
&lt;h3 id="tiefe-der-hierarchie">Tiefe der Hierarchie&lt;/h3>
&lt;p>Es wäre zu erwarten, dass mit Zunahme der Größe der Komponenten auch die Tiefe der Hierarchie steigt.
Daher haben wir in einem &lt;a href="https://de.wikipedia.org/wiki/Box-Plot" target="_blank" rel="noopener">Boxplot&lt;/a> in Abbildung 7 die maximale Tiefe der Hierarchie jeder Komponente analysiert und sortiert nach Komponentengröße ausgewertet.&lt;/p>
&lt;figure id="figure-boxplot-zur-darstellung-der-verteilung-der-max-tiefe-pro-komponentengröße">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Boxplot zur Darstellung der Verteilung der max. Tiefe pro Komponentengröße." srcset="
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze-boxplot-diameter_hu8c955f372abddff8a20ef0a87f275672_43565_0885eb5468d6ef19ed004307f96ef654.webp 400w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze-boxplot-diameter_hu8c955f372abddff8a20ef0a87f275672_43565_9ae06120c79035c34862a9f3a9a6dad5.webp 760w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze-boxplot-diameter_hu8c955f372abddff8a20ef0a87f275672_43565_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze-boxplot-diameter_hu8c955f372abddff8a20ef0a87f275672_43565_0885eb5468d6ef19ed004307f96ef654.webp"
width="760"
height="507"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Boxplot zur Darstellung der Verteilung der max. Tiefe pro Komponentengröße.
&lt;/figcaption>&lt;/figure>
&lt;p>Prinzpiell steigt die Tiefe der Hierarchie mit steigender Komponentengröße etwas.
Jedoch wäre bei einer Komponente mit 114 Knoten mehr als 2 Hierarchiestufen zu erwarten.
Oder bei einer Komponente mit 140.105 Knoten mehr als 13 Hierarchiestufen.&lt;/p>
&lt;h3 id="kindknoten-pro-knoten">Kindknoten pro Knoten&lt;/h3>
&lt;p>Wenn es relativ wenig Hierachiestufen gibt, liegt die Vermutung nahe, dass es in den einzelnen Komponenten Knoten gibt, die sehr viele direkte Unterknoten haben. Daher haben wir noch einmal die Anzahl an Kindknoten pro Knoten analysiert und sortiert nach Komponentengröße in einem Boxplot in Abbildung 8 ausgewertet.&lt;/p>
&lt;figure id="figure-boxplot-zur-darstellung-der-verteilung-der-anzahl-von-kindknoten-pro-komponentengröße">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Boxplot zur Darstellung der Verteilung der Anzahl von Kindknoten pro Komponentengröße." srcset="
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze-boxplot-degree_hu87aeaab33c49bee17e43933941fdaea1_99270_f3f65ead298de022d683cbda529f81c3.webp 400w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze-boxplot-degree_hu87aeaab33c49bee17e43933941fdaea1_99270_7d4d0a7e2424787f62b2d02185cce7b4.webp 760w,
/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze-boxplot-degree_hu87aeaab33c49bee17e43933941fdaea1_99270_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2023-03-gnd-hierarchie-zur-verbesserung-der-erschliessung/gnd-hierarchy-analyze-boxplot-degree_hu87aeaab33c49bee17e43933941fdaea1_99270_f3f65ead298de022d683cbda529f81c3.webp"
width="760"
height="507"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Boxplot zur Darstellung der Verteilung der Anzahl von Kindknoten pro Komponentengröße.
&lt;/figcaption>&lt;/figure>
&lt;p>Die graue Linie markiert die maximale Anzahl an Kindknoten, die ein Knoten in einer Komponente einer bestimmten Größe haben kann.
Auffällig ist, dass es bei vielen Komponenten Knoten gibt, die nahe an dieser Grenze liegen.
Die Komponente besteht dann aus einem Oberknoten mit dem (fast) alle restlichen Knoten der Komponente verbunden sind.&lt;/p>
&lt;p>Interessant sind auch die drei Knoten in der größten Komponente, die mehr als 1.000 direkte Kindknoten haben.
Hierbei handelt es sich um eine große Anzahl an Verbindungen des Typs &lt;a href="https://d-nb.info/standards/elementset/gnd#broaderTermInstantial" target="_blank" rel="noopener">Broader term (instantial)&lt;/a>, die im &lt;a href="https://explore.gnd.network/" target="_blank" rel="noopener">GND Explorer&lt;/a> als &amp;ldquo;Ist ein Beispiel für andere Entität&amp;rdquo; angezeigt werden.&lt;/p>
&lt;h2 id="fazit">Fazit&lt;/h2>
&lt;p>Nach anfänglichen Schwierigkeiten konnten wir eine für uns in großen Teilen brauchbare Hierarchie aus der GND extrahieren, die wir für unser Projekt weiter bearbeiten können.&lt;/p>
&lt;p>Wir waren in unserem Teilgraphen verwundert über die doch vielen Begriffe, die ohne Hierarchieinformationen in der GND liegen.
Mit unserer Analyse des Gesamtgraphen konnten wir bestätigen, dass dies wohl ein generelles Problem bei GND Sachbegriffen ist.&lt;/p>
&lt;p>Auch sind die Hierarchien in unserem Teilgraphen selbst relativ flach, was sich bei der Analyse des Gesamtgraphen ebenfalls als Eigenschaft der GND bestätigte.&lt;/p>
&lt;p>Alternativ könnte es sich auch um ein systematisches Problem in unserer LOD Variante der GND oder unserer Auswahl von Verbindungsarten zwischen GND Sachbegriffen liegen. Wir konnten in unseren Stichproben jedoch keine Hinweise auf solche Fehler finden.&lt;/p>
&lt;p>Es würde sich jetzt anbieten die Analyse ausführlicher zu gestalten und dabei zum Beispiel zusätzlich GND Sachgruppen, die einzelnen Subtypen von &lt;em>SubjectHeading&lt;/em>, sowie die unterschiedlichen Verbindungsarten weiter zu analysieren. Dies würde jedoch den Rahmen unseres aktuellen Projektes übersteigen.&lt;/p>
&lt;p>Prinzipiell kommt es nach unseren Beobachtungen darauf an, in welchem (Fach-)Bereich man sich innerhalb der GND Sachbegriffen bewegt.
So fanden wir für unseren Anwendungsfall die Hierarchieinformationen für Haushaltsgegenstände unzureichend, die zu Musikinstrumenten passend und hilfreich, und die für Begriffe aus der Biologie und Chemie zu ausführlich.&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>Details zur Motivation und unserem generellen Vorgehen haben wir schon unter &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2023-02-ner-und-gnd-zur-verbesserung-der-erschliessung/">NER und GND zur Verbesserung der Erschließung&lt;/a> berichtet.&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 zum Glas als Material und Gegenstand, sowie zu den Kategorien, finden sich im Artikel &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2023-02-ner-und-gnd-zur-verbesserung-der-erschliessung/">NER und GND zur Verbesserung der Erschließung&lt;/a>.&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>Named-entity Recognition und Gemeinsame Normdatei zur Verbesserung der Erschließung</title><link>https://fdmlab.landesarchiv-bw.de/post/2023-02-ner-und-gnd-zur-verbesserung-der-erschliessung/</link><pubDate>Tue, 21 Feb 2023 00:00:00 +0000</pubDate><guid>https://fdmlab.landesarchiv-bw.de/post/2023-02-ner-und-gnd-zur-verbesserung-der-erschliessung/</guid><description>&lt;p>Das FDMLab unterstützt das Projekt &lt;a href="https://landesarchiv-bw.de/de/landesarchiv/projekte/provenienzforschung-im-landesarchiv/projektueberblick-/61576" target="_blank" rel="noopener">Provenienzforschung im Landesarchiv&lt;/a> bei der Verbesserung der Auffindbarkeit von relevanten Akten.
In diesem Blogbeitrag fassen wir unsere Erfahrungen beim Einsatz von Named-entity Recognition (NER) zur Extraktion von spezifischen Sachbegriffen und der Verknüpfung dieser Sachbegriffe mit der Gemeinsamen Normdatei (GND) zusammen.&lt;/p>
&lt;p>Wir berichteten bereits in &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2022-09-ner-modell-mit-gnd-starthilfe-trainieren/">NER Modell mit GND Starthilfe trainieren&lt;/a>, wie wir ein Experiment zum Trainieren eines NER Modells zur Erkennung von Objekten, Kunst-, Kultur- und Alltagsgegenständen in den Erschließungsdaten bestimmter Bestände durchführten. &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>Diese Vorarbeiten für das Projekt Provenienzforschung wurden im Januar produktiv umgesetzt, so dass wir über unsere ersten Ergebnisse und Erfahrungen berichten können.&lt;/p>
&lt;h2 id="motivation-volltextsuche-vs-verschlagwortung">Motivation: Volltextsuche vs Verschlagwortung&lt;/h2>
&lt;p>In den Findmitteln des Landesarchives gibt es in bestimmten Beständen umfangreiche Erschließungsdaten zu Objekten, Kunst-, Kultur- und Alltagsgegenständen, die im Kontext der Provenienzforschung interessant sein könnten. Diese Bestände sind aktuell nur mit einer Volltextsuche zu durchsuchen.&lt;/p>
&lt;p>Sucht man zum Beispiel nach einer &amp;ldquo;Porzellantasse&amp;rdquo;, so ergeben sich Probleme mit der deutschen Sprache und der unterschiedlichen Tiefe der Erschließung einzelner Akten oder Bestände.
Hier sind einige konstruierte Beispiele, wie die gesuchte &amp;ldquo;Porzellantasse&amp;rdquo; in unseren Erschließungsdaten gelistet sein könnte:&lt;/p>
&lt;ol>
&lt;li>&lt;code>Anzeige des Verlustes der Wohnungseinrichtung der Freiburger Wohnung.&lt;/code>&lt;/li>
&lt;li>&lt;code>... darunter ein Porzellanservice ...&lt;/code>&lt;/li>
&lt;li>&lt;code>... ein Porzellanservice bestehend aus 4 Tassen, 4 Tellern, ...&lt;/code>&lt;/li>
&lt;li>&lt;code>Im Hausrat befanden sich..., Ludwigsburger Porzellantassen, ...&lt;/code>&lt;/li>
&lt;li>&lt;code>... 4 Tassen (Ludwigsburger Porzellan, Empire Stil) ...&lt;/code>&lt;/li>
&lt;/ol>
&lt;p>Mit dem Suchwort &amp;ldquo;Porzellantasse&amp;rdquo; in einer einfachen Volltextsuche, würde man von diesen fünf Beispielen lediglich das vierte Beispiel in den Suchergebnissen finden.&lt;/p>
&lt;p>Um die Auffindbarkeit von Objekten zu erhöhen, wollen wir solche Erschließungsdaten daher zusätzlich mit Schlagworten versehen. Da (neue) Schlagworte im LABW mit einer GND-ID versehen sind, &lt;strong>könnte&lt;/strong> eine semantische Suche bei der Suche nach Findbucheinträgen mit dem Schlagwort &amp;ldquo;Tasse&amp;rdquo; auch die &amp;ldquo;Porzellantasse&amp;rdquo; berücksichtigen.
Wie in dem folgenden Diagramm dargestellt, ist in der GND die Information gespeichert, dass die Porzellantasse ein Spezialfall einer Tasse ist, welches zum Essgeschirr dazugehört, usw.&lt;/p>
&lt;div class="mermaid">flowchart LR
4175414-1(["Porzellantasse"]):::initial
click 4175414-1 href "https://lobid.org/gnd/4175414-1" "4175414-1" _blank
4184488-9["Tasse"]
click 4184488-9 href "https://lobid.org/gnd/4184488-9" "4184488-9" _blank
4124863-6["Essgeschirr"]
click 4124863-6 href "https://lobid.org/gnd/4124863-6" "4124863-6" _blank
4186181-4["Trinkgefäß"]
click 4186181-4 href "https://lobid.org/gnd/4186181-4" "4186181-4" _blank
4140542-0["Geschirr #lt;Hausrat#gt;"]
click 4140542-0 href "https://lobid.org/gnd/4140542-0" "4140542-0" _blank
4128003-9["Gefäß"]
click 4128003-9 href "https://lobid.org/gnd/4128003-9" "4128003-9" _blank
4132060-8["Hausrat"]
click 4132060-8 href "https://lobid.org/gnd/4132060-8" "4132060-8" _blank
4020299-9["Gerät"]
click 4020299-9 href "https://lobid.org/gnd/4020299-9" "4020299-9" _blank
4175414-1 --> 4184488-9
4184488-9 --> 4124863-6
4184488-9 --> 4186181-4
4124863-6 --> 4140542-0
4186181-4 --> 4128003-9
4140542-0 --> 4132060-8
4128003-9 --> 4020299-9
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
classDef category fill:#FFF,stroke:#1fbeb8,stroke-width:3px,color:#000;
classDef initial fill:#FFF,stroke:#4dbd05,stroke-width:3px,color:#000;
&lt;/div>
&lt;p>Da wir aktuell keine semantische Suche anbieten, müssen wir die zusätzlichen Schlagworte selbst ergänzen.
Also zum Beispiel den Begriff Tasse für Porzellantasse ergänzen.&lt;/p>
&lt;blockquote>
&lt;p>Die Diagramme wurden mit unserer experimentellen &lt;a href="https://fdmlab.landesarchiv-bw.de/experiment/gnd-hierarchy-vis/">Webanwendung zur GND Hierarchie Visualisierung von Sachbegriffen&lt;/a> erstellt. Hier die Legende:&lt;/p>
&lt;/blockquote>
&lt;div class="mermaid">flowchart LR
initial(["Fokussierter Begriff"]):::initial
broader["Oberbegriff"]
initial --> broader
narrower["Unterbegriff"]
narrower --> initial
missing["Erwartete Verknüpfung"]
initial x-.-x missing
category[["GND Sachgruppe"]]:::category
initial --> category
broader --> category
narrower --> category
similar["#Auml;hnlicher Begriff"]
initial &lt;-.-> similar
broader &lt;-.-> similar
narrower &lt;-.-> similar
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
classDef category fill:#FFF,stroke:#1fbeb8,stroke-width:3px,color:#000;
classDef initial fill:#FFF,stroke:#4dbd05,stroke-width:3px,color:#000;
&lt;/div>
&lt;h2 id="workflow">Workflow&lt;/h2>
&lt;p>Unser technischer Workflow besteht aus den folgenden fünf Schritten:&lt;/p>
&lt;div class="mermaid">---
title: Workflow
config:
look: handDrawn
theme: neutral
---
flowchart LR
filtern["1. Filtern"]
ner["2. NER"]
normalisieren["3. Normalisieren"]
gnd_abgleich["4. GND Abgleich"]
begriffe_nachladen["5. Oberbegriffe"]
filtern --> ner --> normalisieren --> gnd_abgleich --> begriffe_nachladen
&lt;/div>
&lt;ol>
&lt;li>Das &lt;a href="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-einsteiger/02-filtern-und-sortieren/">Filtern&lt;/a> der relevanten Findbücher und Findbucheinträge erfolgte mit OpenRefine auf einem CSV-Abzug der Daten in unserem Archivischen Fachinformationssystem (AFIS).&lt;/li>
&lt;li>Das &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2022-09-ner-modell-mit-gnd-starthilfe-trainieren/">Named-entity Recognition&lt;/a> wurde mit einem über &lt;a href="https://prodi.gy/" target="_blank" rel="noopener">Prodigy&lt;/a> selbst trainierten &lt;a href="https://spacy.io/" target="_blank" rel="noopener">spaCy&lt;/a> Modell durchgeführt.&lt;/li>
&lt;li>Die Normalisierung der via NER gefundenen Begriffe erfolgte unter anderem mit &lt;a href="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-einsteiger/05-clustering/">Clustering-Methoden in OpenRefine&lt;/a>.&lt;/li>
&lt;li>Der &lt;a href="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-einsteiger/06-reconciling-mit-gnd/">GND Abgleich&lt;/a> erfolgte ebenfalls mit OpenRefine über die &lt;a href="https://lobid.org/gnd/api#openrefine" target="_blank" rel="noopener">lobid-gnd OpenRefine Reconciliation Schnittstelle&lt;/a>.&lt;/li>
&lt;li>Das Nachladen der Oberbegriffe erfolgte auf Grund der Größe des resultierenden Netzwerkes auf einer lokalen Kopie der &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2022-12-gnd-in-lokale-datenbank-laden-reloaded/">GND in ihrer LOD-Form in Oxigraph&lt;/a>. Dort wurden mit SPARQL die relevanten Knoten und Verbindungen extrahiert, anschließend mit &lt;a href="https://networkx.org/" target="_blank" rel="noopener">NetworkX&lt;/a> zu einem Netzwerk zusammengefügt und mit &lt;a href="https://pyvis.readthedocs.io/en/latest/" target="_blank" rel="noopener">PyVis&lt;/a> visualisiert.&lt;/li>
&lt;/ol>
&lt;h2 id="ner-ergebnisse-und-normalisierung-workflow-schritte-2--3">NER Ergebnisse und Normalisierung (Workflow Schritte 2 + 3)&lt;/h2>
&lt;p>Wir haben mit unserem NER Modell 66.206 Begriffe extrahiert (Schritt 2), wovon 1.468 wieder verworfen wurden (Schritt 3+4).
Das entspricht einer Genauigkeit von etwa 97,8%. Damit sind wir etwas besser, als die laut Modellevaluation erwarteten 95% Genauigkeit.
Nach der Normalisierung (Schritt 3) hatten wir 67.561 Begriffe, die wir mit 1.753 Begriffen in der GND verlinken konnten (Schritt 4).&lt;/p>
&lt;p>Die Steigerung der Anzahl der Begriffe kommt daher, dass wir beim Modelltraining gemeinsame Begriffe z.B. aus Aufzählungen auch gemeinsam erfasst und später in OpenRefine getrennt haben. Prinzipiell wird das umgekehrte Verfahren empfohlen, also die Begriffe getrennt zu markieren/extrahieren und in einem nachgelagerten Arbeitsschritt zu verknüpfen. &lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref">2&lt;/a>&lt;/sup> Dies war uns für dieses einmal durchgeführte Projekt jedoch zu aufwendig.&lt;/p>
&lt;p>Hier an konkreten Beispielen erklärt:&lt;/p>
&lt;ul>
&lt;li>Aus dem zusammengesetzten Begriff &lt;code>China- und Perserteppiche&lt;/code> werden in Schritt 3 die zwei Begriffe &lt;code>Teppich aus China&lt;/code> und &lt;code>Perserteppich&lt;/code>.&lt;/li>
&lt;li>Aus &lt;code>Porzellantassen, -teller und -kannen&lt;/code> werden in Schritt 3 die drei Begriffe &lt;code>Tasse aus Porzellan&lt;/code>, &lt;code>Teller aus Porzellan&lt;/code> und &lt;code>Kanne aus Porzellan&lt;/code>.&lt;/li>
&lt;li>Aus &lt;code>Gabeln, Messer und Löffel aus Silber&lt;/code> werden in Schritt 3 die drei Begriffe &lt;code>Gabel aus Silber&lt;/code>, &lt;code>Messer aus Silber&lt;/code> und &lt;code>Löffel aus Silber&lt;/code>.&lt;/li>
&lt;/ul>
&lt;p>Ein weiteres Problem, welches uns beim Normalisieren der Begriffe aufgefallen ist, ist dass wir zusammengesetzte Begriffe haben, die sich in diesem Detailgrad nicht mit der GND abgleichen lassen.
Daher haben wir jeden Begriff in die vier Bestandteile Gegenstand, Material, Herkunft/Marke und Stil zerlegt. &lt;sup id="fnref:3">&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref">3&lt;/a>&lt;/sup>&lt;/p>
&lt;p>In der folgenden Tabelle wird gezeigt, wie die &lt;code>Ludwigsburger Empire-Porzellantasse&lt;/code> in die vier Bestandteile zerlegt (1) und anschließend mit dem möglichst spezifischsten Begriff in der GND abgeglichen wurde (2).&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>Gegenstand&lt;/th>
&lt;th>Material&lt;/th>
&lt;th>Herkunft/Marke&lt;/th>
&lt;th>Stil&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>(1)&lt;/td>
&lt;td>Tasse&lt;/td>
&lt;td>Porzellan&lt;/td>
&lt;td>Ludwigsburger Porzellan&lt;/td>
&lt;td>Empire&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(2)&lt;/td>
&lt;td>&lt;a href="https://lobid.org/gnd/4175414-1" target="_blank" rel="noopener">Porzellantasse&lt;/a>&lt;/td>
&lt;td>&lt;a href="https://lobid.org/gnd/4046851-3" target="_blank" rel="noopener">Porzellan&lt;/a>&lt;/td>
&lt;td>&lt;a href="https://lobid.org/gnd/4168206-3" target="_blank" rel="noopener">Ludwigsburger Porzellan&lt;/a>&lt;/td>
&lt;td>&lt;a href="https://lobid.org/gnd/4152103-1" target="_blank" rel="noopener">Empire&lt;/a>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="probleme-beim-abgleich-mit-der-gnd-workflow-schritt-4">Probleme beim Abgleich mit der GND (Workflow Schritt 4)&lt;/h2>
&lt;p>Beim Finden von passenden Konzepten und Begriffen in der GND haben sich mit unseren Daten mehrere Probleme ergeben.&lt;/p>
&lt;div class="alert alert-note">
&lt;div>
&lt;ol>
&lt;li>Dieser Artikel zeigt eine Momentaufnahme der GND zum Zeitpunkt unserer Projektumsetzung.
Im Zuge der kontinuierlichen Verbesserung der Datenqualität der GND haben sich einige der im Folgenden beschriebenen Probleme eventuell schon erledigt.&lt;/li>
&lt;li>Prinzipiell wäre ein auf Objekte ausgelegter Thesaurus, wie zum Beispiel der &lt;a href="https://www.getty.edu/research/tools/vocabularies/aat" target="_blank" rel="noopener">Art &amp;amp; Architecture Thesaurus von Getty&lt;/a>, für unsere Daten geeigneter. Jedoch ist im LABW aktuell lediglich die GND als Normdatenvokabular freigegeben.&lt;/li>
&lt;li>In der GND wird zwischen Begriffen unterschieden, die für die Sacherschließung, für die Formalerschließung oder beide gemeinsam genutzt werden sollten. Die lobid-gnd OpenRefine Reconciliation API, als auch unsere im FDMLab genutzten Werkzeuge, arbeiten jedoch mit der Linked-Open-Data Form der GND. In dieser Variante wird die Information zur Verwendung nicht veröffentlicht, weshalb wir sie (meistens) ignorieren.&lt;/li>
&lt;/ol>
&lt;/div>
&lt;/div>
&lt;h3 id="teppiche">Teppiche&lt;/h3>
&lt;p>Teppiche sind häufig nach ihrer Herkunft benannt.
Bekannt ist hier zum Beispiel der &lt;a href="https://lobid.org/gnd/7505070-5" target="_blank" rel="noopener">Perserteppich&lt;/a>, welcher in der GND als &lt;a href="https://d-nb.info/standards/elementset/gnd#complexSeeReferenceSubject" target="_blank" rel="noopener">Kompositum&lt;/a> aus den Begriffen &lt;a href="https://lobid.org/gnd/4059482-8" target="_blank" rel="noopener">Teppich&lt;/a> und &lt;a href="https://lobid.org/gnd/4027653-3" target="_blank" rel="noopener">Iran&lt;/a> zusammengesetzt wurde.
Leider war das auch der einzige Teppich in unseren Daten, für den wir ein entsprechendes Konstrukt in der GND finden konnten. &lt;sup id="fnref:4">&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref">4&lt;/a>&lt;/sup>&lt;/p>
&lt;h3 id="porzellan">Porzellan&lt;/h3>
&lt;p>Porzellan wird ähnlich wie Teppiche nach seiner Herkunft bezeichnet.
In der GND finden sich unter dem Sachbegriff &lt;a href="https://lobid.org/gnd/4046851-3" target="_blank" rel="noopener">Porzellan&lt;/a> einige bekannte Bezeichnungen wie &lt;a href="https://lobid.org/gnd/4192819-2" target="_blank" rel="noopener">Berliner Porzellan&lt;/a>, &lt;a href="https://lobid.org/gnd/4168206-3" target="_blank" rel="noopener">Ludwigsburger Porzellan&lt;/a> und &lt;a href="https://lobid.org/gnd/4114559-8" target="_blank" rel="noopener">Meißener Porzellan&lt;/a>. Diese sind anders als Teppiche jedoch nicht als Kompositum mit relationierten Beziehungen angelegt, sondern es ist eine direkte Beziehung zu dem Normdateneintrag des Herstellers und/oder des Geografikums hinterlegt.&lt;/p>
&lt;p>Für die in unseren Daten verzeichneten Allacher, Bavaria, Capodimonte, Delfter, Fraureuther, Hanauer, Hörter, Hutschenreuther, Karlsbader, Königszelter, Langenthaler, Limoges, Niederweiler, Nürnberger, Schierholz, Schorndorfer, Schramberger, Selb und Straßburger Porzellane mussten wir uns jedoch eine eigene Lösung überlegen.&lt;/p>
&lt;h3 id="musikinstrumente">Musikinstrumente&lt;/h3>
&lt;p>Musikinstrumente werden häufig nach dem Namen des Erbauers bzw. als Erweiterung davon nach der Firma benannt.
So hatten wir in unseren Daten Geigen von Reményi und Stradivari, sowie Flügel von Bechstein, Blüthner, Duysen, Förster, Gotrian, Kreutzbach, Pfeiffer, Schiedmayer, Steingräber, Steinway und Steinweg.&lt;/p>
&lt;p>Hier ergibt sich das Problem, dass es in der GND keine &amp;ldquo;Stradivari-Geige&amp;rdquo; gibt.
Selbst wenn die Erbauer in der GND als Person angelegt sind, so widerstrebt es uns Personen als Ergänzung zu Sachbegriffen zu verknüpfen.&lt;/p>
&lt;h3 id="fehlende-begriffe">Fehlende Begriffe&lt;/h3>
&lt;p>Gerade im Bereich Haushaltsgegenstände fehlten uns in der GND einige Begriffe, für die es bisher wohl keine Verwendung gab.
Beispielsweise konnten wir keine passenden Begriffe für Kaminbesteck (Schürhaken, &amp;hellip;), Garderobe, oder Kleiderständer finden.
Auch ein Bügelbrett, Einkochtopf, Vorlegebesteck oder Servicebesteck suchten wir vergebens.&lt;/p>
&lt;p>Manchmal ist der unterschiedliche Detailgrad ähnlicher Begriffe auch verwirrend:&lt;/p>
&lt;ul>
&lt;li>Es gibt einen &lt;a href="https://lobid.org/gnd/4507258-9" target="_blank" rel="noopener">Salzstreuer&lt;/a> aber keinen Pfefferstreuer.&lt;/li>
&lt;li>Es gibt eine &lt;a href="https://lobid.org/gnd/4577571-0" target="_blank" rel="noopener">Kaffeekanne&lt;/a> und eine &lt;a href="https://lobid.org/gnd/4226545-9" target="_blank" rel="noopener">Teekanne&lt;/a>, aber keine Mokkakanne.&lt;/li>
&lt;li>Es gibt eine &lt;a href="https://lobid.org/gnd/4732915-4" target="_blank" rel="noopener">Kaffeetasse&lt;/a> und eine &lt;a href="https://lobid.org/gnd/4741995-7" target="_blank" rel="noopener">Mokkatasse&lt;/a>, aber keine Teetasse.&lt;/li>
&lt;li>Es gibt einen &lt;a href="https://lobid.org/gnd/4201303-3" target="_blank" rel="noopener">Teelöffel&lt;/a> aber keinen Kaffeelöffel oder Mokkalöffel.&lt;/li>
&lt;/ul>
&lt;h3 id="mehrdeutige-begriffe-bei-materialangaben">Mehrdeutige Begriffe bei Materialangaben&lt;/h3>
&lt;p>Manche Begriffe werden in der Deutschen Sprache mehrdeutig verwendet.
Dies wird in der GND manchmal berücksichtigt, manchmal auch nicht.
So können zum Beispiel Glas, Keramik und Terrakotta sowohl für das Material als auch für den Gegenstand verwendet werden.&lt;/p>
&lt;div class="mermaid">flowchart LR
4184790-8(["Terrakotta"]):::initial
click 4184790-8 href "https://lobid.org/gnd/4184790-8" "4184790-8" _blank
cat0[["Kunsthandwerk"]]:::category
click cat0 href "https://lobid.org/gnd/search?q=type%3ASubjectHeading%20AND%20gndSubjectCategory.label%3A%22Kunsthandwerk%22" "cat0" _blank
cat1[["Glas, Keramik, Steine und Erden"]]:::category
click cat1 href "https://lobid.org/gnd/search?q=type%3ASubjectHeading%20AND%20gndSubjectCategory.label%3A%22Glas%2C%20Keramik%2C%20Steine%20und%20Erden%22" "cat1" _blank
cat2[["Plastik"]]:::category
click cat2 href "https://lobid.org/gnd/search?q=type%3ASubjectHeading%20AND%20gndSubjectCategory.label%3A%22Plastik%22" "cat2" _blank
4030270-2(["Keramik"]):::initial
click 4030270-2 href "https://lobid.org/gnd/4030270-2" "4030270-2" _blank
4021142-3(["Glas"]):::initial
click 4021142-3 href "https://lobid.org/gnd/4021142-3" "4021142-3" _blank
4184790-8 --> cat0
4184790-8 --> cat1
4184790-8 --> cat2
4030270-2 --> cat1
4030270-2 --> cat0
4030270-2 --> cat2
4021142-3 --> cat1
4021142-3 --> cat0
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
classDef category fill:#FFF,stroke:#1fbeb8,stroke-width:3px,color:#000;
classDef initial fill:#FFF,stroke:#4dbd05,stroke-width:3px,color:#000;
&lt;/div>
&lt;p>Komplizierter ist es bei anderen Materialien, die im nachfolgenden Diagramm gelistet sind.
So gibt es für einen &amp;ldquo;Gegenstand aus Bronze&amp;rdquo; in der GND einen spezifischen Begriff &amp;ldquo;Bronzegegenstand&amp;rdquo;, der mit dem Material Bronze verknüpft ist.
Einen Messing-, Silber- oder Zinngegenstand gibt es nicht.
Bei dem Eisen-, Gold-, Holz-, Kupfer- und Metallgegenstand fehlt die Verknüpfung zu dem Material, weshalb wir sie zuerst übersehen haben.
Der Bleigegenstand ist dem Metallgegenstand untergeordnet, die anderen Metallgegenstände jedoch nicht.&lt;/p>
&lt;p>Als Unikat ist der Holzgegenstand in die Hierarchie der Agrarprodukte eingebunden.
Die restlichen Gegenstände im Diagramm schweben &amp;ldquo;haltlos&amp;rdquo; außerhalb einer Hierarchie.&lt;/p>
&lt;div class="mermaid">flowchart TD
1042935793(["Bleigegenstand"]):::initial
click 1042935793 href "https://lobid.org/gnd/1042935793" "1042935793" _blank
4285971-2(["Eisengegenstand"]):::initial
click 4285971-2 href "https://lobid.org/gnd/4285971-2" "4285971-2" _blank
4146676-7(["Bronzegegenstand"]):::initial
click 4146676-7 href "https://lobid.org/gnd/4146676-7" "4146676-7" _blank
4166111-4(["Kupfergegenstand"]):::initial
click 4166111-4 href "https://lobid.org/gnd/4166111-4" "4166111-4" _blank
4157843-0(["Goldgegenstand"]):::initial
click 4157843-0 href "https://lobid.org/gnd/4157843-0" "4157843-0" _blank
4169585-9(["Metallgegenstand"]):::initial
click 4169585-9 href "https://lobid.org/gnd/4169585-9" "4169585-9" _blank
4160516-0(["Holzgegenstand"]):::initial
click 4160516-0 href "https://lobid.org/gnd/4160516-0" "4160516-0" _blank
4387668-7["Holzprodukt"]
click 4387668-7 href "https://lobid.org/gnd/4387668-7" "4387668-7" _blank
4272528-8["Forstprodukt"]
click 4272528-8 href "https://lobid.org/gnd/4272528-8" "4272528-8" _blank
4068470-2["Agrarprodukt"]
click 4068470-2 href "https://lobid.org/gnd/4068470-2" "4068470-2" _blank
4145879-5["Blei"]
click 4145879-5 href "https://lobid.org/gnd/4145879-5" "4145879-5" _blank
4146667-6["Bronze"]
click 4146667-6 href "https://lobid.org/gnd/4146667-6" "4146667-6" _blank
4157819-3["Gold"]
click 4157819-3 href "https://lobid.org/gnd/4157819-3" "4157819-3" _blank
4133759-1["Silber"]
click 4133759-1 href "https://lobid.org/gnd/4133759-1" "4133759-1" _blank
4014002-7["Eisen"]
click 4014002-7 href "https://lobid.org/gnd/4014002-7" "4014002-7" _blank
4033734-0["Kupfer"]
click 4033734-0 href "https://lobid.org/gnd/4014002-7" "4033734-0" _blank
4190888-0["Zinn"]
click 4190888-0 href "https://lobid.org/gnd/4190888-0" "4190888-0" _blank
4169517-3["Messing"]
click 4169517-3 href "https://lobid.org/gnd/4169517-3" "4169517-3" _blank
4038860-8["Metall"]
click 4038860-8 href "https://lobid.org/gnd/4038860-8" "4038860-8" _blank
4025668-6["Holz"]
click 4025668-6 href "https://lobid.org/gnd/4146667-6" "4025668-6" _blank
subgraph material["Material"]
4145879-5
4146667-6
4157819-3
4133759-1
4014002-7
4033734-0
4190888-0
4169517-3
4038860-8
4025668-6
end
1042935793 --> 4169585-9
1042935793 &lt;-.-> 4145879-5
4285971-2 x-.-x 4014002-7
4157843-0 x-.-x 4157819-3
4169585-9 x-.-x 4038860-8
4160516-0 x-.-x 4025668-6
4146676-7 &lt;-.-> 4146667-6
4166111-4 x-.-x 4033734-0
4160516-0 &lt;-.-> 4387668-7
4160516-0 --> 4387668-7 --> 4272528-8 --> 4068470-2
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
classDef category fill:#FFF,stroke:#1fbeb8,stroke-width:3px,color:#000;
classDef initial fill:#FFF,stroke:#4dbd05,stroke-width:3px,color:#000;
&lt;/div>
&lt;h2 id="fazit">Fazit&lt;/h2>
&lt;p>Die Extraktion spezifischer Sachbegriffe aus unseren Erschließungsdaten mit einem selbst trainierten Modell für Named-entity Recognition funktionierte besser als erwartet.&lt;/p>
&lt;p>Die anschließenden Schritte zur Normalisierung und dem Abgleich der Daten zeigten auch hier Potential für noch mehr Automatisierung. Gleichzeitig gestaltete sich der Abgleich unserer Sachbegriffe mit den Normdaten der GND als intellektuell herausfordernd.
Hier holten wir uns häufig zusätzliche Unterstützung von unserer &lt;a href="https://fdmlab.landesarchiv-bw.de/experiment/gnd-hierarchy-vis/">Webanwendung zur Visualisierung von Sachbegriffen in der GND&lt;/a> und fragten Details über den &lt;a href="https://explore.gnd.network/" target="_blank" rel="noopener">GND Explorer&lt;/a> ab.&lt;/p>
&lt;p>Prinzipiell würden wir uns von vielem in der GND mehr wünschen: mehr Begriffe, mehr Varianten, mehr Struktur und mehr Uniformität.
Gleichzeitig wissen wir den Komfort der lobid-gnd OpenRefine Reconciliation API und der schon für die GND geleistete Arbeit zu schätzen.&lt;/p>
&lt;p>Über die Ergebnisse des Fünften Schrittes &amp;ldquo;Aufbau einer Hierarchie basierend auf Informationen aus der GND&amp;rdquo; berichten wir separat.&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>Auf Grund von Schutzfristen ist noch nicht klar, welche Bestände wir nach Abschluss des Projektes schon veröffentlichen können.&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>Siehe &lt;a href="https://twitter.com/explosion_ai/status/1601257372743307265" target="_blank" rel="noopener">Best practice recommendations from Explosion.ai on Twitter&lt;/a>.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:3">
&lt;p>Das mag Routine für die Beschreibung von Objekten in Museen sein, ist bei uns im Archiv jedoch unüblich.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:4">
&lt;p>In der GND gibt es noch den &lt;a href="https://lobid.org/gnd/7506699-3" target="_blank" rel="noopener">Berberteppich&lt;/a>, der ebenfalls als Kompositum angelegt wurde, für den wir in unseren Daten jedoch keine Beispiele hatten.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>GND in lokale Datenbank laden (reloaded)</title><link>https://fdmlab.landesarchiv-bw.de/post/2022-12-gnd-in-lokale-datenbank-laden-reloaded/</link><pubDate>Tue, 13 Dec 2022 00:00:00 +0000</pubDate><guid>https://fdmlab.landesarchiv-bw.de/post/2022-12-gnd-in-lokale-datenbank-laden-reloaded/</guid><description>&lt;p>Wir setzen unser lokales Testsystem für Experimente mit der Linked Open Data Version der Gemeinsamen Normdatei mit &lt;strong>Oxigraph&lt;/strong> neu auf.&lt;/p>
&lt;p>Wir hatten vor über einem Jahr schon einen ausführlichen Artikel zum &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2021-06-gnd-in-lokale-datenbank-laden/">Laden der GND in einen Apache Jena Triplestore&lt;/a> verfasst. Das beschriebene Setup ist nach wie vor im Einsatz und wir sind auch (meistens) zufrieden damit. Jedoch dauert das Einlesen von Daten doch recht lange, was das Aufsetzen von Ad-Hoc Experimenten erschwert.&lt;/p>
&lt;p>Daher haben wir als Alternative das relativ neue Projekt Oxigraph getestet.&lt;/p>
&lt;h2 id="datenbank-oxigraph">Datenbank: Oxigraph&lt;/h2>
&lt;figure class="float-right" id="figure-oxigraphhttpsgithubcomoxigraphoxigraph-logo">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="[Oxigraph](https://github.com/oxigraph/oxigraph) Logo." srcset="
/post/2022-12-gnd-in-lokale-datenbank-laden-reloaded/oxigraph_hu63b9f0ab308a14bda665a5c76457113b_25957_f2299a627e7fb33ac96514090804a724.webp 400w,
/post/2022-12-gnd-in-lokale-datenbank-laden-reloaded/oxigraph_hu63b9f0ab308a14bda665a5c76457113b_25957_1d6ee86304e49f7ccba2ffbaf645acd7.webp 760w,
/post/2022-12-gnd-in-lokale-datenbank-laden-reloaded/oxigraph_hu63b9f0ab308a14bda665a5c76457113b_25957_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2022-12-gnd-in-lokale-datenbank-laden-reloaded/oxigraph_hu63b9f0ab308a14bda665a5c76457113b_25957_f2299a627e7fb33ac96514090804a724.webp"
width="200"
height="450"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
&lt;a href="https://github.com/oxigraph/oxigraph" target="_blank" rel="noopener">Oxigraph&lt;/a> Logo.
&lt;/figcaption>&lt;/figure>
&lt;p>Das Projekt &lt;a href="https://github.com/oxigraph/oxigraph" target="_blank" rel="noopener">Oxigraph&lt;/a> ermöglicht uns ein ähnliches Setup, wie wir es mit &lt;a href="https://jena.apache.org/" target="_blank" rel="noopener">Apache Jena&lt;/a> aufgebaut haben.
Anders als Apache Jena basiert Oxigraph auf der Programmiersprache &lt;a href="https://www.rust-lang.org/" target="_blank" rel="noopener">Rust&lt;/a> und verwendet &lt;a href="https://rocksdb.org/" target="_blank" rel="noopener">RocksDB&lt;/a> als Datenbank im Hintergrund.
Das ist für den Endanwender jedoch nicht sichtbar, so dass diese technischen Details sich hauptsächlich in einer schnelleren Verarbeitungsgeschwindigkeit bemerkbar machen.&lt;/p>
&lt;h2 id="einlesen-der-daten">Einlesen der Daten&lt;/h2>
&lt;p>Zum Einlesen haben wir uns die Datei &lt;code>authorities-gnd_lds.nt.gz&lt;/code> aus dem &lt;a href="https://data.dnb.de/opendata/" target="_blank" rel="noopener">DNB Data Dump&lt;/a> heruntergeladen.
Anders als in unserem Apache Jena Projekt, müssen wir die Komprimierung der Daten vor dem Einlesen mit &lt;code>gzip -d authorities-gnd_lds.nt.gz&lt;/code> auflösen. &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>Wir arbeiten mit der folgenden Ordnerstruktur:&lt;/p>
&lt;div class="mermaid">---
title: Ordnerstruktur
config:
look: handDrawn
theme: neutral
---
flowchart TD
subgraph data[far:fa-folder-open data]
fuseki[far:fa-folder oxigraph]
gnd_triples[far:fa-folder gnd_triples]
end
root[far:fa-folder-open oxigraph_test] --> data
root --> README[far:fa-file README.md]
&lt;/div>
&lt;ul>
&lt;li>&lt;strong>README.md&lt;/strong>: Überblick über das Projekt und die Daten geben!&lt;/li>
&lt;li>&lt;strong>oxigraph&lt;/strong>: Ordner zum Persistieren der Datenbank von Oxigraph.&lt;/li>
&lt;li>&lt;strong>gnd_triples&lt;/strong>: Speicherort der &lt;code>.nt&lt;/code> Datei.&lt;/li>
&lt;/ul>
&lt;h3 id="einlese-variante-1">Einlese-Variante 1&lt;/h3>
&lt;p>In dieser Variante lassen wir zuerst die Daten in einem Container einlesen und dann in einem neuen Container anzeigen.
Der folgende Befehl startet einen Docker Container mit dem Verzeichnis der Daten zum Einlesen und einem Verzeichnis zum Speichern der Datenbank.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">docker run -it --rm --name&lt;span class="o">=&lt;/span>gnd-oxigraph -v &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">PWD&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">/data/gnd_triples:/gnd_triples&amp;#34;&lt;/span> -v &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">PWD&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">/data/oxigraph:/data&amp;#34;&lt;/span> oxigraph/oxigraph --location /data load --file /gnd_triples/authorities-gnd_lds.nt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Sobald der Einleseprozess beendet wurde und der Container sich schließt, können wir einen neuen Container zum Arbeiten mit den Daten starten.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">docker run -d --rm --name&lt;span class="o">=&lt;/span>gnd-oxigraph -p 8080:7878 -v &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">PWD&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">/data/oxigraph:/data&amp;#34;&lt;/span> oxigraph/oxigraph --location /data serve --bind&lt;span class="o">=&lt;/span>0.0.0.0:7878
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Anschließend können wir die Benutzeroberfläche in einem Webbrowser über &lt;code>http://localhost:8080&lt;/code> aufrufen.
Der Port &lt;code>8080&lt;/code> wurde hierbei von uns im &lt;code>docker run&lt;/code> Befehl gesetzt und kann angepasst werden.&lt;/p>
&lt;h3 id="einlese-variante-2">Einlese-Variante 2&lt;/h3>
&lt;p>Wir können die Daten auch direkt &lt;strong>in&lt;/strong> dem Arbeitscontainer einlesen lassen.
Beim Starten des Containers müssen wir dabei zusätzlich den Pfad zu den GND Daten einbinden.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">docker run -d --rm --name&lt;span class="o">=&lt;/span>gnd-oxigraph -p 8080:7878 -v &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">PWD&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">/data/gnd_triples:/gnd_triples&amp;#34;&lt;/span> -v &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">PWD&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">/data/oxigraph:/data&amp;#34;&lt;/span> oxigraph/oxigraph --location /data serve --bind&lt;span class="o">=&lt;/span>0.0.0.0:7878
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Anschließend starten wir den Einleseprozess, indem wir den Befehl &lt;code>oxigraph_server load&lt;/code> in dem laufenden Container ausführen.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">docker &lt;span class="nb">exec&lt;/span> -it gnd-oxigraph /usr/local/bin/oxigraph load --location /data --file /gnd_triples/authorities-gnd_lds.nt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="3-anzeigen-der-daten">3. Anzeigen der Daten&lt;/h3>
&lt;p>Abschließend testen wir exemplarisch, ob die Daten nutzbar sind.
Hierfür verwenden wir eine SPARQL Abfrage mit einem Standardbeispiel aus der &lt;a href="https://d-nb.info/standards/elementset/gnd" target="_blank" rel="noopener">GND Ontology&lt;/a>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="nv">?p&lt;/span> &lt;span class="nv">?o&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/118514091&amp;gt;&lt;/span> &lt;span class="nv">?p&lt;/span> &lt;span class="nv">?o&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="zusammenfassung-und-ausblick">Zusammenfassung und Ausblick&lt;/h2>
&lt;p>Oxigraph ist im Vergleich zu Apache Jena noch etwas grob an manchen Stellen und befindet sich noch in der aktiven Entwicklung.
Es ist also gut möglich, dass die hier verwendeten Befehle in einer späteren Version nicht mehr so funktioniert oder Schritte wie das Auflösen der &lt;code>.gz&lt;/code>-Komprimierung nicht mehr notwendig sind. &lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref">2&lt;/a>&lt;/sup>&lt;/p>
&lt;figure id="figure-bildschirmfoto-der-weboberfläche-von-oxigraph">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Bildschirmfoto der Weboberfläche von Oxigraph." srcset="
/post/2022-12-gnd-in-lokale-datenbank-laden-reloaded/oxigraph-screenshot_hu46c0a90aff7302944c5b3bc96ca6bf21_89821_9a012596cf5469f100ebbf1a0ff06c8a.webp 400w,
/post/2022-12-gnd-in-lokale-datenbank-laden-reloaded/oxigraph-screenshot_hu46c0a90aff7302944c5b3bc96ca6bf21_89821_eca82f98e844b81442eb250a334bbf3e.webp 760w,
/post/2022-12-gnd-in-lokale-datenbank-laden-reloaded/oxigraph-screenshot_hu46c0a90aff7302944c5b3bc96ca6bf21_89821_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2022-12-gnd-in-lokale-datenbank-laden-reloaded/oxigraph-screenshot_hu46c0a90aff7302944c5b3bc96ca6bf21_89821_9a012596cf5469f100ebbf1a0ff06c8a.webp"
width="760"
height="485"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Bildschirmfoto der Weboberfläche von Oxigraph.
&lt;/figcaption>&lt;/figure>
&lt;p>Überrascht waren wir von der Geschwindigkeit, mit der die Daten der GND eingelesen und Abfragen ausgeführt werden können.
In der folgenden Tabelle ist ein direkter Vergleich mit unserem Apache Jena Setup für das Einlesens der GND und das Durchführens der Abfrage aus &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2021-06-erste-experimente-mit-der-gnd/">Erste Experimente mit der GND&lt;/a> gelistet.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th style="text-align:right">GND laden&lt;/th>
&lt;th style="text-align:right">Testabfrage&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Apache Jena&lt;/td>
&lt;td style="text-align:right">5.329,1s&lt;/td>
&lt;td style="text-align:right">17,5s&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Oxigraph&lt;/td>
&lt;td style="text-align:right">391,0s&lt;/td>
&lt;td style="text-align:right">3,6s&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Das ist natürlich kein ausführlicher oder repräsentativer Benchmark, zeigt aber direkt den Geschwindigkeitsunterschied mit den Daten mit denen wir aktuell arbeiten. Das ermöglichst uns zukünftig Umgebungen für Ad-Hoc Experimente mit der GND zu erstellen.&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>Wir haben für diesen Blogbeitrag Oxigraph in Version v0.3.8 und den GND Dump vom 13. Oktober 2022 verwendet.&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>&lt;a href="https://github.com/oxigraph/oxigraph/tree/main/server#using-a-docker-image" target="_blank" rel="noopener">Dokumentation zur Verwendung des Oxigraph Docker Image&lt;/a>&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>NER Modell mit GND Starthilfe trainieren</title><link>https://fdmlab.landesarchiv-bw.de/post/2022-09-ner-modell-mit-gnd-starthilfe-trainieren/</link><pubDate>Tue, 27 Sep 2022 00:00:00 +0000</pubDate><guid>https://fdmlab.landesarchiv-bw.de/post/2022-09-ner-modell-mit-gnd-starthilfe-trainieren/</guid><description>&lt;p>In diesem Artikel beschäftigen wir uns mit dem Thema &lt;em>Named Entity Recognition&lt;/em>.
Wir trainieren ein eigenes Modell zur Erkennung von Kunst- und Kulturobjekten in unseren Erschließungsdaten und verwenden als Starthilfe die Gemeinsame Normdatei.&lt;/p>
&lt;h2 id="ner-und-erschließung">NER und Erschließung&lt;/h2>
&lt;p>Ein Arbeitsschritt bei der Erschließung ist die Erstellung von Deskriptoren, also die Identifikation von relevanten Entitäten in den zu verzeichnenden Archivalien.
Dazu gehören relevante Körperschaften, Personen, Orte und Dinge.
Wenn möglich, werden die identifizierten Entitäten zusätzlich mit passenden IDs aus der Gemeinsamen Normdatei (GND) versehen und somit semantisch verknüpft (Linked Data).
Im Bereich des maschinellen Lernens werden diese beiden Schritte &lt;em>Named Entity Recognition&lt;/em> (NER) und &lt;em>Named Entity Linking&lt;/em> (NEL) genannt.&lt;/p>
&lt;p>Dieser Arbeitsschritt findet in der Realität nicht unbedingt direkt bei der initialen Erfassung statt.
Wir haben im Landesarchiv noch analoge Findmittel, die wir Retrodigitalisieren, und digitale Findbücher, bei der die Schlagworte (Deskriptoren) fehlen oder unvollständig sind.&lt;/p>
&lt;p>In einem Experiment zur Vorbereitung eines Projektes im Kontext der Provenienzforschung testeten wir verschiedene Möglichkeiten NER zur Identifikation von beschriebenen Kunst- und Kulturobjekten in unseren Erschließungsdaten zu verwenden. &lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>&lt;/p>
&lt;h2 id="ner-im-kontext-archiv">NER im Kontext Archiv&lt;/h2>
&lt;p>&lt;em>Named Entity Recognition&lt;/em> gehört zu den stabilen und gern genutzten KI Verfahren zur Extraktion von Informationen.
Dafür gibt es schon vortrainierte Modelle, die innerhalb eines &lt;em>Natural Language Processing&lt;/em> (NLP) Frameworks wie &lt;a href="https://spacy.io/" target="_blank" rel="noopener">spaCy&lt;/a> oder &lt;a href="https://github.com/flairNLP/flair" target="_blank" rel="noopener">flair&lt;/a> verwendet werden können.
Für unser Experiment haben wir uns für &lt;a href="https://spacy.io/" target="_blank" rel="noopener">spaCy&lt;/a> als NLP Framework entschieden, da es ein für uns passendes Ökosystem mitbringt.&lt;/p>
&lt;p>Hier ein mit NER verarbeiteter Beispieltext über das Landesarchiv Baden-Württemberg, welcher von der englischsprachigen Wikipedia angepasst wurde. &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="entities" style="line-height: 2.5; direction: ltr">&lt;br>
&lt;mark class="entity" style="background: #cedb9c; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
The State Archives
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">ORG&lt;/span>
&lt;/mark>
of Baden-Württemberg (
&lt;mark class="entity" style="background: #cedb9c; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
LABW
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">ORG&lt;/span>
&lt;/mark>
) encompasses all state archives in
&lt;mark class="entity" style="background: #e7ba52; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
Baden-Württemberg
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">GPE&lt;/span>
&lt;/mark>
.&lt;br>
&lt;mark class="entity" style="background: #cedb9c; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
The State Archives
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">ORG&lt;/span>
&lt;/mark>
of Baden-Württemberg is part of the portfolio of
&lt;mark class="entity" style="background: #d6616b; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
the Baden-Württemberg Ministry for Science, Research and Arts
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">FAC&lt;/span>
&lt;/mark>
.&lt;br>It keeps historic documents that reach back to
&lt;mark class="entity" style="background: #e7cb94; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
the middle ages
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">DATE&lt;/span>
&lt;/mark>
.&lt;br>The current President of
&lt;mark class="entity" style="background: #cedb9c; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
the State Archives
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">ORG&lt;/span>
&lt;/mark>
of Baden-Württemberg has been Prof. Dr.
&lt;mark class="entity" style="background: #a55194; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
Gerald Maier
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">PERSON&lt;/span>
&lt;/mark>
since
&lt;mark class="entity" style="background: #e7cb94; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
February 1st, 2018
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">DATE&lt;/span>
&lt;/mark>
.&lt;br>It employs
&lt;mark class="entity" style="background: #843c39; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
around 250
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">CARDINAL&lt;/span>
&lt;/mark>
people at
&lt;mark class="entity" style="background: #843c39; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
8
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">CARDINAL&lt;/span>
&lt;/mark>
locations.&lt;br>&lt;/div>
&lt;hr>
&lt;p>Das Model &lt;em>en_core_web_lg&lt;/em> hat generell einen &lt;strong>f-score&lt;/strong> von &lt;strong>0,85&lt;/strong> und unterscheidet &lt;strong>18&lt;/strong> Arten von &lt;strong>Entitäten&lt;/strong>: CARDINAL, DATE, EVENT, FAC, GPE, LANGUAGE, LAW, LOC, MONEY, NORP, ORDINAL, ORG, PERCENT, PERSON, PRODUCT, QUANTITY, TIME und WORK_OF_ART. &lt;sup id="fnref:3">&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref">3&lt;/a>&lt;/sup>&lt;/p>
&lt;hr>
&lt;p>Farblich hervorgehoben sind die vom Modell erkannten Entitäten und leicht abgesetzt der bestimmte Entitätentyp.
Der &lt;strong>f-score&lt;/strong> besagt in diesem Fall (vereinfacht!), dass in der Evaluation des Modells, von den gesuchten Entitäten etwa 85% gefunden wurden (&lt;em>Recall&lt;/em>) und von den markierten Entitäten etwa 85% richtig markiert wurden (&lt;em>Precision&lt;/em>). &lt;sup id="fnref:4">&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref">4&lt;/a>&lt;/sup>
In unserem von Wikipedia angepassten Beispieltext bestätigten sich diese Werte.&lt;/p>
&lt;p>Hier ein mit NER verarbeiteter Beispieltext über das Landesarchiv Baden-Württemberg, welcher von der deutschsprachigen Wikipedia angepasst wurde. &lt;sup id="fnref:5">&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref">5&lt;/a>&lt;/sup>&lt;/p>
&lt;div class="entities" style="line-height: 2.5; direction: ltr">&lt;br>Das
&lt;mark class="entity" style="background: #8c6d31; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
Landesarchiv Baden-Württemberg
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">LOC&lt;/span>
&lt;/mark>
(LABW) umfasst alle
&lt;mark class="entity" style="background: #b5cf6b; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
baden-württembergischen
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">MISC&lt;/span>
&lt;/mark>
Staatsarchive.&lt;br>Es gehört zum Geschäftsbereich des
&lt;mark class="entity" style="background: #cedb9c; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
Ministeriums für Wissenschaft, Forschung und Kunst Baden-Württemberg.
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">ORG&lt;/span>
&lt;/mark>
&lt;br>Es verwahrt historische Dokumente, die bis zum Mittelalter zurückreichen.&lt;br>Der amtierende Präsident des
&lt;mark class="entity" style="background: #a55194; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
Landesarchives
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">PER&lt;/span>
&lt;/mark>
ist seit dem 01. Februar 2018 Prof. Dr.
&lt;mark class="entity" style="background: #a55194; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
Gerald Maier.
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">PER&lt;/span>
&lt;/mark>
&lt;br>Es beschäftigt circa 250 Mitarbeiter an 8 Standorten.&lt;br>&lt;/div>
&lt;hr>
&lt;p>Das Model &lt;em>de_core_news_lg&lt;/em> hat einen &lt;strong>f-score&lt;/strong> von &lt;strong>0,85&lt;/strong> und unterscheidet &lt;strong>4&lt;/strong> Arten von &lt;strong>Entitäten&lt;/strong>: LOC, MISC, ORG, PER. &lt;sup id="fnref:6">&lt;a href="#fn:6" class="footnote-ref" role="doc-noteref">6&lt;/a>&lt;/sup>&lt;/p>
&lt;hr>
&lt;p>Das Modell für die deutsche Sprache erkennt und unterscheidet deutlich weniger Arten von Entitäten.
Das hat damit zu tun, dass es für die deutsche Sprache keine so umfangreichen und frei verfügbaren Trainingsdaten gibt.
Die Qualität der Erkennung (&lt;strong>f-score&lt;/strong>) ist mit dem des englischsprachigen Modells vergleichbar.
Aus Sicht deutschsprachiger Anwender ist es jedoch frustrierend sich auf vier Arten von Entitäten beschränken zu müssen.&lt;/p>
&lt;p>Wenden wir das deutschsprachige Modell auf Texte in unseren Erschließungsdaten an, so gibt es noch ein weiteres Problem. &lt;sup id="fnref:7">&lt;a href="#fn:7" class="footnote-ref" role="doc-noteref">7&lt;/a>&lt;/sup>&lt;/p>
&lt;div class="entities" style="line-height: 2.5; direction: ltr">&lt;br>Besitzhinweis auf Mobiliar (hauptsächlich gekauft bei der
&lt;mark class="entity" style="background: #8c6d31; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
Möbelfirma
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">LOC&lt;/span>
&lt;/mark>
&lt;mark class="entity" style="background: #a55194; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
Winfried Mueller, Stuttgart
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">PER&lt;/span>
&lt;/mark>
), 1 vollständigen Silberkasten und mindestens 4 Silber-Becher.&lt;br>Zahlung von 11100 fl. samt rückständigen neunjährigen Zinsen in Höhe von 4999 fl. oder Einsetzung in das adelige Gut Werenwag.&lt;br>Gen. Forderung stammt aus Streit über Erbe des im November 1595 verst. K[C]aspar (von)
&lt;mark class="entity" style="background: #b5cf6b; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
Laubenberg.
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">MISC&lt;/span>
&lt;/mark>
&lt;br>Entzug des ordentlichen Richters und Verstoß gegen Haigerlocher
&lt;mark class="entity" style="background: #a55194; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
Evokationsprivileg
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">PER&lt;/span>
&lt;/mark>
durch Verschleppung kläg. Sohns gen. &amp;quot;junger Lenz&amp;quot; nach Sigmaringen, wo gegen ihn
&lt;mark class="entity" style="background: #a55194; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">
Kriminalprozeß
&lt;span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">PER&lt;/span>
&lt;/mark>
angestrengt wurde.&lt;br>&lt;/div>
&lt;hr>
&lt;p>Bei unseren Texten hat das Modell praktisch einen &lt;strong>f-score&lt;/strong> von (nahe) 0.
Das ist jedoch kein Problem des spaCy Modells, sondern ein generelles Problem von NER (&lt;strong>Domänenproblem&lt;/strong>).
Das auf allgemeinen Texten trainierte Modell funktioniert wie erwartet auf Wikipedia Texten, hat jedoch Probleme mit der speziellen Domäne der &amp;ldquo;Erschließungsdaten im LABW&amp;rdquo;.&lt;/p>
&lt;p>Das bedeutet, dass wir für die meisten unserer Probleme keine vortrainierten Modelle verwenden können, sondern Modelle speziell für unsere Anwendungszwecke neu erstellen oder nachtrainieren müssen.
Das erfordert aktuell&lt;/p>
&lt;ul>
&lt;li>Technisch versierte Personen, die Daten Pipelines und Workflows erstellen können.&lt;/li>
&lt;li>Fachpersonal, welches die entsprechenden Trainingsdaten erstellen kann.&lt;/li>
&lt;li>Eine Softwareumgebung zur Erstellung der Trainingsdaten.&lt;/li>
&lt;li>Eine Hardwareumgebung zum Trainieren der Modelle.&lt;/li>
&lt;/ul>
&lt;p>Da dies von den meisten kulturellen Einrichtungen nicht geleistet werden kann, arbeiten mehrere NFDI Konsortien, darunter &lt;a href="https://nfdi4culture.de/" target="_blank" rel="noopener">NFDI4Culture&lt;/a> und je nach Genehmigungsstatus ab nächstem Jahr &lt;a href="https://4memory.de/" target="_blank" rel="noopener">NFDI4Memory&lt;/a> daran, mögliche Lösungen für diese Anforderungen zu entwickeln und zur Verfügung zu stellen.&lt;/p>
&lt;p>Da das FDMLab explizit dafür ausgelegt ist, solche Probleme zu untersuchen und damit wertvolle Vorarbeiten zu leisten, konnten wir uns dieses Problem ansehen und exemplarisch an einer konkreten Aufgabe durcharbeiten.&lt;/p>
&lt;h2 id="trainieren-eines-ner-modells">Trainieren eines NER Modells&lt;/h2>
&lt;p>Bei der Erstellung von Trainingsdaten für unser NER Modell waren wir mit dem so genannten &amp;ldquo;Kaltstart&amp;rdquo;-Problem konfrontiert.
Das bedeutet, dass wir noch keine Trainingsdaten hatten und auch keine Möglichkeit diese auf einfache Art- und Weise zu &amp;ldquo;synthetisieren&amp;rdquo;.
Da wir es in unserem speziellen Fall explizit mit Kunst- und Kulturobjekten zu tun haben und es in der GND einen umfangreichen Thesaurus mit Sachschlagworten gibt, hatten wir die Idee die Sachschlagworte in der GND als erste Grundlage zu verwenden und anschließend in einem aktiven Lernverfahren den Trainingsprozess für das Fachpersonal zu vereinfachen. &lt;sup id="fnref:8">&lt;a href="#fn:8" class="footnote-ref" role="doc-noteref">8&lt;/a>&lt;/sup>&lt;/p>
&lt;h3 id="vorbereitungen">Vorbereitungen&lt;/h3>
&lt;p>Wir verwenden &lt;a href="https://spacy.io/" target="_blank" rel="noopener">spaCy&lt;/a> als NLP Framework und &lt;a href="https://prodi.gy/" target="_blank" rel="noopener">prodigy&lt;/a> zur Erstellung der Trainingsdaten.
Damit können wir basierend auf den Begriffen aus der GND eine Sammlung von Regeln hinterlegen, die automatisch Begriffe vorauswählen. &lt;sup id="fnref:9">&lt;a href="#fn:9" class="footnote-ref" role="doc-noteref">9&lt;/a>&lt;/sup>&lt;/p>
&lt;p>Dafür müssen die Daten aus der GND erst noch extrahiert und aufbereitet werden.&lt;/p>
&lt;h4 id="gnd-daten-extrahieren">GND Daten extrahieren&lt;/h4>
&lt;p>Wie wir die &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2021-06-gnd-in-lokale-datenbank-laden/">GND in ihrer Linked Open Data (LOD) Form in einen lokalen Apache Jena Server laden&lt;/a>, haben wir bereits ausführlich beschrieben.
Die Schlagworte extrahieren wir anschließend via SPARQL zusammen mit ihren Varianten und GND Sachgruppen.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/elementset/gnd#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gndCat&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/vocab/gnd/gnd-sc#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">rdf&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">skos&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;http://www.w3.org/2004/02/skos/core#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="k">DISTINCT&lt;/span> &lt;span class="nv">?gndID&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nf">SAMPLE&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?namex&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="nv">?name&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nf">SAMPLE&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?variantsx&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nv">?variants&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nf">GROUP_CONCAT&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?categoryName&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nf">SEPARATOR&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;|&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="nv">?categories&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?gndID&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">gndSubjectCategory&lt;/span> &lt;span class="nv">?category&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?category&lt;/span> &lt;span class="nn">skos&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">prefLabel&lt;/span> &lt;span class="nv">?categoryName&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">FILTER&lt;/span> &lt;span class="p">(&lt;/span> &lt;span class="nf">lang&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?categoryName&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;de&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">SELECT&lt;/span> &lt;span class="k">DISTINCT&lt;/span> &lt;span class="nv">?gndID&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nf">SAMPLE&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?prefName&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="nv">?namex&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nf">GROUP_CONCAT&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?variant&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nf">SEPARATOR&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;|&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="nv">?variantsx&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="err">VALUES&lt;/span> &lt;span class="nv">?subjectType&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">SubjectHeading&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">SubjectHeadingSensoStricto&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">ProductNameOrBrandName&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?gndID&lt;/span> &lt;span class="nn">rdf&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">type&lt;/span> &lt;span class="nv">?subjectType&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">preferredNameForTheSubjectHeading&lt;/span> &lt;span class="nv">?prefName&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">OPTIONAL&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="nv">?gndID&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">variantNameForTheSubjectHeading&lt;/span> &lt;span class="nv">?variant&lt;/span> &lt;span class="p">}&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">GROUP BY&lt;/span> &lt;span class="nv">?gndID&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">GROUP BY&lt;/span> &lt;span class="nv">?gndID&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Bei der Abfrage beschränken wir uns auf die Typen &lt;a href="https://d-nb.info/standards/elementset/gnd#SubjectHeading" target="_blank" rel="noopener">SubjectHeading&lt;/a>, &lt;a href="https://d-nb.info/standards/elementset/gnd#SubjectHeadingSensoStricto" target="_blank" rel="noopener">SubjectHeadingSensoStricto&lt;/a> und &lt;a href="https://d-nb.info/standards/elementset/gnd#ProductNameOrBrandName" target="_blank" rel="noopener">ProductNameOrBrandName&lt;/a>.
Ein Begriff kann in der GND auch mit alternativen Benennungen gelistet werden (&lt;em>variants&lt;/em>).
Diese sind zwar hilfreich, jedoch nicht so umfassend wie die Daten im englischsprachen &lt;a href="https://de.wikipedia.org/wiki/WordNet" target="_blank" rel="noopener">WordNet&lt;/a> oder im lizenzpflichtigen deutschsprachigen &lt;a href="https://de.wikipedia.org/wiki/GermaNet" target="_blank" rel="noopener">GermaNet&lt;/a>.
Ein Begriff ist einer oder mehreren &lt;a href="https://d-nb.info/standards/vocab/gnd/gnd-sc.html" target="_blank" rel="noopener">Sachgruppen&lt;/a> zugeordnet.&lt;/p>
&lt;p>In der folgenden Tabelle ist das Ergebnis der SPARQL-Abfrage mit fünf Ergebnissen gezeigt.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>gndID&lt;/th>
&lt;th>name&lt;/th>
&lt;th>variants&lt;/th>
&lt;th>categories&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>4300598-6&lt;/td>
&lt;td>Tonnelierter Raum&lt;/td>
&lt;td>Barrelled spaces &lt;strong>|&lt;/strong> Espace tonnelé&lt;/td>
&lt;td>Mathematik&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>4207912-3&lt;/td>
&lt;td>Götter &amp;lt;Motiv&amp;gt;&lt;/td>
&lt;td>&lt;/td>
&lt;td>Sachliche Motive in der Kunst &lt;strong>|&lt;/strong> Literarische Motive, Stoffe, Gestalten&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>7528956-8&lt;/td>
&lt;td>Pflanzenbeobachtung&lt;/td>
&lt;td>Pflanzen / Beobachtung&lt;/td>
&lt;td>Botanik (Allgemeines)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>4379234-0&lt;/td>
&lt;td>Freiwillige Selbstkontrolle&lt;/td>
&lt;td>FSK &lt;strong>|&lt;/strong> Selbstkontrolle &amp;lt;Publizistik&amp;gt;&lt;/td>
&lt;td>Film &lt;strong>|&lt;/strong> Presse &lt;strong>|&lt;/strong> Rundfunk, Neue Medien&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>4173231-5&lt;/td>
&lt;td>Papstkrönung&lt;/td>
&lt;td>Papst / Krönung&lt;/td>
&lt;td>Kirchengeschichte &lt;strong>|&lt;/strong> Geschichte überregionaler Gebiete&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h4 id="gnd-daten-aufbereiten">GND Daten aufbereiten&lt;/h4>
&lt;p>Die in Tabellenform extrahierten Begriffe werden anschließend in OpenRefine aufbereitet und markiert.
Dafür werden die mit &lt;strong>|&lt;/strong> getrennten Varianten und Sachgruppen in einer &lt;a href="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/10-arbeiten-mit-records/">Record-Struktur&lt;/a> aufgelöst, sowie Ergänzungen in Klammern (&lt;em>&amp;lt;Motiv&amp;gt;&lt;/em>, &lt;em>(Allgemeines)&lt;/em>, &amp;hellip;) und Hierarchiezeichen (&lt;em>Papst / Krönung&lt;/em> =&amp;gt; &lt;em>Papst Krönung&lt;/em>) mit &lt;a href="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/08-regulaere-ausdruecke/">regulären Ausdrücken&lt;/a> entfernt.&lt;/p>
&lt;p>Anschließend werden drei Datensätze erstellt:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>GND ALL&lt;/strong>: enthält &lt;strong>alle&lt;/strong> extrahierten Begriffe und Varianten&lt;/li>
&lt;li>&lt;strong>GND Groups&lt;/strong>: enthält alle Begriffe und Varianten in von uns &lt;strong>markierten Sachgruppen&lt;/strong>&lt;/li>
&lt;li>&lt;strong>GND Selected&lt;/strong>: enthält alle separat von uns &lt;strong>markierte Begriffe&lt;/strong> mit ihren Varianten&lt;/li>
&lt;/ul>
&lt;div class="alert alert-note">
&lt;div>
Bei der Identifikation von relevanten Sachgruppen ist unser &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2022-05-experiment-mit-gnd-visualisierungen/">Experiment zur GND Hierarchie Visualisierung&lt;/a> eine große Hilfe.
&lt;/div>
&lt;/div>
&lt;p>Für jeden Datensatz wird mit Python anschließend ein einfacher Regelsatz (&lt;strong>Simple&lt;/strong>) und ein komplexer Regelsatz (&lt;strong>Complex&lt;/strong>) für spaCy erstellt.&lt;/p>
&lt;p>Für den &lt;strong>einfachen&lt;/strong> Regelsatz wird eine Regel mit dem Begriff in seiner bevorzugten Schreibweise erstellt.
Besteht der Begriff aus mehreren Worten, so wird zusätzlich eine Regel für eine Schreibweise mit Bindestrichen und eine Regel für eine Schreibweise ohne Bindestriche oder Leerzeichen erstellt.&lt;/p>
&lt;p>Hier am Beispiel des Begriffes &lt;em>Ludwigsburger Porzellan&lt;/em>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-json" data-lang="json">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>&lt;span class="nt">&amp;#34;label&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;OBJ&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nt">&amp;#34;pattern&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;Ludwigsburger Porzellan&amp;#34;&lt;/span>&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>&lt;span class="nt">&amp;#34;label&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;OBJ&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nt">&amp;#34;pattern&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;Ludwigsburger-Porzellan&amp;#34;&lt;/span>&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>&lt;span class="nt">&amp;#34;label&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;OBJ&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nt">&amp;#34;pattern&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;Ludwigsburgerporzellan&amp;#34;&lt;/span>&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Damit decken wir unterschiedliche Schreibweisen für zusammengesetzte Wörter und ggf. fehlende Leerzeichen ab.
Tippfehler, andere grammatikalische Formen und Synonyme werden dadurch nicht gefunden.&lt;/p>
&lt;p>Für den &lt;strong>komplexen&lt;/strong> Regelsatz wird via regulären Ausdrücken zusätzlich die Option berücksichtigt, dass es weitere mit Bindestrich verbundene Wortbestandteile geben kann (Ludwigsburger-Porzellan-Tasse) und zusätzlich die Grundform des Wortes (Lemma) als Vergleichskriterium verwendet. &lt;sup id="fnref:10">&lt;a href="#fn:10" class="footnote-ref" role="doc-noteref">10&lt;/a>&lt;/sup>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-json" data-lang="json">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>&lt;span class="nt">&amp;#34;label&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;OBJ&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nt">&amp;#34;pattern&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[{&lt;/span>&lt;span class="nt">&amp;#34;LEMMA&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;Ludwigsburger&amp;#34;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="nt">&amp;#34;LEMMA&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;Porzellan&amp;#34;&lt;/span>&lt;span class="p">}]}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>&lt;span class="nt">&amp;#34;label&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;OBJ&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nt">&amp;#34;pattern&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[{&lt;/span>&lt;span class="nt">&amp;#34;LEMMA&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="nt">&amp;#34;REGEX&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;Ludwigsburger\\-Porzellan((-|\\s)\\w+)?&amp;#34;&lt;/span>&lt;span class="p">}}]}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>&lt;span class="nt">&amp;#34;label&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;OBJ&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nt">&amp;#34;pattern&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[{&lt;/span>&lt;span class="nt">&amp;#34;LEMMA&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="nt">&amp;#34;REGEX&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;Ludwigsburgerporzellan((-|\\s)\\w+)?&amp;#34;&lt;/span>&lt;span class="p">}}]}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="durchführung">Durchführung&lt;/h3>
&lt;h4 id="annotation-mit-regeln-und-aktivem-lernen">Annotation mit Regeln und aktivem Lernen&lt;/h4>
&lt;p>Mit dem Regelsatz &lt;strong>GND Selected Simple&lt;/strong> wurden 1.000 Sätze mit regelbasierter Unterstützung manuell annotiert. &lt;sup id="fnref:11">&lt;a href="#fn:11" class="footnote-ref" role="doc-noteref">11&lt;/a>&lt;/sup>
Mit diesen wurde anschließend ein temporäres Modell trainiert, welches dabei unterstützte weitere 2.000 Sätze zu annotieren.&lt;sup id="fnref:12">&lt;a href="#fn:12" class="footnote-ref" role="doc-noteref">12&lt;/a>&lt;/sup>&lt;/p>
&lt;p>Je nach verwendeter Beschreibungsform im Findbuch (Fließtext, Aufzählung, Liste, Tabelle, &amp;hellip;) kann ein Satz zwischen 0 und mehr als 30 Entitäten enthalten.&lt;/p>
&lt;p>Auf Grund von Duplikaten entstanden dadurch etwa 2.600 annotierte Sätze für das Training.&lt;/p>
&lt;p>Zusätzlich wurden aus jedem der 59 untersuchten Findbüchern 2 zufällig ausgewählte Findbuchbeiträge extrahiert, wodurch ein Evaluations Datenset mit 1.677 eindeutigen Sätzen entstand. Dieses wurde von 2 Personen getrennt annotiert und anschließend die Unterschiede noch einmal besprochen und aufgelöst. &lt;sup id="fnref:13">&lt;a href="#fn:13" class="footnote-ref" role="doc-noteref">13&lt;/a>&lt;/sup>&lt;/p>
&lt;p>Das NER Modell wurde anschließend auf den Trainingsbeispielen neu trainiert und gegen das Evaluationsdatenset evaluiert. &lt;sup id="fnref:14">&lt;a href="#fn:14" class="footnote-ref" role="doc-noteref">14&lt;/a>&lt;/sup>&lt;/p>
&lt;h4 id="evaluation-regelbasierter-modelle">Evaluation regelbasierter &amp;ldquo;Modelle&amp;rdquo;&lt;/h4>
&lt;p>Aus jedem der 6 Regeldatensätze wurde eine eigene spaCy Pipeline mit einer &lt;em>EntityRuler&lt;/em> Komponente erstellt. &lt;sup id="fnref:15">&lt;a href="#fn:15" class="footnote-ref" role="doc-noteref">15&lt;/a>&lt;/sup>
Diese 6 Pipelines wurden anschließend gegen das Trainings- &lt;strong>und&lt;/strong> Evaluationsdatenset evaluiert. &lt;sup id="fnref:16">&lt;a href="#fn:16" class="footnote-ref" role="doc-noteref">16&lt;/a>&lt;/sup>&lt;/p>
&lt;h3 id="ergebnisse">Ergebnisse&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th style="text-align:right">Begriffe&lt;/th>
&lt;th style="text-align:right">&lt;/th>
&lt;th style="text-align:right">Gruppen&lt;/th>
&lt;th style="text-align:right">&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>GND ALL&lt;/strong>&lt;/td>
&lt;td style="text-align:right">143.064&lt;/td>
&lt;td style="text-align:right">(100,00%)&lt;/td>
&lt;td style="text-align:right">339&lt;/td>
&lt;td style="text-align:right">(100,00%)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>GND Groups&lt;/strong>&lt;/td>
&lt;td style="text-align:right">33.461&lt;/td>
&lt;td style="text-align:right">(23,39%)&lt;/td>
&lt;td style="text-align:right">27&lt;/td>
&lt;td style="text-align:right">(7,96%)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>GND Selected&lt;/strong>&lt;/td>
&lt;td style="text-align:right">604&lt;/td>
&lt;td style="text-align:right">(0,42%)&lt;/td>
&lt;td style="text-align:right">80&lt;/td>
&lt;td style="text-align:right">(23,60%)&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Insgesamt arbeiteten wir mit 143.061 Begriffen aus der GND (Varianten nicht mitgezählt).
Bei der manuellen Auswahl der Sachgruppen wurden 27 Sachgruppen als relevant markiert.
Bei der manuellen Auswahl der Begriffe wurden 604 Begriffe als relevant markiert.&lt;/p>
&lt;p>Die 604 manuell markierten Begriffe sind insgesamt 80 unterschiedlichen Sachgruppen zugeordnet, wobei ein Begriff mehreren Sachgruppen zugeordnet werden kann.&lt;/p>
&lt;p>Es war deutlich einfacher (und schneller) die 27 relevanten Sachgruppen zu identifizieren, als die 604 relevanten Begriffe herauszusuchen.
Bei beiden Ansätzen war uns klar, dass wir aus Zeitgründen keine vollständige Auswahl treffen werden, so dass wir uns in der dafür aufgewendeten Zeit einschränkten.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Dataset&lt;/th>
&lt;th style="text-align:right">Precision&lt;/th>
&lt;th style="text-align:right">Recall&lt;/th>
&lt;th style="text-align:right">F1&lt;/th>
&lt;th>Dataset&lt;/th>
&lt;th style="text-align:right">Precision&lt;/th>
&lt;th style="text-align:right">Recall&lt;/th>
&lt;th style="text-align:right">F1&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>GND ALL &lt;strong>Simple&lt;/strong>&lt;/td>
&lt;td style="text-align:right">0,23&lt;/td>
&lt;td style="text-align:right">0,37&lt;/td>
&lt;td style="text-align:right">0,29&lt;/td>
&lt;td>&lt;strong>Complex&lt;/strong>&lt;/td>
&lt;td style="text-align:right">0,19&lt;/td>
&lt;td style="text-align:right">0,84&lt;/td>
&lt;td style="text-align:right">0,31&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>GND Groups &lt;strong>Simple&lt;/strong>&lt;/td>
&lt;td style="text-align:right">0,33&lt;/td>
&lt;td style="text-align:right">0,34&lt;/td>
&lt;td style="text-align:right">0,34&lt;/td>
&lt;td>&lt;strong>Complex&lt;/strong>&lt;/td>
&lt;td style="text-align:right">0,31&lt;/td>
&lt;td style="text-align:right">0,76&lt;/td>
&lt;td style="text-align:right">0,44&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>GND Selected &lt;strong>Simple&lt;/strong>&lt;/td>
&lt;td style="text-align:right">0,71&lt;/td>
&lt;td style="text-align:right">0,19&lt;/td>
&lt;td style="text-align:right">0,30&lt;/td>
&lt;td>&lt;strong>Complex&lt;/strong>&lt;/td>
&lt;td style="text-align:right">0,69&lt;/td>
&lt;td style="text-align:right">0,37&lt;/td>
&lt;td style="text-align:right">0,48&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>NER OBJ&lt;/td>
&lt;td style="text-align:right">0,96&lt;/td>
&lt;td style="text-align:right">0,94&lt;/td>
&lt;td style="text-align:right">0,95&lt;/td>
&lt;td>&lt;/td>
&lt;td style="text-align:right">&lt;/td>
&lt;td style="text-align:right">&lt;/td>
&lt;td style="text-align:right">&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Die Ergebnisse der obigen Tabelle sind in Abbildung 1 visualisiert und werden dort besprochen.&lt;/p>
&lt;figure id="figure-scatterplot-für-precision-und-recall-für-die-einzelnen-datensätze">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Scatterplot für Precision und Recall für die einzelnen Datensätze." srcset="
/post/2022-09-ner-modell-mit-gnd-starthilfe-trainieren/metrics_hu25f59ad08821a07f7e62d84347c9b3d7_25695_670776311626ecdef0eb7da8ead0b65c.webp 400w,
/post/2022-09-ner-modell-mit-gnd-starthilfe-trainieren/metrics_hu25f59ad08821a07f7e62d84347c9b3d7_25695_015a3bc5bbc9919d78426f9f78d34840.webp 760w,
/post/2022-09-ner-modell-mit-gnd-starthilfe-trainieren/metrics_hu25f59ad08821a07f7e62d84347c9b3d7_25695_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2022-09-ner-modell-mit-gnd-starthilfe-trainieren/metrics_hu25f59ad08821a07f7e62d84347c9b3d7_25695_670776311626ecdef0eb7da8ead0b65c.webp"
width="423"
height="432"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Scatterplot für Precision und Recall für die einzelnen Datensätze.
&lt;/figcaption>&lt;/figure>
&lt;p>In Abbildung 1 lässt sich ablesen, dass die Verwendung der komplexen im Vergleich zu den einfachen Regeln den &lt;em>Recall&lt;/em>, also den Anteil gefundener Begriffe, deutlich erhöht, wobei die &lt;em>Precision&lt;/em>, also der Anteil an falsch markierten Begriffen, im Vergleich nur unwesentlich sinkt.&lt;/p>
&lt;p>Es lässt sich ebenfalls ablesen, dass die Verwendung aller Begriffe in der GND (&lt;strong>ALL&lt;/strong>) im Vergleich zur Verwendung der Begriffe ausgewählter Gruppen (&lt;strong>Groups&lt;/strong>) den &lt;em>Recall&lt;/em> erhöht, aber nicht so wesentlich, als dass es die deutlich schlechtere &lt;em>Precision&lt;/em> ausgleichen könnte.&lt;/p>
&lt;p>Mit einem &lt;strong>f1-score&lt;/strong> von &lt;strong>0,48&lt;/strong> erhält der Ansatz mit den ausgewählten Begriffen (&lt;strong>Selected&lt;/strong>) den besten Wert der regelbasierten Ansätze.
Mit einem &lt;strong>f1-score&lt;/strong> von &lt;strong>0,95&lt;/strong> ist das &lt;strong>NER Modell&lt;/strong> den regelbasierten Ansätzen jedoch weit überlegen.&lt;/p>
&lt;h3 id="diskussion">Diskussion&lt;/h3>
&lt;p>Grundsätzlich lässt sich sagen, dass sich die Idee die GND als Starthilfe für das Anlernen eines neuen NER Models zu verwenden, als erfolgreich erwiesen hat. Mit einem &lt;em>Recall&lt;/em> und einer &lt;em>Precision&lt;/em> über 90 Prozent könnten wir das anschließend trainierte NER Modell direkt produktiv anwenden.
Auch die Verwendung der Sachbegriffe in der GND als Starthilfe hat deutlich besser funktioniert, als wir das erwartet hatten.&lt;/p>
&lt;p>Ein wesentlicher Faktor, den wir bei diesem Experiment bewusst nicht erfasst haben, ist der zeitliche Aufwand für die einzelnen manuellen oder automatisierten Arbeitsschritte.&lt;/p>
&lt;p>Hier machte eine genaue Erfassung in unserem Fall von daher keinen Sinn, da bei den manuellen Aufgaben ein großer Faktor der einmalige Einarbeitungsaufwand darstellt und die automatisierten Schritte auf Grund unterschiedlicher Lasten auf unserem Testsystem nicht deterministisch waren. Außerdem durchliefen wir verschiedene Iterationen, bis wir einem für uns passenden Workflow gefunden hatten.&lt;/p>
&lt;p>Generell würden wir nach unserer Erfahrung davon abraten &lt;strong>alle&lt;/strong> Sachbegriffe der GND, oder mehr als die von uns verwendeten circa 33.500 Begriffe zur Regelgenerierung zu verwenden. Nach unserer Beobachtung ist bei diesen Mengen und bei der Verwendung von regulären Ausdrücken in den Regeln das Laufzeitverhalten der Regelauswertung nicht mehr linear.&lt;/p>
&lt;p>Bei der Abwägung, ob mit ausgewählten Begriffen oder ausgewählten Sachgruppen gearbeitet wird, sollte auch die Präferenz des Fachpersonals im Annotationsprozess berücksichtigt werden. Bei einer hohen &lt;em>Precision&lt;/em> müssen hauptsächlich zusätzliche Begriffe markiert werden. Bei einem hohen &lt;em>Recall&lt;/em> (und niedriger &lt;em>Precision&lt;/em>) müssen hauptsächlich falsch markierte Begriffe entfernt werden.&lt;/p>
&lt;p>Außerdem haben wir uns bei der initialen Auswahl der Sachbegriffe aus der GND auf bestimmte Typen beschränkt (&lt;a href="https://d-nb.info/standards/elementset/gnd#SubjectHeading" target="_blank" rel="noopener">SubjectHeading&lt;/a>, &lt;a href="https://d-nb.info/standards/elementset/gnd#SubjectHeadingSensoStricto" target="_blank" rel="noopener">SubjectHeadingSensoStricto&lt;/a> und &lt;a href="https://d-nb.info/standards/elementset/gnd#ProductNameOrBrandName" target="_blank" rel="noopener">ProductNameOrBrandName&lt;/a>). Diese Einschränkung machte für uns Sinn, jedoch sind manche der von uns gesuchten Objekte auch unter den Typen &lt;a href="https://d-nb.info/standards/elementset/gnd#Work" target="_blank" rel="noopener">Work&lt;/a> bzw. dessen Unterklassen zu finden, oder in der GND als &lt;a href="https://d-nb.info/standards/elementset/gnd#CorporateBody" target="_blank" rel="noopener">Corporate Body&lt;/a> klassifiziert.&lt;/p>
&lt;p>Die Entscheidung aus jedem Bestand 2 zufällige Findbucheinträge für das Evaluationsdatenset zu verwenden, sorgte für ein ungünstiges Größenverhältnis zwischen Trainings- und Evaluationsdatenset. Zum einen ist das Evaluationsdatenset recht groß im Vergleich zum Trainingsdatenset. Zum anderen ist es durch die Unterschiede zwischen den einzelnen Beständen nicht repräsentativ. So gibt es eine große Varianz in der Größe der einzelnen Bestände (1 - 1321 Findbucheinträge) und der unterschiedlichen Länge der einzelnen Findbucheinträge (6 - 47.249 Zeichen).&lt;/p>
&lt;p>Bei der praktischen Anwendung des trainierten Modells konnten wir feststellen, dass die Performanz des Modells auf den größeren Beständen merkbar schlechter war, so dass wir in der praktischen Anwendung eher mit einer &lt;em>Precision&lt;/em> und einem &lt;em>Recall&lt;/em> im Bereich von etwa 90 Prozent rechnen.&lt;/p>
&lt;p>Theoretisch könnte die Performanz des Modells noch deutlich verbessert werden, indem unter anderem weitere Trainingsbeispiele erstellt werden und zusätzlich eine Hyperparameteroptimierung durchgeführt wird.&lt;/p>
&lt;h2 id="fazit">Fazit&lt;/h2>
&lt;p>&lt;em>Named Entity Recognition&lt;/em> kann bei der Erstellung von Metadaten von textbasierten Material eine große Hilfe sein.
Leider lassen sich auf allgemeinen Texten trainierte Modelle meist nicht auf Texte im Archiv übertragen.
Ein Trainieren von eigenen NER-Modellen ist mit guten Ergebnissen und vertretbarem Aufwand möglich.
Dabei ist die Gemeinsame Normdatei eine hilfreiche Datenquelle.
Jedoch fehlt es vielen kulturellen Institutionen an einem Zugang zu technischem Personal und Infrastruktur.
Wir hoffen, dass Lösungen von der &lt;a href="https://www.nfdi.de/" target="_blank" rel="noopener">NFDI&lt;/a> zukünftig diese Lücken schließen können.&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>Da die bearbeiteten Daten teilweise noch einer Sperrfrist unterliegen, können wir zu diesem Zeitpunkt weder die Daten noch die Modelle bzw. konkrete Ergebnislisten veröffentlichen. Es macht daher auch keinen Sinn eine reproduzierbaren Workflow zu veröffentlichen.&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>Wikipedia Autoren, „Landesarchiv Baden-Württemberg“, Wikipedia – Die freie Enzyklopädie, &lt;a href="https://de.wikipedia.org/w/index.php?title=Landesarchiv_Baden-W%C3%BCrttemberg&amp;amp;oldid=223510351" target="_blank" rel="noopener">https://de.wikipedia.org/w/index.php?title=Landesarchiv_Baden-W%C3%BCrttemberg&amp;oldid=223510351&lt;/a> (aufgerufen am 20. Juli 2022).&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:3">
&lt;p>NER erstellt mit spaCy 3.3 &lt;a href="https://spacy.io/models/en#en_core_web_lg" target="_blank" rel="noopener">en_core_web_lg&lt;/a>.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:4">
&lt;p>Siehe &lt;a href="https://en.wikipedia.org/wiki/Precision_and_recall" target="_blank" rel="noopener">Wikipedia - Precision and recall&lt;/a> für Details.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:5">
&lt;p>Wikipedia Autoren, „Landesarchiv Baden-Württemberg“, Wikipedia – Die freie Enzyklopädie, &lt;a href="https://de.wikipedia.org/w/index.php?title=Landesarchiv_Baden-W%C3%BCrttemberg&amp;amp;oldid=223510351" target="_blank" rel="noopener">https://de.wikipedia.org/w/index.php?title=Landesarchiv_Baden-W%C3%BCrttemberg&amp;oldid=223510351&lt;/a> (aufgerufen am 20. Juli 2022).&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:6">
&lt;p>NER erstellt mit spaCy 3.3 &lt;a href="https://spacy.io/models/de#de_core_news_lg" target="_blank" rel="noopener">de_core_news_lg&lt;/a>.&amp;#160;&lt;a href="#fnref:6" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:7">
&lt;p>NER erstellt mit spaCy 3.3 &lt;a href="https://spacy.io/models/de#de_core_news_lg" target="_blank" rel="noopener">de_core_news_lg&lt;/a>.&amp;#160;&lt;a href="#fnref:7" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:8">
&lt;p>Siehe &lt;a href="https://en.wikipedia.org/wiki/Active_learning_%28machine_learning%29" target="_blank" rel="noopener">Wikipedia - Active Learning&lt;/a>.&amp;#160;&lt;a href="#fnref:8" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:9">
&lt;p>Siehe &lt;a href="https://spacy.io/usage/rule-based-matching" target="_blank" rel="noopener">Rule-based matching&lt;/a> und &lt;a href="https://prodi.gy/docs/named-entity-recognition#manual-patterns" target="_blank" rel="noopener">Manual annotation with patters&lt;/a>.&amp;#160;&lt;a href="#fnref:9" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:10">
&lt;p>Siehe Wikipedia - &lt;a href="https://de.wikipedia.org/wiki/Lemma_%28Lexikographie%29" target="_blank" rel="noopener">Lemma (Lexikographie)&lt;/a>&amp;#160;&lt;a href="#fnref:10" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:11">
&lt;p>&lt;a href="https://prodi.gy/docs/named-entity-recognition#manual-patterns" target="_blank" rel="noopener">Manual annotation with patters&lt;/a> bzw. &lt;a href="https://prodi.gy/docs/recipes/#ner-manual" target="_blank" rel="noopener">Prodigy Rezept ner.manual&lt;/a>.&amp;#160;&lt;a href="#fnref:11" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:12">
&lt;p>&lt;a href="https://prodi.gy/docs/named-entity-recognition#manual-model" target="_blank" rel="noopener">Manual annotation with suggestions from a model&lt;/a> bzw. &lt;a href="https://prodi.gy/docs/recipes/#ner-correct" target="_blank" rel="noopener">Prodigy Rezept ner.correct&lt;/a>.&amp;#160;&lt;a href="#fnref:12" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:13">
&lt;p>&lt;a href="https://prodi.gy/docs/recipes/#review" target="_blank" rel="noopener">Prodigy Rezept review&lt;/a>&amp;#160;&lt;a href="#fnref:13" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:14">
&lt;p>&lt;a href="https://spacy.io/api/cli#evaluate" target="_blank" rel="noopener">spaCy CLI evaluate&lt;/a>&amp;#160;&lt;a href="#fnref:14" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:15">
&lt;p>&lt;a href="https://spacy.io/usage/processing-pipelines" target="_blank" rel="noopener">Language Processing Pipelines&lt;/a> bzw. &lt;a href="https://spacy.io/usage/rule-based-matching" target="_blank" rel="noopener">Rule-based matching&lt;/a> bzw. &lt;a href="https://spacy.io/api/entityruler" target="_blank" rel="noopener">EntityRuler&lt;/a>.&amp;#160;&lt;a href="#fnref:15" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:16">
&lt;p>Bei dem regelbasierten Ansatz ist eine &lt;a href="https://de.wikipedia.org/wiki/%C3%9Cberanpassung" target="_blank" rel="noopener">Überanpassung&lt;/a> nicht zu befürchten, da es sich hier um &lt;strong>keinen&lt;/strong> selbst lernenden Prozess handelt.&amp;#160;&lt;a href="#fnref:16" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>Experiment zur Identifikation von doppelten Orten in der GND</title><link>https://fdmlab.landesarchiv-bw.de/post/2022-06-doppelte-orte-in-gnd/</link><pubDate>Tue, 21 Jun 2022 00:00:00 +0000</pubDate><guid>https://fdmlab.landesarchiv-bw.de/post/2022-06-doppelte-orte-in-gnd/</guid><description>&lt;p>Bei unserer Arbeit mit Orten in der &lt;em>Gemeinsamen Normdatei&lt;/em> (GND) stolperten wir hin und wieder über Dubletten.
Also Orte, die in der GND mehrfach vorhanden waren.
Dieser Beitrag beschreibt, wie wir in einem praktischen Experiment versuchten diese Dubletten innerhalb des Bundeslandes Baden-Württemberg zu identifizieren.&lt;/p>
&lt;blockquote>
&lt;p>Bildnachweis&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>&lt;/p>
&lt;/blockquote>
&lt;h2 id="hintergrund">Hintergrund&lt;/h2>
&lt;p>In der GND sind nicht nur aktuelle Orte mit einer eindeutigen GND-Nummer verzeichnet, sondern auch historische Orte.
Beispielsweise wurde &lt;a href="https://d-nb.info/gnd/4069840-3" target="_blank" rel="noopener">Cannstatt&lt;/a> mit Stuttgart vereinigt und ist seit dem 1. April 1905 als &lt;a href="https://d-nb.info/gnd/4077993-2" target="_blank" rel="noopener">Stuttgart-Cannstatt&lt;/a> und später &lt;a href="https://d-nb.info/gnd/4077993-2" target="_blank" rel="noopener">Bad Cannstatt&lt;/a> ein Stadtteil von &lt;a href="https://d-nb.info/gnd/4058282-6" target="_blank" rel="noopener">Stuttgart&lt;/a>.&lt;/p>
&lt;p>Auch wurden Gemeinden und Städte im Zuge von Kreis- und Gemeindereformen eingemeindet oder neu gebildet.
Beispielsweise wurden &lt;a href="https://d-nb.info/gnd/4088388-7" target="_blank" rel="noopener">Bissingen&lt;/a> und &lt;a href="https://d-nb.info/gnd/4088300-0" target="_blank" rel="noopener">Bietigheim&lt;/a> im Jahre 1975 zu &lt;a href="https://d-nb.info/gnd/4006554-6" target="_blank" rel="noopener">Bietigheim-Bissingen&lt;/a> zusammengelegt.&lt;/p>
&lt;p>Diese Form von Mehrfachnennung meinen wir &lt;strong>nicht&lt;/strong>.
Wir sind darüber gestolpert, dass es speziell zu historischen Orten in Baden-Württemberg mehrere Einträge gab.&lt;/p>
&lt;h2 id="idee">Idee&lt;/h2>
&lt;p>Wir wollen basierend auf der &lt;em>Ortsnamensdatenbank Baden-Württemberg&lt;/em> (ONDB) mögliche Dubletten von Orten in Baden-Württemberg in der GND identifizieren. Die ONDB wurde in einem anderen Projekt in Form einer Datenspende in die GND eingespielt, so dass wir davon ausgehen, dass wir sie als &amp;ldquo;Referenz&amp;rdquo; verwenden können. Dafür identifizieren wir alle mit Baden-Württemberg verknüpften Orte in der GND, markieren die Orte, die in der ONDB vorliegen und betrachten anschließend die Restmenge.&lt;/p>
&lt;h2 id="vorgehen">Vorgehen&lt;/h2>
&lt;h4 id="1-ondb-aufbereitung">1. ONDB Aufbereitung&lt;/h4>
&lt;p>Ein Abzug der ONDB wurde im Kontext eines anderen Projektes mit &lt;a href="https://openrefine.org/" target="_blank" rel="noopener">OpenRefine&lt;/a> aufgearbeitet, so dass ein Mapping von GND-ID auf ONDB-ID möglich ist.
Wie so ein Mapping funktioniert, ist unter &lt;a href="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-fortgeschrittene/12-daten-zwischen-projekten-abgleichen/">Daten zwischen Projekten in OpenRefine abgleichen&lt;/a> beschrieben.&lt;/p>
&lt;h4 id="2-gnd-in-triple-store-laden">2. GND in Triple-Store laden&lt;/h4>
&lt;p>Wie unter &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2021-06-erste-experimente-mit-der-gnd/">Erste Experimente mit der GND&lt;/a> beschrieben, wurde die GND in ihrer LOD-Form in einen &lt;a href="https://jena.apache.org/" target="_blank" rel="noopener">Apache Jena&lt;/a> Docker Container geladen. &lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref">2&lt;/a>&lt;/sup>&lt;/p>
&lt;h4 id="3-daten-aus-triple-store-laden">3. Daten aus Triple-Store laden&lt;/h4>
&lt;p>Mit &lt;a href="https://www.w3.org/TR/sparql11-overview/" target="_blank" rel="noopener">SPARQL-Abfragen&lt;/a> werden die Daten aus dem Apache Jena Triple-Store extrahiert.&lt;/p>
&lt;h4 id="4-dubletten-identifizieren">4. Dubletten identifizieren&lt;/h4>
&lt;p>Mit Hilfe der ODNB, &lt;a href="https://fdmlab.landesarchiv-bw.de/workshop/openrefine-einsteiger/05-clustering/">Clustering Methoden in OpenRefine&lt;/a> und externen Skripten mögliche Dubletten identifizieren und manuell prüfen.&lt;/p>
&lt;h2 id="sparql-abfragen">SPARQL Abfrage(n)&lt;/h2>
&lt;p>wir haben verschiedene Methoden getestet, verworfen und kombiniert, um die für uns relevanten Orte in der GND zu identifizieren und via SPARQL aus dem Apache Jena Triple-Store laden zu können.&lt;/p>
&lt;h3 id="angaben-zur-quelle">Angaben zur Quelle&lt;/h3>
&lt;p>In der GND ist auch die Quelle einer Dateninformation erfasst, also zum Beispiel die ONDB oder das Landesarchiv Baden-Württemberg als Datenquelle genannt. Diese Information ist in der LOD-Form der GND leider nicht enthalten.
Daher konnten wir diese Information nicht als zusätzliche Informationsquelle für unsere Filter nutzen.&lt;/p>
&lt;h3 id="verknüpfung-über-hierarchie">Verknüpfung über Hierarchie&lt;/h3>
&lt;p>Theoretisch sollten wir über den Property-Path &lt;a href="https://d-nb.info/standards/elementset/gnd#hierarchicalSuperiorOfPlaceOrGeographicName" target="_blank" rel="noopener">Hierarchical superior of place or geographic name&lt;/a> alle untergeordneten Orte von &lt;a href="https://d-nb.info/gnd/4004176-1" target="_blank" rel="noopener">Baden-Württemberg&lt;/a> finden können.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/elementset/gnd#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="k">DISTINCT&lt;/span> &lt;span class="nv">?place&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?place&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">hierarchicalSuperiorOfPlaceOrGeographicName&lt;/span>&lt;span class="o">+&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">4004176-1&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Diese Eigenschaft ist jedoch nicht konsequent und speziell für historische Orte gar nicht erfasst.
Daher haben wir diesen Ansatz verworfen.&lt;/p>
&lt;h3 id="verknüpfung-über-ländercode">Verknüpfung über Ländercode&lt;/h3>
&lt;p>Theoretisch sollten wir über die Verknüpfung mit dem Ländercode (&lt;a href="https://d-nb.info/standards/elementset/gnd#geographicAreaCode" target="_blank" rel="noopener">Geographic Area Code&lt;/a>) alle mit Baden-Württemberg (&lt;a href="https://d-nb.info/standards/vocab/gnd/geographic-area-code.html#XA-DE-BW" target="_blank" rel="noopener">XA-DE-BW&lt;/a>) verknüpften Orte erfassen können.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/elementset/gnd#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd-area-code&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/vocab/gnd/geographic-area-code#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">rdf&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">rdfs&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="k">DISTINCT&lt;/span> &lt;span class="nv">?place&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?place&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">geographicAreaCode&lt;/span> &lt;span class="nn">gnd-area-code&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">XA-DE-BW&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">rdf&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">type&lt;/span> &lt;span class="nv">?type&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?type&lt;/span> &lt;span class="nn">rdfs&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">subClassOf&lt;/span>&lt;span class="o">*&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">PlaceOrGeographicName&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Hier sind uns zwei Probleme aufgefallen:&lt;/p>
&lt;ol>
&lt;li>die Property-Path-Extension &lt;code>rdfs:subclassOf*&lt;/code> funktioniert nicht, wir konnten jedoch nicht klären ob das ein Problem mit Apache Jena oder mit den GND-Daten ist.&lt;/li>
&lt;li>Nicht alle Orte in Baden-Württemberg sind mit dem Ländercode &lt;code>XA-DE-BW&lt;/code> angelegt, sondern einige auch ausschließlich mit dem Ländercode für Deutschland &lt;code>XA-DE&lt;/code>.&lt;/li>
&lt;/ol>
&lt;h3 id="verknüpfung-über-ländercode-mit-aufzählung-aller-sub-klassen">Verknüpfung über Ländercode mit Aufzählung aller (Sub-)Klassen&lt;/h3>
&lt;p>Da die Property-Path Extension auf &lt;code>rdfs:subClassOf&lt;/code> nicht funktioniert hat, listen wir die für uns relevanten (Sub-)Klassen alle einzeln auf.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/elementset/gnd#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd-area-code&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/vocab/gnd/geographic-area-code#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">rdf&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="k">DISTINCT&lt;/span> &lt;span class="nv">?place&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="err">VALUES&lt;/span> &lt;span class="nv">?geographicType&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">PlaceOrGeographicName&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">AdministrativeUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">BuildingOrMemorial&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">NameOfSmallGeographicUnitLyingWithinAnotherGeographicUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">NaturalGeographicUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">ReligiousTerritory&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">TerritorialCorporateBodyOrAdministrativeUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?place&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">geographicAreaCode&lt;/span> &lt;span class="nn">gnd-area-code&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">XA-DE-BW&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">rdf&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">type&lt;/span> &lt;span class="nv">?geographicType&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="anzahl-pro-sub-klasse">Anzahl pro (Sub-)Klasse&lt;/h3>
&lt;p>Die folgende Abfrage zählt, wie häufig die entsprechenden Typen für Orte in Baden-Württemberg in der GND vorkommen.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/elementset/gnd#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd-area-code&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/vocab/gnd/geographic-area-code#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">rdf&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="k">DISTINCT&lt;/span> &lt;span class="nv">?geographicType&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nf">count&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?geographicType&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nv">?count&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="err">VALUES&lt;/span> &lt;span class="nv">?geographicType&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">PlaceOrGeographicName&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">AdministrativeUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">BuildingOrMemorial&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">NameOfSmallGeographicUnitLyingWithinAnotherGeographicUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">NaturalGeographicUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">ReligiousTerritory&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">TerritorialCorporateBodyOrAdministrativeUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?place&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">geographicAreaCode&lt;/span> &lt;span class="nn">gnd-area-code&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">XA-DE-BW&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">rdf&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">type&lt;/span> &lt;span class="nv">?geographicType&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span> &lt;span class="k">GROUP BY&lt;/span> &lt;span class="nv">?geographicType&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>In der folgenden Tabelle ist das Ergebnis für die obige SPARQL-Abfrage dargestellt:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>geographicType&lt;/th>
&lt;th>count&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="https://d-nb.info/standards/elementset/gnd#AdministrativeUnit" target="_blank" rel="noopener">AdministrativeUnit&lt;/a>&lt;/td>
&lt;td>423&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://d-nb.info/standards/elementset/gnd#NaturalGeographicUnit" target="_blank" rel="noopener">NaturalGeographicUnit&lt;/a>&lt;/td>
&lt;td>537&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://d-nb.info/standards/elementset/gnd#PlaceOrGeographicName" target="_blank" rel="noopener">PlaceOrGeographicName&lt;/a>&lt;/td>
&lt;td>4205&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://d-nb.info/standards/elementset/gnd#ReligiousTerritory" target="_blank" rel="noopener">ReligiousTerritory&lt;/a>&lt;/td>
&lt;td>68&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://d-nb.info/standards/elementset/gnd#TerritorialCorporateBodyOrAdministrativeUnit" target="_blank" rel="noopener">TerritorialCorporateBodyOrAdministrativeUnit&lt;/a>&lt;/td>
&lt;td>23685&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://d-nb.info/standards/elementset/gnd#BuildingOrMemorial" target="_blank" rel="noopener">BuildingOrMemorial&lt;/a>&lt;/td>
&lt;td>3711&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://d-nb.info/standards/elementset/gnd#NameOfSmallGeographicUnitLyingWithinAnotherGeographicUnit" target="_blank" rel="noopener">NameOfSmallGeographicUnitLyingWithinAnotherGeographicUnit&lt;/a>&lt;/td>
&lt;td>99&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="de-ländercode-mit-nachfolger-oder-vorgänger-in-bw">DE-Ländercode mit Nachfolger (oder Vorgänger) in BW&lt;/h3>
&lt;p>Bei den Orten, die mit dem Ländercode &lt;code>XA-DE&lt;/code> für Deutschland angelegt wurden, ergab sich ein Muster.
Diese hatten häufig einen &lt;a href="https://d-nb.info/standards/elementset/gnd#precedingPlaceOrGeographicName" target="_blank" rel="noopener">Vorgänger&lt;/a> oder &lt;a href="https://d-nb.info/standards/elementset/gnd#succeedingPlaceOrGeographicName" target="_blank" rel="noopener">Nachfolger&lt;/a>, der mit dem Ländercode &lt;code>XA-DE-BW&lt;/code> für Baden-Württemberg verknüpft war.&lt;/p>
&lt;p>Die folgende SPARQL-Abfrage zeigt, wie diese Orte abgefragt werden können.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/elementset/gnd#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd-area-code&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/vocab/gnd/geographic-area-code#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">rdf&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">rdfs&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="k">DISTINCT&lt;/span> &lt;span class="nv">?place&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="err">VALUES&lt;/span> &lt;span class="nv">?geographicType&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">PlaceOrGeographicName&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">AdministrativeUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">BuildingOrMemorial&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">NameOfSmallGeographicUnitLyingWithinAnotherGeographicUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">NaturalGeographicUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">ReligiousTerritory&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">TerritorialCorporateBodyOrAdministrativeUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?place&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">geographicAreaCode&lt;/span> &lt;span class="nn">gnd-area-code&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">XA-DE&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">rdf&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">type&lt;/span> &lt;span class="nv">?geographicType&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">precedingPlaceOrGeographicName&lt;/span>&lt;span class="o">+&lt;/span> &lt;span class="err">|&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">succeedingPlaceOrGeographicName&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="nv">?relatedPlace&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?relatedPlace&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">geographicAreaCode&lt;/span> &lt;span class="nn">gnd-area-code&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">XA-DE-BW&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="finale-sparql-abfrage">Finale SPARQL-Abfrage&lt;/h3>
&lt;p>Die folgende SPARQL-Abfrage kombiniert die Orte, die mit dem &lt;code>XA-DE-BW&lt;/code> für Baden-Württemberg angelegt wurden mit denen, die einen mit dem Ländercode &lt;code>XA-DE-BW&lt;/code> für Baden-Württemberg verknüpften Vorgänger oder Nachfolger haben.&lt;/p>
&lt;p>Zusätzlich werden noch die Eigenschaften &lt;a href="https://d-nb.info/standards/elementset/gnd#preferredNameForThePlaceOrGeographicName" target="_blank" rel="noopener">Bevorzugter Name des Geographikums&lt;/a> und die &lt;a href="https://d-nb.info/standards/elementset/gnd#definition" target="_blank" rel="noopener">Definition&lt;/a> abgefragt.
Da diese nicht zuverlässig gesetzt wurden, sind sie als &lt;code>OPTIONAL&lt;/code> gekennzeichnet.&lt;/p>
&lt;p>Da wir die GND-ID eindeutig halten wollen, diese aber gegebenenfalls mit mehreren geographischen Typen verknüpft sein kann, nutzen wir eine Gruppierung via &lt;code>GROUP BY&lt;/code> um doppelte GND-IDs zu filtern.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/elementset/gnd#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd-area-code&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/vocab/gnd/geographic-area-code#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">rdf&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="nv">?place&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nf">SAMPLE&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?geographicType&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nv">?GeographicType&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nf">SAMPLE&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?preferredName&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nv">?PreferredName&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nf">SAMPLE&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?definition&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nv">?Definition&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="err">VALUES&lt;/span> &lt;span class="nv">?geographicType&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">PlaceOrGeographicName&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">AdministrativeUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">BuildingOrMemorial&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">NameOfSmallGeographicUnitLyingWithinAnotherGeographicUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">NaturalGeographicUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">ReligiousTerritory&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">TerritorialCorporateBodyOrAdministrativeUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?place&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">geographicAreaCode&lt;/span> &lt;span class="nn">gnd-area-code&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">XA-DE-BW&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">rdf&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">type&lt;/span> &lt;span class="nv">?geographicType&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">OPTIONAL&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?place&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">preferredNameForThePlaceOrGeographicName&lt;/span> &lt;span class="nv">?preferredName&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">OPTIONAL&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?place&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">definition&lt;/span> &lt;span class="nv">?definition&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">UNION&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?place&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">geographicAreaCode&lt;/span> &lt;span class="nn">gnd-area-code&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">XA-DE&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">rdf&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">type&lt;/span> &lt;span class="nv">?geographicType&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">precedingPlaceOrGeographicName&lt;/span>&lt;span class="o">+&lt;/span> &lt;span class="err">|&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">succeedingPlaceOrGeographicName&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="nv">?relatedPlace&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?relatedPlace&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">geographicAreaCode&lt;/span> &lt;span class="nn">gnd-area-code&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">XA-DE-BW&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">OPTIONAL&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?place&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">preferredNameForThePlaceOrGeographicName&lt;/span> &lt;span class="nv">?preferredName&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">OPTIONAL&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?place&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">definition&lt;/span> &lt;span class="nv">?definition&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span> &lt;span class="k">GROUP BY&lt;/span> &lt;span class="nv">?place&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="ergebnisse">Ergebnisse&lt;/h2>
&lt;p>Mit der oben beschriebenen SPARQL-Abfrage konnten etwa 33.000 zu Baden-Württemberg zuordenbare Orte aus der GND in unserem Apache Jena Triple-Store extrahiert werden.&lt;/p>
&lt;p>Innerhalb dieser Daten konnten etwa 600 eindeutige Dubletten und deren Ursprung identifiziert und der GND Fachstelle zur Korrektur vorgelegt werden. Das entspricht etwa zwei Prozent der gefunden Daten.&lt;/p>
&lt;p>Bei der Analyse der Dubletten ist aufgefallen, dass nach wie vor die historische Vorbelastung der GND durch die Verschmelzung der &lt;a href="https://de.wikipedia.org/wiki/Gemeinsame_K%C3%B6rperschaftsdatei" target="_blank" rel="noopener">Gemeinsamen Körperschaftsdatei&lt;/a> (GKD) mit der &lt;a href="https://de.wikipedia.org/wiki/Schlagwortnormdatei" target="_blank" rel="noopener">Schlagwortnormdatei&lt;/a> (SWD) für einen Großteil der Dubletten verantwortlich war.
Zusätzlich gab es einzelne Datenlieferungen, die ebenfalls für Dubletten geführt haben.&lt;/p>
&lt;p>Beim Identifikationsprozess für Dubletten ist aufgefallen, dass besonders das unterschiedliche Vorgehen bei der &amp;ldquo;Vorzugsbenennung&amp;rdquo; eines Ortes zu den vielen nicht offensichtlichen Dubletten geführt hat. Beispielsweise lässt sich &lt;a href="https://d-nb.info/gnd/4077993-2" target="_blank" rel="noopener">Bad Cannstatt&lt;/a> auch als &lt;em>Stuttgart-Cannstatt&lt;/em> benennen, was weder bei einer alphabetischen Sortierung, noch bei den meisten Standardverfahren zum algorithmischen Abgleich von Dubletten auffällt.&lt;/p>
&lt;p>Insgesamt haben wir vermutlich auch nur einen Teil der Dubletten für Orte in Baden-Württemberg in der GND identifiziert.
Unter anderem fallen alle Orte durch unsere Suchfilter, die Baden-Württemberg nicht als &lt;em>Geographic Area Code&lt;/em> definiert haben und auch keine mit Baden-Württemberg verknüpften Vorgänger oder Nachfolger haben.&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>Das Bild &amp;ldquo;Doppelte Orte in der GND identifizieren&amp;rdquo; wurde erstellt mit Bildern von &lt;a href="https://pixabay.com/de/users/peggy_marco-1553824/" target="_blank" rel="noopener">Peggy und Marco Lachmann-Anke&lt;/a> und &lt;a href="https://pixabay.com/de/users/geralt-9301/" target="_blank" rel="noopener">Gerd Altmann&lt;/a> auf &lt;a href="https://pixabay.com/" target="_blank" rel="noopener">Pixabay&lt;/a> und dem &lt;a href="https://commons.wikimedia.org/wiki/File:Logo_Gemeinsame_Normdatei_%28GND%29.svg" target="_blank" rel="noopener">&amp;ldquo;Logo Gemeinsame Normdatei (GND)&amp;rdquo;&lt;/a> von &lt;a href="https://www.dnb.de/" target="_blank" rel="noopener">Deutsche Nationalbibliothek (DNB)&lt;/a>, welches lizenziert ist unter einer &lt;a href="https://creativecommons.org/licenses/by-sa/4.0/deed.de" target="_blank" rel="noopener">CC BY-SA 4.0&lt;/a> Lizenz. Das Bild &amp;ldquo;Doppelte Orte in der GND identifizieren&amp;rdquo; ist ebenfalls lizenziert unter einer &lt;a href="https://creativecommons.org/licenses/by-sa/4.0/deed.de" target="_blank" rel="noopener">CC BY-SA 4.0&lt;/a> Lizenz.&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>Der für dieses Experiment verwendete Abzug ist &lt;a href="https://data.dnb.de/opendata/authorities_lds_20211013.nt.gz" target="_blank" rel="noopener">authorities_lds_20211013.nt.gz&lt;/a>.&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>Experimente mit Visualisierungen für Sachbegriffe in der GND</title><link>https://fdmlab.landesarchiv-bw.de/post/2022-05-experiment-mit-gnd-visualisierungen/</link><pubDate>Tue, 24 May 2022 00:00:00 +0000</pubDate><guid>https://fdmlab.landesarchiv-bw.de/post/2022-05-experiment-mit-gnd-visualisierungen/</guid><description>&lt;p>Die &lt;em>Gemeinsame Normdatei&lt;/em> (GND) enthält unter anderem semantische Daten zu Sachbegriffen.
In diesem Beitrag experimentieren wir mit Visualisierungen für &lt;strong>Sachbegriffe&lt;/strong> in der GND, um die Daten und die Ontologie dahinter besser kennen zu lernen.&lt;/p>
&lt;p>Wie im obigen Bild&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup> thematisiert, beinhaltet die als &lt;em>Linked Open Data&lt;/em> (LOD) zur Verfügung gestellte GND einen komplexen Graphen mit verlinkten Daten, deren Verlinkung und Struktur sich auf Grund ihrer Komplexität für Außenstehende nicht auf Anhieb verständlich gestaltet.&lt;/p>
&lt;p>Im Bereich der Sachbegriffe (&lt;a href="https://d-nb.info/standards/elementset/gnd#SubjectHeading" target="_blank" rel="noopener">Subject Heading&lt;/a>) gibt es mehrere Konzepte zur Gruppierung. Es gibt die &lt;a href="https://d-nb.info/standards/vocab/gnd/gnd-sc.html" target="_blank" rel="noopener">GND-Sachgruppen&lt;/a> und verschiedene Arten von Oberbegriffen&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="alert alert-note">
&lt;div>
Um die Daten und deren Verknüpfungen besser zugänglich zu machen, gibt es auch das am 31. Mai von der DNB als beta freigegebene Projekt &lt;a href="https://explore.gnd.network/" target="_blank" rel="noopener">GND-Explorer&lt;/a>.
&lt;/div>
&lt;/div>
&lt;p>In Kooperation mit Katharina Hardt von dem Projekt &lt;a href="https://landesarchiv-bw.de/de/landesarchiv/projekte/provenienzforschung-im-landesarchiv/provenienzforschung-hauptstaatsarchiv-stuttgart/73186" target="_blank" rel="noopener">Provenienzforschung am Hauptstaatsarchivs Stuttgart&lt;/a> hatten wir im FDMLab ein konkretes Problem, wofür wir eine visuelle Unterstützung benötigten. Dafür haben wir ein &lt;a href="https://fdmlab.landesarchiv-bw.de/experiment/gnd-hierarchy-vis/">Experiment zur Visualisierung von GND Sachbegriffen&lt;/a> umgesetzt, über welches wir im Folgenden berichten. &lt;sup id="fnref:3">&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref">3&lt;/a>&lt;/sup>&lt;/p>
&lt;div class="alert alert-warning">
&lt;div>
Es handelt sich bei der &lt;a href="https://fdmlab.landesarchiv-bw.de/experiment/gnd-hierarchy-vis/">GND Hierarchie Visualisierung&lt;/a> um ein prototypisch umgesetztes Experiment und &lt;strong>nicht&lt;/strong> um eine produktive Anwendung!
&lt;/div>
&lt;/div>
&lt;h2 id="die-ludwigsburger-porzellantasse">Die Ludwigsburger Porzellantasse&lt;/h2>
&lt;p>Eine Frage, die wir uns im Kontext der Provenienzforschung gestellt hatten, ist die mögliche Verschlagwortung mit Normdatenverknüpfung für den Begriff &lt;em>Ludwigsburger Porzellantasse&lt;/em>.&lt;/p>
&lt;p>Die &lt;em>Ludwigsburger Porzellantasse&lt;/em> gibt es nicht als Sachbegriff in der GND.
Die aus unserer Sicht passenden Begriffe in der GND sind &lt;a href="https://d-nb.info/gnd/4168206-3" target="_blank" rel="noopener">Ludwigsburger Porzellan&lt;/a> und &lt;a href="https://d-nb.info/gnd/4175414-1" target="_blank" rel="noopener">Porzellantasse&lt;/a>.&lt;/p>
&lt;p>Dabei stellten wir uns die folgenden Fragen:&lt;/p>
&lt;ol>
&lt;li>Haben die beiden Begriffe einen gemeinsamen Oberbegriff?&lt;/li>
&lt;li>Gehören die beiden Begriffe zu einer gemeinsamen Sachgruppe?&lt;/li>
&lt;li>Ist &lt;a href="https://d-nb.info/gnd/4046851-3" target="_blank" rel="noopener">Porzellan&lt;/a> ein gemeinsamer Oberbegriff?&lt;/li>
&lt;li>Ist &lt;a href="https://d-nb.info/gnd/4140542-0" target="_blank" rel="noopener">Geschirr&lt;/a> ein Oberbegriff von Porzellantasse?&lt;/li>
&lt;li>Wie verhält sich der Begriff &lt;a href="https://d-nb.info/gnd/4175411-6" target="_blank" rel="noopener">Porzellanfigur&lt;/a> &lt;sup id="fnref:4">&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref">4&lt;/a>&lt;/sup> im Kontext der beiden Begriffe?&lt;/li>
&lt;/ol>
&lt;p>Diese Antworten auf diese Fragen lassen sich im Einzelnen auch via der Weboberflächen von der &lt;a href="https://d-nb.info/gnd/4168206-3" target="_blank" rel="noopener">DNB&lt;/a>, &lt;a href="https://lobid.org/gnd/4168206-3" target="_blank" rel="noopener">lobid&lt;/a>, &lt;a href="https://swb.bsz-bw.de/DB=2.104/PPNSET?PPN=105419311&amp;amp;INDEXSET=21" target="_blank" rel="noopener">OGND&lt;/a> oder in &lt;a href="https://openrefine.org/" target="_blank" rel="noopener">OpenRefine&lt;/a> manuell recherchieren.
Bei mehreren Begriffen, ist dieses Vorgehen jedoch langwierig.&lt;/p>
&lt;p>Daher haben wir basierend auf dem &lt;a href="https://lobid.org/gnd/api" target="_blank" rel="noopener">lobid GND API&lt;/a>, dem &lt;a href="https://getbootstrap.com/" target="_blank" rel="noopener">Frontend-CSS-Framework Bootstrap&lt;/a> und dem &lt;a href="https://mermaid-js.github.io/" target="_blank" rel="noopener">JavaScript Framework Mermaid&lt;/a> prototypisch eine &lt;a href="https://fdmlab.landesarchiv-bw.de/experiment/gnd-hierarchy-vis/">Webanwendung zur GND Hierarchie Visualisierung von Sachbegriffen&lt;/a> umgesetzt, die es uns ermöglicht die oben genannten Antworten zu den obigen Fragen zu visualisieren und zu beantworten.&lt;/p>
&lt;p>Das nächste Diagramm zeigt ein bearbeitetes Beispiel zu der Hierarchie der Oberbegriffe von &lt;em>Ludwigsburger Porzellan&lt;/em>, &lt;em>Porzellantasse&lt;/em> und &lt;em>Porzellanfigur&lt;/em>.&lt;/p>
&lt;div class="mermaid">flowchart LR
4175414-1(["Porzellantasse"]):::initial
4184488-9["Tasse"]
4175411-6(["Porzellanfigur"]):::initial
4046277-8["Plastik"]
4046851-3["Porzellan"]
4168206-3(["Ludwigsburger Porzellan"]):::initial
4124863-6["Essgeschirr"]
4186181-4["Trinkgefäß"]
4181363-7["Silicatkeramik"]
4153870-5["Feinkeramik"]
4140542-0["Geschirr"]
4128003-9["Gefäß"]
4030282-9["Keramischer Werkstoff"]
4030271-4["Keramik"]
4132060-8["Hausrat"]
4020299-9["Gerät"]
4065579-9["Werkstoff"]
4169078-3["Material"]
4037940-1["Materie"]
4175414-1-->4184488-9
4175411-6-->4046277-8
4175411-6-->4046851-3
4168206-3-->4046851-3
4184488-9-->4124863-6
4184488-9-->4186181-4
4046851-3-->4181363-7
4046851-3-->4153870-5
4124863-6-->4140542-0
4186181-4-->4128003-9
4181363-7-->4030282-9
4153870-5-->4030271-4
4140542-0-->4132060-8
4128003-9-->4020299-9
4030282-9-->4065579-9
4065579-9-->4169078-3
4169078-3-->4037940-1
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
classDef category fill:#FFF,stroke:#1fbeb8,stroke-width:3px,color:#000;
classDef initial fill:#FFF,stroke:#4dbd05,stroke-width:3px,color:#000;
&lt;/div>
&lt;p>Laut unserem Diagramm ist der Begriff &lt;em>Geschirr&lt;/em> ein Oberbegriff zur &lt;em>Porzellantasse&lt;/em>.
Die &lt;em>Porzellanfigur&lt;/em> und das &lt;em>Ludwigsburger Porzellan&lt;/em> haben &lt;em>Porzellan&lt;/em> als gemeinsamen Oberbegriff, die &lt;em>Porzellantasse&lt;/em> jedoch nicht.
Es gibt keinen gemeinsamen Oberbegriff für alle Begriffe, sie gehören jedoch, zur GND-Sachgruppe &lt;em>Kunsthandwerk&lt;/em> (siehe nächstes Diagramm).&lt;/p>
&lt;div class="mermaid">flowchart LR
4175414-1(["Porzellantasse"]):::initial
cat0[["Kunsthandwerk"]]:::category
4175411-6(["Porzellanfigur"]):::initial
cat1[["Plastik"]]:::category
4168206-3(["Ludwigsburger Porzellan"]):::initial
4175414-1-->cat0
4175411-6-->cat1
4175411-6-->cat0
4168206-3-->cat0
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
classDef category fill:#FFF,stroke:#1fbeb8,stroke-width:3px,color:#000;
classDef initial fill:#FFF,stroke:#4dbd05,stroke-width:3px,color:#000;
&lt;/div>
&lt;h2 id="gemeinsamer-oberbegriff-für-bilder">Gemeinsamer Oberbegriff für Bilder?&lt;/h2>
&lt;p>Bei den GND Sachbegriffen für &lt;a href="https://d-nb.info/gnd/4132048-7" target="_blank" rel="noopener">Acrylbild&lt;/a>, &lt;a href="https://d-nb.info/gnd/4002511-1" target="_blank" rel="noopener">Aquarell&lt;/a>, &lt;a href="https://d-nb.info/gnd/4036042-8" target="_blank" rel="noopener">Lithografie&lt;/a>, &lt;a href="https://d-nb.info/gnd/4043238-5" target="_blank" rel="noopener">Ölgemälde&lt;/a>, &lt;a href="https://d-nb.info/gnd/4048166-9" target="_blank" rel="noopener">Radierung&lt;/a> und &lt;a href="https://d-nb.info/gnd/4075923-4" target="_blank" rel="noopener">Pastellzeichnung&lt;/a> fragten wir uns, ob diese einen gemeinsamen Oberbegriff wie &lt;a href="https://d-nb.info/gnd/4006568-6" target="_blank" rel="noopener">Bild&lt;/a> oder &lt;a href="https://d-nb.info/gnd/4145419-4" target="_blank" rel="noopener">Bildliche Darstellung&lt;/a> haben. &lt;sup id="fnref:5">&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref">5&lt;/a>&lt;/sup>&lt;/p>
&lt;div class="mermaid">flowchart LR
4132048-7(["Acrylbild"]):::initial
4037220-0["Malerei"]
4002511-1(["Aquarell"]):::initial
4036042-8(["Lithografie"]):::initial
4154503-5["Flachdruck"]
4043238-5(["Ölgemälde"]):::initial
4048166-9(["Radierung"]):::initial
4113357-2["Druckgrafik"]
4075923-4(["Pastellzeichnung"]):::initial
4124801-6["Drucktechnik"]
4021845-4["Grafik"]
4021850-8["Graphische Technik"]
4794555-2["Medientechnik"]
4145419-4["Bildliche Darstellung"]
4132048-7-->4037220-0
4002511-1-->4037220-0
4036042-8-->4154503-5
4043238-5-->4037220-0
4048166-9-->4113357-2
4075923-4-->4037220-0
4154503-5-->4124801-6
4113357-2-->4021845-4
4124801-6-->4021850-8
4124801-6-->4794555-2
4021845-4-->4145419-4
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
classDef category fill:#FFF,stroke:#1fbeb8,stroke-width:3px,color:#000;
classDef initial fill:#FFF,stroke:#4dbd05,stroke-width:3px,color:#000;
&lt;/div>
&lt;p>Wie im obigen Diagramm abzulesen, ist das nicht der Fall.
Interessant ist hier, dass die &lt;em>Pastellzeichnung&lt;/em> mit &lt;em>Acrylbild&lt;/em>, &lt;em>Aquarell&lt;/em> und &lt;em>Ölgemälde&lt;/em> als gemeinsamen Oberbegriff in die &lt;em>Malerei&lt;/em> verortet wurde, die &lt;em>Pastellzeichnung&lt;/em> im nächsten Diagramm aber mit der &lt;em>Radierung&lt;/em> und der &lt;em>Lithografie&lt;/em> in die GND-Sachgruppe &lt;em>Zeichnung, Grafik&lt;/em> eingeordnet wird.&lt;/p>
&lt;div class="mermaid">flowchart LR
4132048-7(["Acrylbild"]):::initial
cat0[["Malerei"]]:::category
4002511-1(["Aquarell"]):::initial
4036042-8(["Lithografie"]):::initial
cat1[["Zeichnung, Grafik"]]:::category
cat2[["Papierherstellung, Grafische Technik"]]:::category
4043238-5(["Ölgemälde"]):::initial
4048166-9(["Radierung"]):::initial
4075923-4(["Pastellzeichnung"]):::initial
4132048-7-->cat0
4002511-1-->cat0
4036042-8-->cat1
4036042-8-->cat2
4043238-5-->cat0
4048166-9-->cat1
4075923-4-->cat1
classDef default fill:#FFF,stroke:#0088c9,stroke-width:3px,color:#000;
classDef category fill:#FFF,stroke:#1fbeb8,stroke-width:3px,color:#000;
classDef initial fill:#FFF,stroke:#4dbd05,stroke-width:3px,color:#000;
&lt;/div>
&lt;h2 id="fazit">Fazit&lt;/h2>
&lt;p>Mit wenig Aufwand, auch Dank dem &lt;a href="https://lobid.org/gnd/api" target="_blank" rel="noopener">GND API von lobid&lt;/a>, konnten wir eine Webanwendung umsetzen, mit der wir die Sachbegriffe in der GND besser kennen lernen können.
Die nachträglich bearbeitbaren Visualisierungen helfen uns bei der Projektdokumentation und bei der Kommunikation mit unseren Fachkollegen.&lt;/p>
&lt;ul class="cta-group">
&lt;li>
&lt;a href="https://fdmlab.landesarchiv-bw.de/experiment/gnd-hierarchy-vis/" class="btn btn-primary px-3 py-3">GND Hierarchie Visualisierung selbst ausprobieren&lt;/a>
&lt;/li>
&lt;/ul>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>Das Bild &amp;ldquo;GND Sachbegriffe visualisieren&amp;rdquo; wurde erstellt mit Bildern von &lt;a href="https://pixabay.com/de/users/peggy_marco-1553824/" target="_blank" rel="noopener">Peggy und Marco Lachmann-Anke&lt;/a> und &lt;a href="https://pixabay.com/de/users/geralt-9301/" target="_blank" rel="noopener">Gerd Altmann&lt;/a> auf &lt;a href="https://pixabay.com/" target="_blank" rel="noopener">Pixabay&lt;/a> und dem &lt;a href="https://commons.wikimedia.org/wiki/File:Logo_Gemeinsame_Normdatei_%28GND%29.svg" target="_blank" rel="noopener">&amp;ldquo;Logo Gemeinsame Normdatei (GND)&amp;rdquo;&lt;/a> von &lt;a href="https://www.dnb.de/" target="_blank" rel="noopener">Deutsche Nationalbibliothek (DNB)&lt;/a>, welches lizenziert ist unter einer &lt;a href="https://creativecommons.org/licenses/by-sa/4.0/deed.de" target="_blank" rel="noopener">CC BY-SA 4.0&lt;/a> Lizenz. Das Bild &amp;ldquo;GND Sachbegriffe visualisieren&amp;rdquo; ist ebenfalls lizenziert unter einer &lt;a href="https://creativecommons.org/licenses/by-sa/4.0/deed.de" target="_blank" rel="noopener">CC BY-SA 4.0&lt;/a> Lizenz.&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>&lt;a href="https://d-nb.info/standards/elementset/gnd#broaderTerm" target="_blank" rel="noopener">Broader term&lt;/a>, &lt;a href="https://d-nb.info/standards/elementset/gnd#broaderTermGeneral" target="_blank" rel="noopener">Broader term (general)&lt;/a>, &lt;a href="https://d-nb.info/standards/elementset/gnd#broaderTermGeneric" target="_blank" rel="noopener">Broader term (generic)&lt;/a>, &lt;a href="https://d-nb.info/standards/elementset/gnd#broaderTermInstantial" target="_blank" rel="noopener">Broader term (instantial)&lt;/a>, &lt;a href="https://d-nb.info/standards/elementset/gnd#broaderTermPartitive" target="_blank" rel="noopener">Broader term (partitive)&lt;/a>, &lt;a href="https://d-nb.info/standards/elementset/gnd#broaderTermWithMoreThanOneElement" target="_blank" rel="noopener">Broader term (with more than one element)&lt;/a>&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:3">
&lt;p>Danke hier auch an die &lt;a href="https://www.leo-bw.de/gnd-agentur" target="_blank" rel="noopener">GND-Agentur LEO-BW-Regional&lt;/a> für ein erstes Feedback!&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:4">
&lt;p>Die Vorzugsbenennung für &lt;em>Porzellan&lt;strong>figur&lt;/strong>&lt;/em> in der GND ist &lt;em>Porzellan&lt;strong>plastik&lt;/strong>&lt;/em>. Wir verwenden hier im Artikel teilweise offiziell in der GND gelistete Synonyme für Sachbegriffe, wenn sie besser in unsere Erzählstruktur passen.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:5">
&lt;p>In der GND ist teilweise die Bildart und teilweise die entsprechende Maltechnik die Vorzugsbenennung.
Also &lt;em>Aquarellmalerei&lt;/em> ist ein Synonym für den Vorzugsbegriff &lt;em>Aquarell&lt;/em> und &lt;em>Ölgemälde&lt;/em> ist ein Synonym für den Vorzugsbegriff &lt;em>Ölmalerei&lt;/em>. Für eine einheitliche Erzählstruktur, haben wir uns daher teilweise für die Verwendung der Synonyme in unserem Text und den Diagrammen entschieden.&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>Erste Experimente mit der GND</title><link>https://fdmlab.landesarchiv-bw.de/post/2021-06-erste-experimente-mit-der-gnd/</link><pubDate>Tue, 29 Jun 2021 00:00:00 +0000</pubDate><guid>https://fdmlab.landesarchiv-bw.de/post/2021-06-erste-experimente-mit-der-gnd/</guid><description>&lt;p>Die &lt;em>Gemeinsame Normdatei&lt;/em> (GND) enthält unter anderem semantische Daten zu Personen und Orten.
In diesem Beitrag verwenden wir &lt;em>SPARQL&lt;/em> um die Daten und die Ontologie dahinter besser kennen zu lernen.&lt;/p>
&lt;p>Wir versuchen mit der GND die folgende Frage zu beantworten:&lt;/p>
&lt;blockquote>
&lt;p>Welche Berufe gab es Nürnberg im 17. Jahrhundert.&lt;/p>
&lt;/blockquote>
&lt;p>Zur Beantwortung dieser Frage verwenden wir &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2021-06-gnd-in-lokale-datenbank-laden/">unseren lokalen Apache Jena Server&lt;/a>.
Die SPARQL-Anfragen können entweder in der Web GUI von Apache Jena ausgeführt werden, oder mit einer der vielen SPARQL-Clients&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>.&lt;/p>
&lt;h2 id="lade-beispielperson">Lade Beispielperson&lt;/h2>
&lt;p>In der &lt;a href="https://d-nb.info/standards/elementset/gnd" target="_blank" rel="noopener">GND Ontology&lt;/a> sind einige Beispiel &lt;em>Entities&lt;/em> genannt.
Wir laden hier das Beispiel für eine &lt;em>Individualisierte Person&lt;/em> der &lt;em>GND ID&lt;/em> &lt;code>118514091&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/elementset/gnd#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="nv">?p&lt;/span> &lt;span class="nv">?o&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">118514091&lt;/span> &lt;span class="nv">?p&lt;/span> &lt;span class="nv">?o&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>p&lt;/th>
&lt;th>o&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#type" target="_blank" rel="noopener">http://www.w3.org/1999/02/22-rdf-syntax-ns#type&lt;/a>&lt;/td>
&lt;td>gndo:DifferentiatedPerson&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="http://www.w3.org/2002/07/owl#sameAs" target="_blank" rel="noopener">http://www.w3.org/2002/07/owl#sameAs&lt;/a>&lt;/td>
&lt;td>&lt;a href="http://www.wikidata.org/entity/Q5383" target="_blank" rel="noopener">http://www.wikidata.org/entity/Q5383&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>gndo:gndIdentifier&lt;/td>
&lt;td>118514091&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>gndo:preferredNameForThePerson&lt;/td>
&lt;td>Bowie, David&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>gndo:biographicalOrHistoricalInformation&lt;/td>
&lt;td>spielt zahlreiche Instrumente&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>gndo:homepage&lt;/td>
&lt;td>&lt;a href="http://www.davidbowie.com" target="_blank" rel="noopener">http://www.davidbowie.com&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>gndo:placeOfBirth&lt;/td>
&lt;td>gnd:4074335-4&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>gndo:placeOfDeath&lt;/td>
&lt;td>gnd:4042011-5&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>gndo:dateOfBirth&lt;/td>
&lt;td>1947-01-08&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>gndo:dateOfDeath&lt;/td>
&lt;td>2016-01-10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>gndo:professionOrOccupation&lt;/td>
&lt;td>gnd:4040841-3&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>gndo:professionOrOccupation&lt;/td>
&lt;td>gnd:4032009-1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>gndo:professionOrOccupation&lt;/td>
&lt;td>gnd:4052154-0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>gndo:professionOrOccupation&lt;/td>
&lt;td>gnd:4124099-6&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>gndo:professionOrOccupation&lt;/td>
&lt;td>gnd:4167564-2&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>gndo:professionOrOccupation&lt;/td>
&lt;td>gnd:7628944-8&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&amp;hellip;&lt;/td>
&lt;td>&amp;hellip;&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Die Anzahl der Trippel wurde aus Darstellungsgründen gekürzt.
Bei der Person handelt es sich um &lt;em>David Bowie&lt;/em>.
Wir erhalten unter anderem weitere Verweise auf andere Graphen mit Informationen über &lt;em>David Bowie&lt;/em>, persönliche Daten über ihn, sowie eine Liste in der &lt;em>GND&lt;/em> definierter &lt;em>Berufe&lt;/em> und &lt;em>Tätigkeiten&lt;/em>, die er ausgeübt hat.&lt;/p>
&lt;h2 id="berufe-und-tätigkeiten-von-david-bowie">Berufe und Tätigkeiten von David Bowie&lt;/h2>
&lt;p>Als Nächstes suchen wir die Berufe und Tätigkeiten von &lt;em>David Bowie&lt;/em> und berücksichtigen dabei auch alternativen Schreibweisen und Bezeichnungen der Berufe.
Dafür verwenden wir die Verbindung &lt;a href="https://d-nb.info/standards/elementset/gnd#professionOrOccupation" target="_blank" rel="noopener">professionOrOccupation&lt;/a>.
Alternativ gibt es die Verbindung &lt;a href="https://d-nb.info/standards/elementset/gnd#professionOrOccupationAsLiteral" target="_blank" rel="noopener">professionOrOccupationAsLiteral&lt;/a>, die in unseren Tests aber einige fehlerhaft geparste Daten beinhaltete (Zahlen, Buchstaben, &amp;hellip;) oder Zusatzinformationen lieferte (z.B. Zeitraum in der eine Tätigkeit ausgeübt wurde).
Der Beruf ist in der &lt;em>GND&lt;/em> als &lt;a href="https://d-nb.info/standards/elementset/gnd#SubjectHeading" target="_blank" rel="noopener">Schlagwort&lt;/a> (engl. &lt;em>subject heading&lt;/em>) hinterlegt.
Daher holen wir uns für das Schlagwort die bevorzugte Bezeichnung und alternative Bezeichnungen.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/elementset/gnd#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="k">DISTINCT&lt;/span> &lt;span class="nv">?job&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">118514091&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">professionOrOccupation&lt;/span> &lt;span class="nv">?jobId&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?jobId&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">preferredNameForTheSubjectHeading&lt;/span>&lt;span class="err">|&lt;/span>&lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">variantNameForTheSubjectHeading&lt;/span> &lt;span class="nv">?job&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>Musiker, Musikschaffender, Komponist, Tonsetzer, Schauspieler, Darsteller (Schauspieler), Sänger, Konzertsänger, Librettist, Textdichter (Librettist), Bandleader, ld&lt;/p>
&lt;/blockquote>
&lt;p>Zur Übersichtlichkeit haben wir an dieser Stelle eine Listendarstellung für die Ergebnisse gewählt.&lt;/p>
&lt;h2 id="berufe-und-tätigkeiten-in-nürnberg-fixiert">Berufe und Tätigkeiten in Nürnberg (fixiert)&lt;/h2>
&lt;p>Nachdem wir herausgefunden haben, wie wir die Berufe und Tätigkeiten einer Person aus der GND auslesen können,
verknüpfen wir diese Information mit einem Ort. Konkret mit dem Ort Nürnberg, welches die &lt;em>GND ID&lt;/em> &lt;code>4042742-0&lt;/code> hat.
Hierfür suchen wir zuerst nach Personen, die über eine Auswahl von Eigenschaften (z.B. Geburtsort) mit Nürnberg verknüpft sind
und suchen dann nach deren Berufsbezeichnungen.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/elementset/gnd#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="k">DISTINCT&lt;/span> &lt;span class="nv">?job&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?person&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">placeOfBirth&lt;/span>&lt;span class="err">|&lt;/span>&lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">placeOfDeath&lt;/span>&lt;span class="err">|&lt;/span>&lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">placeOfActivity&lt;/span>&lt;span class="err">|&lt;/span>&lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">placeOfExile&lt;/span>&lt;span class="err">|&lt;/span>&lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">characteristicPlace&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">4042742-0&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">professionOrOccupation&lt;/span> &lt;span class="nv">?jobId&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?jobId&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">preferredNameForTheSubjectHeading&lt;/span>&lt;span class="err">|&lt;/span>&lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">variantNameForTheSubjectHeading&lt;/span> &lt;span class="nv">?job&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">LIMIT&lt;/span> &lt;span class="mi">20&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>Künstler, Bildender Künstler, Künstlertum, Kunstschaffender, Grafiker, Graphiker, Kupferstecher, Maler, Mathematiker, Diplommathematiker, Zeichner, Musiker, Musikschaffender, Dirigent, Orchesterleiter, Chorleiter, Chorregent, Chordirektor, Chormeister, Chordirigent&lt;/p>
&lt;/blockquote>
&lt;p>Um eine übersichtliche Ergebnismenge zu erhalten, haben wir die Anzahl der Ergebnisse auf 20 limitiert.&lt;/p>
&lt;h2 id="berufe-und-tätigkeiten-in-nürnberg-frei">Berufe und Tätigkeiten in Nürnberg (frei)&lt;/h2>
&lt;p>In der letzten Anfrage haben wir die Art der Verknüpfung von Personen mit dem Ort Nürnberg fixiert.
Dazu gehört ein intensives Studieren der GND Ontoloy.&lt;/p>
&lt;p>Es geht auch einfacher. In der folgenden Anfrage suchen wir nach Personen,
die in irgendeiner Beziehung zu Nürnberg stehen (&lt;code>?person ?p gnd:4042742-0&lt;/code>)
und suchen dann die Berufsbezeichnungen.&lt;/p>
&lt;p>Theoretisch erhöhen wir dadurch die Trefferquote, verringern aber die Genauigkeit.
Praktisch spielte das in unseren Experimenten keine Rolle.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/elementset/gnd#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="k">DISTINCT&lt;/span> &lt;span class="nv">?job&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?person&lt;/span> &lt;span class="nv">?p&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">4042742-0&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">professionOrOccupation&lt;/span> &lt;span class="nv">?jobId&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?jobId&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">preferredNameForTheSubjectHeading&lt;/span>&lt;span class="err">|&lt;/span>&lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">variantNameForTheSubjectHeading&lt;/span> &lt;span class="nv">?job&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">LIMIT&lt;/span> &lt;span class="mi">20&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>Künstler, Bildender Künstler, Künstlertum, Kunstschaffender, Grafiker, Graphiker, Kupferstecher, Maler, Mathematiker, Diplommathematiker, Zeichner, Physiker, Astronom, Astronomen, Kartograf, Kartograph, Pfarrer, Pastor, Evangelischer Theologe, Theologe / Evangelische Kirche&lt;/p>
&lt;/blockquote>
&lt;p>Die Ergebnisse dieser Vorschau unterscheiden sich von der letzten Abfrage, da der Graph in einer anderen Reihenfolge traversiert wird.
Vergleicht man die Gesamtmenge der Ergebnisse, dann unterscheiden sie sich nur in der Reihenfolge der Elemente.&lt;/p>
&lt;h2 id="berufe-und-tätigkeiten-in-nürnberg-im-17-jahrhundert">Berufe und Tätigkeiten in Nürnberg im 17. Jahrhundert&lt;/h2>
&lt;p>Um die Anfrage aus dem letzten Beispiel auf das 17. Jahrhundert einzuschränken,
fügen wir einen Filter für das Geburtsdatum und das Sterbedatum der Personen hinzu.&lt;/p>
&lt;p>Der Vollständigkeit halber, haben wir &lt;code>gndo:dateOfBirth&lt;/code> und &lt;code>gndo:dateOfDeath&lt;/code> optional gesetzt.
Das verhindert, dass wir ungewollt Personen filtern, bei denen eines der beiden Daten fehlt.
Daher brauchen wir noch ein extra Filterkriterium, welches das Geburtsdatum nach unten und das Todesdatum nach oben beschränkt&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="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/elementset/gnd#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">xsd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="k">DISTINCT&lt;/span> &lt;span class="nv">?job&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?person&lt;/span> &lt;span class="nv">?p&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">4042742-0&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">professionOrOccupation&lt;/span> &lt;span class="nv">?jobId&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?jobId&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">preferredNameForTheSubjectHeading&lt;/span>&lt;span class="err">|&lt;/span>&lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">variantNameForTheSubjectHeading&lt;/span> &lt;span class="nv">?job&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">OPTIONAL&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="nv">?person&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">dateOfBirth&lt;/span> &lt;span class="nv">?birthDay&lt;/span> &lt;span class="p">.&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">OPTIONAL&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="nv">?person&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">dateOfDeath&lt;/span> &lt;span class="nv">?deathDay&lt;/span> &lt;span class="p">.&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">FILTER&lt;/span> &lt;span class="p">(&lt;/span> &lt;span class="nf">bound&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?birthDay&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">||&lt;/span> &lt;span class="nf">bound&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?deathDay&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">)&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">FILTER&lt;/span> &lt;span class="p">(&lt;/span> &lt;span class="nf">bound&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?birthDay&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="nv">?birthDay&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="s">&amp;#34;1501-01-01&amp;#34;&lt;/span>&lt;span class="o">^^&lt;/span>&lt;span class="nn">xsd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">date&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="nv">?birthDay&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;1701-01-01&amp;#34;&lt;/span>&lt;span class="o">^^&lt;/span>&lt;span class="nn">xsd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">date&lt;/span> &lt;span class="p">)&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">FILTER&lt;/span> &lt;span class="p">(&lt;/span> &lt;span class="nf">bound&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?deathDay&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="nv">?deathDay&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="s">&amp;#34;1601-01-01&amp;#34;&lt;/span>&lt;span class="o">^^&lt;/span>&lt;span class="nn">xsd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">date&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="nv">?deathDay&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;1801-01-01&amp;#34;&lt;/span>&lt;span class="o">^^&lt;/span>&lt;span class="nn">xsd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">date&lt;/span> &lt;span class="p">)&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">LIMIT&lt;/span> &lt;span class="mi">20&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>Kupferstecher, Zeichner, Künstler, Bildender Künstler, Künstlertum, Kunstschaffender, Maler, Radierer, Buchhändler, Buchführer, Drucker, Buchdrucker, Verleger, Verlagsbuchhändler, Verlagsleiter, Musikverleger, Pfarrer, Pastor, Jurist, Rechtswissenschaftler&lt;/p>
&lt;/blockquote>
&lt;h2 id="methodische-probleme">Methodische Probleme&lt;/h2>
&lt;p>Bevor wir mit diesen Ergebnissen versuchen spezifische Aussagen zu treffen, sollten wir zuerst einige methodische Probleme betrachten.&lt;/p>
&lt;h3 id="-beruf-und--ort">💼 Beruf und 🏠 Ort&lt;/h3>
&lt;p>Die Verknüpfung von Beruf und Ort lässt sich in der GND nur über eine 👤 Person herstellen.
Mit den vorliegenden Daten kann jedoch nicht festgestellt werden, ob die 👤 Person den Beruf (oder die Tätigkeit) auch an diesem Ort ausgeübt hat.
Zum Beispiel wurde Albert Einstein in Ulm geboren, hat den Beruf des Physikers dort jedoch nie ausgeübt.&lt;/p>
&lt;h3 id="-zeit-und--ort">📅 Zeit und 🏠 Ort&lt;/h3>
&lt;p>Mit dem Filter auf Geburtsdatum und Sterbedatum haben wir zwar eine grobe Einschränkung getroffen.
Es ist jedoch nicht zu bestimmen, ob eine 👤 Person mit Sterbedatum 1601 ihren Beruf im 17. Jahrhundert noch ausgeübt hat.
Es ist sicherlich auszuschließen, dass die meisten 👥 Personen mit einem Geburtsdatum von 1699 ihren Beruf im 17. Jahrhundert schon ausgeübt haben.&lt;/p>
&lt;h3 id="-datengrundlage">📜 Datengrundlage&lt;/h3>
&lt;p>Die GND beinhaltet (noch) keinen repräsentative Darstellung der Gesamtbevölkerung.
Es gibt einen starken Bias in Richtung 👥 Personen, die schriftliche Erzeugnisse produzierten, oder künstlerisch tätig waren.
Das wird im folgenden Beispiel deutlich.&lt;/p>
&lt;h2 id="berufe-und-tätigkeiten-in-nürnberg-im-17-jahrhundert-mit-häufigkeit">Berufe und Tätigkeiten in Nürnberg im 17. Jahrhundert mit Häufigkeit&lt;/h2>
&lt;p>Anstatt wie zuvor alle Berufe und Tätigkeiten mit alternativen Bezeichnungen zu sammeln, schreiben wir hier eine Auswertung, die die Häufigkeit der einzelnen Berufe und Tätigkeiten bestimmt. Die alternativen Bezeichnungen, werden in einer separaten Spalte der Ausgabetabelle gesammelt.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;https://d-nb.info/standards/elementset/gnd#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">PREFIX&lt;/span> &lt;span class="nn">xsd&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nl">&amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="nv">?job&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nf">COUNT&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?job&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="nv">?count&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nf">GROUP_CONCAT&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">DISTINCT&lt;/span> &lt;span class="nv">?jobAlternative&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nf">SEPARATOR&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;, &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="nv">?alternatives&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?person&lt;/span> &lt;span class="nv">?p&lt;/span> &lt;span class="nn">gnd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">4042742-0&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">professionOrOccupation&lt;/span> &lt;span class="nv">?jobId&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?jobId&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">preferredNameForTheSubjectHeading&lt;/span> &lt;span class="nv">?job&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">variantNameForTheSubjectHeading&lt;/span> &lt;span class="nv">?jobAlternative&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">OPTIONAL&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="nv">?person&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">dateOfBirth&lt;/span> &lt;span class="nv">?birthDay&lt;/span> &lt;span class="p">.&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">OPTIONAL&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="nv">?person&lt;/span> &lt;span class="nn">gndo&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">dateOfDeath&lt;/span> &lt;span class="nv">?deathDay&lt;/span> &lt;span class="p">.&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">FILTER&lt;/span> &lt;span class="p">(&lt;/span> &lt;span class="nf">bound&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?birthDay&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">||&lt;/span> &lt;span class="nf">bound&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?deathDay&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">)&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">FILTER&lt;/span> &lt;span class="p">(&lt;/span> &lt;span class="nf">bound&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?birthDay&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="nv">?birthDay&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="s">&amp;#34;1501-01-01&amp;#34;&lt;/span>&lt;span class="o">^^&lt;/span>&lt;span class="nn">xsd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">date&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="nv">?birthDay&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;1701-01-01&amp;#34;&lt;/span>&lt;span class="o">^^&lt;/span>&lt;span class="nn">xsd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">date&lt;/span> &lt;span class="p">)&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">FILTER&lt;/span> &lt;span class="p">(&lt;/span> &lt;span class="nf">bound&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?deathDay&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="nv">?deathDay&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="s">&amp;#34;1601-01-01&amp;#34;&lt;/span>&lt;span class="o">^^&lt;/span>&lt;span class="nn">xsd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">date&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="nv">?deathDay&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;1801-01-01&amp;#34;&lt;/span>&lt;span class="o">^^&lt;/span>&lt;span class="nn">xsd&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nt">date&lt;/span> &lt;span class="p">)&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">GROUP BY&lt;/span> &lt;span class="nv">?job&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">ORDER BY&lt;/span> &lt;span class="k">DESC&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">?count&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>job&lt;/th>
&lt;th>count&lt;/th>
&lt;th>alternatives&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Kaufmann&lt;/td>
&lt;td>270&lt;/td>
&lt;td>Kaufleute, Fernkaufmann, Fernhandelskaufmann, Großkaufmann, Handelsmann&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Jurist&lt;/td>
&lt;td>270&lt;/td>
&lt;td>Rechtswissenschaftler, Juristischer Beruf, Juristen&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Patriziat&lt;/td>
&lt;td>164&lt;/td>
&lt;td>Patrizier, Stadtadel&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Schriftsteller&lt;/td>
&lt;td>156&lt;/td>
&lt;td>Dichter, Literaturproduzent, Literat, Homme de lettres&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Hochschullehrer&lt;/td>
&lt;td>120&lt;/td>
&lt;td>Professor (Hochschule), Lehrkörper / Hochschule, Lehrpersonal / Hochschule, Universitätsprofessor, Hochschulprofessor&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Verleger&lt;/td>
&lt;td>104&lt;/td>
&lt;td>Verlagsbuchhändler, Verlagsleiter&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Pfarrer&lt;/td>
&lt;td>94&lt;/td>
&lt;td>Pastor&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Arzt&lt;/td>
&lt;td>76&lt;/td>
&lt;td>Mediziner, Ärzte&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Künstler&lt;/td>
&lt;td>72&lt;/td>
&lt;td>Bildender Künstler, Künstlertum, Kunstschaffender&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Unternehmer&lt;/td>
&lt;td>57&lt;/td>
&lt;td>Industrieller, Fabrikant, Entrepreneur&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&amp;hellip;&lt;/td>
&lt;td>&amp;hellip;&lt;/td>
&lt;td>&amp;hellip;&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Zur Übersichtlichkeit haben wir die Tabelle auf 10 Einträge reduziert, sie kann als&lt;/p>
&lt;a href="https://fdmlab.landesarchiv-bw.de/data/nuernberg-jobs-1700.csv">
&lt;i class="fas fa-file-csv pr-1 fa-fw">&lt;/i>CSV komplett&lt;/a>
heruntergeladen werden.
&lt;figure id="figure-silhouette-der-kaiserburg-in-nürnberg-mit-nach-häufigkeit-gewichteter-wortwolke-der-in-der-gnd-gelisteten-berufe-und-tätigkeiten-im-17-jahrhundert-mit-einer-verbindung-zu-nürnberg">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Silhouette der Kaiserburg in Nürnberg, mit nach Häufigkeit gewichteter Wortwolke, der in der GND gelisteten Berufe und Tätigkeiten im 17. Jahrhundert, mit einer Verbindung zu Nürnberg." srcset="
/post/2021-06-erste-experimente-mit-der-gnd/featured_hu9de53fc8c4372273836a8ef7220996a7_256456_ab851dcc72f12f70d2a42e79273a6701.webp 400w,
/post/2021-06-erste-experimente-mit-der-gnd/featured_hu9de53fc8c4372273836a8ef7220996a7_256456_657d5e2dc1cc3c72e35f578ecc54008b.webp 760w,
/post/2021-06-erste-experimente-mit-der-gnd/featured_hu9de53fc8c4372273836a8ef7220996a7_256456_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2021-06-erste-experimente-mit-der-gnd/featured_hu9de53fc8c4372273836a8ef7220996a7_256456_ab851dcc72f12f70d2a42e79273a6701.webp"
width="760"
height="505"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Silhouette der Kaiserburg in Nürnberg, mit nach Häufigkeit gewichteter Wortwolke, der in der GND gelisteten Berufe und Tätigkeiten im 17. Jahrhundert, mit einer Verbindung zu Nürnberg.
&lt;/figcaption>&lt;/figure>
&lt;p>Wenn man einen Blick auf diese Auswertung wirft, wird schnell klar, dass dies weder eine repräsentative, noch eine vollständige Darstellung der Berufe und Tätigkeiten im 17. Jahrhundert in Nürnberg darstellt.
Für unseren Streifzug durch die Daten der GND war die Fragestellung jedoch sehr hilfreich.
Und auch im Archivalltag haben wir immer wieder Rechercheaufgaben, in denen konkret nach Personen mit einem bestimmten Beruf gesucht werden, die in einem bestimmten Zeitraum in einer Stadt gelebt haben.&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>Wir verwenden &lt;a href="https://pypi.org/project/sparql-dataframe/" target="_blank" rel="noopener">sparql_dataframe&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>Die 100 Jahre sind etwas großzügig, wir erhöhen damit die Trefferquote und verringern die Genauigkeit.&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>GND in lokale Datenbank laden</title><link>https://fdmlab.landesarchiv-bw.de/post/2021-06-gnd-in-lokale-datenbank-laden/</link><pubDate>Tue, 22 Jun 2021 00:00:00 +0000</pubDate><guid>https://fdmlab.landesarchiv-bw.de/post/2021-06-gnd-in-lokale-datenbank-laden/</guid><description>&lt;p>Normdaten sind hilfreiche und notwendige Datenquellen zum Aufbereiten, Erschließen und Finden von Archivmaterial.
In diesem Beitrag laden wir die &lt;em>Gemeinsame Normdatei&lt;/em> (GND) zur Weiterverarbeitung in einen lokalen &lt;em>Triple Store&lt;/em> von &lt;em>Apache Jena&lt;/em>.&lt;/p>
&lt;figure class="float-right" id="figure-gnd-logohttpswwwdnbdegnd-von-derdnb-unter-cc-by-sa-lizenzhttpscreativecommonsorglicensesby-sa40">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="[GND Logo](https://www.dnb.de/gnd) von der
DNB unter [CC BY-SA Lizenz](https://creativecommons.org/licenses/by-sa/4.0/)." srcset="
/post/2021-06-gnd-in-lokale-datenbank-laden/gnd_hubf082f7bbdaac622ea39cd2aed6726e1_38178_89e8517eb08384fb4e1deb9cb8ec3e07.webp 400w,
/post/2021-06-gnd-in-lokale-datenbank-laden/gnd_hubf082f7bbdaac622ea39cd2aed6726e1_38178_1b5aa3fd08c0facd7faebc94c2e45e69.webp 760w,
/post/2021-06-gnd-in-lokale-datenbank-laden/gnd_hubf082f7bbdaac622ea39cd2aed6726e1_38178_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2021-06-gnd-in-lokale-datenbank-laden/gnd_hubf082f7bbdaac622ea39cd2aed6726e1_38178_89e8517eb08384fb4e1deb9cb8ec3e07.webp"
width="200"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
&lt;a href="https://www.dnb.de/gnd" target="_blank" rel="noopener">GND Logo&lt;/a> von der&lt;br>DNB unter &lt;a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="noopener">CC BY-SA Lizenz&lt;/a>.
&lt;/figcaption>&lt;/figure>
&lt;h2 id="über-die-gemeinsame-normdatei">Über die Gemeinsame Normdatei&lt;/h2>
&lt;p>Die &lt;a href="https://www.dnb.de/gnd" target="_blank" rel="noopener">GND&lt;/a> ist ein von der Deutschen National Bibliothek (DNB) betreuter Dienst zur kooperativen Nutzung von Normdaten.
Im Archivbereich interessieren wir uns insbesondere für eindeutig zu identifizierende Personen, Orte und Dinge.&lt;/p>
&lt;p>Die GND liegt im Format &lt;a href="https://www.loc.gov/marc/" target="_blank" rel="noopener">MARC 21&lt;/a> und in &lt;a href="https://www.w3.org/RDF/" target="_blank" rel="noopener">RDF&lt;/a> vor und kann über unterschiedliche Schnittstellen abgerufen werden.
Wir konzentrieren uns hier auf die &lt;a href="https://www.dnb.de/DE/Professionell/Metadatendienste/Datenbezug/LDS/lds_node.html" target="_blank" rel="noopener">GND Daten im RDF Format&lt;/a>, da wir diese effektiver durchsuchen können.
Zum heutigen Stand gibt es von Seiten der DNB keinen SPARQL Endpoint für den Zugriff auf die Daten&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>.
Daher spielen wir einen Daten Dump in eine lokale Datenbank ein.
Die Verwendung der Daten in einem Memory basierten Graphen z.B. mit &lt;a href="https://rdflib.readthedocs.io" target="_blank" rel="noopener">RDFlib&lt;/a> funktioniert auf Grund der Größe des Graphen nicht.&lt;/p>
&lt;h2 id="datenbank-apache-jena-fuseki">Datenbank: Apache Jena Fuseki&lt;/h2>
&lt;figure class="float-right" id="figure-apache-jena-logohttpsjenaapacheorg-von-derapache-software-foundation">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="[Apache Jena Logo](https://jena.apache.org/) von der
Apache® Software Foundation." srcset="
/post/2021-06-gnd-in-lokale-datenbank-laden/jena_hu2356985c631d3f3d54e2729962d749aa_49736_9d3ca77f0e108edf462976f508cce2a0.webp 400w,
/post/2021-06-gnd-in-lokale-datenbank-laden/jena_hu2356985c631d3f3d54e2729962d749aa_49736_097e5ee1d49ca7c0cf8db86174ba32cd.webp 760w,
/post/2021-06-gnd-in-lokale-datenbank-laden/jena_hu2356985c631d3f3d54e2729962d749aa_49736_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2021-06-gnd-in-lokale-datenbank-laden/jena_hu2356985c631d3f3d54e2729962d749aa_49736_9d3ca77f0e108edf462976f508cce2a0.webp"
width="200"
height="525"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
&lt;a href="https://jena.apache.org/" target="_blank" rel="noopener">Apache Jena Logo&lt;/a> von der&lt;br>Apache&lt;sup>®&lt;/sup> Software Foundation.
&lt;/figcaption>&lt;/figure>
&lt;p>Als lokale Datenbank für unser Experiment haben wir uns für &lt;a href="https://jena.apache.org/" target="_blank" rel="noopener">Apache Jena&lt;/a> entschieden.
Das Projekt vereint einen Triple Store (TDB) zum Speichern und Verwalten der RDF Triple der GND,
eine Implementierung von &lt;a href="https://www.w3.org/TR/sparql11-overview/" target="_blank" rel="noopener">SPARQL&lt;/a> namens ARQ, sowie einen SPARQL Endpoint mit Fuseki.
Zusätzlich gib es auch noch Tools zum Arbeiten mit RDF und &lt;a href="https://www.w3.org/OWL/" target="_blank" rel="noopener">OWL&lt;/a>, die wir erstmal nicht nutzen werden.
Da wir &lt;a href="https://fdmlab.landesarchiv-bw.de/post/2021-06-wie-wir-docker-einsetzen/">gerne mit Docker arbeiten&lt;/a>,
es aber kein offizielles Docker Image des Apache Projektes gibt,
verwenden wir das Docker Image &lt;a href="https://hub.docker.com/r/stain/jena-fuseki" target="_blank" rel="noopener">stain/jena-fuseki&lt;/a> aus dem Docker Hub&lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref">2&lt;/a>&lt;/sup>.&lt;/p>
&lt;h2 id="einlesen-der-daten">Einlesen der Daten&lt;/h2>
&lt;div class="alert alert-note">
&lt;div>
Da das Einlesen der Daten mehrere Stunden dauern kann, empfehlen wir den Workflow zuerst mit einem kleineren Testdatensatz auszuführen.
&lt;/div>
&lt;/div>
&lt;p>Zum Einlesen haben wir uns die Datei &lt;code>authorities_lds.nt.gz&lt;/code> aus dem &lt;a href="https://data.dnb.de/opendata/" target="_blank" rel="noopener">DNB Data Dump&lt;/a> heruntergeladen&lt;sup id="fnref:3">&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref">3&lt;/a>&lt;/sup>.&lt;/p>
&lt;p>Wir arbeiten mit der folgenden Ordnerstruktur:&lt;/p>
&lt;div class="mermaid">---
title: Ordnerstruktur
config:
look: handDrawn
theme: neutral
---
flowchart TD
subgraph data[far:fa-folder-open data]
fuseki[far:fa-folder fuseki]
fuseki_test[far:fa-folder fuseki_test]
gnd_triples[far:fa-folder gnd_triples]
test_triples[far:fa-folder test_triples]
end
root[far:fa-folder-open gnd_test] --> data
root --> README[far:fa-file README.md]
&lt;/div>
&lt;ul>
&lt;li>&lt;strong>README.md&lt;/strong>: Überblick über das Projekt und die Daten geben!&lt;/li>
&lt;li>&lt;strong>fuseki&lt;/strong>: Ordner zum Persistieren der Datenbank von Apache Jena.&lt;/li>
&lt;li>&lt;strong>fuseki_test&lt;/strong>: Ordner für den Test mit Apache Jena.&lt;/li>
&lt;li>&lt;strong>gnd_triples&lt;/strong>: Speicherort der &lt;code>.nt.gz&lt;/code> Datei.&lt;/li>
&lt;li>&lt;strong>test_triples&lt;/strong>: Speicherort von Testdateien im &lt;code>.ttl&lt;/code> Format.&lt;/li>
&lt;/ul>
&lt;h3 id="testdaten-einlesen">Testdaten einlesen&lt;/h3>
&lt;p>Als erstes starten wir einen Docker Container mit dem Namen &lt;code>fuseki&lt;/code>,
machen die Web GUI verfügbar über &lt;a href="http://localhost:8080" target="_blank" rel="noopener">http://localhost:8080&lt;/a>, setzen
das Administrator Passwort auf &lt;code>123123&lt;/code> und &lt;em>mounten&lt;/em> unsere Testordner in den Container&lt;sup id="fnref:4">&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref">4&lt;/a>&lt;/sup>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">docker&lt;/span> &lt;span class="n">run&lt;/span> &lt;span class="n">-it&lt;/span> &lt;span class="p">-&lt;/span>&lt;span class="n">-rm&lt;/span> &lt;span class="p">-&lt;/span>&lt;span class="n">-name&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="n">fuseki&lt;/span> &lt;span class="n">-p&lt;/span> &lt;span class="mf">8080&lt;/span>&lt;span class="err">:&lt;/span>&lt;span class="mf">3030&lt;/span> &lt;span class="n">-e&lt;/span> &lt;span class="n">ADMIN_PASSWORD&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="mf">123123&lt;/span> &lt;span class="n">-v&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">$(&lt;/span>&lt;span class="n">PWD&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="s2">\data\test_triples:/staging&amp;#34;&lt;/span> &lt;span class="n">-v&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">$(&lt;/span>&lt;span class="n">PWD&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="s2">\data\fuseki_test:/fuseki&amp;#34;&lt;/span> &lt;span class="n">stain&lt;/span>&lt;span class="p">/&lt;/span>&lt;span class="nb">jena-fuseki&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Den Docker Container lassen wir laufen und öffnen ein zweites Terminal (Shell, PowerShell, &amp;hellip;).
Von diesem aus können wir uns mit dem Container verbinden und den Einlesevorgang starten.
Hierfür gibt es zwei Varianten. In der ersten wird das bereitgestellte &lt;code>load.sh&lt;/code> Skript verwendet, welches auf &lt;code>tdbloader&lt;/code> verweist.
Wir verzichten darauf dem &lt;code>load.sh&lt;/code> Skript spezifische Dateien vorzugeben, sondern lesen alle kompatiblen Formate im &lt;code>fuseki_test&lt;/code> Ordner in die &lt;code>test&lt;/code> Datenbank ein.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">docker&lt;/span> &lt;span class="n">exec&lt;/span> &lt;span class="n">-it&lt;/span> &lt;span class="n">fuseki&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="p">/&lt;/span>&lt;span class="n">bash&lt;/span> &lt;span class="n">-c&lt;/span> &lt;span class="s1">&amp;#39;./load.sh test&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Abschließend wird der geladene Datensatz in der Web GUI angelegt. In dem folgenden Bildschirmfoto in Abbildung 1 wird ein &lt;code>TDB&lt;/code> Datensatz mit dem Namen &lt;code>test&lt;/code> angelegt. Hier ist der gleiche Bezeichner zu wählen, wie er auch beim Laden verwendet wurde.&lt;/p>
&lt;figure id="figure-hinzufügen-des-test-datensatzes-in-der-web-gui">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Hinzufügen des Test Datensatzes in der Web GUI." srcset="
/post/2021-06-gnd-in-lokale-datenbank-laden/apache-jena-add-test-dataset_hu7de0ec55cdf555c075315fa09a7828f7_31568_3ebcb8e78b5e65817acfcaa7832ab045.webp 400w,
/post/2021-06-gnd-in-lokale-datenbank-laden/apache-jena-add-test-dataset_hu7de0ec55cdf555c075315fa09a7828f7_31568_44ec608008c18bf6afac67dd2ee66eec.webp 760w,
/post/2021-06-gnd-in-lokale-datenbank-laden/apache-jena-add-test-dataset_hu7de0ec55cdf555c075315fa09a7828f7_31568_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2021-06-gnd-in-lokale-datenbank-laden/apache-jena-add-test-dataset_hu7de0ec55cdf555c075315fa09a7828f7_31568_3ebcb8e78b5e65817acfcaa7832ab045.webp"
width="760"
height="249"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Hinzufügen des Test Datensatzes in der Web GUI.
&lt;/figcaption>&lt;/figure>
&lt;p>Anschließend kann entweder in der Web GUI im Tab &lt;em>info&lt;/em> oder mit dem folgenden SPARQL-Befehl die Anzahl der eingelesenen Trippel bestimmt werden.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="nf">COUNT&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">?s&lt;/span> &lt;span class="nv">?p&lt;/span> &lt;span class="nv">?o&lt;/span> &lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="alternative-mit-tdb2">Alternative mit TDB2&lt;/h4>
&lt;p>Alternativ kann auch der &lt;a href="https://jena.apache.org/documentation/tdb2/" target="_blank" rel="noopener">tdbloader2&lt;/a> verwendet werden. Hier werden explizit nur Dateien im &lt;code>*.ttl&lt;/code> Format eingelesen.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">docker&lt;/span> &lt;span class="n">exec&lt;/span> &lt;span class="n">-it&lt;/span> &lt;span class="n">fuseki&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="p">/&lt;/span>&lt;span class="n">bash&lt;/span> &lt;span class="n">-c&lt;/span> &lt;span class="s1">&amp;#39;./tdbloader2 --loc=/fuseki/databases/test /staging/*.ttl&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>In der Web GUI darauf achten, den Datensatz als &lt;code>TDB2&lt;/code> anzulegen.&lt;/p>
&lt;h3 id="gnd-einlesen">GND einlesen&lt;/h3>
&lt;p>Nach einem erfolgreichen Test lesen wir nun die komplette GND ein.
Wir haben uns für &lt;code>TDB2&lt;/code> entschieden, da wir planen den Datensatz länger zu verwenden. Das Einlesen benötigt mit 6 Stunden und 15 Minuten etwa eine Viertelstunde länger als mit der Vorgängerversion &lt;code>TDB&lt;/code>.&lt;/p>
&lt;h4 id="1-starten-des-containers-mit-daten-zum-einlesen">1. Starten des Containers mit Daten zum Einlesen&lt;/h4>
&lt;p>Der folgende Befehl startet einen Docker Container mit dem Verzeichnis der Daten zum Einlesen und einem Verzeichnis zum Speichern der Datenbank von Apache Jena.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">docker&lt;/span> &lt;span class="n">run&lt;/span> &lt;span class="n">-it&lt;/span> &lt;span class="p">-&lt;/span>&lt;span class="n">-rm&lt;/span> &lt;span class="p">-&lt;/span>&lt;span class="n">-name&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="n">fuseki&lt;/span> &lt;span class="n">-p&lt;/span> &lt;span class="mf">8080&lt;/span>&lt;span class="err">:&lt;/span>&lt;span class="mf">3030&lt;/span> &lt;span class="n">-e&lt;/span> &lt;span class="n">ADMIN_PASSWORD&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="mf">123123&lt;/span> &lt;span class="n">-v&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">$(&lt;/span>&lt;span class="n">PWD&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="s2">\data\gnd_triples:/staging&amp;#34;&lt;/span> &lt;span class="n">-v&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">$(&lt;/span>&lt;span class="n">PWD&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="s2">\data\fuseki:/fuseki&amp;#34;&lt;/span> &lt;span class="n">stain&lt;/span>&lt;span class="p">/&lt;/span>&lt;span class="nb">jena-fuseki&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="2-einlesen-der-daten-im-tdb2-format">2. Einlesen der Daten im &lt;code>TDB2&lt;/code> Format&lt;/h4>
&lt;p>In einem separaten Terminal starten wir den Einlesevorgang der GND Daten mit dem &lt;code>tdbloader2&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">docker&lt;/span> &lt;span class="n">exec&lt;/span> &lt;span class="n">-it&lt;/span> &lt;span class="n">fuseki&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="p">/&lt;/span>&lt;span class="n">bash&lt;/span> &lt;span class="n">-c&lt;/span> &lt;span class="s1">&amp;#39;./tdbloader2 --loc=/fuseki/databases/gnd /staging/*.nt.gz&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="3-anlegen-des-datensatzes-in-der-web-gui">3. Anlegen des Datensatzes in der Web GUI&lt;/h4>
&lt;p>Nach dem erfolgreichen Einlesen legen wir den Datensatz in der Weg GUI an.
Hierbei achten wir darauf, den gleichen Bezeichner zu verwenden, wie beim Einlesen und als Format &lt;code>TDB2&lt;/code> zu wählen.&lt;/p>
&lt;figure id="figure-hinzufügen-des-gnd-datensatzes-in-der-web-gui">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Hinzufügen des GND Datensatzes in der Web GUI." srcset="
/post/2021-06-gnd-in-lokale-datenbank-laden/apache-jena-add-gnd-dataset_hu5d67e5c0519dade124681b5a02d949f1_31074_e44833b33d84e25ec3294609e448e6a8.webp 400w,
/post/2021-06-gnd-in-lokale-datenbank-laden/apache-jena-add-gnd-dataset_hu5d67e5c0519dade124681b5a02d949f1_31074_cc005c6d4dc61bb81a6064c541a09cb3.webp 760w,
/post/2021-06-gnd-in-lokale-datenbank-laden/apache-jena-add-gnd-dataset_hu5d67e5c0519dade124681b5a02d949f1_31074_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://fdmlab.landesarchiv-bw.de/post/2021-06-gnd-in-lokale-datenbank-laden/apache-jena-add-gnd-dataset_hu5d67e5c0519dade124681b5a02d949f1_31074_e44833b33d84e25ec3294609e448e6a8.webp"
width="760"
height="249"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption data-pre="Abbildung&amp;nbsp;" data-post=":&amp;nbsp;" class="numbered">
Hinzufügen des GND Datensatzes in der Web GUI.
&lt;/figcaption>&lt;/figure>
&lt;h4 id="4-exemplarisches-testen-der-eingelesenen-daten">4. Exemplarisches Testen der eingelesenen Daten&lt;/h4>
&lt;p>Anschließend testen wir exemplarisch, ob die Daten nutzbar sind.
Hierfür verwenden wir eine SPARQL Abfrage mit einem Standardbeispiel aus der &lt;a href="https://d-nb.info/standards/elementset/gnd" target="_blank" rel="noopener">GND Ontology&lt;/a>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sparql" data-lang="sparql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span> &lt;span class="nv">?p&lt;/span> &lt;span class="nv">?o&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">WHERE&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nl">&amp;lt;https://d-nb.info/gnd/118514091&amp;gt;&lt;/span> &lt;span class="nv">?p&lt;/span> &lt;span class="nv">?o&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Falls zu diesem Zeitpunkt noch keine Ergebnisse angezeigt werden, den Container beenden und wie in Schritt 5 starten.&lt;/p>
&lt;h4 id="5-wiederverwendung-des-containers">5. Wiederverwendung des Containers&lt;/h4>
&lt;p>Um einen neuen Apache Jena Docker Container zu starten und die eingelesenen Daten wiederzuverwenden, kann der folgende Befehl verwendet werden.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">docker&lt;/span> &lt;span class="n">run&lt;/span> &lt;span class="n">-it&lt;/span> &lt;span class="p">-&lt;/span>&lt;span class="n">-rm&lt;/span> &lt;span class="p">-&lt;/span>&lt;span class="n">-name&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="n">fuseki&lt;/span> &lt;span class="n">-p&lt;/span> &lt;span class="mf">8080&lt;/span>&lt;span class="err">:&lt;/span>&lt;span class="mf">3030&lt;/span> &lt;span class="n">-e&lt;/span> &lt;span class="n">ADMIN_PASSWORD&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="mf">123123&lt;/span> &lt;span class="n">-v&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">$(&lt;/span>&lt;span class="n">PWD&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="s2">\data\fuseki:/fuseki&amp;#34;&lt;/span> &lt;span class="n">stain&lt;/span>&lt;span class="p">/&lt;/span>&lt;span class="nb">jena-fuseki&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="zusammenfassung-und-ausblick">Zusammenfassung und Ausblick&lt;/h2>
&lt;p>Zu Beginn war es etwas frustrierend, einen funktionierenden Workflow zum Einlesen der Daten in den Docker Container von Apache Jena aufzubauen.
Kleine Abweichungen der obigen Beschreibung oder der Reihenfolge sorgen dafür, dass der komplette Einlesevorgang neu gestartet werden muss.&lt;/p>
&lt;p>Die Einlesezeit wird sich auf anderen Systemen drastisch unterscheiden.
Das liegt unter anderem daran, dass wir bei unseren Tests die Dateien von einem Windows Dateisystem in ein Linux-Dateisystem im Docker Container eingelesen und dann wieder auf das Windows Dateisystem herausgeschrieben haben.&lt;/p>
&lt;p>Mit der Kombination aus Apache Jena, Docker und GND haben wir jetzt eine lokale Testdatenbank, mit der wir intensiv mit den Daten arbeiten können,
ohne durch Bandbreiten- oder API-Beschränkungen ausgebremst zu werden.&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>Alternativ gibt es den Dienst &lt;a href="https://lobid.org/gnd" target="_blank" rel="noopener">lobid&lt;/a> des hbz NRW.&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>Zum Zeitpunkt unseres Tests gab es mehrere Probleme, die mit &lt;a href="https://github.com/stain/jena-docker/pull/50" target="_blank" rel="noopener">stain/jena-docker#50&lt;/a> gefixt werden sollten.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:3">
&lt;p>Die Daten werden auch im für die Kompression optimierten &lt;a href="https://www.rdfhdt.org/" target="_blank" rel="noopener">HDT&lt;/a> Format angeboten, jedoch hätten wir dafür &lt;a href="https://www.rdfhdt.org/manual-of-hdt-integration-with-jena/" target="_blank" rel="noopener">Apache Jena für HDT anpassen&lt;/a> müssen.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:4">
&lt;p>Die Sicherheit des Passworts ist hier nicht relevant, da wir die Anwendung lokal auf unserem Rechner testen.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item></channel></rss>