Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

OAI-Datensets

Lieferung an Europeana

Die OAI-Datensets werden nach folgenden Kriterien gebildet.

Kriterium

Benennung der des Datensets

Kommentar

Beispiele (in Solr-Query-Syntax)

dataset_id 

<dataset_id>

ID des Datensets. (dies wird am häufigsten benutzt) 

dataset-id:5738807392711401XjYt 

dataset_id AND provider_id 

<dataset_id>:<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 

<dataset_id>:<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 

<dataset_id>:<license>

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

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

Anforderungen

Allgemein

  1. Das Harvesting einzelner DDB-IDs ist über die Methode GetRecord möglich. 
  2. Veränderungen innerhalb einen OAI-Datensets über die Zeit können durch einen Timestamp abfragbar sein. 
  3. Deleted Records werden gemäß der OAI/PMH-Spezifikation unterstützt. 
  4. Das Löschen von OAI-Sets ist zunächst nicht vorgesehen, da es eine komplette Neuindexierung notwendig macht. Das ist bisher nicht implementiert.

...

  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.
  3. Konfiguration der OAI-Schnittstelle (Logo: DDBpro_Logo_2_s_pos_RGB_G.svg oder DDBpro_Logo_2_s_pos_RGB_G.png oder DDBpro_Logo_2_s_pos_RGB_G_BG.jpg) 

    No Format
    branding.logo=DDBpro_Logo_2_s_pos_RGB_G.svg;
    branding.header.color=#f8f8f8;
    branding.service.name=DDBoai;
    branding.service.url=https://api.deutsche-digitale-bibliothek.de;
    branding.welcome.text=This is an OAI/PMH interface that allows users to access and harvest metadata provided by the Deutsche Digitale Bibliothek (DDB).;
    branding.imprint.url=https://www.deutsche-digitale-bibliothek.de/content/impressum;
    branding.privacy.url=https://www.deutsche-digitale-bibliothek.de/content/datenschutzerklaerung;
    branding.font.family=Calibri, Arial, sans-serif;
    branding.font.color=#3e3a37;

Beschreibung

GetRecord

...

URL

...

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

...

Parameter

...

identifier (benötigt)

...

 

...

metadataPrefix (benötigt)

...

Metadatenformat: „oai_dc” oder „edm“


  1. Anzahl der Objekte in einem Request: 300 (konfigurierbar in der Server-konfiguration bis max 1.000)
  2. Gültigkeit der Resumption-Token: theoretisch ewig (Verwendung der Cursor-Funktionalität von SOLR)
    • Bei einem Update während des Harvestings: Da nach Datum aufsteigend sortiert wird werden geänderte Objekte ans Ende der Liste sortiert und werden ggf. zuletzt noch einmal ausgeliefert.

StatusCodes

Die OAI-Schnittstelle setzt HTTP-StatusCodes um. 

  • 200 - OK
  • 503 - Service unavailable → Überlastung der Schnittstelle
  • 429 - Too Many Requests → Überlastung der Schnittstelle
  • 400 - Bad Request → OAI-ErrorConditions
  • 404 - Not Found

HTTP compression

Die OAI-PMH-Schnittstelle der DDB unterstützt HTTP-Kompression gzip und br (Brotli). Siehe auch

Jira
serverJIRA - Deutsche Digitale Bibliothek
serverId67c0afcf-3564-3fd0-8d4d-a69afd7aed63
keyDDBTASK-1954

Beschreibung

GetRecord

Request

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

...

languagexml
titleResponse
linenumberstrue
collapsetrue

...

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=IDEYVAM52SZTJUSL347PX6JUIFR545ZD

Code Block
languagexml
titleResponse
linenumberstrue
collapsetrue
<?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/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="IDEYVAM52SZTJUSL347PX6JUIFR545ZD" 
    metadataPrefix="edm" 
    verb="GetRecord">https://oai.deutsche-digitale-bibliothek.de/</request>
  <GetRecord>
    <record>
      <header>
        <identifier>IDEYVAM52SZTJUSL347PX6JUIFR545ZD</identifier>
        <!-- Datum vom ingestDate -->
        <datestamp>2015-06-15T01:11:30Z</datestamp>
        <!-- Auflistung ALLER Sets in denen der Datensatz vorkommt -->
        <setSpec>5738807392711401XjYt</setSpec>
        <setSpec>5738807392711401XjYt_:VSHJWG7QLS7Y3NS2HKE43E5Q5NJ7OCLS</setSpec>
        <setSpec>5738807392711401XjYt_:mediatype_005</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>

