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.



OOMRef-J is a Java implementation of ANSI/NISO Z39.88 – The OpenURL Framework for Context-Sensitive Services.

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 page describes research activities involving the OpenURL standard. As participants in the OpenURL Maintenance Agency, OCLC Research also supports the OpenURL Resolver Registry.



At the time this implementation was written, no other open-source OpenURL implementation could be found that recognized the protocol's potential beyond linking to scholarly publications. The abstractions in the new specification allow for an infinite range of possible uses, however. This implementation models its Java classes directly on the OpenURL terminology to create a framework to process OpenURL requests without assuming an particular profile.


OOMRef-J has used as the framework for LANL’s djatoka and OCLC’s WorldCat Registry. The former stretches OpenURL beyond its scholarly content roots to deliver an image server along with a variety of image processing services. 

The latter is a RESTful digital resource collection management system supporting create, read, update, and delete operations supporting delivery of a variety of variant representations. Strictly speaking, though, the latter is not an “OpenURL application” because of limitations in the Registry schemas for encoding descriptors in the path component of URIs. Despite this limitation, OpenURL framework proved to be a flexible and natural model for handling every use case that arose.



OpenURL 1.0

The OpenURL 1.0 protocol is a generalization of the OpenURL 0.1 protocol used to solve the appropriate-copy problem for scholarly publications. The goal of this implementation is to support the full range of abstractions present in the 1.0 specification that takes it far beyond its 0.1 roots.

Although OpenURL is generally viewed as a Web service protocol, this implementation decouples the Servlet front-end from the core functionality so it can be embedded in the architecture of broader systems. For example, WikiD is a thin layer on top of an embedded OpenURL resolver.

Research goals

Most recent updates: Page content: 2018-04-18

This activity is part of ResearchWorks. Use of our prototypes is subject to OCLC's terms and conditions. By continuing past this point, you agree to abide by these terms.

Try the online demo

This “Hello World” prototype demonstrates the handling of a simple OpenURL request using a basic Referent and ServiceType descriptor.