Tuesday, December 2, 2008

Using the WorldCat API in link resolving for books

The new WorldCat Navigator-based Summit Catalog just went live on Monday.

One of the connectors that we needed to update at Watzek was our link resolver. Upon receiving a citation for a book, the resolver used to do some screen scraping of the INNREACH-based Summit catalog to figure out whether the book was available at our local library and/or within the Summit consortium. This feature is also built into our ILL requesting system so that patrons don't ILL request books in Summit.

Now that Summit is on WorldCat, the logical move was to use the WorldCat API to check if a book is in our local catalog or in Summit and provide links accordingly. The API lets you throw an ISBN at it and optionally returns the OCLC numbers of holding libraries near you. By simply doing an array_intersect in PHP with a list of the Summit libraries' OCLC symbols:

array ("Chemeketa"=>"CHK","Clark"=>"CCV","COCC"=>"CEO","Concordia"=>"CCD","Central Wash"=>"CWU","Eastern OU"=>"EOS","Eastern WU"=>"WEA", "George Fox"=>"GFC", "George Fox Portland"=>"WEV", "LCC"=>"OLE","Lewis & Clark"=>"OLP","Lewis & Clark Law"=>"ONS","Linfield"=>"OLC", "Linfield Portland"=>"OLL", "Marylhurst"=>"MRY","Mt Hood CC"=>"MHD","OHSU"=>"OGE","OHSU"=>"OGI","OHSU"=>"OQH","OIT"=>"OIT","Oregon State"=>"ORE","Oregon State"=>"OR1","Pacific U"=>"OPU", "PCC"=>"OQP","PCC"=>"OQY","PSU"=>"ORZ","Reed"=>"ORC","SMU"=>"WSL","Souther Oregon U"=>"SOS","Seattle Pacific"=>"OXF","Seattle U"=>"WSE", "Seattle U"=>"W9L","TESC"=>"ESR","U of Oregon"=>"ORU","U of Oregon"=>"UOL", "U of Portland"=>"OUP", "U of Puget Sound"=>"UPP","U of Wash"=>"WAU","U of Wash Law"=>"ONA", "Willamette U"=>"OXG", "Warner P"=>"OWP", "Western Ore U"=>"WOS","Whitman"=>"HTM");
it's easy to figure out if the book is held in Summit and/or in our library.

If you don't have an ISBN, the SRW features of the API allow one to do author/title search. If an author/title search results in just one match, it's easy to check if Summit holds the book. If there is more than one match, I just left it for the user to check the catalogs themselves, but there are other approaches that one could take.

Link resolvers seem to be used most often for articles, but research databases like Philosopher's Index have lots of books in them. Here's an example. Lots of people put books in RefWorks, which offers OpenURL linking out. Often, these citations (some examples) have no ISBNs and are often a little funky. Hence, the resolver can have problems with them. Here's an example of a book citation from RefWorks.

No comments: