[OAI-implementers] Perl oai modules

Tim Brody tdb01r at ecs.soton.ac.uk
Fri Feb 25 20:55:03 EST 2005


Ed Summers wrote:
> On Fri, Feb 25, 2005 at 09:28:47PM +0000, Tim Brody wrote:
> 
>>These modules represent very similar functionality to Ed Summer's 
>>Net::OAI::Harvester for harvesting, but with support for constructing 
>>OAI responses (the repository side). I hope (!) they are also more 
>>resilient to repository weirdness.
> 
> Heh, could you be more specific about the "repository weirdness". Nice
> work by the way.

UTF-8 errors are probably the most common, but I've "developed out" my 
capability to handle those. Ideally I'd like a PerlIO layer that handles 
bad UTF-8, otherwise I'm sure Perl5.8's UTF support should be usable to 
fix bad chars (or spot latin and recode).

A couple of sites have bad baseURLs in their Identify response, which I 
now check for and ignore - in principle a harvester should follow 
baseURL like a redirect, but some sites have relative URLs!

One site indexed in Celestial (an OAI1.1) expects the verb as the first 
argument in the query, so I've added a special case for that.

Another site has a bad implementation of timestamps - it only accepts 
date+time. So something else to add would be to retry a request with 
appended to from/until T00:00:00Z (probably application layer rather 
than API).

I've added support for oai_dc: or dc: prefixed tags in Dublin Core, 
although I guess I could just check for the namespace.

Other than that; graceful handling of retry-after, redirect, resumption 
token repetition (to one depth only), and retry-on empty response.

All the best,
Tim.



More information about the OAI-implementers mailing list