...

Code Block
languagexml
titleResponse
linenumberstrue
collapsetrue
<?xml version="1.0" encoding="UTF-8"?>
<?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>IDEYVAM52SZTJUSL347PX6JUIFR545ZD</identifier>
         <!-- Datum vom ingestDate -->
         <datestamp>2015-06-15T01:11:30Z</datestamp>
         <!-- Auflistung ALLER Sets in denen der Datensatz vorkommt -->
         <setSpec>5738807392711401XjYt</setSpec>
         <setSpec>5738807392711401XjYt_:VSHJWG7QLS7Y3NS2HKE43E5Q5NJ7OCLS</setSpec>
         <setSpec>5738807392711401XjYt_:mediatype_005</setSpec>
      </header>
      <header>
         <identifier>K6UAEV22DSH4GC2VAKPRTF4ZOHIOU6EJ</identifier>
         <datestamp>2015-06-15T01:11:32Z</datestamp>
         <setSpec>5738807392711401XjYt</setSpec>
         <setSpec>5738807392711401XjYt_:VSHJWG7QLS7Y3NS2HKE43E5Q5NJ7OCLS</setSpec>
         <setSpec>5738807392711401XjYt_:mediatype_005</setSpec>
      </header>
      <!-- ... -->
      <resumptionToken completeListSize="6200747" cursor="0" expirationDate="2017-01-13T09:15:20Z">mCgPm-947-0</resumptionToken>
   </ListIdentifiers>
</OAI-PMH>

...

Code Block
languagexml
titleResponse
linenumberstrue
collapsetrue
 <?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>IDEYVAM52SZTJUSL347PX6JUIFR545ZD</identifier>
        <!-- Datum vom ingestDate -->
        <datestamp>2015-06-15T01:11:30Z</datestamp>
        <!-- Auflistung ALLER Sets in denen der Datensatz vorkommt -->
        <setSpec>5738807392711401XjYt</setSpec>
        <setSpec>5738807392711401XjYt_:VSHJWG7QLS7Y3NS2HKE43E5Q5NJ7OCLS</setSpec>
        <setSpec>5738807392711401XjYt_:mediatype_005</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>

...

Code Block
languagexml
titleResponse
linenumberstrue
collapsetrue
 <?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>5738807392711401XjYt</setSpec>
      <setName>...</setName>
    </set>>https://oai.deutsche-digitale-bibliothek.de/</request>
  <ListSets>
    <set>
      <setSpec>5738807392711401XjYt_VSHJWG7QLS7Y3NS2HKE43E5Q5NJ7OCLS<<setSpec>5738807392711401XjYt</setSpec>
      <setName>...</setName>
    </set>
    <set>
      <setSpec>5738807392711401XjYt_mediatype_005<:VSHJWG7QLS7Y3NS2HKE43E5Q5NJ7OCLS</setSpec>
      <setName>...</setName>
    </set>
    <set>
      <setSpec>BZVTR553HLJBDMQD5NCJ6YKP3HMBQRF4:subset-200001-300000<<setSpec>5738807392711401XjYt:mediatype_005</setSpec>
      <setName>...</setName>
    </set>
    <!--  <setName>... -->
  </ListSets>
</OAI-PMH>

StatusCodes

Die OAI-Schnittstelle setzt HTTP-StatusCodes um. 

  • 200 - OK
  • 503 - Service unavailable → Überlastung der Schnittstelle
  • 429 - Too Many Requests → Überlastung der Schnittstelle
  • 400 - Bad Request → OAI-ErrorConditions
  • 404 - Not Found

HTTP compression

...

setName>
    </set>
    <!-- ... -->
  </ListSets>
</OAI-PMH>

Daten-Harvesting über die OAI-Schnittstelle der DDB

...