Please note: This experimental research project has concluded.
The research prototype application is no longer supported or maintained by OCLC services, and information on this page is provided for historical purposes only. Some portion of this content may be out-of-date and include broken links. Please visit the OCLC Research website to learn more about our current research.

Artifacts from th OpenURL Registry project have been archived to

OpenURL Registry


The OpenURL Framework Standard defines an architecture for creating OpenURL Framework Applications. An OpenURL Framework Application is a networked service environment, in which packages of information are transported over a network. These packages have a description of a referenced resource at their core, and they are transported with the intent of obtaining context-sensitive services pertaining to the referenced resource. To enable the recipients of these packages to deliver such context-sensitive services, each package describes the referenced resource itself, the network context in which the resource is referenced, and the context in which the service request takes place. This Standard specifies how to construct these packages as Representations of abstract information constructs called ContextObjects.

To this end, the OpenURL Framework Standard defines the following core components: Character Encoding, Serialization, Constraint Language, ContextObject Format, Metadata Format, and Namespace. In addition, this Standard defines Transport, a core component that enables communities to specify how to transport ContextObject Representations. Finally, this Standard specifies how a community can deploy a new OpenURL Framework Application by defining a new Community Profile, the last core component. This Standard defines the OpenURL Framework Registry and the rules that govern the usage of this Registry. The OpenURL Framework Registry contains all instances of all core components created by communities that have deployed OpenURL Framework Applications. This Standard defines and registers the initial content of the OpenURL Framework Registry, thereby deploying two distinct OpenURL Framework Applications. ANSI Approval Date: 04/15/05 ISBN (10): 1-880124-61-0 OpenURL Registry:



OpenURL 0.1 originated as a mechanism to link users to distributed licensed scholarly content. OpenURL 1.0 generalized these principles by defining an extensible request framework. The registry for this framework allows communities to extend the model to cover new use cases.



The NISO Z39.88-2004 (OpenURL) Registry was implemented as an OAI-PMH repository with an XSL Stylesheet reference included in the responses. Returning XML+XSLT satisfied the requirement for both human (browser) and automated use. OAI-PMH URLs are not "Cool URIs," though, so a PURL partial redirect was created to produce this effect.

The OpenURL Registry

The OpenURL Registry application was developed to support the Trial Use period of the NISO AX Standard Committee's registry specification (PDF:1.3MB/121pp.). The OpenURL is a protocol for interoperability between an information resource and a service component that offers localized services in an open linking environment. It is in effect an actionable URL that transports metadata or keys to access metadata for the object for which the OpenURL is provided. (

The OpenURL Registry application supports the generalization of OpenURL from a fixed framework for linking to web-based scholarly information sources to an abstract (PDF:1.3MB/121pp.) framework for linking to the web in general. The OpenURL Registry contains properties that are fundamental to creating concrete representations of OpenURL ContextObjects and methods to transport them.

Although there is no direct relationship or dependency between the Open Archives Initiative (OAI) and OpenURLs, it was convenient to implement the registry specification using a novel application of OAI.

OAI is generally thought of as a tool for the automated harvesting of metadata, but this registry demonstrates that an OAI repository can be useful on its own, independent of the harvesting function.

This approach involved three innovations:

  1. The first innovation is based on observations (PDF:346K/4pp.) made by Herbert Van de Sompel that OAI is capable of disseminating not only the metadata about a registered item, but also the XML content of the registered item itself via an alternative metadata format option. This includes registered XML Schemas and XHTML specification documents.

  2. The second innovation is the inclusion of XSLT stylesheet references in OAI responses. These references allow web browsers to render OAI responses into HTML for display to users. Automated processes, including OpenURL mechanisms as well as OAI harvesters, will ignore the XSLT reference and process the XML responses directly. XSLT thus allows both human and automated interaction from the same HTTP response.

    It is particularly interesting to note that the OpenURL registry is useful for human interaction merely by rendering the simple and limited set of OAI responses using XSLT.

  3. The third innovation is the use of Persistent URLs (PURLs) to create simple URLs that resolve to OAI GetRecord responses from the registry. Because these GetRecord responses are in XML and include an XSLT stylesheet, they are suitable for both web browser and automated use.

    So, instead of, users can use a PURL instead (



The OpenURL Registry was implemented using OAICat and the PURL server.

More Information





Phil Norman


Team Members

Jeff Young