Zuordnung aller GND-IDs zu übergreifenden Kategorien (Personen, ...)

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?

[1] Index of /GND

1 Like

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.

Beispiel: https://d-nb.info/gnd/4170223-2/about/lds

https://d-nb.info/gnd/4170223-2 a gndo:SubjectHeadingSensoStricto;

1 Like

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.

Dort hat man dann
https://d-nb.info/gnd/1034737864 a gndo:DifferentiatedPerson
oder auch
https://d-nb.info/gnd/4115022-3 gndo:gndIdentifier „4115022-3“ .
https://d-nb.info/gnd/4115022-3 gndo:oldAuthorityNumber „(DE-588c)4115022-3“ .

Informationen zu den einzelnen Properties finden sich hier GND Ontology

Würde dir das weiterhelfen? Zu den Marc-Sätzen könnte jemand anderes sicher noch weiterhelfen.

1 Like

Da haben sich die Antworten jetzt überschnitten :smiley:
Danke @SarahHartmann !

Erstmal herzlich willkommen im Forum, @fhelf !

Du kannst dafür auch die lobid-gnd-API (Dokumentation) nutzen (die stündlich aktualisiert wird auf Basis der GND-RDF-Daten).

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

  2. Die Datei entpacken: $ gzip -d subjectHeadings.gz

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

$ wc -l subjectHeadingIDs 
205754 subjectHeadingIDs

Das Gleiche kann analog die anderen Entitätstypen umgesetzt werden:

  • Personen (Person)
  • Körperschaften (CorporateBody)
  • Konferenz oder Veranstaltung (ConferenceOrEvent)
  • Werk (Work)
  • Geografikum (PlaceOrGeographicName)
  • Familie (Family))
1 Like

Danke für die schnellen und zahlreichen Antworten! Es ist sehr hilfreich, die verschiedenen Wege zur GND besser kennenzulernen. :slight_smile:

1 Like