Virtual Shelf Index

The Virtual Shelf Index is a web service that returns sets of titles held by the library in shelf order.


The Index takes advantage of relationships between items that appear next to each other on the shelf because of the call numbers assigned to them. The purpose of the Index is twofold: it provides a means to search the Libraries' holdings by call number (even incomplete call numbers), and a way to browse the collection in shelf order. A separate web application will use the Virtual Shelf Index web service to provide an interface for users to browse the collection as if looking at a virtual shelf. The Virtual Shelf Index includes titles held by all of the campus library locations as well as online content, as if all the titles existed on one very long, continuous shelf.

How We Did It

The heart of the Virtual Shelf Index is a MySQL database that stores a record for each volume held by the library (approximately 2.8 million records). These records are created by an output from the ILS that has been processed by a Python script. Volumes that share a title and are collocated by call number are grouped by the system into batches. These batches of volumes are returned by the system as a single title, which prevents users from having to wade through multiple volumes of the same title. The web service is built in PHP and handles requests over HTTP, queries the database based on the request parameters, and returns either a batch identifier (as an entry point into the Index) or a series of batch identifiers, catalog keys, and call numbers (as a slice of the virtual shelf) in a JSON response.



Publications and Presentations

Orphanides, A., Lynema, E. & Lown, C. (2010). "Enhancing Discoverability with Virtual Shelf Browse". Code4Lib 2010. Asheville, NC, February 24, 2010.