Hallo,
ich möchte eine möglichst vollständige Liste aller GND-IDs zugeordnet zu ihren grundlegenden Kategorien (Personen, Körperschaften, Sachbegriffen, Geografika, …) zusammenstellen. Ich habe mir dazu die entsprechenden XML-MARC21-Dateien unter [1] heruntergeladen und bin deren <record>-Einträge durchgegangen und habe die ID des <record> (in <controlfield tag="001">) gespeichert - in der Hoffnung, so z.B. für die Sachbegriffs-Datei, alle IDs für Sachbegriffs-GND-Entitäten zu finden.
Ich musste allerdings feststellen, dass es durchaus IDs gibt, z.B. 4170223-2 „Transliteration“, die keinen eigenen <record> zu besitzen scheinen. Sie tauchen stattdessen nur innerhalb anderer <record>-Einträge auf, beim Beispiel „Transliteration“ etwa in einem <datafield tag="550" ind1=" " ind2=" "> von <record> 4170221-9 „Transkription“.
Meine konkreten Fragen wären nun:
Gibt es eventuell noch eine andere Quelle, an der ich diese Zuordnung von GND-ID zu übergreifender Kategorie extrahieren könnte?
Oder sollte ich alternativ in den MARC21-Dateien jeweils auch bestimmte datafields parsen, etwa wie im Beispiel mit tag="550", aber vermutlich auch weitere, um letztlich an alle IDs von GND-Entitäten zu gelangen?
In MARC XML field „001“ findet sich die interne GND-ID
Beispiel: 041702239
und der GND-Identifier, der auch zur Bildung der GND-URI verwendet wird, findet sich in Feld „035“ Subfeld „a“, eingeleitet mit der ISIL der GND (DE-588)
Beispiel: (DE-588)4170223-2“
Wenn du dieses Feld parst, müsstest du also eine vollständige Liste bekommen.
Alternativ ist es möglich den Entitätstyp (Person, Familie, Körperschaft, Kongress, Werk, Sachbegriff) auch aus den entsprechenden Zuordnungen zu einer Klasse in der RDF-Repräsentation der GND-Datensätze abzuleiten.
Hallo Felix,
danke für deine Frage. Als eine weitere Quelle kann ich noch die RDF Daten empfehlen. Zu finden hier: Index of /opendata Dort sind auch schon die Dateien nach Entitäten getrennt.
Alle Datensätze zu einem Typ per Bulk Download herunterladen, z.B. alle SubjectHeading: $ curl --header "Accept-Encoding: gzip" 'http://lobid.org/gnd/search?q=type:SubjectHeading&format=jsonl' > subjectHeadings.gz
Die Datei entpacken: $ gzip -d subjectHeadings.gz
Mit jq oder einem anderen Tool die GND-IDs (als String im Feld gndIdentifier als URI in id) in eine Datei schreiben: $ cat subjectHeadings | jq -r .gndIdentifier > subjectHeadingIDs
Voilà, wir haben eine Datei mit einer GND-ID pro Zeile mit insgesamt 205754 Zeilen: