Blog

Machine Readable: Are We There Yet?

Tony Hammond

Tony Hammond – 2008 November 19

In Metadata

The guidelines for Crossref publishers (“DOI Name Information and Guidelines” - [PDF, 210K][1]) has this to say in “Sect. 6.3 The response page” regarding the response page for a DOI:

“A minimal response page must contain a full bibliographic citation displayed to the user. A response page without bibliographic information should never be presented to a user.”

which would seem to be all fine and dandy. But if that user is a machine (or an agent acting for a user) they’ll likely be out of luck as the metadata in the bibliographic citation is generally targeted at human users.

So here’s a quick and dirty implementation of what a machine readable page could look like using RDFa. (The demo uses Jeni Tennison’s wonderful [rdfQuery][2] plugin which I [blogged][3] about earlier.)

Clicking the DOI link below will bring up in a sub-window a bibliographic citation which might be found in a typical DOI repsonse page. If you now click the “Read Me” link you should see an alert message which presents the bibliographic metadata as a complete RDF document (in a simple N3 – or Notation3 – format). This document is assembled on the fly by rdfQuery using the RDFa markup embedded in the page.

See the “View Source” link to list the actual XHTML markup and the RDFa properties which have been added. And note also that some of the properties are partially “hidden” to the human reader, e.g. a publication date is given in year form only whereas the machine record has the date in full, and some of the properties are fully “hidden”: print and electronic ISSNs, issue number, ending page, etc.

(Continues below.)

rdfQuery

Tony Hammond

Tony Hammond – 2008 November 17

In Metadata

Whaddya know? I was just on the point of blogging about the real nice demo given by Jeni Tennison at last week’s SWIG UK meeting at HP Labs in Bristol of rdfQuery (an RDF plugin for jQuery - the zip file is here). And there today on her blog I see that she has a full writeup on rdfQuery, so I’ll defer to the expert. :~) All I can really add to that is that rdfQuery is a pretty darn cool way to add and manipulate RDFa using jQuery.

PRISM 2.1

Tony Hammond

Tony Hammond – 2008 October 24

In Metadata

Yesterday a new PRISM spec (v2.1) was released for public comment. (Comment period lasts up to Dec. 3, ’08.) Changes are listed in pages 8 and 9 of the Introduction document. Some highlights: New PRISM Usage Rights namespace Accordingly usage of prism:copyright, prism:embargoDate, and prism:expirationDate no longer recommended New element prism:isbn introduced for book serials An updated mod_prism RSS 1.0 module is available which lists all versions of PRISM specs including the forthcoming v2.

XMP Marches On

Tony Hammond

Tony Hammond – 2008 October 20

In XMP

For those who may be interested in the progress of XMP, Adobe’s Gunar Penikis has just announced 1 two new releases of XMP SDKs: XMP Toolkit 4.4 (with support for new file formats), and FileInfo SDK (for customizing CS4 UIs). More importantly, though, may be the new edition of the XMP spec - see here, which is bumped from a modest 112 page document to a 3-parter at 199 pages.

Yer Basic One-Liner

Tony Hammond

Tony Hammond – 2008 October 14

In Handle

Here’s your basic one-line handle client (all of it) for the browser: OpenHandle.Util().getHandleData("10.1038/nature05826", function(data) { alert(OpenHandle.Util().helloWorld(data)); }); Can’t see how to make that much shorter (bar tossing spaces). But here’s one attempt (shorter though now it’s not strictly a one-liner): var u = OpenHandle.Util(); u.getHandleData("10.1038/nature05826", function(_) { alert(u.helloWorld(_)); }); Here I’ve used two utility convenience methods from the OpenHandle client library: OpenHandle.Util().getHandleData(handle, callback, [server]) OpenHandle.Util().helloWorld(JSON) You will though need to include a couple of libraries: openhandle.

OpenHandle JavaScript API

Tony Hammond

Tony Hammond – 2008 October 08

In Handle

(Click figure for PDF.) I just posted updated versions of the OpenHandle JavaScript Client Library (v0.2.2) and Utilities (v0.2.2) to the project site. Mainly this post is just by way of saying that there’s now a “cheat sheet” for the API (see figure above, click for PDF) which will give some idea of scope. The JavaScript API attempts to reflect the Java Client Library API for Handle data structures, and has in excess of 100 methods.

Handle Clients #1, #2, #3

Tony Hammond

Tony Hammond – 2008 October 01

In Handle

Three alternate clients for viewing a Handle (or DOI): #1 (sky - text), #2 (black - tuples), #3 (white - cards) - the image above is clickable. When Handle clients become JavaScript-able, one really can have it one’s own way. (The JavaScript library is here, the demo service interface here - the code for setting up a new service interface can be got from the OpenHandle project.) Noted: As of February 2023, most of the links in this blog are not longer available.

The Last Mile

Tony Hammond

Tony Hammond – 2008 October 01

In Handle

The figure above (click to enlarge) is probably self-explanatory but a few words may be in order. With no end-to-end delivery of data from the Handle System to the user’s application (browser or reader), getting data out of the Handle System has traditionally meant using the Web (ie. HTTP) as a courier - in effect, this is the “last mile” for Handle data. Typically an upstream (Handle) client provides services to the user.

Look Ma, No Plugins!

Tony Hammond

Tony Hammond – 2008 September 22

In Handle

var f = function (OpenHandleJson) { var h = new OpenHandle(OpenHandleJson); var hv = h.getHandleValues(); for (var i = 0; i < hv.length; i++) { var v = new HandleValue(hv[i]); if (v.hasType(‘URL’)) { print(v.getData()); } else if (v.hasType(‘HS_ADMIN’)) { var a = new AdminRecord(v.getData()); print(a.getAdminPermissionString()) } } } "And that, gentlemen, is how we do that." - Apollo 13 Following on from my earlier Client Handle Demo post, this entry is just to mention the availability of a port of (part of) the Handle client library (in Java) to JavaScript: openhandle-0.

Crossref is hiring an R&D software engineer

Geoffrey Bilder

Geoffrey Bilder – 2008 September 18

In News Release

Crossref is hiring an R&D software engineer to work in our Oxford office. This is a fantastic opportunity to work on wide range of projects that promise to revolutionize scholarly publishing.