Category Archives: mlibs

A tour of the m-biblio iPhone app

The current version of the iOS application allows you to:

  • Scan ISBN numbers for book details
  • Scan University Library barcodes for book and thesis details
  • Enter DOI numbers for papers and articles
  • Extract the title of a website
  • Manually add the details of books, papers and thesis
  • Export the references via email to Rich Text Format (RTF) or HTML
  • Support for the Chicago and Harvard reference styles

The application only supports those devices that have a camera that can auto-focus (iPhone 3GS, 4 and 4S and the iPad 3). We need a camera that can autofocus for barcode reading. It would be possible to have the application check the capabilities of the device and only have the ‘scan’ option appear if you have an appropriate device.

This rest of this post provides a tour of the user interface and the functionality of the application.

The Main Screen

The main screen of the application shows a scrollable list of captured references:

The main screen of the m-biblo application (Harvard)

By default the references are displayed in the Harvard style, but it is possible to switch to the Chicago style:

The main screen of the m-biblo application (Chicago)

You can edit the details of captured references or delete them completely:

Details of the paperDeleting a reference

If you have captured a large number of references you can search by keywords (author or title):

Search for references

Adding a Reference

The ‘Add’ icon on the top right of the main screen shows a new screen that allows you to add new references:

Add a new reference

For example, we can scan a University Library barcode or an ISBN barcode with the camera on the phone:

Scan a barcode

After a successful scan, the app will query the m-biblio service for bibliographic data:

Search for data

The end user can then modify the data (if they wish) before saving:

Details of a search

You can also type in a barcode number with a custom keyboard:

Enter a barcode numberDetails from entering a barcode number

For Digital Object Identifiers (DOIs) you can type in the reference:

Enter a DOI numberDetails from a DOI search

It would be better, in a future version of the app, if the DOI could be scanned in using some Optical character recognition (OCR) technique. The DOI numbers can be long and have a mix of numbers and characters which are prone to error when submitting on the iOS keyboard. For example, the DOI for J.C. Holt’s article on ‘Anglo-Norman Feudalism’ is ‘10.1111/j.1468-0289.1963.tb01721.x’.

You can also extract information about a website:

Enter a URLDetails from a Website

At the moment, you can only extract the title of a website. In the future, it would be nice to extract data from meta tags if they are relevant, such as details of authorship.

Exporting the references

On the main screen the “Share” button allows you to export the references that you have captured. You can only export data via an email attachment (although there is code to support BibServer). You choose a format (Harvard or Chicago) and whether or not you want an RTF file or HTML:

Send via emailChoose a styleChoose a formatChoose a format


The preferences for the panel allows you to choose which reference style should be used for displaying references within the application. It also allows you to determine what information you are willing to share with the m-biblio service: (1) a unique identifier for the app; (2) the details of the captured items, i.e. the barcode or DOI number; (3) the type of device you are using (iPhone, iPad etc.) and which version of the operating system.


What’s missing

The is missing a number of things:

  • The ability to manage references within collections. For example, you might have a collection for each assignment or task.
  • Support for Endnote – it is vital that you can export your references to existing bibliographical material.
  • More citation styles need to be supported and the ability to tweak the ones that are supported. For example, how many authors should be listed before et alias is used.
  • We support books, but not chapters within books.

Recent presentation at Mobile Technologies in Libraries event

Mike Jones recently gave a very good presentation on the MBiblio Project at a Mobile Technologies in Libraries event held in Birmingham. You can see Mike’s presentation on SlideShare:

There were lots of other interesting presentations given at the event. A list of these with links to presentations and content can be found on at

Sources of Bibliographic Data

For the app to work well it needs to reference reliable sources of bibliographic data. Already in progress is some code that is capable of pulling bibliographic data from the University’s library system Aleph via the XService API. But more are needed.

The question we need to answer is which sources to concentrate our efforts on in terms of 3rd party services to lookup ISBN numbers.

Initial feedback from members of the team and other developers in the University are as follows:

“I would rank Amazon below COPAC and British Library for bibliographic record accuracy as it is primarily for buying books which are in print, and the older out of print records are often sketchy ‘marketplace’ records.”
“Some 3rd party options.”


“I used COPAC and Amazon. However you ought to be able to use the British Library national bibliographic records now they’re open.”

These initial recommendations have given us a good starting point. We’ll discuss, test and feedback on findings in a later post.

M-Library Report Highlights Interesting Stats for Mobile Use in Libraries

