Diese Seite dienst als Beschreibung der öffentlichen OAI-Schnittstelle der DDB. Diese Dokumentation soll zum einen als Vorgabe für die Implementierung der Schnittstelle verwendet werden, aber auch später in einer überarbeiteten und konsolidierten Fassung veröffentlicht werden.

Inhalt

Allgemeines

Eine OAI-Schnittstelle bietet die folgenden „Verben“, mit denen Daten abgefragt werden können. Die OAI-PMH 2.0-Spezifikation befindet sich unter http://www.openarchives.org/OAI/openarchivesprotocol.html, weitere einführende Informationen gibt es bei Wikipedia unter https://en.wikipedia.org/wiki/Open_Archives_Initiative_Protocol_for_Metadata_Harvesting.

Datenweitergabe an Europeana

Workflow

Vorverarbeitung durch Transformation

Beim Erstellen der Daten für die Weitergabe an Europeana (Datenformat EDM) werden bereits die folgenden Punkt erledigt und müssen folglich durch den OAI/PMH-Server nicht berücksichtig werden.

Spezifikation

Datenformate

Über die OAI-Schnittstelle der DDB werden die folgenden beiden Datenformate angeboten:

Identifier

Die OAI-Schnittstelle der DDB benutzt die nach außen öffentlich sichtbaren Identifier. Das sind (Teile des) URI der DDB-Objekte.

Datenzusammenstellungen, darunter fallen u.a. OAI-Datensets bekommen zukünftig einen eigenen Identifier.

Einstweilen werden OAI-Datensetz wie u.g eindeutig identifiziert.

OAI-Datensets:

Generelle Datensets

Lieferung an Europeanahanshandlampe

Kriterium

Kommentar 

Beispiele 

dataset_id 

ID des Datensets. 

(dies wird am häufigsten benutzt) 

dataset-id:5738807392711401XjYt 

dataset_id AND provider_id 

Ein Datenpartner kann mehrere Provider liefern. Nur einige müssen an Europeana weitergegeben werden (z.B. Digicult) 

dataset-id:5738807392711401XjYt AND provider_id:VSHJWG7QLS7Y3NS2HKE43E5Q5NJ7OCLS 

dataset_id AND type_fct 

Ein Datenpartner möchte z.B. nur die Videos aus einem Datenset liefern. 

dataset-id:5738807392711401XjYt AND type_fct:mediatype_005 

dataset_id AND license 

Ein Datenpartner möchte nur die Objekte mit der Lizenz “RV-FZ” innerhalb eines Datensets liefern 

dataset-id:5738807392711401XjYt AND license:"http://www.deutsche-digitale-bibliothek.de/lizenzen/rv-fz/" 

Blacklisting:

Yes, we need Blacklisting


Konventionen/Festlegungen

  1. Alle Datumswerte werden als UTC-Zeit (ohne Zeitzone) verwendet.
    Das Format ist „yyyy-mm-ddTHH:mm:ssZ“, z. B. 2016-07-01T09:27:00Z}}
  2. Die OAI-Schnittstelle der DDB ist unter https://oai.deutsche-digitale-bibliothek.de/ erreichbar. http://oai.deutsche-digitale-bibliothek.de/ leitet auf die verschlüsselte Schnittstelle weiter.

Schemata/XSLT-Stylesheet

Zur besseren Verwendbarkeit der Schnittstelle ist das OAI PMH 2.0-Schema eingebunden.

<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" 
  xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">

Weiterhin ist mittels einer Prozessoranweisung ein XSLT-Stylesheet eingebunden. Das ermöglicht den meisten Webbrowsern aus den XML-Daten der OAI-Schnittstelle eine HTML-Ansicht zu generieren.

<?xml-stylesheet type='text/xsl' 
  href='https://oai.deutsche-digitale-bibliothek.de/oai2.xsl'?>

