Implementation Guidelines for the Open Archives Initiative Protocol for Metadata Harvesting
OAI logo

Conveying rights expressions about metadata in the OAI-PMH framework

  Protocol Version 2.0 of 2002-06-14
Document Version 2004/06/16T15:34:00Z
http://www.openarchives.org/OAI/2.0/guidelines-rights.htm
DRAFT VERSION

Editors

Carl Lagoze (OAI Executive; Cornell University - Computer Science)
Herbert Van de Sompel (OAI Executive; Los Alamos National Laboratory - Research Library)
Michael Nelson (Old Dominion University - Computer Science)
Simeon Warner (Cornell University - Computer Science)

This document is one part of the Implementation Guidelines that accompany the Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH).

Table of Contents

1. Introduction and Scope
2. Rights expressions and the OAI-PMH data model
3. Conveying rights expressions at the record level
4. Conveying a manifest of rights expressions at the repository and set levels
  4.1 Repository level rights expressions
  4.2 Set level rights expressions
5. Responsibilities of clients harvesting metadata with associated rights expressions
Acknowledgements

1. Introduction and Scope

The Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH) provides a mechanism for data providers to expose metadata for harvesting over the Web. This metadata is disseminated in the form of OAI-PMH records. Metadata harvested from one or more data providers using the OAI-PMH can be used by service providers for the creation of services (e.g. search, browse) across the harvested data.

Typically, an OAI-PMH record contains descriptive metadata about a resource. However, use-cases have emerged where records contain non-bibliographic metadata such as usage logs and XML-based representations the resources. In order to accomodate such emerging uses of the OAI-PMH, in the remainder of this document the term "metadata" must be interpreted broadly to mean XML-formatted data pertaining to a resource, or strictly as being the content of the <metadata> elements in OAI-PMH GetRecord and ListRecords responses.

Regardless of the nature of the exposed metadata, data providers might want to associate rights expressions with it, as a means to convey how the metadata may be used after it has been harvested, including how it may be shared, modified, and used as the basis for derivative products (e.g., enhanced metadata). This specification defines how such rights information can be conveyed in responses to OAI-PMH protocol requests. The described technique:

In this document the key words "must", "must not", " required", "shall", "shall not", "should", "should not", "recommended", "may", and "optional " in bold face are to be interpreted as described in RFC 2119. An implementation is not conformant if it fails to satisfy one or more of the "must" or "required" level requirements.

2. Rights expressions and the OAI-PMH data model

The OAI-PMH data model defines a number of entities, some of which aggregate other entities. These entities are as follows and are illustrated in the figure below:

OAI-PMH data model figure

This document specifies the mechanisms by which rights expressions can be conveyed at the record level (section 3), and at the repository and set aggregation levels (section 4). These mechanisms can be summarized as follows:

Repositories may associate different rights expressions with records in different metedata formats from the same item. Manifests should include rights expressions for all records from the items in the appropriate repository or set.

Data-providers wishing to include rights expressions about metadata exposed via the OAI-PMH should use the methods described in this document. Use of this canonical mechanism means that the rights expressions should be found by harvesters (see section 5).

3. Conveying rights expressions at the record level

The XML schema shown below defines the format for a <rights> package that can be used to include a rights expression within an <about> container as part of a record returned from a ListRecords or GetRecord request. Such a rights expression pertains only to the <metadata> part of the record.

The schema provides two mutually exclusive alternatives for specifying a rights expression:

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.openarchives.org/OAI/2.0/rights/" 
        xmlns="http://www.w3.org/2001/XMLSchema" 
        xmlns:rights="http://www.openarchives.org/OAI/2.0/rights/"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified">

  <annotation>
    <documentation>
    Schema for rights statement to be included either by-reference or
    in-line. In-line statements may be in any namespace and are to be
    skipped by XML Schema validators so that rdf and non-W3C schemas
    may be used.
    Carl Lagoze and Simeon Warner (Cornell University)
    $Date: 2004/06/10 03:11:23 $
    </documentation>
  </annotation>
 
  
  <element name="rights" type="rights:rightsStatementType"/>

  <complexType name="rightsStatementType">
    <choice>
      <element name="rightsReference">
        <complexType>
          <attribute name="ref" type="anyURI" use="required"/>
        </complexType>
      </element>
      <element name="rightsDefinition">
        <complexType>
   	  <sequence>
 	    <any namespace="##other" processContents="skip"/>
  	  </sequence>
        </complexType>
      </element>
    </choice>
  </complexType>

</schema>
This schema is available at http://www.openarchives.org/OAI/2.0/rights.xsd

