Abfrage von übergeordneter Kategorie von Berufsbezeichnungen

Hallo @kitkatja , willkommen im Forum!

Soweit ich weiß, arbeitet ihr ja mit einem Skript udn könnt eine zusätzliche Abfrage einbauen. Ich versuche das mal an einem Beispiel zu betrachten.

Hier haben wir eine Person, die Lyrikerin ist aber nicht als „Autorin“ oder „Schriftstellerin“ erfasst ist: Ferraro, Graciela Isabel

Im JSON steht die Berufsbezeichnung einer Person unter professionOrOccupation:

"professionOrOccupation": [

        {
              "id": "https://d-nb.info/gnd/4135404-7",
              "label": "Pädagogin"
        },
        {
              "id": "https://d-nb.info/gnd/4246394-4",
              "label": "Lyrikerin"
        }

  ]

Wenn ich das richtig verstehe, soll nun geprüft werden, ob die Berufsbezeichnungen nun eine Untergruppe sind von einer dieser Berufsbezeichnungen:

Ich kenne mich mit der Strukturierung der Gemeinsame Normdatei (GND) hier wenig aus, aber für die genannten Fälle ist die Lage so:

  • Lyrikerin (DNB, Katalog der Deutschen Nationalbibliothek) verweist auf Schriftstellerin mit „Oberbegriff allgemein“, was im JSON broaderTermGeneral heißt.
  • Schriftstellerin und Schriftsteller verweisen auf Autorin/Autor mit „Oberbegriff generisch“, im JSON broaderTermGeneric.

Für deinen Anwendungsfall könnte es eventuell reichen, wenn du prüfst, ob eine broaderTermGeneral-Beziehung zu Schriftsteller oder Schriftstellerin besteht, d.h. das Skript müsste in diesem Fall:

  1. sich aus professionOrOccupation[].id die IDs der Berufe der Personen holen,
  2. die Berufs-IDs abfragen und deren broaderTermGeneral.id-Angabe prüfen, ob eine davon mit dem gewünschten Wert übereinstimmt.

Wahrscheinlich ist es aber sinnvoller, einmal die Liste aller Unter-IDs von Schriftsteller, Schriftstellerin, Autor und Autorin zu laden und dann im Skript zu listen. Die Abfrage kannst du dir im Prinzpip aus dem UI zusammenklicken (siehe auch lobid-gnd: Formulierung komplexer Suchanfragen). Z.B. auf der Lyrikerin-Seite die Lupe neben „Oberbegriff allgemein“ klicken und du bekommst die Liste aller Einträge, die als allgemeinen Oberbegriff Schriftstellerin haben: lobid-gnd - search

Wenn du das `&format=html" wegnimmst, kannst du dir das JSON holen und verarbeiten, z.B. mit curl und jq:

$ curl 'https://lobid.org/gnd/search?q=broaderTermGeneral.id%:"https://d-nb.info/gnd/4053311-6"' | jq -r .member[].id
https://d-nb.info/gnd/1150418427
https://d-nb.info/gnd/1150432233
https://d-nb.info/gnd/1150434910
https://d-nb.info/gnd/115044035X
https://d-nb.info/gnd/1150443758
https://d-nb.info/gnd/1150455098
https://d-nb.info/gnd/1150456175
https://d-nb.info/gnd/1150518758
https://d-nb.info/gnd/1150520558
https://d-nb.info/gnd/1150521503

Für die Untergruppen von Autor wäre es analog: curl 'https://lobid.org/gnd/search?q=broaderTermGeneric.id:"https://d-nb.info/gnd/4003982-1"' | jq -r .member[].id

Ich hoffe, das hilft dir weiter. Sag bescheid, wenn ich den Anwendungsfall missverstanden habe. Es gibt übrigens auch ein verwandtes Thema zru Abfrage von Hierarchien: Hierarchie von Schlagworten/Sachbegriffen ermitteln - #8 von mschaefer