Technical Documentation: OAI intercom package

Introduction

This product is an implementation of OAI-PMH metadata interchange protocol. It is based on Zope views that permits the application of Software Engineering to Plone Products. In this case we have decided to develop a simple class diagram because it's very simple.

The objective for this Plone package is to create an OAI interface in Plone for harvesters and distributed searches.

Class Diagram

This is the class diagram:

Install

collective.oaiintercom can be installed via buildout. Add the following to your buildout.cfg:

[buildout]
...
eggs = 
    collective.oaiintercom

...

[instance]
...
zcml =
    collective.oaiintercom
And rerun buildout.
$ ./bin/buildout

Now you may either install OAI intercom as an extension profile, or via the QuickInstaller.

To access the OAI interface, visit http://HOST:PORT/Plone/oai.

If you want to test it use http://re.cs.uct.ac.za/ or use greenstone software to harvest the repository.

How to use

There are multiple ways to use this product. One of them is use a repository harvester like Greenstone Digital Library Software. It is an application written in Java to make library collections. You can use it to create local metadata repositories of your Plone content.

Another way to access the OAI-PMH results is via the web browser, but OAI is not designed for human reading. After installing the package, you can visit: http://localhost/Plone/oai and the following view will render:
In order to see results, you must provide verbs.

Verbs

Identify

This verb is used to get information about the server. It can be used to identify the repository in an index. It doesn't takes any parameters ::
http://localhost:PORT/Plone/oai?verb=Identify

ListMetadataFormats

This verb is used to identify different metadata on the server. In our product we have implemented the oai_dc metadata format.

It can take a parameter called identifier that matches with Plone object identifiers. For example if you have an object called "aaa", the identifier for view metadata formats in OAI would be "aaa".

ListSets

This verb is used to harvest the directories (Folderish objects) in a Plone site. It doesn't take any parameters.

ListRecords

This verb is used to get a list of records between dates. The OAI date format is yyyy-mm-dd. This verb take many parameters:

  • from: It is the start date of the query. It has a format like yyyy-mm-dd.
  • until: It is the end date of the query. It has a format like yyyy-mm-dd.
  • metadataPrefix: It is the name of the metadata format to disseminate. Currently, OAI intercom only supports oai_dc.

ListIdentifiers

This verb is used to get the headers of the elements in Plone. It takes the following parameters:

  • from: It is the start date of the query. It has a format like yyyy-mm-dd.
  • until: It is the end date of the query. It has a format like yyyy-mm-dd.
  • metadataPrefix: It is the name of metadata format to disseminate. Currently, OAI intercom only supports oai_dc.

GetRecord

This verb is used for get Dublin Core about one record. It is fundamental to the repository harvesting process. It takes the following parameters:

  • identifier: It is the identifier in Plone database.
  • metadataPrefix: It is the metadata format in which we will disseminate the format (oai_dc).