The following example shows the use of a <rights> element to convey an in-line rights expression. The rights expression in this example is the RDF/XML for the Creative Commons license that can be displayed in human-readable form at http://creativecommons.org/licenses/by/2.0/.

<about>
  <rights xmlns="http://www.openarchives.org/OAI/2.0/rights/"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/rights/
                        http://www.openarchives.org/OAI/2.0/rights.xsd">
    <rightsDefinition>
      <rdf:RDF xmlns="http://web.resource.org/cc/" 
        xmlns:dc="http://purl.org/dc/elements/1.1/" 
        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <Work rdf:about="">
          <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text"/>
          <license rdf:resource="http://creativecommons.org/licenses/by/2.0/"/>
        </Work>
        <License rdf:about="http://creativecommons.org/licenses/by/2.0/">
          <permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
          <permits rdf:resource="http://web.resource.org/cc/Distribution"/>
          <requires rdf:resource="http://web.resource.org/cc/Notice"/>
          <requires rdf:resource="http://web.resource.org/cc/Attribution"/>
          <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
        </License>
      </rdf:RDF>
    </rightsDefinition>
  </rights>
</about>

The following example shows the use of a <rights> element to convey a rights expression by-reference.

<about>
  <rights xmlns="http://www.openarchives.org/OAI/2.0/rights/"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/rights/
                        http://www.openarchives.org/OAI/2.0/rights.xsd">
    <rightsReference ref="http://creativecommons.org/licenses/by/2.0/"/>
  </rights>
</about>

4. Conveying a manifest of rights expressions at the repository and set levels

Manifests of rights expressions at the repository and set aggregation levels may be included using the optional <rightsManifest> package. Details of application at the repository level (section 4.1) and the set level (section 4.2) are given separately.

The XML schema below defines the format of the <rightsManifest> package. The schema allows one or more <rights> child elements. The individual <rights> elements are identical to those included at the record level, and must contain a single rights expression either in-line or by-reference. The <rightsManifest> element has a single attribute, appliesTo, which must have the value metadata. This attribute is included as a mechanism for future expansion.

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.openarchives.org/OAI/2.0/rights/"
        xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:xlink="http://www.w3.org/1999/xlink"
        xmlns:rights="http://www.openarchives.org/OAI/2.0/rights/"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified">

  <annotation>
    <documentation>
    Schema for a manifest of rights statements to be included in the
    Identify and ListSets responses of an OAI server. The appliesTo
    attribute permits only the value 'metadata' but is included in
    anticipation of later extension.
    Carl Lagoze and Simeon Warner (Cornell University)
    $Date: 2004/06/10 22:04:54 $
    </documentation>
  </annotation>


  <include schemaLocation="http://www.openarchives.org/OAI/2.0/rights.xsd"/>

  <element name="rightsManifest" type="rights:rightsManifestType"/>

  <complexType name="rightsManifestType">
    <sequence>
      <element name="rights" type="rights:rightsStatementType" maxOccurs="unbounded"/>
    </sequence>
    <attribute name="appliesTo" type="rights:appliesToType"/>
  </complexType>


  <simpleType name="appliesToType">
    <restriction base="string">
      <enumeration value="metadata"/>
    </restriction>
  </simpleType>

</schema>
This schema is available at http://www.openarchives.org/OAI/2.0/rightsManifest.xsd

4.1 Repository level rights expressions

The optional <rightsManifest> package may be included in a <description> container in the response to an Identify request. The purpose of the <rightsManifest> package at the repository level is to provide a list of all the rights expressions that apply to metadata disseminated by the repository.

A typical use of this manifest is the case where all metadata disseminated by the repository is covered by a small set of rights expressions. When this small set of rights expressions is packaged as a manifest within the Identify response, harvesting clients can quickly determine the rights expressions associated with the metadata disseminated by the repository and decide whether to proceed with harvesting. While the completeness and correctness of this manifest is not mandated by this specification, it is highly recommended that data providers maintain its accuracy since its contents may affect decisions by harvesters to collect metadata from the repository.

The following example shows the use of a <rightsManifest> container within a <description> element in an Identify response.