By virtue of a discussion taking place on the  LIS-MMIT JISCMAIL list I recently found the M-Library Project ( which (to paraphrase) is a collaborative project between the University of the Highlands & Islands (UHI) and Edinburgh Napier University.  Funded by the Scottish Library and Information Council (SLIC) it examines user attitudes towards the creation of mobile support services in UK academic libraries, and looks at technologies currently in use in UK academic libraries.

They’ve recently published a report of their findings ( and it draws out some interesting statistics.  Firstly, and most interesting to me, was the question of whether or not the students knew what a QR code was: 82% replied saying that they didn’t.  Only 8% were found to have actually downloaded a QR code reader to their phone and this certainly suggests that for a project like M-biblio (which will utilise QR codes but also other technology), that some effort will need to be put into raising awareness of both the project and the technologies involved.

“82% of students questioned didn’t know what a QR code was”

The second interesting set of statistics drawn out in the report were that nearly 70% of students taking part in the survey (1061 in total) said they owned a smart phone and 50% of those said that they regularly use their mobile phone to browse the web.

More pertinent to this project however were the stats on those utilising their mobile phone for investigating library resources, with only 15% having used it to access the web pages or services of the universities’ libraries in question.  The most common service found to be used was for renewing books online.  However, and perhaps critically, 90% responded saying that they would like access to at least one library service directly on their mobile phone.  It seems from this that the market for an app which can facilitate the collection of bibliographic references may well be there waiting for us.

“90% of students said they would like access to at least one library service on their mobile phone

Both Mike and I feel slightly disappointed that the technology on current smart phones is not really existent to enable us to pursue the idea of looking into near field communications (NFC).  This would have enabled a smart phone app to capture data from RFID tags on books and journals passively.  However, in the near future, this should be feasible and we need to keep our eye on the mobile phone market in order to track what technologies are included on the latest models, such as the upcoming iPhone 5 if and when it finally appears.

“NFC technology isn’t sufficiently developed on current mobile phones to enable passive capture of data via RFID tags”

It certainly won’t be long before these kinds of technologies are widely available and with this in mind it’s interesting to note another statistic that the M-Library report pulled out which was that within the UK there was a 70% rise in smart phone numbers between 2009 and 2010.  It’s also interesting to note that students seem to change their mobile phones on a very regular basis.  81% of those surveyed had owned their current mobile for less than 18 months and 61% had owned their current mobile phone for less than a year.  This shows that new technologies emerging within the mobile phone field very quickly saturate the market.

The report is a very interesting one for anybody considering employing mobile technology within a library context and it also has a good reference section which points towards a lot of other reports and articles around the centre – highly recommended.

Scanning Barcodes – supporting Telepen

One of the key pieces of information for discovering bibliographic data will be the barcodes on the books – either the barcode used by the Library at the University of Bristol or the ISBN numbers associated with the books.

It would be nice if we could take advantage of the camera on the device to scan the barcode and save the user from having to type the numbers in manually. There are a couple of libraries for scanning barcodes:

  • ZXing (Zebra Crossing) – a Java library with Android support. There is also a partial port to iOS that only supports QR Codes.
  • ZBar – a C library that has bindings for a number of languages and includes an SDK for the iPhone.

These libraries have good support for a number of formats such as UPC-A, EAN-8, Code 128 and QR Codes. However, they don’t support the proprietary telepen format that is very popular in UK academic and public libraries.

It therefore seems that one of the first key development tasks will be adapting one of the libraries to support for telepen barcodes.

Validating barcode numbers

It would be great if the app could send a barcode number to the web service without the user being forced to decide upfront what kind of barcode is being sent, e.g. a barcode used by the library or an ISBN number. Clearly, the service needs to know what kind of number it is dealing with to make a sensible decision on what bibliographic source to query.

I’m exploring the use of validators to help the service to determine what type of value we are dealing with. At the moment, the interface is pretty simple:

public interface Validator {
    boolean validate(final String value);

Basically, an implementation would take a value and determine whether or not it believes it is valid. The first implementation developed covers the barcode numbers used by the Library at the University of Bristol.

Barcodes at the University are ten digits long and follow the following format:

  • The first digit is the prefix and is always the number 1
  • The second through to the 9th digit will be from the range 0 to 9.
  • The tenth digit is the check digit and can range from 0 to 9 or be the character X

The validator can therefore declare any value it receives that is not 10 digits in length as invalid. It can also dismiss any 10 digit numbers that don’t start with 1. Beyond that we need to apply an algorithm that determines the validity of the check digit (tenth digit) against the other numbers (excluding the prefix).

Each number is multiplied against a relevant weighting in the following list: {7, 8, 4, 6, 3, 5, 2, 1}. Modulus 11 is then used on the sum of the weighted values to get a remainder. The remainder is then subtracted against 11 to get the check digit value. If the value is 10, then that is represented by the character X. Clear as mud?

So, for the barcode 1511075964, we ignore the prefix and multiply the next 8 digits against the appropriate number in the weightings list:

(5 x 7) + (1 x 8) + (1 x 4) + (0 x 6) + (7 x 3) + (5 x 5) + (9 x 2) + (6 x 1) = 117

Find the remainder:

117 % 11 = 7

Subtract from 11 to find the check digit:

11 – 7 = 4

Therefore, 1511075964 is a valid University barcode because the last number matches the check digit created by the algorithm.

ISBN 10 numbers have ten digits but use a different weighting to calculate the check digit. It will be interesting to calculate the probability of a clash – the possibility of a number being a valid University barcode number and a valid ISBN 10 number.