Das entsprechende XSLT-Stylesheet kann unter http://wiki.eprints.org/w/OAI_XSLT heruntergeladen werden und muss durch die OAI-Schnittstelle ausgeliefert werden. Ggf. kann die Datei noch angepasst werden, damit die Anzeige im Corporate-Design der DDB erfolgt.

Beschreibung

GetRecord

URL

https://oai.deutsche-digitale-bibliothek.de?verb=GetRecord

Parameter

identifier (benötigt)


 

metadataPrefix (benötigt)

Metadatenformat: „oai_dc” oder „edm“

Request

https://oai.deutsche-digitale-bibliothek.de?verb=GetRecord&metadataPrefix=edm&identifier=http%3A%2F%2Fwww.deutsche-digitale-bibliothek.de%2Fitem%2FIDEYVAM52SZTJUSL347PX6JUIFR545ZD

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type='text/xsl' href='https://oai.deutsche-digitale-bibliothek.de/oai2.xsl'?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
  <responseDate>2017-01-17T13:33:19.399Z</responseDate>
  <request 
    identifier="http://www.deutsche-digitale-bibliothek.de/item/IDEYVAM52SZTJUSL347PX6JUIFR545ZD" 
    metadataPrefix="edm" 
    verb="GetRecord">https://oai.deutsche-digitale-bibliothek.de/</request>
  <GetRecord>
    <record>
      <header>
        <identifier>http://www.deutsche-digitale-bibliothek.de/item/IDEYVAM52SZTJUSL347PX6JUIFR545ZD</identifier>
        <!-- Datum vom ingestDate -->
        <datestamp>2015-06-15T01:11:30Z</datestamp>
        <!-- Auflistung ALLER Sets in denen der Datensatz vorkommt -->
        <setSpec>2Q37XY5KXJNJE5MV6SWP3UKKZ6RSBLK5</setSpec>
        <setSpec>2Q37XY5KXJNJE5MV6SWP3UKKZ6RSBLK5:subset-1-100000</setSpec>
      </header>
      <metadata>
        <!-- Nicht valide. Bessere Vorschläge sind willkommen! Europeana macht es auch so. -->
        <rdf:RDF 
          xmlns:edm="http://www.europeana.eu/schemas/edm/" 
          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
          <!-- ... -->
        </rdf:RDF>
      </metadata>
    </record>
  </GetRecord>
</OAI-PMH>


Identify

URL

https://oai.deutsche-digitale-bibliothek.de?verb=Identify

Parameter

-


Request

https://oai.deutsche-digitale-bibliothek.de?verb=Identify

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type='text/xsl' href='https://oai.deutsche-digitale-bibliothek.de/oai2.xsl'?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
  <responseDate>2017-01-12T13:12:34Z</responseDate>
  <request verb="Identify">https://oai.deutsche-digitale-bibliothek.de/</request>
  <Identify>
    <repositoryName>Deutsche Digitale Bibliothek</repositoryName>
    <baseURL>https://oai.deutsche-digitale-bibliothek.de/</baseURL>
    <protocolVersion>2.0</protocolVersion>
    <adminEmail>service@deutsche-digitale-bibliothek.de</adminEmail>
    <earliestDatestamp>1998-05-13T00:00:00Z</earliestDatestamp>
    <deletedRecord>no</deletedRecord>
    <granularity>YYYY-MM-DDThh:mm:ssZ</granularity>
  </Identify>
</OAI-PMH>


ListIdentifiers

URL

https://oai.deutsche-digitale-bibliothek.de?verb=ListIdentifiers&metadataPrefix=oai_dc

Parameter

metadataPrefix (benötigt)

Metadatenformat: „oai_dc” oder „edm“

 

from (optional)

UTC-Zeit in der Form „yyyy-mm-ddTHH:mm:ssZ“

 

until (optional)

UTC-Zeit in der Form „yyyy-mm-ddTHH:mm:ssZ“

 

set (optional)

OAI-Set-Identifier

 

resumptionToken (optional)

Token zur Wiederaufnahme bei größeren Datensets

Request

