OLAC Repositories

Date issued:2003-07-16
Status of document:Candidate Standard. This document is on track to be accepted by the community as a standard; full adoption is awaiting successful implementation. The version that is ultimately adopted may incorporate changes based on feedback from implementers.
This version:http://www.language-archives.org/OLAC/repositories-20030716.html
Latest version:http://www.language-archives.org/OLAC/repositories.html
Previous version:http://www.language-archives.org/OLAC/repositories-20030528.html

This document defines the standards OLAC archives must follow in implementing a metadata repository.

Editors: Gary Simons, SIL International (mailto:gary_simons@sil.org)
Steven Bird, University of Melbourne and University of Pennsylvania (mailto:sb@csse.unimelb.edu.au)
Changes since previous version:

The phrase "data provider" has been changed throughout to "metadata repository" when it is not referring to an institution or individual that provides data; this aligns with a change in terminology by the OAI between version 1.0 and version 2.0. In section 2, a note is added about using subdomain names to form repository identifiers for personal repositories. Section 6 on guidelines concerning relevance and granularity has been added.

Copyright © 2003 Gary Simons (SIL International) and Steven Bird (University of Melbourne and University of Pennsylvania). This material may be distributed and repurposed subject to the terms and conditions set forth in the Creative Commons Attribution-ShareAlike 2.5 License.

Table of contents

  1. Introduction
  2. OAI identifier description
  3. OLAC archive description
  4. Requirements on static repositories
  5. Requirements on dynamic repositories
  6. Guidelines concerning relevance and granularity

1. Introduction

The OLAC standard on metadata repositories is based on the Open Archives Initiative protocol for metadata harvesting [OAI-PMH]. This document assumes familiarity with the OAI protocol. A metadata repository may take the form of a dynamic repository that implements a CGI interface to query a live database in response to protocol requests, or it may take the form of a static repository that has no interface of its own but is serviced through a static repository gateway [OAI-SR].

An OLAC metadata repository must answer two special description elements as part of the response to the Identify request. It must:

These elements are described in the next two sections. The remaining sections describe:

2. OAI identifier description

The resource identifiers supplied by an OLAC metadata repository must comply with the OAI specification for the format of OAI identifiers as defined in [OAI-Ids]. The metadata repository must document its compliance with this format by including an <oai-identifier> element within a <description> container in the Identify response.

The schema for validating an OAI identifier description is found at:


The target namespace is: http://www.openarchives.org/OAI/2.0/oai-identifier

The schema specifies fixed values of oai for the scheme element and : (colon) for the delimiter element. In addition to being valid with respect to the schema, OLAC places these further requirements on the content of the OAI identifier description:

For example,


3. OLAC archive description

The basic Identify request supplies minimal information about an archive, namely, its name, base URL, and administrator email. An OLAC metadata repository must augment the Identify response by including an <olac-archive> element within a <description> container. This element gives additional information that makes it possible for an OLAC service provider to supply its users with a basic description of a participating archive.

The schema for validating an OLAC archive description is found at:


The target namespace is: http://www.language-archives.org/OLAC/1.0/olac-archive

The <olac-archive> element has an obligatory attribute, type, which must have one of two values:

These are the elements within an OLAC archive description:


Optional. The home page of the archive on the Web. This is the home page for human visitors, not the base URL for harvesting.


The name of the person who curates the archive collection. If more than one person has collaborated as personal sponsors of the archive, then this element should contain all the names in the order and format the collaborators want to be cited.


Optional. The job title of the curator within the sponsoring institution (for an institutional archive) or within the institution of affiliation (for a personal archive).


Optional. A mailto: URI giving the email address for contacting the curator of the archive. (Note that this is distinct from the <adminEmail> in the Identify response which is the contact address for the maintainer of the metadata repository.)


The name of the sponsoring institution (for an institutional archive) or the institution of affiliation (for a personal archive). The field is obligatory. If the curator of a personal archive has no affiliation, then a value of Unaffiliated should be given.


Optional. A URL for the home page of the institution.


Obligatory. A brief statement (not to exceed 50 characters) of the location of the institution or the person providing the metadata following the format "City, Country". Multiple locations may be connected with "and". This information is shown in the location column of the table of participating archives at http://www.language-archives.org/archives.php4.


Optional. A single paragraph (of arbitrary length) describing where an archive that houses a collection of physical holdings is located (for instance, include building name, room number, street address). Other information relevant to visiting the collection, such as opening hours or restrictions on access, may also be described. If the archive is purely an on-line repository, do not use this element.


A single paragraph (of arbitrary length) summarizing the purpose, scope, coverage, and so on of the archive.


A single paragraph (of arbitrary length) summarizing terms of access to the materials described in the metadata repository. The statement should mention restrictions on access, licensing requirements, costs, and so on. Individual metadata records should use the Rights element to document such things for particular archive holdings. The purpose of <access> is to broadly characterize the entire archive.

For example,

      <curator>Raymond G. Gordon, Jr.</curator>
      <curatorTitle>Ethnologue Editor</curatorTitle>
      <institution>SIL International</institution>
      <shortLocation>Dallas, USA</shortLocation>
      <location>7500 W. Camp Wisdom Rd., Dallas, TX 75236, U.S.A.</location>
      <synopsis>The Ethnologue repository gives a metadata record for every
      language entry in the Web edition of the Ethnologue.  The latter provides
      basic information about each of the 7,000+ modern language of the world
      (both living and recently extinct).</synopsis>
      <access>Every resource described by the Ethnologue metadata repository is a
      public Web page that may be accessed without restriction. Reuse of 
      material on the site is subject to the Terms of Use that are
      posted on the site.</access>

