Ted Lawless

Free text citations to library content


On October 11, CrossRef announced a new metadata search service and API. Jonathan Rochkind has a nice writeup on the possibilities of integrating such a service with library software. Jonathan writes the following in reference to the "links" feature which will take an unstructured citation and attempt to resolve it to a DOI:

Looks like they also have an API for submitting a free-form citation, and getting back matches with DOI! It’s sort of a ‘holy grail’ for me to provide a service where users can paste in a free-form citation, and get to our access/delivery options.

I've been doing a lot of work with delivery services lately and also see the value in being able to match raw text citations to actual content the library has licensed. So I took Jonathan's statement as a bit of a challenge and an opportunity to explore the CrossRef API.


I put together a demo application that takes input from users, sends it to the CrossRef service, and, if a DOI is found, sends that DOI off to the 360Link link resolver API to find a full text link in a library. The screencast below shows two examples.

The code for the demo is available on Github. The server side code is minimal and built with Flask, the Python microframework for building web applications. On the client side, jQuery and jQuery templates pull in the data and render it to the user.

Recap & future directions

The user interface and interaction could certainly stand for some improvement. The citations that are resolvable are limited to what's in CrossRef's database, see their list of disclaimers. But - this work indicates building a service like this for library users is feasible and will be increasingly more valuable as services like these develop.

CrossRef apparently doesn't parse the free text into a formatted citation but constructs a query based on the free text against their database. For further development, it would be worthwhile to try a similar approach with the Summon API and see if it could be possible to build a similar service on top of that data, since it contains a larger set of publications and articles.


If you are short on citations to try, here are a few I pulled from a dissertation. The third citation is to a working paper and doesn't resolve to a DOI via CrossRef so the interface offers a link to a search in Google Scholar, which does return a PDF to the paper.

Christiano, L. J., M. Eichenbaum, and C. L. Evans (2005): “Nominal Rigidities and the Dynamic Effects of a Shock to Monetary Policy,” Journal of Political Economy, 113(1), 1—45.

Clarida, R., J. Gali, and M. Gertler (1999): “The Science of Monetary Policy: A New Keynesian Perspective,” Journal of Economic Literature, 37(4), 1661—1707.

Collard, F., and H. Dellas (2004): “The new Keynesian model with imperfect information and learning,” Working Paper, University of Toulouse.

Another feature of the demo app to note is that you can append a library's Serials Solutions code to the URL and the demo will search holdings for that library. For example, this link will search the University of Victoria holdings. John Durno of Victoria has an article in the most recent Code4Lib journal on some of their work with the 360Link API and delivery services.