https://oai.deutsche-digitale-bibliothek.de?verb=ListIdentifiers&metadataPrefix=oai_dc

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type='text/xsl' href='https://oai.deutsche-digitale-bibliothek.de/oai2.xsl'?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
 <responseDate>2017-01-13T08:45:20.794Z</responseDate>
 <request metadataPrefix="oai_dc" verb="ListIdentifiers">https://oai.deutsche-digitale-bibliothek.de/</request>
 <ListIdentifiers>
 <header>
 <identifier>http://www.deutsche-digitale-bibliothek.de/item/IDEYVAM52SZTJUSL347PX6JUIFR545ZD</identifier>
 <!-- Datum vom ingestDate -->
 <datestamp>2015-06-15T01:11:30Z</datestamp>
 <!-- Auflistung ALLER Sets in denen der Datensatz vorkommt -->
 <setSpec>2Q37XY5KXJNJE5MV6SWP3UKKZ6RSBLK5</setSpec>
 <setSpec>2Q37XY5KXJNJE5MV6SWP3UKKZ6RSBLK5:subset-1-100000</setSpec>
 </header>
 <header>
 <identifier>http://www.deutsche-digitale-bibliothek.de/item/K6UAEV22DSH4GC2VAKPRTF4ZOHIOU6EJ</identifier>
 <datestamp>2015-06-15T01:11:32Z</datestamp>
 <setSpec>2Q37XY5KXJNJE5MV6SWP3UKKZ6RSBLK5</setSpec>
 <setSpec>2Q37XY5KXJNJE5MV6SWP3UKKZ6RSBLK5:subset-100001-200000</setSpec>
 </header>
 <!-- ... -->
 <resumptionToken completeListSize="6200747" cursor="0" expirationDate="2017-01-13T09:15:20Z">mCgPm-947-0</resumptionToken>
 </ListIdentifiers>
</OAI-PMH>


ListMetadataFormats

URL

https://oai.deutsche-digitale-bibliothek.de?verb=ListMetadataFormats

Parameter

identifier (optional)

Identifier eines DDB-Objektes (URI)

Request

https://oai.deutsche-digitale-bibliothek.de?verb=ListMetadataFormats

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type='text/xsl' href='https://oai.deutsche-digitale-bibliothek.de/oai2.xsl'?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
  <responseDate>2017-01-12T13:36:57Z</responseDate>
  <request verb="ListMetadataFormats">https://oai.deutsche-digitale-bibliothek.de/</request>
  <ListMetadataFormats>
    <metadataFormat>
      <metadataPrefix>oai_dc</metadataPrefix>
      <schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema>
      <metadataNamespace>http://purl.org/dc/elements/1.1/</metadataNamespace>
    </metadataFormat>
    <metadataFormat>
      <metadataPrefix>edm</metadataPrefix>
      <schema>http://www.europeana.eu/schemas/edm/EDM.xsd</schema>
      <metadataNamespace>http://www.europeana.eu/schemas/edm/</metadataNamespace>
    </metadataFormat>
  </ListMetadataFormats>
</OAI-PMH>


ListRecords

URL

https://oai.deutsche-digitale-bibliothek.de?verb=ListRecords

Parameter

metadataPrefix (benötigt)

Metadatenformat: „oai_dc” oder „edm“

 

from (optional)

UTC-Zeit in der Form „yyyy-mm-ddTHH:mm:ssZ“

 

until (optional)

UTC-Zeit in der Form „yyyy-mm-ddTHH:mm:ssZ“

 

set (optional)

OAI-Set-Identifier

 

resumptionToken (optional)

Token zur Wiederaufnahme bei größeren Datensets

Request

