Technical Documentation: OAI Plone-Educommons Product

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 product is to create an OAI gate in Plone (and educommons) for harvesters and distributed searches that provides good interconnectivity. There are other products like ZOpenArchives but it is a Zope library. We are trying to make a simple plug n play OAI capabilities for many projects because we would like to make an interoperable XML platform.

Class Diagram

This is the class diagram:

Install

For install the software release the product under Plone Products directory. It does not need to install the product from Site Setup because it uses Zope views. For access to OAI gate 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 too many ways to use this product. One of them is use a repository harvester like greenstone. It is a desktop software written in Java to make library collections and it works with our Plone Product.

Other way is use a web browser (like firefox, safari or iexplorer) but OAI is not designed for human reading, although you would test if it works. For do that in first way you have to install the product. After you can visit the page http://localhost/Plone/oai and appear something like that: It is because you do not send any request to OAI gate. In the next point you can view the verbs.

Verbs

Identify

This verb is used for get information about the server. It can be used for identify the repository in a index. It don't takes any params.

ListMetadataFormats

This verb is used for identify differents metadata on the server. In our product we only has implemented oai_dc metadata format.

It could take a param called identifier that propers with Plone object identifier. 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 for watch the courses or directories in a Educommons or Plone site. It don't take any params.

ListRecords

This verb is used for get a list of records between dates. We have one problem with dates because format dates in oai are like that: yyyy-mm-dd and Plone has the dates like dd-mm-yyyy and we need to translate it. It's very simple and you can see it in the source code. This verb take many params:

  • 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. Only support oai_dc.

ListIdentifiers

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

  • 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. Only support oai_dc.

GetRecord

This verb is used for get Dublin Core about one record. It is the hearth of harvesting. It takes next params:

  • identifier: It is the identifier in Plone database.
  • metadataPrefix: It is the metadata format in wich we will diseminate the format.