GND-Katalogisierungslevel abfragen und filtern
In Zukunft soll das Katalogisierungslevel abgefragt werden und nur die Level 1-4 ausgegeben werden.
gndo:descriptionLevel <https://d-nb.info/standards/vocab/gnd/description-level#1>
Es soll pro Entitätencode festgelegt werden, welche Level erlaubt sind. Zum Beispiel bei szz nur Level 1. Die Festlegung soll bereits im Code erfolgen. Eine vollständige Liste mit den erlaubten Levels pro Entitätencode folgt.
Anleitung für die Erzeugung der Liste von verknüpften GND Einträgen in heidIcon
Benutzte Werkzeuge: curl
, jq
, comm
, grep
, awk
, node
(Node.js v20)
Zu erst auf serv7 die Verknüpften GND Nummern in HeidIcon aus den Logdateien des GND Updater erzeugen. Dafür den Namen der Logdatei der letzten gelaufenen Aktualisierung rausfinden und dann mit folgendem Befehl nur die GND Nummern extrahieren:
ssh serv7 'grep "retrieved" /srv/easydb/unib-heidelberg/easydb-server/var/ubhdgnd-update-2025-07-12T22\:00\:27.276Z.log' | awk '{print $3}' > gnd-identifiers-in-heidicon.csv
Danach über lobid.org alle GND Einträge mit Katalogisierungsleven 5, 6 und 7 suchen und runterladen in eine Datei. Die Datei wird weiterverarbeitet und nur die GND Nummern extrahiert. Für den Vergleich der beiden Dateien werden dann die Dateien Zeilenweise alphabetisch sortiert.
curl --header "Accept-Encoding: gzip" 'https://lobid.org/gnd/search?q=describedBy.descriptionLevel.label:%22Katalogisierungslevel%206%22%20OR%20%22Katalogisierungslevel%206%22%20OR%20%22Katalogisierungslevel%207%22&format=jsonl' --output gnd-entries-descriptionLevel5-7.jsonl.gz
zcat gnd-entries-descriptionLevel5-7.jsonl.gz | jq ".gndIdentifier" | tr -d \" > gnd-entries-descriptionLevel5-7-noquotes.csv
sort gnd-entries-descriptionLevel5-7-noquotes.csv > gnd-entries-descriptionLevel5-7-noquotes-sorted.csv
sort gnd-identifiers-in-heidicon.csv > gnd-identifiers-in-heidicon-sorted.csv
Mit folgendem Befehl werden nur die GND Nummern in eine Datei geschrieben, die in beiden Dateien vorhanden sind. (d.h. die auf Einträge zeigen, die Katalogisierungslevel 5-7 haben und in heidICON verwendet wurden).
comm -12 gnd-identifiers-in-heidicon-sorted.csv gnd-entries-descriptionLevel5-7-noquotes-sorted.csv | awk '{ print "https://d-nb.info/gnd/"$1 }' > gnd-uris-from-heidicon-descriptionLevel5-7.csv
Das Ergebnis des vorigen Befehls ist dann die Eingabe für das Node.js Script (Quelle: https://gitlab.ub.uni-heidelberg.de/fdm/easydb-custom-data-type-ubhdgnd/-/blob/fylr/src/script/findObjectswithGNDIds.js?ref_type=heads ), dass die heidIcon easydb Instanz durchsucht nach den Objekten, die mit diesen GND Nummern verknüpft sind (Es wird vorrausgesetzt, das die Variable $EASYDB_SESSION_TOKEN
ein Token einer aktuellen Benutzersitzung enthält):
node src/script/findObjectswithGNDIds.js https://heidicon.ub.uni-heidelberg.de/ $EASYDB_SESSION_TOKEN gnd-uris-from-heidicon-descriptionLevel5-7.csv | tee db-objects-using-gnd-entries-descriptionLevel-5-7.csv