This module provides an implementation of a data provider according to the Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH) for an Islandora Fedora repository with a solr index. By implementing the islandora_oai module, you can expose content (its metadata) as an OAI-PMH repository. It will then be accessible by OAI harvesters. For further OAI documentation. For more info, please see this link.
With this module you can:
- Receive OAI-PMH request of service providers in form of HTTP request (GET or POST)
- Handle the OAI-PMH request
- Respond to OAI-PMH request in form of HTTP response (XML) to the service provider
This module requires the following modules/libraries:
Install as usual, see this for further information.
Configure the basic details of the repository in Administration » Islandora » Islandora OAI (admin/islandora/tools/islandora-oai).
If you select "configure" you see the following screens:
- Solr date field - A datestamp to be appended to the metadata via the Solr index.
- Solr RELS-EXT collection field - Fields entered here establish the object relationship of metadata to be passed on to the harvester.
- Solr XACML role field - The site's Solr fields defining viewing permissions.
- Solr hasModel field - The site's Solr field defining an object's content model.
- Exclude Content Models - A list of content models, defined by their PID, to exclude from harvests. - if you exclude the collection content model, it disables the use of "sets" in OAi, as the name of the set is made by taking the PID of the collection and replacing the colon with an underscore.
- Exclude objects within the "islandora" namespace
- Append on dc.identifier.thumbnail to OAI_DC requests? - this only has an effect on OAI_DC output.
This section allows you to configure the settings for the OAI-PMH's metadata_prefix verb; Islandora uses XSL files to define the method for transforming your site's metadata datastreams into a format compatible with the OAI-PMH. Islandora OAI comes with two XSL files; they convert the MODS datastream of an object to either Electronic Thesis and Dissertation Metadata Standard format or Dublin Core format, which then can be served up to a harvester. You will have to fill out and save this section for each metadata prefix you wish to enable. Below are sample configs for a oai_dc prefix and a mods prefix.
After you have exposed content types and some fields, your repository is available at /oai2
Some example requests are as follows:
*/oai2?verb=Identify
*/oai2?verb=ListMetadataFormats
*/oai2?verb=ListIdentifiers&metadataPrefix=oai_dc
*/oai2?verb=GetRecord&metadataPrefix=oai_dc&identifier=PID
*/oai2?verb=ListRecords&metadataPrefix=oai_dc
Services like WorldCat expect links back to the object such as a Handle URL. If your metadata doesn't have this there are two approaches that can be used. Self transforming XSLTs can be used to add specific elements tailored to individual needs. However, there is options in configuration to append on URL values to the XML output of OAI. Each metadata prefix has an individual set of configuration. If selected, a user can define where the object URL will get appended in the output returned.
Similarily, OCLC's Digital Collection Gateway can take advatange of thumbnail URLs for rendering. This option is only currently available for oai_dc requests. If selected, a URL to the object's thumbnail will be added as a dc:identifier.thumbnail if the object has a thumbnail.
If existing content has already been harvested and/or the url and thumbnail are not mapping in Digital Collection Gateway, you will need to map those manually in the 'Metadata Map' for a given collection/set.
By default the vanilla islandora_oai module provides a very basic output. It is possible to add additional content to the description field of the repository. This includes pointing at other harvesters and repositories, branding information etc. An example of how to implement these can be referenced in the 6.x version of the module.
The original 6.x version of this module was based off of the OAI2ForCCK module located here.
The responses generated by this module have been validated against Open Archives' Validation.
Further documentation for this module is available at our wiki.
Having problems or solved a problem? Check out the Islandora google groups for a solution.
Current maintainers:
If you would like to contribute to this module, please check out CONTRIBUTING.md. In addition, we have helpful Documentation for Developers info, as well as our Developers section on the Islandora.ca site.