Navigation und Service

29. März bis 01. April 2024

Die Deutsche Nationalbibliothek ist an beiden Standorten geschlossen. Die Ausstellungen des Deutschen Buch- und Schriftmuseums sind von 10 bis 18 Uhr geöffnet.

Aktualisierung großer Datenbestände

Die OAI (Open Archives Initiative)-Schnittstelle eignet sich für die regelmäßige Aktualisierung großer Datenbestände. Voraussetzung für eine ständige Synchronisation ist der initiale Datenimport eines aktuellen Grundbestandes in die eigene Datenbank. Der Zugriff auf die OAI-Schnittstelle ist ebenso kostenfrei wie der Grundbestand. Weitere Informationen finden Sie auch im Dialog mit Bibliotheken Ausgabe 2013,1

Eine Übersicht aller verfügbaren Metadaten und der verschiedenen Bezugsmöglichkeiten finden Sie hier.

Hintergrund

OAI (Open Archives Initiative) ist eine Initiative, die die Definition einer offenen Schnittstelle zum Austausch von Metadaten zur Aufgabe hat. Die Kommunikation einer solchen Schnittstelle erfolgt zwischen der Deutschen Nationalbibliothek als Datenlieferant (data provider) und einem Dienstanbieter (service provider), der die Daten bezieht. Der Bezug erfolgt automatisiert durch einen sogenannten „OAI-Harvester“. Das Protokoll, das für die Kommunikation verwendet wird, hat die Bezeichnung OAI-PMH (OAI-Protocol for Metadata Harvesting).

Standard der OAI-Schnittstelle

Protokoll: OAI-PMH Version 2.0

OAI-PMH-Protokoll

Das Protokoll OAI-PMH ist webbasiert. Der OAI-Harvester arbeitet mit einfachen Anfragen per HTTP-GET oder -POST und erhält eine HTTP-Antwort vom Datenlieferanten zurück. Diese Antwort enthält, eingebettet in eine XML-Struktur, die angeforderten Metadaten.

OAI-Harvester

Um OAI zum Abgleich der Daten zwischen der Deutschen Nationalbibliothek und einem Dienstanbieter nutzen zu können, muss auf Seiten des Dienstanbieters ein OAI-Harvester implementiert werden. Der OAI-Harvester ruft sich in einer Endlosschleife immer wieder selbst auf. Er führt dabei einen „ListRecords-Befehl“ aus (siehe OAI-Funktionen), der sich auf das für den Dienstanbieter definierte Datenset (Katalog) beschränkt. Dem „ListRecords-Befehl“ wird über einen Zeitstempel der Zeitpunkt des letztmaligen Aufrufs mitgegeben. Auf diese Weise ist gewährleistet, dass

  • keine Änderung verpasst wird.
  • sich Änderungen zeitnah in der Dienstanbieter-Datenbank widerspiegeln.
  • keine für den Service Provider irrelevanten Daten transportiert werden.

OAI-Funktionen

