VTOAI OAI-PMH2 PERL Implementation

Download : VTOAI-3.05.tar.gz (23548 bytes)


This toolkit implements the skeleton of the OAI-PMH v2.0 in an 
object-oriented fashion, thus hiding the details of the protocol
from code that is derived from the predefined class.


- Strict compliance with OAI-PMH v2.0 as specified on the OAI
  website (http://www.openarchives.org)
- No installation or compilation - Perl scripts need only be copied
  (Additional modules may be required to access your data source.)
- Code layout for separate components or libraries of components
- One installation can easily be used for multiple archives
- Supports almost all general features of the protocol by default.
- All extensions, configurations, and containers are specified 
  using XML Schema
- Minimal changes required to create a working implementation
- Sample modules are provided
- Does not couple tightly with the web server and requires no special
- Designed for easy migration to accelerators such as FastCGI


- Perl
- Web server with ability to run CGI scripts

Installation Instructions

1. Copy all files with default directory structure into a directory
   from which CGI scripts may be run

2. Use the repository explorer (http://purl.org/net/oai_explorer)
   to test the sample interface accessible at 'test/oai.pl'. You
   will need to prefix this with the full URL prefix to the script. 

3. Copy the 'lib/Test/TestDP.pm' module to use as a starting point
   for your code. Rename the module and change the package name.
   Copy the 'test' directory and edit the module being used so that
   it points to your new copy.
4. Edit the routines in the new module to access your data source.
   You will most probably only have to edit the following:

    new (constructor) - called when the script starts

    dispose (destructor) - called when the script ends
    FormatDC - converts a hashref (hash-reference) to some arbitrary 
     data format into a hashref to DC
    (create functions for other metadata formats if necessary)
    Archive_FormatHeader - creates a header based on a hashref and a

    Archive_FormatRecord - creates a record based on a hashref and a
    Archive_Identify - add specific identification information to the
     Identify responses

    Archive_ListMetadataFormats - list of metadata formats
     specific to an identifier - an empty list defaults to the hardcoded
     metadata format(s).
    Archive_ListSets - list of sets
    Archive_GetRecord - create a hashref of data corresponding to a
     given identifier and metadataPrefix
    Archive_ListRecords - create a list of hashrefs corresponding to
     the given parameters

    Archive_ListIdentifiers - create a list of hashrefs corresponding to
     the given parameters
   The HSPICS module provides an alternative starting point and better 
   illustrates how to handle parameters and create the required data.

   The OAI2DP.pm module is the base class so implements the basic
   functionality of the protocol - browse through this code to see what
   is handled and what is not.

Module Layout

 - utility modules (in pure-perl)

 - OAI2DP = generic data provider
 - HSPICS = data provider for hussein's picture albums

 - TestDP = test data provider


This software is part of the larger project to build componentized
Digital Libraries based on the work of the Open Archives Initiative.
See http://oai.dlib.vt.edu/odl and http://www.openarchives.org for
more information.

This is a research project, and we are always interested in 
feedback - questions, comments, and suggestions for improvement.
Please contact hussein@vt.edu as appropriate.

11 June 2002

Back to VTOAI Home Page     Back to DLRL Home Page     Back to Open Archives Home Page
Last updated: 15 April 2002