BAdW

Publikationen im Netz

Zum Seitenanfang ↑

Der Zugriff mit Programmen

Um mit einem Programm an die bibliographischen Metadaten und über sie auch an die digitalen Veröffentlichungen zu gelangen, stehen im Wesentlichen die folgenden Wege offen:

1. Zugriff über JSON und HTML

Der Pfad /-/content/indices/index.json führt zu der JSON-Datei, die auch das Gesamtverzeichnis speist. In diesem JSON findet sich unterm Schlüssel “data” die Liste aller Einträge. Jeder Eintrag ist eine Schlüssel-Wert-Zuordnung; unter den Schlüsseln “4”, “_” findet sich ein Link, z. B. ../005638025, der zur Seite mit den Metadaten und dem Link zur Veröffentlichung selbst führt (oder mehreren Links, wenn die Veröffentlichung aufgespalten ist). Diese Seite ist wohlgeformtes HTML-XML und lässt sich entsprechend ausschöpfen. Die Links zu den Zitierformaten lassen sich außerdem unmittelbar aus der Kennung der Veröffentlichung ableiten. Hier ein Beispiel, wie man die Bibtexzitationen aller Veröffentlichungen einsammeln kann (in Python geschrieben):


from urllib.parse import urlsplit
from urllib.request import urlopen
from xml.etree.ElementTree import XML

def get_pub_id(term: str) -> str:
	url = XML(f'{term}').find('.//a[@href]').attrib['href']
	return urlsplit(url).path.split('/')[-1]

starturl = 'https://publikationen.badw.de/-/content/indices/index.json'
urlform = 'https://publikationen.badw.de/de/cit/{}.bib'

publics = json.loads(urlopen(starturl).read().decode())['data']
pub_ids = { get_pub_id(public['4']['_']) for public in publics }
# Download of all bibtex citations – that will take quite some time:
docs = [ urlopen(urlform.format(pub_id)).read().decode() for pub_id in pub_ids ]
doc = '\n'.join(docs)
# TODO: Save ``doc`` to get all bibtex citations in one file.

2. Zugriff über OAI-PMH

Die Verwendung von OAI-PMH ist grundsätzlich nicht eben ratsam.

Die OAI-PMH-Schnittstelle erlaubt Abfragen der folgenden Art:

  • …/de/api/oai?verb=Identify führt zu Angaben über die Schnittstelle.
  • …/de/api/oai?verb=GetRecord&identifier=badw:007457763 führt zu Angaben über die Veröffentlichung 007457763; für andere Veröffentlichungen ist statt “007457763” deren Kennung einzusetzen. Die Kennung ist das letzte Glied des Permalinks.
  • …/de/api/oai?verb=ListRecords&from=2023-12-09&until=2024-07-30 führt zu Angaben über all jene Veröffentlichungen, deren zugehörige Datei zuletzt zwischen dem 9.12.2023 (einschließlich) und dem 30.7.2024 (einschließlich) geändert wurden. – Gehören mehrere Dateien zur selben Veröffentlichung, gilt das von allen jüngste Änderungsdatum. – Ein Änderungsdatum ist in einer der folgenden Formen anzugeben: ‘JJJJ-MM-TT’ oder ‘JJJJ-MM’ oder ‘JJJJ’. – Das im Bestand früheste Änderungsdatum findet sich auf der oben genannten Seite /de/api/oai?verb=Identify im Element ./Identify/earliestDatestamp. – Wenn man die “from”-Angabe fortlässt, dann wird keine Untergrenze angenommen, wenn die “until”-Angabe, dann keine Obergrenze, wenn beide, weder Unter- noch Obergrenze. – Einem Wunsch der DNB folgend werden in eine Antwort höchstens 50 Datensätze gepackt. Das stückweise Abrufen der übrigen Datensätze geschieht gemäß OAI so: Wenn das Element ./ListRecords/resumptionToken nicht leer ist, nimmt man seinen Inhalt (unescapiert), sendet eine Folgeanfrage …/de/api/oai?resumptionToken=█ und setzt für █ diesen Inhalt (quotiert) ein. Das wiederholt man, bis das genannte Element leer ist.

Die bibliographischen Angaben sind in MARC-XML geschrieben. Ferner gelten die allgemeinen Regeln zu OAI-PMH-Schnittstellen. Darüber aber stehen noch die Anforderungen der Deutschen Nationalbibliothek, deren manche in einem Leitfaden zur Lieferung von Metadaten im Format MARCXML zu finden waren. Einige sind in XML-Kommentaren der GetRecord- oder ListRecords-Antworten angedeutet.