Das Protokoll OAI-PMH enthält sechs Basisfunktionen, die an die baseURL (zum Beispiel „https://services.dnb.de/oai/repository“) mit „?verb=“ angefügt werden:

  • Identify: Anzeige von allgemeinen Informationen zum OAI-Repository, zum Beispiel

    • repositoryName
    • baseURL
    • protocolVersion
  • ListSets: Informationen zu allen im OAI-Repository zur Verfügung stehenden Datensets (Kataloge)
  • ListMetadataFormats: Auflistung der Datenformate (Informationen zu den für den Export angebotenen Formaten)
  • ListRecords: Harvesten von Datensätzen mittels Angabe eines Datensets und optional Angabe des Zeitraums (from/until)
    oder
  • ListIdentifiers: Harvesten von Identifikationsnummern von Datensätzen (PPN/IDN) mittels Angabe eines Datensets und optional Angabe des Zeitraums (from/until). Die Zeitangabe erfolgt in koordinierter Weltzeit UTC. Dies ist die Kernfunktion von OAI. Es ermöglicht selektives Harvesting, das heißt der Harvester kann seine Anfrage auf Datensätze beschränken, die

    • aus einem bestimmten Katalog stammen und
    • in einem bestimmten Zeitraum erzeugt oder geändert wurden.

    Parameter:

    • set: Katalog, aus dem die Datensätze stammen
    • from/until (optionale Angabe): Zeitpunkte, die den Zeitraum für das selektive Harvesting definieren. Diese können (je nach OAI-Repository) entweder Tagesgenauigkeit (YYYY-MM-DD) oder Sekundengenauigkeit haben (yyyy-mm-ddThh:mm:ssZ).
    • metadataPrefix: Die zur Auswahl stehenden Werte können über den Befehl ListMetadataFormats (siehe oben) abgefragt werden.
    • resumptionToken: ermöglichen die Rückgabe von Teilantworten. Der OAI-Harvester bekommt einen resumptionToken, den er für eine neue Anfrage beim OAI-Repository nutzen kann, um die nächsten Antworten zu erhalten.
  • GetRecord: Abruf einzelner Datensätze mittels ID-Angabe. Voraussetzung ist die Kenntnis der Identifikationsnummer des gewünschten Datensatzes (MARC 21: 035 $a mit Präfix DE-101 bzw. DE-599).

    Parameter:

    • identifier: Identifikationsnummer des gewünschten Datensatzes
    • metadataPrefix: Bezeichnung des Datenformats, in dem der Datensatz geliefert werden soll. Die zur Auswahl stehenden Werte können über den Befehl ListMetadataFormats (siehe oben) abgefragt werden.

Zugangsvoraussetzungen

Der Zugang zur OAI-Schnittstelle ist kostenfrei und ohne Registrierung möglich.

Über OAI verfügbare Kataloge (sets)

Titeldaten
AuswahlWert für Parameter "set"
Deutsche Nationalbibliografie ohne Gemeinsame Normdatei
dnb
dnb:wv (nur Datensätze nach abgeschlossener Bearbeitung)
Deutsche Nationalbibliografie, Reihe A (Publikationen des Verlagsbuchhandels)dnb:reiheA (inkl. Datensätze in Bearbeitung und abgeschlossene Bearbeitung)
dnb:wv:reiheA (nur Datensätze nach abgeschlossener Bearbeitung)
Deutsche Nationalbibliografie, Reihe B (Publikationen außerhalb des Verlagsbuchhandels)dnb:reiheB (inkl. Datensätze in Bearbeitung und abgeschlossene Bearbeitung)
dnb:wv:reiheB (nur Datensätze nach abgeschlossener Bearbeitung)
Deutsche Nationalbibliografie, Reihe C (Karten)dnb:reiheC (inkl. Datensätze in Bearbeitung und abgeschlossene Bearbeitung)
dnb:wv:reiheC (nur Datensätze nach abgeschlossener Bearbeitung)
Deutsche Nationalbibliografie, Reihe H (Hochschulschriften)dnb:reiheH (inkl. Datensätze in Bearbeitung und abgeschlossene Bearbeitung)
dnb:wv:reiheH (nur Datensätze nach abgeschlossener Bearbeitung)
Deutsche Nationalbibliografie, Reihe M (Musikalien)dnb:reiheM (inkl. Datensätze in Bearbeitung und abgeschlossene Bearbeitung)
dnb:wv:reiheM (nur Datensätze nach abgeschlossener Bearbeitung)
Deutsche Nationalbibliografie, Reihe T (Musiktonträger)dnb:reiheT (inkl. Datensätze in Bearbeitung und abgeschlossene Bearbeitung)
dnb:wv:reiheT (nur Datensätze nach abgeschlossener Bearbeitung)
Deutsche Nationalbibliografie, Reihe O (Online-Publikationen)dnb:reiheO (inkl. Datensätze in Bearbeitung und abgeschlossene Bearbeitung)
dnb:wv:reiheO (nur Datensätze nach abgeschlossener Bearbeitung)
Deutsche Nationalbibliografie Einschränkung auf eine Sachgruppednb:sg020 (Beispiel für Bibliotheks- und Informationswissenschaften)
Deutsche Nationalbibliografie, Reihe A Einschränkung auf eine Sachgruppednb:wv:reiheA:sg720 (Beispiel für Architektur)
Deutsche Nationalbibliografie: Digitalisierte Inhaltsverzeichnissednb:toc
Katalog der Deutsche Nationalbibliothek mit Neuerscheinungsdienst und Online-Publikationen (ohne GND)dnb-all
Neuerscheinungsdienst (Verlegermeldungen zu Vorankündigungen und Neuerscheinungen)dnb-all:reiheN
Online-Publikationen ohne Einschränkungen
dnb-all:online
Einschränkung auf eine Sachgruppe
dnb-all:online:sg020 (Beispiel für Bibliotheks- und Informationswissenschaften)
Online-Hochschulschriften (auch ohne Autopsie)
dnb-all:online:dissertations
Einschränkung auf eine Sachgruppe
dnb-all:online:dissertations:sg720 (Beispiel für Architektur)
Deutsches Musikarchiv (DMA, inkl. Sammlung Historische Tonträger)dnb-all:dma
Deutsches Exilarchiv 1933–1945 (DEA)dea
Deutsches Buch- und Schriftmuseum (DBSM)dbsm
Normdaten
AuswahlWert für Parameter "set"
Gemeinsame Normdatei (GND)
authorities
Gemeinsame Normdatei, GND-Entität Geografikum* authorities:geografikum
Gemeinsame Normdatei, GND-Entität Kongress* authorities:kongress
Gemeinsame Normdatei, GND-Entität Körperschaft* authorities:koerperschaft
Gemeinsame Normdatei, GND-Entität Person* authorities:person
Gemeinsame Normdatei, GND-Entität Sachbegriff*authorities:sachbegriff
Gemeinsame Normdatei, GND-Entität Werk* authorities:werk
Zeitschriftendatenbank, ISIL- und Sigelverzeichnis
AuswahlWert für Parameter "set"
Zeitschriftendatenbank (ZDB)**
zdb
ZDB, Bestandssätzezdb:holdings
ZDB, Einschränkung auf eine Sachgruppezdb:sg010 (Beispiel für Informatik)
ZDB, Online-Publikationenzdb:online
ZDB, Online Publikationen, Bestandssätzezdb:online:holdings
ZDB, Online-Publikationen, Einschränkung auf eine Sachgruppezdb:online:sg010 (Beispiel für Informatik)
ZDB, Freie Online Publikationen zdb:online:free
ZDB, Freie Online Publikationen, Bestandssätze zdb:online:free:holdings
ZDB, Freie Online Publikationen, Einschränkung auf eine Sachgruppe zdb:online:free:sg010 (Beispiel für Informatik)
ISIL- und Sigelverzeichnis***
bib

* Beim OAI-Bezug (Harvesten) einzelner OAI-Untersets der Gemeinsamen Normdatei (GND) können die Relationen zwischen verknüpften GND-Datensätzen nicht nachvollzogen werden, wenn die entsprechenden GND-Datensätze zu einem anderen OAI-Unterset (bzw. einer anderen GND-Entität) gehören. Die Verknüpfungen sind im Unterset zwar wie üblich mit dem Identifier (MARC 21: Felder 5XX $0) und als Text beziehungsweise Zeichenkette (MARC 21: Felder 5XX $a) vorhanden, aber nicht der verknüpfte Datensatz selbst, wenn es sich um eine andere Entität handelt.

** Die Zeitschriftendatenbank ist ein gemeinsames Angebot der Staatsbibliothek zu Berlin – Preußischer Kulturbesitz und der Deutschen Nationalbibliothek.
*** Das ISIL- und Sigelverzeichnis ist die Adressdatei der Deutschen ISIL-Agentur / Sigelstelle der Staatsbibliothek zu Berlin.

Freie Sammlungen digitalisierter Objekte können Sie als Datensets über die OAI2 Schnittstelle abfragen. Weitere Informationen finden Sie im DNBLab.

Formate

Folgende Formate werden in der Codierung UTF-8 decomposed („zerlegt“) angeboten:

Formate
FormateFormatbezeichnungStandardBeispiele
MARC 21-xmlMARC 21 in einer XML-Struktur Standard für MARC 21 in einer XML-Struktur MARC21-xml
DNB Casual (oai_dc)Auswahl von Dublin-Core-Elementen *
Standard für Dublin Core (oai_dc)DNB Casual (oai_dc)
RDF (RDF/XML)Linked Data Service **
Standard für Resource Description Framework (RDF)RDF (RDFxml)

* Nur für Titeldaten verfügbar.
** Nicht für alle Titeldaten ist eine Konversion entwickelt.
Der OAI-Bezug von Umlenkungsdatensätzen der Normdaten der GND ist möglich.

Nutzungs- und Bezugsbedingungen

Detaillierte Informationen zu den Nutzungs- und Bezugsbedingungen finden Sie hier.

Praktische Beispiele

Syntax einer OAI-Anfrage

Anfrage an OAI-Server der Deutschen Nationalbibliothek

https://services.dnb.de/oai/repository

Befehl an den Server

?verb=ListIdentifiers

Parameter „from“ gibt den Beginn des Abfragezeitraums an

&from=2021-04-21

Parameter „until“ gibt das Ende des Abfragezeitraumes an

&until=2021-04-22

gewünschtes Format der OAI-Antwort

&metadataPrefix=MARC21-xml

Festlegung des Katalogs bzw. Sets

&set=authorities

Syntax einer OAI-Anfrage auf eine bestimmte ID-Nummer

https://services.dnb.de/oai/repository?verb=GetRecord&metadataPrefix=MARC21-xml&identifier=oai:dnb.de/authorities/118540238

Syntax einer OAI-Anfrage nach Online-Dissertationen aus der Sachgruppe „Sozialwissenschaften, Soziologie, Anthropologie“ aus einem bestimmten Zeitraum

https://services.dnb.de/oai/repository?verb=ListRecords&from=2020-04-01T14:55:00Z&until=2020-07-08T09:54:59Z&metadataPrefix=oai_dc&set=dnb-all:online:dissertations:sg300

Häufig gestellte Fragen (FAQ)

Was ist der Unterschied zwischen SRU und OAI?

SRU ermöglicht die dezidierte Recherche, ohne eine eigene Datenbank vorzuhalten.
OAI ermöglicht eine ständige Synchronisation großer Datenbestände. Dies setzt den Datenimport eines aktuellen Grundbestandes in eine eigene Datenbank voraus.

Was kann über OAI abgefragt werden?

Eine OAI-Anfrage liefert alle Datensätze zurück, die in dem angegebenen Zeitraum geändert oder neu erstellt wurden. Ein retrospektiver Datenbezug (in die Vergangenheit) über mehrere Monate wird nicht empfohlen, da automatische Verarbeitungen Datensätze fortlaufend aktualisieren und dadurch der Datenbezug unvollständig ist. Für einen retrospektiven Datenbezug stellen wir Gesamtabzüge bereit.

Was kann nicht über OAI abgefragt werden?

Es ist nicht möglich, alle Datensätze zu einem anderen bestimmten Kriterium als dem Änderungsdatum abzufragen. Für eine solche Anfrage verwenden Sie bitte die SRU-Schnittstelle.
Es ist nicht möglich, alle neuen Sätze über die OAI-Schnittstelle abzufragen. Wieso?
Wird ein Datensatz neu erzeugt, entspricht das Änderungsdatum dem Erstellungsdatum. Wird nun zu einem späteren Zeitpunkt dieser Datensatz manuell oder automatisch verändert, ändert sich das Änderungsdatum und eine Anfrage an die OAI-Schnittstelle mit dem Zeitraum des Erstelldatums würde keinen Treffer liefern, obwohl dieser Satz tatsächlich zu diesem Zeitpunkt erstellt wurde. Dieser Satz würde erst ausgeliefert, wenn der Zeitraum der letzten Änderung angegeben wird, da nur dieses Kriterium von OAI berücksichtigt wird.

Wie häufig kann das Repository mittels OAI abgefragt werden?

Die Deutsche Nationalbibliothek empfiehlt eine Abfragefrequenz nicht unter einer Minute, da es ansonsten zu doppelten Datenlieferungen kommen kann (nicht relevant für OAI-Anfragen mit "resumptionToken"). Die Abfragefrequenz sollte nicht kleiner sein, als der abgefragte Zeitraum.

Ist die Anzahl der Datensätze pro OAI-Antwort begrenzt?

Eine Trefferliste ist auf 100.000 Datensätze begrenzt. Es erfolgt eine Fehlermeldung bei größerer Treffermenge. Abfragezeitraum und –frequenz sind entsprechend einzuschränken.

Welcher Zeitraum kann abgefragt werden?

Der Abfragezeitraum sollte nicht zu weit reichen, um eine Treffermenge über 100.000 Datensätzen zu vermeiden. Empfehlung bei nicht zeitkritischen Verfahren für Abfragezeitraum/Frequenz: 30 Minuten. Bei kleinen Sets (z. B. Online-Dissertationen) reicht ein einmal tägliches oder einmal wöchentliches Harvesting aus, da dadurch ein Datensatz, der in diesem Zeitraum mehrfach geändert wurde, nur einmal bezogen und die Treffermenge trotzdem nicht zu groß wird.
Wir empfehlen zudem als Wiederaufsetzzeitpunkt ("from") die Zeitangabe im Element "responseDate", z. B. <responseDate>2017-08-30T08:12:54Z</responseDate> zu nutzen, da diese Zeitangabe der aktuellen Verfügbarkeit der Daten in unserem Repository am besten entspricht. Zusätzlich empfehlen wir das Harvesten mit einer geringen zeitlichen Überlappung ("responseDate" minus eine Minute = "from").

Was passiert bei umfangreichen Änderungen an Datensätzen?

Bei Sonderaktionen mit Änderungen an über 50.000 Datensätzen an einem Tag gehen wir folgendermaßen vor:

  • Umfangreiche Sonderaktionen werden am Wochenende/Feiertag durchgeführt.
  • Die Änderungen an den Datensätzen werden nicht protokolliert, sodass diese Daten über den OAI-Index nicht sichtbar sind.
    Die Datenänderungen sind erst zu einem späteren Zeitpunkt im OAI-Index sichtbar, wenn der OAI-Index komplett neu generiert wurde
  • Löschungen im Sinne von OAI werden nicht geliefert.

Ein zeitnah harvestendes System bekommt somit von den Änderungen nichts mit, auch wenn es kontinuierlich durchläuft. Nur wenn es sich um relevante Änderungen für ein harvestendes System handelt, kann das Harvest-Zeitintervall entsprechend zurückgesetzt werden.

Werden auch Löschungen geliefert?

Löschungen im Sinne von OAI werden nicht geliefert.
Für die ZDB-Titel- und -Lokaldaten sowie die GND werden gelöschte und umgelenkte Sätze als verkürzte Datensätze geliefert, entsprechend gekennzeichnet und verfügen über ID-Nummern, Standard- und Datumsfelder.
Entsprechend gekennzeichnete Lokaldaten sind maximal eine Woche über die OAI-Schnittstelle verfügbar (weitere Informationen im FAQ ILTIS).
Der Geschäftsgang für Titel-Änderungen ist noch nicht abschließend konzipiert.

Mehrteilige Werke: Bezug übergeordneter Datensätze

Über die OAI-Schnittstelle werden nur die Datensätze der Teile (mit abhängigem oder unabhängigem Titel) ausgeliefert. Im Gegensatz dazu werden über den Datendienst via SFTP-/WWW-Server sowohl die Datensätze der Teile als auch die übergeordneten Datensätze bereitgestellt. Über OAI-PMH ist die Abfrage der übergeordneten Datensätze über den entsprechenden Identifier generell möglich. Dieser Identifier ist je nach Datensatztyp (mit abhängigem oder unabhängigem Titel) und Format in unterschiedlichen Feldern beziehungsweise Elementen der Datensätze der Teile hinterlegt, siehe Übersicht.

Können bestimmte Einträge in einem bestimmten Zeitraum erwartet werden?

Nein, da Datensätze immer wieder geändert werden und Datensätze über OAI nur mittels des Änderungsdatums recherchiert werden können, lässt sich nicht vorhersagen, wann ein bestimmter Satz in einer OAI-Antwort enthalten ist.

Verwendung eines „resumptionToken“ bei einer Treffermenge ab 51 Datensätzen

Ein „resumptionToken“ ermöglicht die Rückgabe von Teilantworten bei Treffermengen ab 51 Datensätzen. Der OAI-Harvester bekommt einen Token, den er für die folgende Anfrage beim OAI-Repository nutzen muss, um die nächste Teilantwort zu erhalten. In jeder Teilantwort wird, wenn noch nicht alle Datensätze ausgeliefert wurden, ein neuer „resumptionToken“ mitgeliefert, mit dem die nächste Teilantwort angefordert werden muss. Im Element „resumptionToken“ sind die Attributwerte der aktuellen Listenposition und die Gesamtanzahl der Datensätze enthalten (cursor="50" completeListSize="xxxxxx"). Pro OAI-Antwort werden maximal 50 Datensätze geliefert. Ein „resumptionToken“ ist maximal 30 Minuten gültig.

Beispiel mit „resumptionToken“:

https://services.dnb.de/oai/repository?verb=ListRecords&resumptionToken=xxxxxxxxxx_hier_resumptionToken_einfügen_xxxxxxxx

Was ist die koordinierte Weltzeit (UTC)?

Die koordinierte Weltzeit wird auch UTC (Universal Time Coordinated) genannt und ist die Grundlage zur Berechnung der Ortszeit.
Beispiel für Deutschland:
Ortszeit für Berlin ist UTC+1 (während der Sommerzeit gilt UTC+2). Die Zeitangabe seitens des OAI-Servers erfolgt in koordinierter Weltzeit UTC.
Zur aktuellen Ortszeit 10:30 Uhr ist es daher nur sinnvoll bis UTC 9:29 Uhr zu harvesten, während der Sommerzeit somit bis UTC 8:29 Uhr.

Wie werden Markup-Zeichen in einer OAI-Antwort transportiert?

Innerhalb einer OAI-Antwort werden Markup-Zeichen (<, > und &) in einem CDATA-Abschnitt transportiert.

Anfragen/Fehlermeldungen

Bitte senden Sie konkrete Anfragen oder Fehlermeldungen zur OAI-Schnittstelle zeitnah. Nur so ist eine Nachvollziehbarkeit gewährleistet und Sie unterstützen damit die Fehlerbehebung.
Bitte senden Sie Anfragen oder Fehlermeldungen immer mit folgenden Angaben an schnittstellen-service@dnb.de:

  • Syntax OAI-PMH-Anfrage (Set, Format, Zeitraum)
  • Fehlermeldung/Beschreibung
  • Kontext (wiederholt, sporadisch, verwendeter Client …)

Wie soll der Timeout eingestellt werden?

Wir empfehlen, den Timeout auf mindestens 2 Minuten zu setzen, damit es nicht zu Abbrüchen beim Harvesten kommt. Die Antwortzeiten in bestimmten sets (z.B. zdb:holdings) können bei umfangreichen Änderungen trotz kurzem Abfragezeitraum mehr als 90 Sekunden betragen.

Mit welcher Software kann ich die Metadaten weiterverarbeiten?

Für den ersten Einstieg geeignet ist zum Beispiel das Programm MarcEdit, die Übersicht MARC Specialized Tools, die Software-Suite Catmandu, OpenRefine oder Metafacture, zur Datenanalyse der „Konstanz Information Miner“ (KNIME) oder das Metadata Quality Assurance Framework. Eine weiterführende Übersicht bieten die Vortragsfolien „Open Source Software zur Verarbeitung und Analyse von Metadaten“ und der Artikel Survey of Tools for Linked Data Consumption.

Wie erhalte ich wichtige Informationen z. B. über Änderungen oder Störungen an der OAI-Schnittstelle?

Um über Änderungen und Neuerungen sowie Störungen oder Wartungsarbeiten zeitnah informiert zu werden, empfehlen wir Ihnen die Eintragung in den Mailverteiler OAI-Schnittstelle.

Kontakt

schnittstellen-service@dnb.de

Aktuelles

Letzte Änderung: 24.04.2023
Kurz-URL: https://www.dnb.de/oai
Kontakt: schnittstellen-service@dnb.de

nach oben