Editors
The OAI Executive:
Carl Lagoze <lagoze@cs.cornell.edu>
-- Cornell University - Computer Science
Herbert Van de Sompel <herbertv@lanl.gov>
-- Los Alamos National Laboratory - Research
Library
From the OAI Technical Committee:
Michael Nelson
<m.l.nelson@larc.nasa.gov>
-- NASA - Langley Research Center
Simeon Warner
<simeon@cs.cornell.edu>
-- 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).
The Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH) provides a mechanism for data providers to expose XML-formatted data for harvesting over the web. This data is disseminated in for the form of records, the contents of which are usually XML-formatted metadata about content in the repository. This metadata can then be consumed by services (e.g., search) that process (e.g. index) that metadata for users. Other uses of OAI-PMH include dissemination of records that contain metadata collected by aggregators from other sources (frequently via OAI-PMH), non-content-oriented metadata such as usage logs, and content itself that is expressed in XML.
Regardless of the usage scenario for OAI-PMH data providers might want to associate rights expressions with the contents of records. In their simplest forms these rights expressions are statements in XML format that specify how the contents of the record may be used including how it may be shared, modified, and used as the basis for derivative products (e.g., enhanced metadata). These simple rights statements are one instance in a suite of rights management and access control techniques including restricting harvesting to authorized parties, controlling the eventual use of harvested data through technical means, and specifying and controlling the use of content referenced by the harvested metadata.
This specification is limited in scope to the simple case: it provides the syntax for packaging within the OAI-PMH responses rights statements, formatted in XML, that apply to the contents of the records harvested via the OAI-PMH. The specification makes use of existing information containers within OAI-PMH, thus making no changes to the core protocol and maintaining compatibility with all existing OAI-PMH implementations.
The mechanisms described in this specification are not tied to any particular rights expression language. Examples throughout this document make use of Creative Commons license statements, but the use of this specific language is for illustrative purposes only. The only restriction imposed by the specified technique is the use of XML as the syntax for expressing rights statements.
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 for the protocols it implements.
The OAI-PMH data model includes a number of entities, some
of which aggregate other entities. These
entities are as follows and and
illustrated in the following figure:

This document specifies the mechanisms by which rights statements can be associated with two of these entities:
ListRecords
and GetRecords
requests is packaged as an XML-formatted Record.
Each record may contain one or more <about> containers
that provide information about the <metadata> part of the
record. This document describes a schema for a <rights>
package within an <about> container that associates a
rights statement with the information in the <metadata>
part of the record. This rights statement may be specified in-line
within a <rights> package or by-reference via a URL to a
network-accessible rights statement.Identify
request contains information about the repository. The response may
contain one or more <description> containers, that
provide an extensible mechanism for communities to describe their
repositories. This document describes a schema for an optional <rightsManifest>
package within a <description> container that is a
manifest of the rights statements that apply to records disseminated by the
repository. A data provider may choose to implement this feature
as a convenience for harvesting clients. In addition, the <rights>
packages disseminated within the <about> containers of
records returned from ListRecords
and GetRecords
requests may reference via URL the rights statements in this manifest.
This gives data providers the convenience of managing all rights statements for
a repository in a single list.Details on each of these mechanisms are described in the following sections.
.The schema shown below provides the format for encapsulating a single <rights>
statement within an <about> container associated with a
record returned from a ListRecords
and GetRecords
request. The schema provides two mutually exclusive alternatives for
specifying the rights statement:
<rights> element. The elements of the
rights statement must be defined in a namespace distinct from the OAI
elements and may be subject to validation to external schema.
Otherwise, the nature of the rights statement is undefined by this schema.<rights> element. There are no
restrictions on the nature of the resource referenced by this URL.
However, to facilitate machine processing, the recommended format for referenced rights statements is
XML. Data providers that disseminate
records with by-reference rights statements should be aware of
persistence issues related to URL references. Specifically, the possible
latency between the dissemination of a record with a referenced rights
statement and the eventual use of that record, and resolution of the reference,
may result in a failed reference or even a reference to a changed rights
statement with different meaning. Therefore, it is recommended
that data providers concerned with truly static rights statements employ the
in-line method.In both cases, the rights statement (either explicit or referenced) applies
to the contents of the <metadata> element of the record, rather than to any resource referenced by the contents of the <metadata>
element.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://www.openarchives.org/OAI/2.0/Rights/Record" xmlns="http://www.openarchives.org/OAI/2.0/Rights/Record" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="rights" type="rightsStatementType"/> <xs:complexType name="rightsStatementType"> <xs:choice> <xs:element name="rightsReference"> <xs:complexType> <xs:attribute name="ref" type="xs:anyURI" use="required"/> </xs:complexType> </xs:element> <xs:element name="rightsDefinition"> <xs:complexType> <xs:sequence> <xs:any namespace="##other"/> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:schema> |
| This Schema is available at http://www.openarchives.org/OAI/2.0/RecordRightsPackage.xsd |
The following example shows the use of this <rights>
container to package an in-line rights statement. The rights statement
listed 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/Record"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/Rights/Record
http://www.openarchives.org/OAI/2.0/RecordRightsPackage.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 this <rights>
container to package a by-reference rights statement.
<about> <rights xmlns="http://www.openarchives.org/OAI/2.0/Rights/Record" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/Rights/Record http://www.openarchives.org/OAI/2.0/RecordRightsPackage.xsd"> <rightsReference ref="http://creativecommons.org/licenses/by/2.0/"/> </rights> </about> |
Implementations may include a <rightsManifest> package
within the <description> element returned as part of an Identify
response. This optional package can serve two purposes:
Technical details on the use of this optional package are as follows:
<rightsManifest> package contains a list of the rights
statements disseminated by the repository. The
schema provides for this by allowing one or more <rights>
tags, each of which must have a unique ID and must contain a
rights statement either:
<rights> element. There are
no restrictions on the nature of the resource referenced by this URL.
However to facilitate machine processing, the recommended format for referenced rights statements is
XML. <rights> tags in the Identify
response returned by the respective repository. This URL must be
formatted as baseURL?verb=Identify#rightsStatementID, where:
baseURL?verb=Identify is an OAI-PMH Identify request to
the repository that disseminated the record containing the URL
reference.rightsStatementID is the unique ID of the <rights>
element in the <description> part of the Identify response, where the ID
is specified in the rightsStatementID attribute of the <rights>
tag.The schema for this optional <rightsManifest> package is:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://www.openarchives.org/OAI/2.0/Rights/Repository" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:recRights="http://www.openarchives.org/OAI/2.0/Rights/Record" xmlns="http://www.openarchives.org/OAI/2.0/Rights/Repository" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="http://www.openarchives.org/OAI/2.0/Rights/Record" schemaLocation="http://www.openarchives.org/OAI/2.0/RecordRightsPackage.xsd"/> <xs:element name="rightsManifest"> <xs:complexType> <xs:sequence> <xs:element name="rights" type="rightsStatementType" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="rightsStatementType"> <xs:complexContent> <xs:extension base="recRights:rightsStatementType"> <xs:attribute name="rightsStatementID" type="xs:ID" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:schema> |
| This Schema is available at http://www.openarchives.org/OAI/2.0/DescriptionRightsPackage.xsd |
The following example shows the use of this <rights>
container within a <description> element.
<Description> <rightsManifest xmlnsi="http://www.openarchives.org/OAI/2.0/Rights/Repository" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:recRights="http://www.openarchives.org/OAI/2.0/Rights/Record" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/Rights/Repository http://www.openarchives.org/OAI/2.0/DescriptionRightsPackage.xsd"> <rights rightsStatementID="all"> <recRights: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> </recRights:rightsDefinition> </rights> <rights rightsStatementID="noncommercial"> <recRights: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> </recRights:rightsDefinition> </rights> <rights rightsStatementID="nomods"> <recRights:rightsReference ref="http://creativecommons.org/licenses/by-nd/2.0/"/> </rights> </rightsManifest> </Description> |
The following example demonstrates the form of an <about>
container associated with a record disseminated by a repository that returns the
<description> container shown above. The example
assumes a baseURL for this repository of http://an.oa.org.
<about> <rights xmlns="http://www.openarchives.org/OAI/2.0/Rights/Record" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/Rights/Record http://www.openarchives.org/OAI/2.0/RecordRightsPackage.xsd"> <rightsReference ref="http://an.oa.org?verb=Identify#noncommerical"/> </rights> </about> |
This <about> container references the <rights>
labeled "noncommercial" in the <Description>
container of the Identify response from the repository, and
associates that rights statement with the contents of the <metadata>
element of the record in which the <about> container is
packaged.
The mechanisms described in this document are not intended to provide any level of enforcement of rights statements. Nevertheless, consumers of metadata containing this rights statements should act in good faith and abide by the conditions as stated. Actions in response to a failure of a client to follow a condition are out of the scope of this specification.
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.
2004-05-27: First draft of this document..
2004-06-02: Second draft with substantive changes