stable version 1.0
Recently, there has been very compelling work by thought leaders in the library information community focusing on the possibilities of embedding citation metadata in html web pages using OpenURL. (for example, see the GCS-PCS list )
Citations to other works are familiar to any scholar- they ground a work of scholarship to a field of study, put new research into context, and often give credit where credit is due. The essence of citation is to identify the previous work with a set of metadata- author, title, and particulars of publication. The idea behind OpenURL is to provide a web-based mechanism to package and transport this type of citation metadata so that users in libraries can more easily access the cited works. Most typically, OpenURL is used by subscription-based abstracting and indexing databases to provide linking from abstracts to fulltext in libraries. A institutional subscription profile is used together with a dynamic customization system to target links at a user's OpenURL linking service.
Although the institutional profile method of providing links works very well in many circumstances, there are many situations in which citation metadata embedded in static documents would be very useful. For example, Open Access, public domain, and pay-per-use publishers typically do not have "subscribers" and have difficulty discovering a user's institutional affiliation which is needed to make an OpenURL. Embedded metadata can be used by client-side software to add links to non-subscription based content. This method of providing OpenURL links to users by combining embedded metadata with client side link activation has been called "latent OpenURL".
Embedded citation metadata in web content may be useful in many other ways. It's not hard to imagine specialized indexing and search systems which make use of the embedded information to deliver new types of information retrieval services. "Semantic Web" systems could use embedded metadata to extract knowledge from large collections of documents.
The possibility to embed OpenURL citation metadata in conventional, static HTML documents has been around for a while, but implementation has been almost nonexistent. For a number of reasons, this situation may be rapidly changing.
What has been missing so far is agreement (or even awareness) among the diverse actors on the best way to embed OpenURL citation metadata in conventional HTML. Example implementations have been reported by Van de Sompel (DLIB) and by Chudnov et al. (Ariadne) . The intent of the current document is to distill the essence of previous proposals into the simplest convention necessary for the majority of applications to make use of an OpenURL embedded in HTML.
The goal is to embed citation metadata into html in such a way that processing agents can discover, process and make use of the metadata. Since an important use of this metadata will be to allow processing agents to make OpenURL hyperlinks for users in libraries (latent OpenURL), the method must allow the metadata to be placed any where in HTML that a link might appear. In the absence of some metadata-aware agent, the embedded metadata must be invisible to the user and innocuous with respect to HTML markup. To meet these requirements, the span element was selected. The NISO OpenURL ContextObject is selected as the specific metadata package. The resulting specification is named "ContextObject in SPAN" or COinS for short.
To add a COinS to an HTML document, put a NISO 1.0 "ContextObject" into the "title" attribute of an HTML span element with class attribute set to "Z3988". A brief guide to the OpenURL 1.0 ContextObject is available. Example:
OpenURL COinS:
<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.issn=1045-4438"></span>
|
This COinS is placed directly below this line:
A COinS processing agent might use the embedded metadata to place a link here, otherwise, the line above should be empty.
There may be many ways that embedded metadata may be used, but in general, the recommended procedure is as follows:
span elements with class="Z3988".
span extract the value of the title attribute.
class and title values of
the span element. This allows for different actions to be taken
on the same element in a variety of potential scenarios.
A discussion of how COinS in HTML should be processed in the latent OpenURL application is here.
The example above shows an empty span tag. In the absence of further processing, nothing will be visible to the user. The page is designed to gracefully accommodate a bit of added text or a button image to anchor an added link. Alternatively, the web page might have default text inside the span for users without access to activating agents. Some HTML checkers, such as HTML Tidy, will issue warnings about empty span elements- a comment or hard space in the span will satisfy these checkers if this is a concern
span element?
A draft of this proposal used the HTML Anchor element instead of span. The Anchor element proved to be problematic in certain situations, and it was felt that applications other than linking would prove to be important.
class and title attributes?
Only a limited number of attributes can be attached to span in valid HTML Documents. ID cannot be used for OpenURL data because it is required to be unique in a document.
The official designator for the NISO OpenURL standard is Z39.88-2004; the year and punctuation are removed in the present specification. This is because web browser software does not recognize css classes with punctuation in the class names. If processing agents require version information they can look inside the ContextObject. The "Z" should be capital. Browser software seems to distinguish the lower case version. "OpenURL" as an alternative to "Z3988" was considered, but "Z3988" was considered to be extremely unlikely to be chosen for any other application, and compatibility was judged to trump other considerations.
During the standardization of OpenURL, a separation was made between the data package, called the ContextObject, and the "transport". In its simplest form, which is use here, the ContextObject is just a series of key-value pairs. When joined to an http baseURL, a usable OpenURL is created.
To make it easier for processing agents to deal with the complexities of having to deal with multiple OpenURL data formats, this convention STRONGLY RECOMMENDS use of a single data format from the NISO 1.0 version of OpenURL. By using the the simplest part of the NISO standard, the OpenURL metadata packages can be be easily adapted for use with ANY resolver system, including those which understand only the older version. For Compatibility, ContextObjects in SPAN are restricted to using the "in-line ContextObject format" and "in-line metadata" for the referent. (In addition to transporting metadata in the key-value pairs of a query string, the full 1.0 OpenURL standard allows metadata objects to be transported "by-reference" using a network pointer and "by-value" in an encoded blob; links made from ContextObject that use these forms will not work with the widely deployed earlier version of OpenURL.)
This specification can also be applied to XHTML.
In this section we list COinS implementations
Note that, for clarity, our displayed examples have not converted ampersand to "&" as they should.
span element remains after activation.
This document has been written and edited by Eric Hellman, Openly Informatics. It is based on the ideas, suggestions and comments of a number of people, including Peter Binkley, Dan Chudnov, Matthew Cockerill, Karen Coyle, Leigh Dodds, Thomas Dukleth, Alf Eaton, Jeremy Frumkin, Tony Hammond, Peter Murray, Ross Singer, Herbert van de Sompel and Tom Ventimiglia, none of whom should be blamed for any shortcomings of this document.

This work is licensed under a Creative Commons Attribution-NoDerivs 2.5 License.