Basic Overview

This modules exposes entities as Dublin Core in an OAI-PMH endpoint using Views, REST, and a metadata mapping module of your choice.

OAI-PMH Endpoint

The endpoint uses Drupal's core REST module. If you have the REST UI module enabled, the REST resource can be found at /admin/config/services/rest/resource/oai_pmh/edit. However, this should not be necessary, as you should not need to alter any of the core REST settings.

Sets and Records

To create OAI-PMH sets, you can use Drupal's core Views module to create one or more Views with an "Entity Reference" display. No other View display types (e.g. block, page, REST Export, etc) are supported.

  • For Views with a contextual filter to an entity reference field, the entities referenced by the respective field will be used as the sets. With this approach, one View could expose multiple sets to the OAI-PMH endpoint
  • For Views with no contextual filter, the View display's display ID will be the setSpec, and the View display's label will be the setName.

You will then be able to select which View(s) in your system to expose to OAI-PMH in this module's configuration form (located at /admin/config/services/rest/oai-pmh). You can associate as many Views as are defined in your system with OAI, and can select both Views with and without contextual filters to show in OAI-PMH.

You will also be able to disable OAI "set" functionality in this module's config form, but will still need to use Views to tell the OAI endpoint which entities should be exposed.

Metadata Field Mapping

The Dublin Core field mappings can be provided by any one of the following methods:

  • Drupal's core RDF module: you will need to add Dublin Core field mappings in an RDF config file for the entity type(s) (e.g. node, taxonomy_term) that are exposed to OAI-PMH.
  • Metatag Dublin Core or Dublin Core Advanced: you will need to use Metatag's UI at /admin/config/search/metatag to add Dublin Core mappings for the entity type(s) that are exposed to OAI-PMH
  • Custom module or theme overriding hook_rest_oai_pmh_metadata_template_alter
  • Other modules may be supported by creating an issue

Similar projects

  • Views OAI-PMH: Views OAI-PMH leverages Views' functionality to expose the OAI-PMH endpoint; all of the OAI-PMH settings are conveniently located in a single View admin interface. However, Views OAI-PMH does not support sets. Also, mapping fields to Dublin Core is specific to the module, so other Drupal functionality may not be able to leverage the field mapping, which could result in duplicate effort for the site administrator.
Supporting organizations: 
Initial implementation
Continued Support

Project information

Releases