Standaarden:OAI-PMH

Uit Kennisnet Developers Documentatie
Naar navigatie springen Naar zoeken springen

Standaarden: OAI-PMH

Nl.gif Nederlands En.gif English

OAI-PMH (Open Archive Initiative - Protocol Metadata Harvesting) is een internationale afspraak om metadata uit een repository op te vragen.

Wat is OAI-PMH?

Kortom, OAI-PMH biedt een reeks services die het blootleggen en verzamelen van metadata uit repository's mogelijk maken. Het protocol bestaat uit zes verbs die de service specificeren die wordt aangeroepen. Dit zijn:

  • Identify - gebruikt om informatie over de repository op te halen.
  • ListIdentifiers - gebruikt om record headers uit de repository op te halen.
  • ListRecords - gebruikt om volledige records uit de repository te verzamelen.
  • ListSets - gebruikt om de set structuur van de repository op te halen.
  • ListMetadataFormats - geeft een overzicht van de beschikbare metadataformaten die de repository kan verspreiden.
  • GetRecord - gebruikt om een individueel record uit de repository op te halen.

Selectief harvesting kan worden uitgevoerd door gebruik te maken van parameters. Beschikbare parameters zijn:

  • identifier - specificeert record identifier.
  • metadataPrefix - specificeert het metadataformaat waarin de records worden geretourneerd.
  • set - specificeert de set waartoe de geretourneerde records moeten behoren.
  • from - geeft aan dat geretourneerde records op of na deze datum moeten zijn created/update/deleted.
  • until - geeft aan dat geretourneerde records op of vóór deze datum moeten zijn created/update/deleted.
  • resumptionToken - een token dat eerder door de server is verstrekt om een verzoek te hervatten waar het voor het laatst was gebleven.

De verbs en parameters kunnen worden gecombineerd om verzoeken aan de service te verzenden.

Documentatie

Bullet book.png OAI-PMH Specificatie En.gif (leidend)
Bullet book.png Afspraak bij Edustandaard Nl.gif (referentie)

Tooling

Bullet wrench.png OAI-PMH validator Icon web.png (actief)
Uitgebreide tool voor het validateren en verkennen van OAI-PMH repositories.
Bullet wrench.png Ontwikkeltools voor OAI-PMH Icon web.png (status onbekend)
Bullet wrench.png OAI-PMH module voor Drupal 6 Icon library.png (2011-04-11)
Bullet wrench.png Solr OAI koppeling in PHP Icon library.png (actief)
In beheer bij Kennisnet
Bullet wrench.png Solr OAI koppeling in Java Icon library.png (actief)
Bullet wrench.png Picturae OAI-PMH package Icon library.png (actief)

Tips

Identifiers

De oai identifier is de unieke identificatie voor een metadata record, niet het leermateriaal. Metadata aanbiedende repositories zullen zorg moeten dragen voor een ondubbelzinnige verwijzing (“unique identifier“) naar metadata behorend bij educatieve content. Op basis van deze ondubbelzinnige verwijzing kan de metadata verzamelende applicatie bepalen of de, vanuit de metadata aanbiedende repositories, aangeleverde gegevens gaan over nieuwe leermiddelen of over updates van leermiddelen. In de volgende afspraak staat de officiele specificatie.

Bullet book.png OAI-PMH Identifier Specificatie En.gif (leidend)

resumptionToken

Het resumptionToken wordt gebruikt om de volgende pagina van een bepaalde selectie op te halen. De initiële selectie wordt bepaald door het eerste verzoek; de set, metadataPrefix, from en until argumenten. Het resumptionToken moet dus naast de pagina informatie, ook deze informatie bevatten. Als er geen volgende pagina is, dient het resumptionToken niet voor te komen om een oneindige loop in het harvestproces te voorkomen.

Bijvoorbeeld het volgende verzoek en het bijbehorende resumptionToken (bij een pagesize van 100):

http://oai.example.com/provider?verb=ListRecords&metadataPrefix=lom&set=testset&from=2014-01-14
<oai:resumptionToken cursor="0" completeListSize="605">100-1389654000-testset-lom</oai:resumptionToken>

Hierbij worden de losse waarden van elkaar gescheiden door een scheidingsteken (de '-'), en wordt het from argument eerst omgevormd naar een UNIX timestamp.

En de call die gebruik maakt van deze resumptionToken, hierin wordt dus de set en de metadataPrefix niet meer meegegeven:

http://oai.example.com/provider?verb=ListRecords&resumptionToken=100-1389654000-testset-lom
<oai:resumptionToken cursor="100" completeListSize="605">200-1389654000-testset-lom</oai:resumptionToken>

Wijzigingen

Binnen OAI-PMH is het verplicht om per item bij te houden wanneer een item voor het laatst is gemuteerd (creatie, wijziging en verwijdering). Een metadata aanbiedende repository moet dus het mutatiemoment bijhouden. Zodoende kan de verzamelende applicatie zich beperken (met het from argument) tot het ophalen van alleen die items die sinds de laatste keer zijn gewijzigd.

Verwijderingen

Het actueel houden van metadata binnen repositories is van groot belang voor het succesvol gebruiken van de repository. OAI-PMH biedt de mogelijkheid aan aanbiedende repository om aan te geven dat een item is verwijderd, door het attribuut status="deleted" toe te voegen aan de record header. Dit biedt de metadata verzamelende applicatie de mogelijkheid om tijdens harvesting de eigen repository op te schonen. Dit betekent dat alle identifiers die ooit zijn aangeboden, voor altijd opvraagbaar moeten blijven. Met andere woorden, dit geldt ook voor records die in de eigen repository permanent zijn verwijderd.

<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>2002-06-01T19:20:30Z</responseDate>
  <request verb="ListRecords" metadataPrefix="oldarXiv">http://an.oa.org/OAI-script</request>
  <ListRecords>
   <record>
    <header status="deleted">  
     <identifier>oai:arXiv.org:hep-th/9801010</identifier>
     <datestamp>1999-02-23</datestamp>
     <setSpec>physic:hep</setSpec>
     <setSpec>math</setSpec>
    </header>
    <!-- geen metadata of about van het record verplicht -->
  <record>
 </ListRecords>
</OAI-PMH>