YAR - Yet Another (OAI-PMH) Repository



A LANL ProtoTyping Team project

The multi-faceted use of the OAI-PMH in the LANL Repository - Draft of an accepted submission to JCDL 2004


YAR is a collection of Perl modules to create OAI-PMH repositories out of gzipped concatenated XML files called XMLTapes. The XMLTape format can be used to store thousands of XML records, in a well known and supported file format, very efficiently on a filesystem while providing an easy OAI-PMH interface without much administration needed.

The following illustration shows the process to create an OAI-PMH repository out of XML files. On the left hand side you see various XML documents all using the same XML Schema. With help of the Perl script tapecreate they are transformed into an XMLTape. This XMLTape gets exposed as an OAI-PMH repository via the Perl script oai2.pl.

XMLTape is not the only storage format you can use inside YAR. The YAR package provides you tools to create new YAR drivers with which you can create OAI-PMH repositories from e.g. XML records stored in a relation database. All these tools are well documented.

Pro's of the XMLTape format:

Con's of the XMLTape format:

All these features makes YAR + XMLTape highly suited for long term storage of data where OAI-PMH is needed.


* Get the sources from http://sourceforge.net/projects/yar/.
* gunzip -c YAR-XXX.tar.gz | tar xvf -
* cd YAR-XXX
* perl Makefile.PL
* make
* make test
* make install
* Copy all the files from the etc directory into /etc
* Edit your Apache httpd.conf and add a ScriptAlias to the oai2 excutable. E.g.


 ScriptAlias /yar  /usr/bin/oai2

Contact info

Patrick Hochstenbach <hochsten@sci.kun.nl>
Xiaoming Liu <liu_x@lanl.gov>
Herbert Van de Sompel <herbertv@lanl.gov>