Dataprovider implementatie tips

From GroenGelinkt

Jump to: navigation, search

Op deze pagina is informatie te vinden die handig kan zijn bij het maken van een dataprovider.

Contents

Welke URL's zal GroenGelinkt aanroepen

Binnen het OAI-PMH protocol zijn er een aantal parameters die aan de URL meegegeven kunnen worden. Deze parameters bepalen welke informatie, en dus response, de data-provider moet aanleveren. GroenGelinkt maakt in principe maar gebruik van 2 verb's. GroenGelinkt zal als eerste een Identify request uitvoeren. Daarna zal GroenGelinkt obv de via deze aanroep verkregen informatie via listRecords de werkelijke data opvragen.

Identify Request Voorbeeld

Hieronder is een voorbeeld te vinden van een response op een Identify request, die voldoet aan de aannames van de GroenGelinkt harvester. Het request zelf zag er als volgt uit: http://hostname.nl/algemeen/interface/locaties/oai2.php?verb=Identify

<?xml version="1.0" encoding="UTF-8"?>
<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>2013-12-04T09:08:26Z</responseDate>
 <request verb="Identify">http://hostname.nl/algemeen/interface/locaties/oai2.php</request>
 <Identify>
  <repositoryName>OAI Repository GG-OLOM Locaties</repositoryName>
  <baseURL>http://hostname.nl/algemeen/interface/locaties/oai2.php</baseURL>
  <protocolVersion>2.0</protocolVersion>
  <adminEmail>mailto:info@hostname.nl</adminEmail>
  <earliestDatestamp>2011-11-01T00:00:00Z</earliestDatestamp>
  <deletedRecord>persistent</deletedRecord>
  <granularity>YYYY-MM-DDThh:mm:ssZ</granularity>
 </Identify>
</OAI-PMH>

ListRecords voorbeeld

Hieronder is een voorbeeld te vinden van een response op een ListRecords request met een startdatum, die voldoet aan de aannames van de GroenGelinkt harvester.

Request: http://www.hostname.nl/algemeen/interface/organisaties/oai2.php?verb=ListRecords&metadataPrefix=oai_lom&from=2013-09-26T10:44:43Z

Response: Voorbeeld response

namespaces

In de voorbeelden wordt vaak de namespace weggelaten. Dit is gedaan voor de leesbaarheid. In werkelijkheid moet de namespace prefix er overal nog bij.

Dus

  <oai_lom:general>
     <oai_lom:title><oai_lom:langstring xml:lang="nl">Ontdek bos en poel in De Bremerton ( najaar-winter)</oai_lom:langstring></oai_lom:title>
     <oai_lom:catalogentry>
      <oai_lom:catalog>uri</oai_lom:catalog>
      <oai_lom:entry>
       <oai_lom:langstring xml:lang="x-none">urn:nmegids:algemeen:itm9628</oai_lom:langstring>
      </oai_lom:entry>
     </oai_lom:catalogentry>
  <oai_lom:language>nl</oai_lom:language>

En niet

  <general>
     <title><langstring xml:lang="nl">Ontdek bos en poel in De Bremerton ( najaar-winter)</langstring></title>
     <catalogentry>
      <catalog>uri</catalog>
      <entry>
       <langstring xml:lang="x-none">urn:nmegids:algemeen:itm9628</langstring>
      </entry>
     </catalogentry>
  <language>nl</language>

datumformaat

Datums binnen de OAI-PMH provider moeten in het formaat YYYY-MM-DDThh:mm:ssZ zijn. De tijdzone is dus altijd GMT (Z).

VCards / VCalendar

Let er bij VCards en VCalendars op dat deze ook in de XML voorzien wordt van carriage returns.

Dus

<oai_lom:vcard>BEGIN:VCARD
FN:De Broeikas
ORG:De Broeikas
TEL:024 - 3237544
EMAIL;TYPE=INTERNET:info@debroeikasnijmegen.nl
VERSION:3.0
END:VCARD</oai_lom:vcard>

en niet

<oai_lom:vcard>BEGIN:VCARD FN:De Broeikas ORG:De Broeikas TEL:024 - 3237544 EMAIL;TYPE=INTERNET:info@debroeikasnijmegen.nl VERSION:3.0 END:VCARD</oai_lom:vcard>

Identifiers uit de vocabulaires

Als er een identifier gebruikt wordt uit een vdex/vocabulaire dan zijn die in het vdex bestand URL encoded (bv 'educational%20level'). Als deze in de ..LOM gebruikt wordt, dan moet hier de URL decoded waarde gebruikt worden (bv 'educational level' en niet 'educational%20level'), zie ook http://wiki.surf.nl/display/nllom/vocab.

URI's in catalog entries

Als identificatie voor materiaal wordt gebruik gemaakt van de standaard zoals beschreven op http://edurepdiensten.wiki.kennisnet.nl/Identifiers. EDSO gebruikt bijvoorbeeld urn:nmegids:algemeen:<primairy key in db>. Het is belangrijk dat deze waarde niet verandert, gebeurd dat wel dan vervallen alle relaties naar dit object.

Personal tools
Namespaces
Variants
Actions
Hoofdnavigatie
Ontsluiting
Aanbieden
Toolbox