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.
OpenURL COinS:
<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&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 COinS Generator site is available. 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) strip out empty span elements, causing the loss of COinS data. A comment or hard space in the span will prevent this from happening.
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" MUST be capitalized. 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 and version information is added, a usable OpenURL is created.
The OpenURL Standard defines the ContextObject with a great deal of flexibility in the ways that entities can be represented. For example,metadata objects to be transported "by-reference" using a network pointer and "by-value" in an encoded blob. This flexibility can introduce complexities for processing agents.
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 the following guidelines for ContextObjects in Span:
By following these guidelines, the OpenURL metadata packages can be be easily adapted for use with ANY resolver system, including those which understand only the older version.
This specification can also be applied to XHTML. For compatibility with HTML browsers, empty span elements should NOT be minimized. (see the XHTML Compatibility Note C3)
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 the use of span made it easier for processors to leave the ContextObject in place for subsequent processors to use.
Another approach to this problem would have been to use namespaced xml embedded in xhtml, for example <dc:creator>Shakespeare</dc:creator>. The biggest drawback to namespaced xml was uncertainty about being able to access data from javascript. Data in namespaced xml IS NOT available to javascript in at least one version of Internet Explorer. There was also the concern about strict conformance with HTML (as opposed to XHTML). So using SPAN buys us the prospect that COinS processing can be available in a wider variety of HTML processors, which seemed worthwhile.
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 class attribute can contain a space separated list of class names, so a COinS laden span element will contain class="Z3988" or perhaps class="Z3988 anotherclass athirdclass etc".
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.span, and syntax for class, made capitalized Z a MUST. Fixed other nits noted by Alf Eaton. added links, including citebase. lifted abstract from Dan Chudnov's introducing coins page. Added indexThis document has been written and edited by Eric Hellman, OCLC New Jersey. 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, Steve Toub, Herbert van de Sompel, Tom Ventimiglia and Chris Zagar, none of whom should be blamed for any shortcomings of this document.
This website is hosted by OCLC New Jersey.

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