Holdings for All
Haven’t had any time to work on the unAPI project I have in mind, but in conversation with Aaron Lav on #code4lib the other day, some aspects have come into clearer focus. What I’m after is a universal service allowing me to deploy my local library’s holdings for any bibliographic item in any web page I happen to visit. My model for this is Book Burro (the site seems to be down): the Firefox extension and Greasemonkey script that elegantly displays a little drop-down overlay in the corner of Amazon and other bookseller pages. The overlay contains other access options, based on the ISBN it gleans from the page you’re viewing: it shows prices from other booksellers, as well as yes/no holdings statements for selected libraries. In this it’s behaving like an OpenURL resolver. What I’m after is the ability to provide such a resolver with a neat little statement of holdings, with call numbers, suitable for display.
Aaron is after something similar, to have a Book Burro-like function that makes use of xISBN to look for other editions, and a FRBRish display that makes it easy to see how the various editions differ (if, for example, you start with the ISBN for the 1995 edition, the display makes it easy to see that the library has the 1980 edition at a different call number).
This looks like such a universally useful service that it makes sense to me to make it part of the library’s API and deliver the goods in a standard way, so that the holdings information can appear wherever ISBNs are found on the web. The function really belongs to the library’s OpenURL resolver rather than the OPAC; certainly we want to be able to get to the ILL form if the library doesn’t hold this item.
I’m thinking of two ways of deploying this information. In some cases,
the web page will be designed with the intention of incorporating this
holdings data, so it will make an empty div
available, with
instructions to fetch the holdings and display them here. In other
cases, the source page would be unaware of the library holdings service,
and a more Book Burro-like approach would make sense: an overlay that
doesn’t disturb the format of the original page.
To achieve this on the client side I’ve hung my hat on unAPI for the time being, but that’s not really where this functionality belongs. If we had a widely-used citation microformat that mapped well to OpenURL, I could have a browser plugin that scooped up these citations and made them dance for me. And of course plain old COinS would do.
An open question is the format that the holdings should be delivered in. MARC-XML? Some flavour of Z39.50 holdings? Some simplified subset of these? An XHTML microformatted snippet of some sort?
I would believe most in a small XHTML microformat, but that is just gut feeling; I have not dived deep in either option yet. On peeking at xISBN a while ago, a naïve BookBurro implementation (lookig up all related ISBNs and asking all services for listings of them, rendering M*N+1 remote lookups for every new visited book peeked on) seemed a bit steep and wasteful. Some nice UI design, though, and a multi-step process to do something similar to what Jon Udell does in his Amazon+xISBN hack might make a really neat end result. I haven't had the time to play with that yet, but a neat HTML mockup based on the present BookBurro UI would probably spark me into more action, at least if the mockup has a nice feel to it. The UI design bit usually is what stalls me; the technical bit is just about writing code to do the real work.
There's a nice site that I also like to check when ordering from Amazon, Pricenoia. It compares a price at every Amazon international store (.com, ca, uk, de, jp, fr), including shipment costs to the user country. It's very useful for international users. What I like is the bookmarklet, when looking at a product you press it an get the price comparison. An it seems to be using xISBN acording to their blog.