4. Requirements on static repositories

A static repository is an XML document that describes the resources made available by a particular institution or individual. It is a convenient way to create a metadata repository for a relatively small collection (say, up to a couple thousand records). Such a document may be created and maintained manually by means of an XML editor. Alternatively, it might be generated periodically by a script that extracts information from an existing database.

The OAI specification for a static repository is given in [OAI-SR]. The schema for validating a static repository is found at:


In addition to being valid with respect to this schema, an OLAC static repository must also:

  1. Include an <oai-identifier> description and an <olac-archive> description in its <Identify> element.

  2. Contain the following element within its <ListMetadataFormats> element:

  3. Contain a <ListRecords> element that specifies an attribute and value of metadataPrefix="olac" that contains at least one record, and in which every embedded record has a metadata description that conforms to the OLAC metadata standard [OLAC-Metadata].

A service for validating a repository for conformance to these requirements is found at:


An example of a complete OLAC static repository that conforms to these requirements is found at:


5. Requirements on dynamic repositories

A dynamic repository is harder to implement since it requires the implementation of a CGI interface for the complete OAI protocol for metadata harvesting [OAI-PMH]. This is necessary, however, when the collection is large and needs to implement flow control to keep protocol responses to a reasonable size. The OAI community considers half a megabyte to be a reasonable response size. If the ListRecords response for all records in a repository would substantially exceed that size, then it may be necessary to implement a dynamic repository with flow control.

The implementation of a dynamic OLAC metadata repository has all the features of a minimal repository implementation [OAI-GRI], except that an OLAC repository need not support the oai_dc metadata format. This is because the OLAC Aggregator [OLACA] provides that service for repositories that comply with this standard; see [OLAC-Display] for the specification of the olac to oai_dc crosswalk. In fact, unless the institution has reasons of its own to function independently as an OAI data provider, OLAC recommends that a dynamic repository not implement the oai_dc metadata format so that the translation of OLAC metadata to the oai_dc format will be done consistently across the community.

In addition to the requirements of a minimal repository implementation, a dynamic OLAC metadata repository must comply with the following additional requirements.

  1. The Identify response must include an <oai-identifier> description and an <olac-archive> description.

  2. The ListMetadataFormats response (when made with no additional parameters) must contain a specification for the olac metadata prefix that declares the schema and namespace for the version of OLAC metadata that is being used. For example,

  3. When the metadataPrefix argument to ListIdentifiers is specified as olac, the request must respond with at least one record.

  4. When the metadataPrefix argument to GetRecord is specified as olac, the <oai:metadata> element of the response must either be empty (when no OLAC metadata is available for the given identifier) or it must contain an <olac:olac> element that conforms to some version of the XML schema for OLAC metadata [OLAC-Metadata]. That element must contain an xmlns attribute specifying the URI that identifies the namespace for the version of the OLAC metadata schema that is being used.

  5. When the metadataPrefix argument to ListRecords is specified as olac, every <oai:metadata> element in the response must contain an <olac:olac> element that conforms to some version of the XML schema for OLAC metadata [OLAC-Metadata]. Each such element must contain an xmlns attribute specifying the URI that identifies the namespace for the version of the metadata schema that is being used.

6. Guidelines concerning relevance and granularity

When a request is made to register a metadata repository with OLAC, it is first tested for conformance to the requirements listed in the sections above. When these are met, the registration request is reviewed by the OLAC Council (see [OLAC-Process]) before final acceptance. The role of the Council in the registration process is to ensure that all registered archives meet the following guidelines concerning relevance and granularity.

Regarding relevance, in order to be eligible for registration as an OLAC archive:

Regarding the granularity of repositories, a repository is meant to catalog all the holdings of an archive, rather than having separate repositories for each of the collections within an archive. Thus,

Regarding the granularity of the records in a repository, the basic guideline is this:

For instance, if a repository lists separate metadata records for all the computer files that comprise the documentation of a single linguistic event, then the effectiveness of searching will be degraded by all the duplicate records for the same documented event. Rather, the individual files should be listed as related components in a single metadata record. Similarly, if a repository lists separate metadata records for each of the 500 texts that make up a single corpus for a given language, then users searching for resources about that language will be swamped by 500 records for the same resource that will obscure the records for other resources that might be available. Rather, there should be one metadata record for the corpus as a whole, containing a link to the index on the host site that will allow interested users to explore the 500 texts.


[OAI-GRI]Guidelines for Repository Implementers, Document Version 2002/06/09.
[OAI-Ids]Specification and XML Schema for the OAI Identifier Format, Document Version 2002/06/21.
[OAI-PMH]The Open Archives Initiative Protocol for Metadata Harvesting, Version 1.1 (2001-07-02).
[OAI-SR]Specification for an OAI Static Repository and an OAI Static Repository Gateway.
[OLAC-Display]Specifications for an OLAC metadata display format and an OLAC-to-OAI_DC crosswalk.
[OLAC-Metadata]OLAC Metadata.
[OLAC-Process]OLAC Process.
[OLACA]OLAC Aggregator.