Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

HTTP::OAI::Repository
Documentation for building an OAI compliant repository using OAI-PERL

HTTP::OAI::Repository - Documentation for building an OAI compliant repository using OAI-PERL


NAME

HTTP::OAI::Repository - Documentation for building an OAI compliant repository using OAI-PERL


DESCRIPTION

Using the OAI-PERL library in a repository context requires the user to build the OAI responses to be sent to OAI harvesters.


SYNOPSIS 1


        use HTTP::OAI::Harvester;

        use HTTP::OAI::Metadata::OAI_DC;

        use XML::SAX::Writer;

        use XML::LibXML;

        # (all of these options _must_ be supplied to comply with the OAI protocol)

        # (protocolVersion and responseDate both have sensible defaults)

        my $r = new HTTP::OAI::Identify(

                baseURL=>'http://yourhost/cgi/oai',

                adminEmail=>'youremail@yourhost',

                repositoryName=>'agoodname',

                requestURL=>self_url()

        );

        # Include a description (an XML::LibXML Dom object)

        $r->description(new HTTP::OAI::Metadata(dom=>$dom));

        my $r = HTTP::OAI::GetRecord->new(

                header=>HTTP::OAI::Header->new(

                        identifier=>'oai:myrepo:10',

                        datestamp=>'2004-10-01'

                        ),

                metadata=>HTTP::OAI::Metadata::OAI_DC->new(

                        dc=>{title=>['Hello, World!'],description=>['My Record']}

                        )

        );

        $r->about(HTTP::OAI::Metadata->new(dom=>$dom));

        my $writer = XML::SAX::Writer->new();

        $r->set_handler($writer);

        $r->generate;


Building an OAI compliant repository

The validation scripts included in this module provide the repository admin with a number of tools for helping with being OAI compliant, however they can not be exhaustive in themselves.


METHODS

$r = HTTP::OAI::Repository::validate_request(%paramlist)
$r = HTTP::OAI::Repository::validate_request_2_0(%paramlist)
These functions, exported by the Repository module, validate an OAI request against the protocol requirements. Returns an HTTP::Response object, with the code set to 200 if the request is well-formed, or an error code and the message set.

e.g:


        my $r = validate_request(%paramlist);

        print header(-status=>$r->code.' '.$r->message),

                $r->error_as_HTML;

Note that validate_request attempts to be as strict to the Protocol as possible.

$b = HTTP::OAI::Repository::validate_date($date)
$b = HTTP::OAI::Repository::validate_metadataPrefix($mdp)
$b = HTTP::OAI::Repository::validate_responseDate($date)
$b = HTTP::OAI::Repository::validate_setSpec($set)
These functions, exported by the Repository module, validate the given type of OAI data. Returns true if the given value is sane, false otherwise.


EXAMPLE

See the bin/gateway.pl for an example implementation (it's actually for creating a static repository gateway, but you get the idea!).

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy