Lobid zur Dublettenprüfung - User Agent

Hallo,
wir testen, ob wir lobid zur Dublettenprüfung verwenden können. Wenn Bonner Institutsbibliotheken Bestände aussondern, prüfen wir über die HT-Nummer, ob das Buch bereits in der ULB (DE-5) vorhanden ist. Sofern der Bestand der Institutsbibliothek und der ULB am selben Datensatz hängen, funktioniert das ganz gut.

Es wird darum gebeten, einen User Agent mitzusenden. Das würde ich gerne machen, weiß jedoch nicht, wie ich das in meinen Code einbaue - ich bin kein IT-Profi. Dies ist zurzeit der Code mit dem ich prüfe, ob ein Buch aus einer Excel-Datei (in der auch eine Spalte für die HT-Nummer ist) in DE-5 vorhanden ist.

import pandas as pd
import requests
datei = "PFAD"
df = pd.read_excel(datei)

# Funktion zur Verkettung von URL und HT-Nummer
def url_erstellen (id):
     return "https://lobid.org/resources/" + id
df['URL'] = df['ID'].apply(url_erstellen)

# Funktion zur Überprüfung der Verfügbarkeit in DE-5
def check_in_de_5_vorhanden(request_url):
     response = requests.get(request_url)
     if response.status_code == 200:
         result = response.json()
         for item in result.get("hasItem", []):
             if item.get("heldBy", {}).get("isil") == "DE-5":
                 return "in DE-5 vorhanden"
         return "DE-5 nicht vorhanden"
     else:
         return "Fehler"

# Neue Spalte 'Check' erstellen und Ergebnisse der Abfrage eintragen
df['Check'] = df['URL'].apply(check_in_de_5_vorhanden)

# DataFrame anzeigen
df.head(2) 

Danke für eure Rückmeldungen

Hallo @Kai ,
herzlichen Willkommen im Forum und vielen Dank für Deine Frage.

Der user-agent wird im header angegeben und kann unter anderem zunächst in einem dictionary spezifiziert und dann beim request eingebunden werden.

headers= {'user-agent' : 'mail-adresse'}
... response = requests.get(request_url, headers=headers)

Hier ist der Link zur Doku: Quickstart — Requests 2.31.0 documentation

Hallo @petra_maier,
danke für die Antwort. Funktioniert.

Ich habe noch eine Frage zum Thema Dublettenkontrolle mit lobid: Macht ihr die Arbeit halbautomatisch, d.h. schauen noch Menschen drüber, etwa über unklare Fälle?

Wir hatten in der Vergangenheit für Dublettenchecks prototypisch eine Reconciliation-Service-Schnittstelle für lobid-resources implementiert, so dass die Arbeiten zur Deduplizierung in OpenRefine unternommen werden konnten. Das kam bei denjenigen eigentlich ganz gut an, die die Match-Kandidaten gecheckt und bestätigt haben. Wäre so etwas für euch auch interessant?

Es läuft zurZeit noch sehr viel manuell, d.h. jeder Titel wird einzeln geprüft. Was OpenRefine angeht, habe ich letzte Woche erst mal nachgefragt, ob eine Installation auf den Arbeitsplätzen möglich/erlaubt ist. Ich hätte schon Interesse. Die automatische Prüfung, ob an einem Titeldatensatz zwei oder mehr Bibliotheken hängen (Institut und ULB) ist eindeutig, v.a. auch in Hinblick auf einzelne Teile von mehrteiligen Monografien. Hier kann man wirklich von einer Dublette ausgehen. Zudem wurden vor dem Umstieg auf Alma sehr viele TT- und HT-Sätze zusammengeführt, sodass man mittlerweile eine ganz gute Abdeckung erreicht. Der Abgleich über die ISBN ist nicht immer eindeutig (verschiedene Auflagen, die unter einer ISBN laufen oder man erwischt E-Ressourcen). Beim Dubletten-Abgleich von älteren Beständen gibt es möglicherweise noch keine ISBN. Ich würde auf die OpenRefine-Lösung gerne zurückkommen, wenn die Installationsfrage geklärt ist. Danke für das Angebot.

Man kann OpenRefine auch auf einem Server laufen lassen (wir haben z.B. hier eine nicht aktuelle Spiel-Instanz), dann können die Clients es aus dem Browser benutzen. Vielleicht ist das ja eine einfachere Lösung…

Achja, nur zur Klarstellung: Wir haben bisher keine frei nutzbare, produktive Reconciliation-Lösung für lobid-resources implementiert. Ich war nur neugierig, ob anderswo dafür Bedarf besteht und wir mal eine Umsetzung planen sollten.