![]() |
The Open Archives Initiative Protocol for Metadata Harvesting |
Protocol Version 1.1 of 2001-07-02
|
Editors
Herbert Van de Sompel <herbertv@cs.cornell.edu>
-- Cornell University - Computer Science
Carl Lagoze <lagoze@cs.cornell.edu>
-- Cornell University - Computer Science
Table of Contents
Introduction
Definitions and Concepts
Repository
Record
Unique Identifier
Datestamp
Set
Protocol Features
HTTP embedding
of OAI requests
HTTP
Request Format
HTTP
Response Format
Dates and Times
Metadata Prefix and Metadata
Schema
Flow Control
Protocol Requests and Responses
GetRecord
Identify
ListIdentifiers
ListMetadataFormats
ListRecords
ListSets
Appendix 1: Sample XML Schema for metadata formats
Dublin Core
rfc1807
oai_marc
Appendix 2: Sample XML Schema for description
part of reply to Identify request
description
for repositories that share the OAI format for unique identifiers of records
description
for repositories in the e-print community
Acknowledgements
The goal of the Open Archives Initiative Protocol for Metadata Harvesting (referred to as the OAI protocol in the remainder of this document) is to supply and promote an application-independent interoperability framework that can be used by a variety of communities who are engaged in publishing content on the Web. The OAI protocol described in this document permits metadata harvesting. The result is an interoperability framework with two classes of participants:
A repository is a network accessible server to which OAI protocol requests, embedded in HTTP, can be submitted. The OAI protocol provides access to metadata from OAI-compliant repositories. This metadata is output in the form of a record. A record is the result of a protocol request issued to the repository to disseminate metadata from an item. An item can be considered a constituent of the repository. The nature of an item -- for example, what type of metadata is actually stored in the item, what type is derived on-the-fly, and whether the item includes the "full content" described by the metadata -- is outside the scope of the OAI protocol. All uses of the term repository in the remainder of this document should be interpreted as an OAI-compliant repository.
The example shows a record and its components:
<header>
<identifier>oai:arXiv:quant-ph/9901001</identifier>
<datestamp>1999-01-01</datestamp>
</header>
<metadata>
<dc xmlns="http://purl.org/dc/elements/1.1/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://purl.org/dc/elements/1.1/
http://www.openarchives.org/OAI/1.1/dc.xsd">
<title>Quantum slow motion</title>
<creator>Hug, M.</creator>
<creator>Milburn, G. J.</creator>
<description>We simulate the center of mass motion of cold atoms in a
|
The protocol supports the notion of a deleted record, which may be used by repositories as follows. When returning a harvested record or identifier of a record, the ListRecords and ListIdentifiers service requests may indicate a status of "deleted". This status means that an item has been deleted and therefore no record can be disseminated from it. The length of time that a given repository keeps track of deleted items is not defined by the protocol. Therefore, the only guaranteed method in the protocol for determining whether a record can be returned by a repository (its corresponding item still exists) is through the GetRecord service request.
A unique identifier is a key for extracting metadata from an item in a repository. The OAI protocol specifies that each item may disseminate metadata in multiple formats. All of the members of this group of possible metadata formats disseminated from a single item share the same unique identifier. Each record disseminated by a GetRecord or ListRecords protocol request is identified by the combination of this unique identifier and a metadata prefix, which identifies the metadata format.
The format of unique identifiers corresponds to that of the URI (Uniform Resource Identifier) syntax. An individual community may develop a URI scheme for coordinated use across its repositories. For an example, see the format for identifiers proposed in Appendix 2.
These unique identifiers play two roles in the protocol:
Note that the identifier described here is not that of the item. The nature of the item identifier is outside the scope of the OAI protocol.
Since many clients of the OAI protocol may want to access the content associated with harvested metadata, it is highly recommended that repositories use an element in metadata records to establish a linkage between the record (and its identifier) and the identifier (URL, URN, DOI, etc.) of the associated item. The mandatory Dublin Core format provides the identifier element that can be used for this purpose.
A datestamp is the date of creation, deletion, or latest date of modification of an item, the effect of which is a change in the metadata of a record disseminated from that item. Every record returned by the GetRecord and ListRecords service requests contains its respective datestamp in the header. Datestamps are used as values of optional arguments -- until or from -- to the ListRecords and ListIdentifiers requests to specify selective harvesting (by date) from the repository. The value of a datestamp must comply to the specifications for dates in the OAI protocol.
A set is an optional construct for grouping items in a repository for the purpose of selective harvesting of records. Each repository may define a hierarchical organization of items; the hierarchy can have several top-level nodes. Each node in the hierarchy is a Set, which has:
The following is an example of a possible Set hierarchy in a repository:
The following table shows a representation of the above Set hierarchy by means of setNames, setTags and setSpecs :
|
setName
|
setTag
|
setSpec
|
| Institutions | institution | institution |
| Oceanside University of Nebraska | nebraska | institution:nebraska |
| Valley View University of Florida | florida | institution:florida |
| Subjects | subject | subject |
| Existential Kenesiology | kenesiology | subject:kenesiology |
| Quantum Psychology | quantum | subject:quantum |
Each item in a repository may be organized in one Set, several Sets, or no Sets at all. A client should not assume that harvesting every Set in a repository will retrieve records for every item in the repository. Items may also be organized in interior nodes in the Set hierarchy. Thus, in the example above, it is conceivable that an individual item is organized in both subject and florida.
The actual meaning of a Set or of the arrangement of Sets in a repository is not defined in the protocol, nor is there any way to derive this meaning through the protocol. It is expected that individual communities who use the OAI protocol may formulate well-defined Set configurations with perhaps a controlled vocabulary for Set names, and may even develop mechanisms for exposing these to service providers. For example, a group of cooperating e-print archives in a specific discipline may agree on Sets that arrange items in their repositories based on a controlled subject classification. Note that there is no mechanism for "reverse lookup"; that is, determining the Set or Sets that an item -- from which a record was disseminated -- is organized in.
A repository's Set hierarchy is represented in the protocol via setSpecs. ListSets returns the configuration of Sets in a repository as a list of setSpecs. Any of these setSpecs can be used as optional arguments to ListRecords or ListIdentifiers to specify the target Set for selective harvesting from the repository. In the previous example of a Set hierarchy, the setSpec institution:nebraska can be used in a protocol request to return only those records that are disseminated from items organized in the Set represented by this setSpec. Three issues should be noted here:
Using the previous example of a Set hierarchy, a setSpec of institution to the ListRecords protocol request will return all records from items organized within the institution Set and within the descendent Sets florida and nebraska.
In addition to the BASE-URL, all requests consist of a list of keyword arguments, which take the form key=value pairs. Arguments may appear in any order and multiple arguments should be separated by ampersands [&]. At a minimum, each OAI protocol request has one key=value pair that specifies the OAI protocol request issued by the client:
The number and nature of additional key=value pairs is dependent on the arguments for the individual protocol request.
Libraries such as libwww-perl will decode GET and POST requests seamlessly; the application does not even need to know which method was used. The advantage of POST is that there are no limitations on the length of the arguments.
However, since special characters in URIs must be encoded, the valid form of the above above GET request URL is:
http://an.oa.org/OAI-script?
verb=GetRecord&identifier=oai%3AarXiv%3Ahep-th%2F9901001&metadataPrefix=oai_dc
POST http://an.oa.org/OAI-script HTTP/1.0
Content-Length: 78
Content-Type: application/x-www-form-urlencoded
verb=GetRecord&identifier=oai%3AarXiv%3Ahep-th%2F9901001&metadataPrefix=oai_dc
| Character | URI Role | Escape Sequence |
|
|
Path Component Separator |
|
|
|
Query Component Separator |
|
|
|
Fragment Identifier |
|
|
|
Name/Value Separator |
|
|
|
Argument Separator in Query Component |
|
| : | Host Port Separator | %3A |
| ; | Authority Namespace Separator | %3B |
| ' ' | Space Character | %20 |
| % | Escape Indicator | %25 |
| + | Escaped Space | %2B |
As a result, these characters must be represented by their respective escape sequence if their use does not correspond to their established URI role. In case of the OAI protocol, this means that the reserved characters have to be encoded when they in the value part of the key=value pairs of which the list of keyword arguments of the OAI protocol request consists. This applies for both the GET and POST encoding of the OAI protocol requests.
The Content-Type returned for all OAI protocol requests is text/xml. Encoding of the XML is done using the UTF-8 representation of Unicode, whereby:
The XML data for all responses has the following common markup:
<?xml version="1.0" encoding="UTF-8"
?>
<GetRecord
xmlns="http://www.openarchives.org/OAI/1.1/OAI_GetRecord"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_GetRecord
http://www.openarchives.org/OAI/1.1/OAI_GetRecord.xsd">
<responseDate>2001-06-01T19:20:30-04:00</responseDate>
<requestURL>http://an.oa.org/OAI-script?verb=GetRecord
&identifier=oai%3AarXiv%3Ahep-th%2F9901001
&metadataPrefix=oai_dc</requestURL>
list of records
</GetRecord>
OAI compliant repositories may also employ other HTTP Status-Codes in manners as defined by the HTTP protocol. The following list includes Status-Codes that may be useful for load balancing of OAI repositories:
503 - Service unavailable, a Retry-After period is specified. Clients should wait this period before attempting another OAI protocol request (Clients that do not observe the Retry-After period may be denied access).
Dates and times are uniformly encoded throughout the protocol. Their use is as follows:
For instance, 1957-03-20T20:30:00+00:00 is UTC 8:30 PM on March 20th 1957.
Each metadata format that is included in records disseminated by the OAI protocol is identified within the protocol requests to a repository by a metadata prefix and across multiple repositories by the URL of a metadata schema:
The metadata formats that are available for a repository (or for a specific identifier) can be obtained through the ListMetadataFormats protocol request. For each metadata format that is supported, the response to the ListMetadataFormats protocol requests contains the metadata prefix of the format and the URL of the metadata schema for the metadata format. Optionally, this response may also contain the XML namespace URI associated with the format.
Metadata prefixes are used in the ListRecords and GetRecord protocol requests, to request records that include metadata in the format identified by the metadata prefix.
The metadata in each record returned by ListRecords and GetRecord complies to the conventions of the XML namespace specification. This means that the root element of the metadata part must contain an xmlns attribute, the value of which is the namespace URI of the metadata format. The root element should also contain an xsi:schemaLocation attribute that has a value that includes the URL of the XML schema for validation of the metadata. This URL should match the URL of the metadata schema for the metadata prefix included as an argument to the ListRecords or GetRecord request (the mapping from metadata prefix to metadata schema is defined by the repository's response to the ListMetadataFormats protocol request).
The OAI protocol mandates one required metadata format for the purpose of interoperability. This format is Dublin Core, without any qualification. Therefore, the protocol reserves the metadata prefix 'oai_dc', and the URL of a metadata schema for unqualified Dublin Core, which is http://www.openarchives.org/OAI/1.1/dc.xsd.
Certain communities may adopt guidelines for sharing of metadata prefixes and/or metadata schema throughout the community. Such guidelines are outside of the scope of the OAI protocol.
Appendix 1 provides some sample XML Schema and instance documents for common metadata formats such as Dublin Core, MARC and RFC1807
A number of OAI protocol requests return a list of discrete entities; ListRecords returns a list of records, ListIdentifiers returns a list of identifiers, and ListSets returns a list of setSpecs. In some cases, these lists may be large and it may be practical to partition them among a series of protocol requests and responses. This partitioning is accomplished as follows:
The details on flow control and the resumptionToken are as follows:
This flow control mechanism, in combination with the 503 Status-Code, provides some basic tools with which a repository can enforce an acceptable use policy for its harvesting interface. Communities implementing the OAI protocol may need more extensive tools to enforce acceptable use policies for either the harvesting interface of their repositories or for the metadata harvested from those repositories. The enforcement of such additional policies is outside of the scope of the OAI protocol.
This verb is used to retrieve an individual record (metadata) from an item in a repository. Required arguments specify the identifier, or key, of the requested record and the format of the metadata that should be included in the record
| A XML schema for validating the response is as follows: |
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:oai="http://www.openarchives.org/OAI/1.1/OAI_GetRecord"
targetNamespace="http://www.openarchives.org/OAI/1.1/OAI_GetRecord"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<annotation>
<documentation>
Schema to verify validity of responses to GetRecord OAI-protocol request.
This Schema validated at http://www.w3.org/2001/03/webdata/xsv on 2001-05-07
with XSV XSV 1.189/1.95 of 2001/05/07 08:38:12
</documentation>
</annotation>
<element name="GetRecord" type="oai:GetRecordType"/>
<!-- response to GetRecord-request -->
<complexType name="GetRecordType">
<sequence>
<element name="responseDate" minOccurs="1" maxOccurs="1" type="dateTime"/>
<element name="requestURL" minOccurs="1" maxOccurs="1" type="anyURI"/>
<element name="record" minOccurs="0" maxOccurs="1" type="oai:recordType"/>
</sequence>
</complexType>
<!-- define recordType -->
<!-- a record has a header and a metadata part -->
<complexType name="recordType">
<sequence>
<element name="header" minOccurs="1" maxOccurs="1" type="oai:headerType"/>
<element name="metadata" minOccurs="0" maxOccurs="1" type="oai:metadataType"/>
<element name="about" minOccurs="0" maxOccurs="1" type="oai:aboutType"/>
</sequence>
<attribute name="status" use="optional" type="oai:statusType"/>
</complexType>
<!-- define headerType -->
<!-- a header has a unique identifier and a datestamp -->
<complexType name="headerType">
<sequence>
<element name="identifier" minOccurs="1" maxOccurs="1" type="anyURI"/>
<element name="datestamp" minOccurs="1" maxOccurs="1" type="date"/>
</sequence>
</complexType>
<!-- define metadataType -->
<!-- metadata must be expressed in XML that is compliant with another XML -->
<!-- Schema. metadata must be explicitly qualified in the response -->
<complexType name="metadataType">
<sequence>
<any namespace="##other" processContents="lax"/>
</sequence>
</complexType>
<!-- define aboutType -->
<!-- data "about" the record must be expressed in XML -->
<!-- that is compliant with an XML Schema defined by a community -->
<complexType name="aboutType">
<sequence>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="1"/>
</sequence>
</complexType>
<!-- define statusType -->
<simpleType name="statusType"> <restriction base="string"> <enumeration value="deleted"/> </restriction> </simpleType> </schema> |
| This Schema is available at http://www.openarchives.org/OAI/1.1/OAI_GetRecord.xsd |
http://an.oa.org/OAI-script?
verb=GetRecord&identifier=oai:arXiv:quant-ph/9901001&metadataPrefix=oai_dc
<?xml version="1.0" encoding="UTF-8"?> <GetRecord
xmlns="http://www.openarchives.org/OAI/1.1/OAI_GetRecord"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_GetRecord http://www.openarchives.org/OAI/1.1/OAI_GetRecord.xsd"> <responseDate>2001-06-10T14:09:57-07:00</responseDate> <requestURL>http://an.oa.org/OAI-script?verb=GetRecord
&identifier=oai%3AarXiv%3Aquant-ph%2F9901001
&metadataPrefix=oai_dc</requestURL> <record> <header> <identifier>oai:arXiv:quant-ph/9901001</identifier> <datestamp>1999-01-01</datestamp> </header> <metadata> <dc xmlns="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://purl.org/dc/elements/1.1/ http://www.openarchives.org/OAI/1.1/dc.xsd"> <title>Quantum slow motion</title> <creator>Hug, M.</creator> <creator>Milburn, G. J.</creator> <description>We simulate the center of mass motion of cold atoms in a standing,
amplitude modulated, laser field as an example of a system that has a classical mixed phase-space.</description> <date>1999-01-01</date> <type>e-print</type> <identifier>http://arXiv.org/abs/quant-ph/9901001</identifier> </dc> </metadata> </record> </GetRecord>
http://an.oa.org/OAI-script?
verb=GetRecord&identifier=oai:arXiv:quant-ph/0201001&metadataPrefix=oai_dc
<?xml version="1.0" encoding="UTF-8"?> <GetRecord
xmlns="http://www.openarchives.org/OAI/1.1/OAI_GetRecord"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_GetRecord http://www.openarchives.org/OAI/1.1/OAI_GetRecord.xsd"> <responseDate>2001-06-10T14:09:57-07:00</responseDate> <requestURL>http://an.oa.org/OAI-script?verb=GetRecord
&identifier=oai%3AarXiv%3Aquant-ph%2F0201001
&metadataPrefix=oai_dc</requestURL> </GetRecord>
http://an.oa.org/OAI-script?
verb=GetRecord&identifier=oai:arXiv:quant-ph/9901001&metadataPrefix=oai_marc
<?xml version="1.0" encoding="UTF-8"?> <GetRecord
xmlns="http://www.openarchives.org/OAI/1.1/OAI_GetRecord"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_GetRecord http://www.openarchives.org/OAI/1.1/OAI_GetRecord.xsd"> <responseDate>2001-06-10T14:09:57-07:00</responseDate> <requestURL>http://an.oa.org/OAI-script?verb=GetRecord
&identifier=oai%3AarXiv%3Aquant-ph%2F9901001
&metadataPrefix=oai_marc</requestURL> <record> <header> <identifier>oai:arXiv:quant-ph/9901001</identifier> <datestamp>1999-01-01</datestamp> </header> </record> </GetRecord>
This verb is used to retrieve information about a repository, including administrative, identity, and community-specific information.
None
None
| A XML schema for validating the response is as follows: |
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:oai="http://www.openarchives.org/OAI/1.1/OAI_Identify"
targetNamespace="http://www.openarchives.org/OAI/1.1/OAI_Identify"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<annotation>
<documentation>
Schema to verify validity of responses to Identify OAI-protocol request.
This Schema validated at http://www.w3.org/2001/03/webdata/xsv on 2001-05-07
with XSV XSV 1.189/1.95 of 2001/05/07 08:38:12
</documentation>
</annotation>
<element name="Identify" type="oai:IdentifyType"/>
<!-- response to Identify-request -->
<complexType name="IdentifyType">
<sequence>
<element name="responseDate" minOccurs="1" maxOccurs="1" type="dateTime"/>
<element name="requestURL" minOccurs="1" maxOccurs="1" type="anyURI"/>
<element name="repositoryName" minOccurs="1" maxOccurs="1" type="string"/>
<element name="baseURL" minOccurs="1" maxOccurs="1" type="anyURI"/>
<element name="protocolVersion" minOccurs="1" maxOccurs="1" type="string"/>
<element name="adminEmail" minOccurs="1" maxOccurs="1" type="anyURI"/>
<element name="description" minOccurs="0" maxOccurs="unbounded"
|
| This Schema is available at http://www.openarchives.org/OAI/1.1/OAI_Identify.xsd |
http://an.oa.org/OAI-script?
verb=Identify
The response to this protocol request includes the following elements that must be provided by every OAI compliant repository:
In addition, the response may contain a list of description containers, which provide an extensible mechanism for communities to describe their repositories. The description container, could -- for instance -- be used to include collection-level metadata in the response to the Identify request. Each description container must be accompanied by the URL of an XML schema, which provides the semantics of the descriptive container. The below example of a response to the Identify request contains two description containers:
<?xml version="1.0" encoding="UTF-8"?> <Identify
xmlns="http://www.openarchives.org/OAI/1.1/OAI_Identify"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_Identify http://www.openarchives.org/OAI/1.1/OAI_Identify.xsd"> <responseDate>2001-06-01T19:20:30-04:00</responseDate> <requestURL>http://an.oa.org/OAI-script?verb=Identify</requestURL> <repositoryName>The University of Spa E-print System</repositoryName> <baseURL>http://an.oa.org/OAI-script</baseURL> <protocolVersion>1.1</protocolVersion> <adminEmail>mailto:adm@spa.ac.be</adminEmail> <description> <oai-identifier xmlns="http://www.openarchives.org/OAI/1.1/oai-identifier"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/oai-identifier http://www.openarchives.org/OAI/1.1/oai-identifier.xsd"> <scheme>oai</scheme> <repositoryIdentifier>bespa</repositoryIdentifier> <delimiter>:</delimiter> <sampleIdentifier>oai:bespa:medi99-123</sampleIdentifier> </oai-identifier> </description> <description> <eprints xmlns="http://www.openarchives.org/OAI/1.1/eprints"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/eprints http://www.openarchives.org/OAI/1.1/eprints.xsd"> <content> <URL>http://an.oa.org/info/content.htm</URL> </content> <metadataPolicy> <text>Metadata can be used by commercial and non-commercial service
providers</text> <URL>http://an.oa.org/info/metadata_use.htm</URL> </metadataPolicy> <dataPolicy> <text>Full content, i.e. preprints may not be harvested by robots</text> </dataPolicy> <submissionPolicy> <URL>http://an.oa.org/info/submission.htm</URL> </submissionPolicy> </eprints> </description> </Identify>
This verb is used to retrieve the identifiers of records that can be harvested from a repository. Optional arguments permit selectivity of the identifiers - based on their membership in a specific Set in the repository or based on their modification, creation, or deletion within a specific date range.
| A XML schema for validating the response is as follows: |
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:oai="http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers"
targetNamespace="http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<annotation>
<documentation>
Schema to verify validity of responses to ListIdentifiers OAI-protocol request.
This Schema validated at http://www.w3.org/2001/03/webdata/xsv on 2001-05-07
with XSV XSV 1.189/1.95 of 2001/05/07 08:38:12
</documentation>
</annotation>
<element name="ListIdentifiers" type="oai:ListIdentifiersType"/>
<!-- response to ListIdentifiers-request -->
<!-- records have an optional "deleted" status -->
<!-- this response may contain an optional resumptionToken -->
<complexType name="ListIdentifiersType">
<sequence>
<element name="responseDate" minOccurs="1" maxOccurs="1" type="dateTime"/>
<element name="requestURL" minOccurs="1" maxOccurs="1" type="anyURI"/>
<element ref="oai:identifier" minOccurs="0" maxOccurs="unbounded"/>
<element name="resumptionToken" minOccurs="0" maxOccurs="1" type="string"/>
</sequence>
</complexType>
<element name="identifier">
<complexType>
<simpleContent>
<extension base="anyURI">
<attribute name="status" use="optional" type="oai:statusType"/>
</extension>
</simpleContent>
</complexType>
</element>
<!-- define statusType -->
<simpleType name="statusType"> <restriction base="string"> <enumeration value="deleted"/> </restriction> </simpleType> </schema> |
| This Schema is available at http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers.xsd |
http://an.oa.org/OAI-script?
verb=ListIdentifiers&from=1998-01-15&set=physics:hep
A list of four identifiers is returned, one of which has a "deleted" status. In addition, a resumption token has been returned, indicating the list of identifiers is incomplete and one or more subsequent requests will need to be issued to complete the list.
<?xml version="1.0" encoding="UTF-8"?> <ListIdentifiers
xmlns="http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers.xsd"> <responseDate>2001-06-01T19:20:30-04:00</responseDate> <requestURL>http://an.oa.org/OAI-script?verb=ListIdentifiers
&from=1998-01-15&setSpec=physics%3Ahep</requestURL> <identifier>oai:arXiv:hep-th/9801001</identifier> <identifier>oai:arXiv:hep-th/9801002</identifier> <identifier>oai:arXiv:hep-th/9801005</identifier> <identifier status="deleted">oai:arXiv:hep-th/9801010</identifier> <resumptionToken>xxx45abttyz</resumptionToken> </ListIdentifiers>
Issue a subsequent request to the one issued above, with a single resumptionToken argument whose value is that returned in the previous response.
http://an.oa.org/OAI-script?
verb=ListIdentifiers&resumptionToken=xxx45abttyz
<?xml version="1.0" encoding="UTF-8"?> <ListIdentifiers
xmlns="http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers.xsd"> <responseDate>2001-06-01T19:20:30-04:00</responseDate> <requestURL>http://an.oa.org/OAI- script?verb=ListIdentifiers &resumptionToken=xxx45abttyz</requestURL> <identifier>oai:arXiv:hep-th/9801020</identifier> <identifier>oai:arXiv:hep-th/9801060</identifier> </ListIdentifiers>
http://an.oa.org/OAI-script?
verb=ListIdentifiers&from=2001-01-01&until=2001-01-01&set=physics:hep
<?xml version="1.0" encoding="UTF-8"?> <ListIdentifiers
xmlns="http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers http://www.openarchives.org/OAI/1.1/OAI_ListIdentifiers.xsd"> <responseDate>2001-06-01T19:20:30-04:00</responseDate> <requestURL>http://an.oa.org/OAI-script?verb=ListIdentifiers
&from=2001-01-01&until=2001-01-01
&setSpec=physics%3Ahep</requestURL> </ListIdentifiers>
This verb is used to retrieve the metadata formats available from a repository. An optional argument restricts the request to the formats available for a specific record.
| A XML schema for validating the response is as follows: |
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:oai="http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats"
targetNamespace="http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<annotation>
<documentation>
Schema to verify validity of responses to ListMetadataFormats OAI-protocol
request.
This Schema validated at http://www.w3.org/2001/03/webdata/xsv on 2001-05-07
with XSV XSV 1.189/1.95 of 2001/05/07 08:38:12
</documentation>
</annotation>
<element name="ListMetadataFormats" type="oai:ListMetadataType"/>
<!-- response to ListMetadataFormats-request -->
<complexType name="ListMetadataType">
<sequence>
<element name="responseDate" minOccurs="1" maxOccurs="1" type="dateTime"/>
<element name="requestURL" minOccurs="1" maxOccurs="1" type="anyURI"/>
<element name="metadataFormat" minOccurs="0" maxOccurs="unbounded"
|
| This Schema is available at http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats.xsd |
List the metadata formats that can be disseminated from the record with unique identifier oai:arXiv:hep-th/9901001 [URL shown without encoding for better readability].
http://an.oa.org/OAI-script?
verb=ListMetadataFormats&identifier=oai:arXiv:hep-th/9901001
<?xml version="1.0" encoding="UTF-8"?> <ListMetadataFormats
xmlns="http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats.xsd"> <responseDate>2001-06-01T19:20:30-04:00</responseDate> <requestURL>http://an.oa.org/OAI-script?verb=ListMetadataFormats &identifier=oai%3AarXiv%3Ahep-th%2F9901001</requestURL> <metadataFormat> <metadataPrefix>oai_rfc1807</metadataPrefix> <schema>http://www.openarchives.org/OAI/1.1/rfc1807.xsd</schema> </metadataFormat> <metadataFormat> <metadataPrefix>oai_dc</metadataPrefix> <schema>http://www.openarchives.org/OAI/1.1/dc.xsd</schema> <metadataNamespace>http://purl.org/dc/elements/1.1/</metadataNamespace> </metadataFormat> </ListMetadataFormats>
List the metadata formats that can be disseminated from the repository http://an.oa.org/OAI-script.
http://an.oa.org/OAI-script?
verb=ListMetadataFormats
<?xml version="1.0" encoding="UTF-8"?> <ListMetadataFormats
xmlns="http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats.xsd"> <responseDate>2001-06-01T19:20:30-04:00</responseDate> <requestURL>http://an.oa.org/OAI-script?verb=ListMetadataFormats</requestURL> <metadataFormat> <metadataPrefix>oai_rfc1807</metadataPrefix> <schema>http://www.openarchives.org/OAI/1.1/rfc1807.xsd</schema> </metadataFormat> <metadataFormat> <metadataPrefix>oai_dc</metadataPrefix> <schema>http://www.openarchives.org/OAI/1.1/dc.xsd</schema> <metadataNamespace>http://purl.org/dc/elements/1.1/</metadataNamespace> </metadataFormat> <metadataFormat> <metadataPrefix>oai_marc</metadataPrefix> <schema>http://www.openarchives.org/OAI/1.1/oai_marc.xsd</schema> </metadataFormat> </ListMetadataFormats>
List the metadata formats that can be disseminated from the record with unique identifier oai:arXiv:hep-th/0101001. The identifier, however, does not exist and therefore, the response does not contain a metadataFormat container. [URL shown without encoding for better readability].
http://an.oa.org/OAI-script?
verb=ListMetadataFormats&identifier=oai:arXiv:hep-th/0101001
<?xml version="1.0" encoding="UTF-8"?> <ListMetadataFormats
xmlns="http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats http://www.openarchives.org/OAI/1.1/OAI_ListMetadataFormats.xsd"> <responseDate>2001-06-01T19:20:30-04:00</responseDate> <requestURL>http://an.oa.org/OAI-script?verb=ListMetadataFormats &identifier=oai%3AarXiv%3Ahep-th%2F0101001</requestURL> </ListMetadataFormats>
This verb is used to harvest records from a repository. Optional arguments permit selectivity of the harvesting - based on the membership of records in a specific Set in the repository or based on their modification, creation, or deletion within a specific date range.
| A XML schema for validating the response is as follows: |
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:oai="http://www.openarchives.org/OAI/1.1/OAI_ListRecords"
targetNamespace="http://www.openarchives.org/OAI/1.1/OAI_ListRecords"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<annotation>
<documentation>
Schema to verify validity of responses to ListRecords OAI-protocol request.
This Schema validated at http://www.w3.org/2001/03/webdata/xsv on 2001-05-07
with XSV XSV 1.189/1.95 of 2001/05/07 08:38:12
</documentation>
</annotation>
<element name="ListRecords" type="oai:ListRecordsType"/>
<!-- response to ListRecords-request -->
<!-- this response may contain an optional resumptionToken -->
<complexType name="ListRecordsType">
<sequence>
<element name="responseDate" minOccurs="1" maxOccurs="1" type="dateTime"/>
<element name="requestURL" minOccurs="1" maxOccurs="1" type="anyURI"/>
<element name="record" minOccurs="0" maxOccurs="unbounded"
<simpleType name="statusType"> <restriction base="string"> <enumeration value="deleted"/> </restriction> </simpleType> </schema> |
| This Schema is available at http://www.openarchives.org/OAI/1.1/OAI_ListRecords.xsd |
http://an.oa.org/OAI-script?
verb=ListRecords&from=1998-01-15&set=physics:hep&metadataPrefix=oai_rfc1807
<?xml version="1.0" encoding="UTF-8"?> <ListRecords
xmlns="http://www.openarchives.org/OAI/1.1/OAI_ListRecords"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_ListRecords http://www.openarchives.org/OAI/1.1/OAI_ListRecords.xsd"> <responseDate>2001-06-01T19:20:30-04:00</responseDate> <requestURL>http://an.oa.org/OAI-script?verb=ListRecords
&from=1998-01-15&setSpec=physics%3Ahep
&metadataPrefix=oai_rfc1807</requestURL> <record> <header> <identifier>oai:arXiv:hep-th/9901001</identifier> <datestamp>1999-12-25</datestamp> </header> <metadata> <rfc1807
xmlns="http://info.internet.isi.edu:80/in-notes/rfc/files/rfc1807.txt" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=
"http://info.internet.isi.edu:80/in-notes/rfc/files/rfc1807.txt http://www.openarchives.org/OAI/1.1/rfc1807.xsd">
<bib-version>v2</bib-version>
<id>hep-th/9901001</id> <entry>January 1, 1999</entry>
<title>Investigations of Radioactivity</title> <author>Ernest Rutherford</author> <date>March 30, 1999</date> </rfc1807> </metadata> <about> <dc xmlns="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://purl.org/dc/elements/1.1/ http://www.openarchives.org/OAI/1.1/dc.xsd"> <publisher>Los Alamos arXiv</publisher> <rights>Metadata may be used without restrictions as long as the oai
identifier remains attached to it.</rights> </dc> </about> </record> <record> <header> <identifier>oai:arXiv:hep-th/9901004</identifier> <datestamp>1999-12-26</datestamp> </header> </record> <record status="deleted"> <header> <identifier>oai:arXiv:hep-th/9901007</identifier> <datestamp>1999-12-21</datestamp> </header> </record> </ListRecords>
This verb is used to retrieve the set structure in a repository.
| A XML schema for validating the response is as follows: |
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:oai="http://www.openarchives.org/OAI/1.1/OAI_ListSets"
targetNamespace="http://www.openarchives.org/OAI/1.1/OAI_ListSets"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<annotation>
<documentation>
Schema to verify validity of responses to ListSets OAI-protocol request.
This Schema validated at http://www.w3.org/2001/03/webdata/xsv on 2001-05-07
with XSV XSV 1.189/1.95 of 2001/05/07 08:38:12
</documentation>
</annotation>
<element name="ListSets" type="oai:ListSetsType"/>
<!-- this response may contain an optional resumptionToken -->
<complexType name="ListSetsType">
<sequence>
<element name="responseDate" minOccurs="1" maxOccurs="1" type="dateTime"/>
<element name="requestURL" minOccurs="1" maxOccurs="1" type="anyURI"/>
<element name="set" minOccurs="0" maxOccurs="unbounded" type="oai:setType"/>
<element name="resumptionToken" minOccurs="0" maxOccurs="1" type="string"/>
</sequence>
</complexType>
<!-- each set in the list consists of a setSpec and a pretty name -->
<complexType name="setType">
<sequence>
<element name="setSpec" minOccurs="1" maxOccurs="1" type="oai:setSpecType"/>
<element name="setName" minOccurs="1" maxOccurs="1" type="string"/>
</sequence>
</complexType>
<simpleType name="setSpecType">
<restriction base="string">
<pattern value="([A-Za-z0-9])+(:[A-Za-z0-9]+)*"/>
</restriction>
</simpleType>
</schema>
|
| This Schema is available at http://www.openarchives.org/OAI/1.1/OAI_ListSets.xsd |
http://an.oa.org/OAI-script?
verb=ListSets
The following response indicates a set hierarchy with two top level sets - Oceanside and ValleyView - each with two sets within them.
<?xml version="1.0" encoding="UTF-8"?> <ListSets
xmlns="http://www.openarchives.org/OAI/1.1/OAI_ListSets"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/OAI_ListSets http://www.openarchives.org/OAI/1.1/OAI_ListSets.xsd"> <responseDate>2001-06-01T19:20:30-04:00</responseDate> <requestURL>http://an.oa.org/OAI-script?verb=ListSets</requestURL> <set> <setSpec>Oceanside</setSpec> <setName>Oceanside University of Nebraska</setName> </set> <set> <setSpec>Oceanside:CompEnt</setSpec> <setName>Department of Computational Entomology</setName> </set> <set> <setSpec>Oceanside:MetPhen</setSpec> <setName>Department of Metaphysical Phenomenology</setName> </set> <set> <setSpec>ValleyView</setSpec> <setName>Valley View University of Florida</setName> </set> <set> <setSpec>ValleyView:Fren</setSpec> <setName>Department of Frenetics</setName> </set> <set> <setSpec>ValleyView:Hist</setSpec> <setName>Department of Histrionics</setName> </set> </ListSets>
http://another.oa.org/OAI-script?
verb=ListSets
The response shows that the repository does not have a set hierarchy.
<?xml version="1.0" encoding="UTF-8"?> <ListSets
xmlns="http://www.openarchives.org/OAI/1.1/OAI_ListSets"
xmlns:xsi="http://w