https://oai.deutsche-digitale-bibliothek.de/?verb=ListRecords&metadataPrefix=edm

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type='text/xsl' href='https://oai.deutsche-digitale-bibliothek.de/oai2.xsl'?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
  <responseDate>2017-01-17T15:50:20Z</responseDate>
  <request metadataPrefix="edm" verb="ListRecords">https://oai.deutsche-digitale-bibliothek.de/</request>
  <ListRecords>
    <record>
      <header>
        <identifier>http://www.deutsche-digitale-bibliothek.de/item/IDEYVAM52SZTJUSL347PX6JUIFR545ZD</identifier>
        <!-- Datum vom ingestDate -->
        <datestamp>2015-06-15T01:11:30Z</datestamp>
        <!-- Auflistung ALLER Sets in denen der Datensatz vorkommt -->
        <setSpec>2Q37XY5KXJNJE5MV6SWP3UKKZ6RSBLK5</setSpec>
        <setSpec>2Q37XY5KXJNJE5MV6SWP3UKKZ6RSBLK5:subset-1-100000</setSpec>
      </header>
      <metadata>
        <rdf:RDF 
          xmlns:edm="http://www.europeana.eu/schemas/edm/" 
          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
          <!-- ... -->
        </rdf:RDF>
      </metadata>
    </record>
    <record>
      <!-- ... -->
    </record>
    <resumptionToken completeListSize="16240" cursor="0" expirationDate="2017-01-17T16:20:35Z">mCgPm-1042-0</resumptionToken>
  </ListRecords>
</OAI-PMH>

ListSets

URL

https://oai.deutsche-digitale-bibliothek.de?verb=ListSets

Parameter

resumptionToken (optional)

Token zur Wiederaufnahme bei größeren Datensets

Request

https://oai.deutsche-digitale-bibliothek.de?verb=ListSets

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type='text/xsl' href='https://oai.deutsche-digitale-bibliothek.de/oai2.xsl'?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
  <responseDate>2017-01-12T13:51:56Z</responseDate>
  <request verb="ListSets">https://oai.deutsche-digitale-bibliothek.de/</request>
  <ListSets>
    <set>
      <setSpec>BZVTR553HLJBDMQD5NCJ6YKP3HMBQRF4</setSpec>
      <setName>Staats- und Universitätsbibliothek Hamburg Carl von Ossietzky - All</setName>
    </set>
    <set>
      <setSpec>BZVTR553HLJBDMQD5NCJ6YKP3HMBQRF4:subset-1-100000</setSpec>
      <setName>Staats- und Universitätsbibliothek Hamburg Carl von Ossietzky - Subset from 1 to 100000</setName>
    </set>
    <set>
      <setSpec>BZVTR553HLJBDMQD5NCJ6YKP3HMBQRF4:subset-100001-200000</setSpec>
      <setName>Staats- und Universitätsbibliothek Hamburg Carl von Ossietzky - Subset from 100001 to 200000</setName>
    </set>
    <set>
      <setSpec>BZVTR553HLJBDMQD5NCJ6YKP3HMBQRF4:subset-200001-300000</setSpec>
      <setName>Staats- und Universitätsbibliothek Hamburg Carl von Ossietzky - Subset from 200001 to 300000</setName>
    </set>
    <set>
      <setSpec>4BQJRZ3KZCAN5BLLGNBAPJHAP7FVHL3R</setSpec>
      <setName>DigiZeitschriften e.V - All</setName>
    </set>
    <!-- ... -->
  </ListSets>
</OAI-PMH>

StatusCodes

Die OAI-Schnittstelle setzt HTTP-StatusCodes um. 

HTTP compression

Die OAI-PMH-Schnittstelle der DDB unterstützt HTTP-Kompression.

Daten-Harvesting über die OAI-Schnittstelle der DDB

Strategie 1: ListRecords mit Set-Identifier

Set-Identifier: 00050026 („DigiZeitschriften e.V“ mit 382.337 Objekten)

  1. 1.  Abfrage über Verb „ListRecords“
    ?verb=ListRecords&metadataPrefix=edm&set=00050026
  2. Wiederholung mit resumptionToken bis das Ende erreicht ist
    ?verb=ListRecords&resumptionToken=mCgPm-1073-0

Strategie 2: GetRecord über ListIdentifiers mit Set-Identifier

Set-Identifier: 00050026 („DigiZeitschriften e.V“ mit 382.337 Objekten)