<description>
  <rightsManifest
    xmlns="http://www.openarchives.org/OAI/2.0/rights/" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/rights/ 
                        http://www.openarchives.org/OAI/2.0/rightsManifest.xsd"
    appliesTo="metadata">
    <rights>
      <rightsDefinition>
        <rdf:RDF xmlns="http://web.resource.org/cc/" 
          xmlns:dc="http://purl.org/dc/elements/1.1/" 
          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
          <Work rdf:about="">
            <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text"/>
            <license rdf:resource="http://creativecommons.org/licenses/by/2.0/"/>
          </Work>
          <License rdf:about="http://creativecommons.org/licenses/by/2.0/">
            <permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
            <permits rdf:resource="http://web.resource.org/cc/Distribution"/>
            <requires rdf:resource="http://web.resource.org/cc/Notice"/>
            <requires rdf:resource="http://web.resource.org/cc/Attribution"/>
            <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
          </License>
        </rdf:RDF>
      </rightsDefinition>
    </rights>
    <rights>
      <rightsDefinition>
        <rdf:RDF xmlns="http://web.resource.org/cc/" 
          xmlns:dc="http://purl.org/dc/elements/1.1/" 
          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
          <Work rdf:about="">
            <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text"/>
            <license rdf:resource="http://creativecommons.org/licenses/by-nc/2.0/"/>
          </Work>
          <License rdf:about="http://creativecommons.org/licenses/by-nc/2.0/">
            <permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
            <permits rdf:resource="http://web.resource.org/cc/Distribution"/>
            <requires rdf:resource="http://web.resource.org/cc/Notice"/>
            <requires rdf:resource="http://web.resource.org/cc/Attribution"/>
            <prohibits rdf:resource="http://web.resource.org/cc/CommercialUse"/>
            <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
          </License>
        </rdf:RDF>
      </rightsDefinition>
    </rights>
    <rights>
      <rightsReference ref="http://creativecommons.org/licenses/by-nd/2.0/"/>
    </rights>
  </rightsManifest>
</description>

4.2 Set level rights expressions

Sets are an optional mechanism to support selective harvesting within OAI-PMH. Repositories may or may not implement sets. Selective havesting by rights expression may be useful and thus repositories may use sets to group items for which the metadata shares particular rights expressions.

The optional <rightsManifest> package may be included in <setDescription> containers in the response to a ListSets request. The purpose of the <rightsManifest> package at the set level is to provide a list of all the rights expressions that apply to metadata disseminated in a particular set. A typical use of this manifest is the case where all metadata for items within a set is covered by a small set of rights expressions. A data provider may find it appropriate to include manifests for some sets even when it is not feasible for the entire repository. Data providers should not include set level rights manifests unless they provide complete, accurate and unambiguous information about rights expressions pertaining to metadata for items within a set.

The following example shows the use of a <rightsManifest> container within a <setDescription> element for one of four sets described in a ListSets response.

<ListSets>
  <set>
    <setSpec>music</setSpec>
    <setName>Music collection</setName>
  </set>
  <set>
    <setSpec>music:(muzak)</setSpec>
    <setName>Muzak collection</setName>
  </set>
  <set>
    <setSpec>music:(elec)</setSpec>
    <setName>Electronic Music Collection</setName>
    <setDescription>
      <rightsManifest 
        xmlns="http://www.openarchives.org/OAI/2.0/rights/" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/rights/ 
                            http://www.openarchives.org/OAI/2.0/rightsManifest.xsd"
        appliesTo="metadata">
        <rights>
          <rightsReference ref="http://creativecommons.org/licenses/by-nd/2.0/"/>
        </rights>
        <rights>
          <rightsReference ref="http://creativecommons.org/licenses/by-nc/2.0/"/>
        </rights>
      </rightsManifest>
    </setDescription>
  </set>
  <set>
    <setSpec>video</setSpec>
    <setName>Video Collection</setName>
  </set>
</ListSets>

5. Responsibilities of clients harvesting metadata with associated rights expressions

This specification aims to provide a canonical mechanism for the inclusion of rights expressions in OAI-PMH records. Harvesters should look for and abide by the contents of any rights expressions included using this mechanism within records they harvest.

The mechanisms described in this document are not intended to provide any level of enforcement of rights expressions. Nevertheless, consumers of metadata with which these rights expressions are associated should act in good faith and abide by the conditions as stated. Actions in response to a failure of a harvester to abide by rights expressions are outside the scope of this specification.

Acknowledgements

Support for the development of the OAI-PMH and for other Open Archives Initiative activities comes from the Digital Library Federation, the Coalition for Networked Information, and from the National Science Foundation through Grant No. IIS-9817416. Individuals who have played a significant role in the development of OAI-PMH version 2.0 are acknowledged in the protocol document.

Document History

2004-05-27: First draft of this document.
2004-06-02: Second draft with substantive changes
2004-06-08: Third draft with substantive changes