Brice Stacey home

Voyager Self Check (selfchk)

My workplace, the Joseph P. Healey Library, uses Ex Libris' Voyager ILS. The normal interface for the Circulation module is through a graphical user interface (GUI), which I believe is of great use for staff to circulate materials. It makes it convenient for a human to perform complicated tasks. However, what if I were developing an application that performs Circulation tasks (charge, renew, discharge, collect fees, etc) and wanted to perform those tasks programmatically?

Luckily, Voyager has an additional module called SIP Self Check, sometimes referred to as selfchk, which allows one to programmatically interface with the Circulation module.

Standard Interchange Protocol (SIP)

SIP Self Check implements 3M's Standard Interchange Protocol (SIP). The protocol describes a set of message pairs that form the dialogue between server and client. For each command issued by the client, it will receive its corresponding response. My understanding is that SIP was designed with automated circulation systems in mind. You know the self-checkout at your local grocery store? Imagine that in a library. SIP would be the messages flying from the self-checkout machines to the ILS' circulation server.

However, my limited exposure to SIP has been exclusively in the domain of resource sharing. For example, the Healey Library is a member of both the Boston Library Consortium Virtual Catalog and Massachusetts Virtual Catalog. Both virtual catalogs are implementations of SyrsiDynix's URSA resource-sharing solution, which allows patrons to borrow books from any of the member libraries within each catalog. The catalogs use SIP to hook into each library system to determine an item's availability and to place a hold on the item. At that point the automation is over and staff must retrieve and process the book as usual. We are actually in the process of replacing the BLC Virtual Catalog with WorldCat Navigator, another resource-sharing solution that supports additional protocols such as NICP or INN-Reach, which will allow for greater participation among libraries which may not support SIP.

Why I Want a Programmable Interface

If you're like me, you're probably a member of dozens of networks and online services, but I'm sure you spend most of your time in only just a few. So take for instance when you need to renew a library book. There is often a large amount of friction to leave GMail, Facebook, Twitter, Hacker News, World of Warcraft or wherever you spend your time and venture into a rarely used service. What can we do to reduce this friction? Develop tools that can be deployed within these other, more favored networks.

The important takeaway is that SIP (and other protocols) essentially allows a machine to perform just about any task the gal at the circulation desk is doing, but instantaneously, from anywhere, through any imaginable interface. If that doesn't tickle your fantasies, here are some examples:

And that's just the tip of the iceberg.