Andy Powell, UKOLN, University of Bath
Jeff Young, OCLC
Thom Hickey, OCLC
$Id: intro.html,v 1.9 2004/02/16 08:34:00 lisap Exp $
The PURL-based Object Identifier (POI)  is a simple specification for resource identifiers based on the PURL system . The use of the POI is closely related to the use of the Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH)  and with the OAI identifier format (oai-identifiers)  used within that protocol.
The primary intention of the POI is as a relatively persistent identifier for resources that are described by metadata 'items' in OAI-compliant repositories. Where this is the case, POIs are not explicitly assigned to resources - a POI exists implicitly because an OAI 'item' associated with the resource is made available in an OAI-compliant repository. However, POIs can be explicitly assigned to resources independently from the use of OAI repositories and the OAI-PMH if desired.
All POI assigners are strongly encouraged to configure the PURL system to resolve their POIs. This document describes three options for doing this.
Where the POI assigner supports resource URLs based on the local-identifier in the POI, register a PURL Partial Redirect  as follows:
/poi/namespace-identifier/ ---> http://www.example.org/docs/
where 'http://www.example.org/docs/' is the first part of the URL for all the resources identified by POIs with the particular namespace-identifier. For example, this approach could be used to configure the PURL system to issue an HTTP-redirect from a POI of the form:
to a URL of the form:
(the URL of the resource identified by the above POI). Note that such an approach may link directly to the required resource or may link to a 'local' resolver service that issues a second HTTP-redirect to the resource.
As a more concrete example, the Resource Discovery Network supports URLs of the form:
is an RDN oai-identifier. Therefore, the RDN has registered the following PURL partial redirect:
/poi/rdn/ ---> http://www.rdn.ac.uk/record/redirect/oai:rdn:
so that the following POI works as expected:
Note that this approach must only be used if consistent URLs are supported for all the POIs that use the given POI namespace-identifier.
This is a special case of option 1, using a resolver based on an existing OAI repository.
Where the POI assigner offers an OAI-compliant repository, and has control over the software used to deliver that repository, the repository can be modified to support an additional request, Redirect. Note that this is not an OAI-PMH verb and must not be offered at the repository's 'base URL'. The Redirect request should be supported at a separate 'base URL'. The Redirect request takes a single identifier argument. The Redirect request should issue an HTTP-redirect to an appropriate URL for the resource corresponding to the requested item. Typically this will be the first URL listed in the dc:identifier element in the oai_dc record for the requested item. For example, a request for
will result in an HTTP-redirect to one of the dc:identifiers in the oai_dc record for that item. (Note that the above URI has been split across two lines for readibility.)
The POI assigner should register a PURL Partial Redirect of the form:
/poi/namespace-identifier/ ---> baseURL?verb=Redirect&identifier=oai:namespace-identifier:
For the example above, the PURL Partial Redirect would be:
/poi/example.org/ ---> http://www.example.org/oai/extension? verb=Redirect&identifier=oai:example.org:
This will result in
being redirected to
and will, in turn, result in an HTTP-redirect to the target resource.
As a more concrete example, the OAI repository software for OCLC's Experimental Thesis Catalog has been modified to support the Redirect verb and the following PURL Partial Redirect has been registered:
/poi/xtcat.oclc.org/ ---> http://alcme.oclc.org/xtcat/servlet/OAIHandler/extension? verb=Redirect&identifier=oai:xtcat.oclc.org:
(Note that the URLs above have been wrapped across multiple lines for readibility). This allows the following POIs to work as expected:
http://purl.org/poi/xtcat.oclc.org/OCLCNo/ocm21004665 http://purl.org/poi/xtcat.oclc.org/OCLCNo/ocm29814005 http://purl.org/poi/xtcat.oclc.org/OCLCNo/ocm32717818
Note that this approach must only be used if the Redirect request at the 'base URL' works for all the POIs that use the given POI namespace-identifier. This may not be the case if OAI items having oai-identifiers with the same namespace-identifier are stored across multiple repositories.
Register a separate PURL for each POI, for example:
http://purl.org/poi/example.org/12345-67890 ---> http://www.example.org/docs/12345-67890.pdf
This option is only recommended where a small number of POIs are being assigned.
[distributed systems] [UKOLN]