Lightweight Library Mashup Patterns
Tony Hirst
Whilst many people working in the area of web technologies are likely to be familiar with the term "mashup", a combination of data, functionality and presentation components from different sources to create something new, very few will admit to being knowledgeable about how to actually create them
In the world of the online academic library, mashups refer to combinations of library services, systems and data, potentially in combination with other third party applications, services and websites, to provide novel services and interfaces that were potentially never anticipated by the system designers. For example, one of the earliest and best known library mashups is John Udell's Library Lookup service, which allowed visitors to the Amazon website to annotate Amazon book pages with a link to the corresponding catalogue page on their local library website. In the University of Cambridge context, taking a list of the addresses of separate library locations and displaying them on a Google map would be another example of a lightweight mashup.
As more and more services offer interoperable machine level interfaces (in the jargon, "APIs"), the number of possible combinations of these services increases rapidly. Mashups provide a way of producing rapid, proof-of-concept prototypes through combining data from one or more independent sources with off-the-shelf presentation layer components such as maps, timelines, interactive charts and visualisation toolkits. If required, 'middleware' components such as filters, aggregators and 'glue logic' can be used to connect the data sources to the presentation layer, as well as providing machine level presentation layers (that is, APIs) of their own.
The aim of this project is to develop a series of abstract 'mashup patterns' that are particularly appropriate to a library context and then show how they can be implemented using freely available online web tools and little or no programming experience.
The patterns will be developed in part through consultation with, and observation of, Library staff and patrons. A particular focus will be on identifying classes of repetitive tasks, or tasks that require a repeated action, that may be wholly or partially automated using mashup techniques. The project will also explore how mashup patterns at the systems level can be used to identify value adding services arising from the interoperability of legacy systems once they are provided with an API
A secondary strand to the project will explore how library website analytics data can be exploited in mashup context.
It is intended that this project will deliver:
- a suite of mashup patterns relevant to the HE library service*;
- a suite of tutorials demonstrating (as far as possible) in a 'programming free way' how to implement the mashup patterns using free, online webservices*;
- at least one local workshop on Library mashups
- dissemination via OUseful.info, the blog..., any future Mashed Library workshops and JISC developer days * these deliverable will be published in a public blog format, as an uncourse on library mashups.


