Standaarden:OAI-PMH

Uit Kennisnet Developers Documentatie
Versie door Dumeljic01 (overleg | bijdragen) op 26 okt 2023 om 10:20 ({{Talen}})
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.

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>