Chameleon SFX Catalog Integration Plugin
Tags: sfx
, catalog
, holdings
, elympics
Last Updated: Mar 22, 2010 23:35
- Description
Chameleon is an SFX plug-in that provides a more fine-grained look-up of journal and book holdings in your library catalog than the standard SFX Z39.50 plug-in. For journals, Chameleon examines your holdings statements to determine, not just whether you have the journal title, but whether your holdings show you have the year of the article the user is requesting. For books, Chameleon checks to see if the book is available for borrowing as a condition for showing the catalog link. This decreases the number of times users wind-up in a dead-end in your catalog from the SFX menu because you've got incomplete runs for a journal or the book the user is looking for is checked out. You don't need to use both options. You can use Chameleon just for journals or just for books.
- Author: David Walker
- Additional author(s):
- Institution: California State University
- Year: 2010
- License: GNU Lesser General Public License version 3, Copyright 2010 California State University
- Short description: Use, modification and distribution of the code are permitted provided the copyright notice, list of conditions and disclaimer appear in all related material.
- Link to terms: http://www.gnu.org/licenses/lgpl.html
- Skill required for using this code:
basic
State
Stable
Programming language
Perl
Software requirements
Currently only works with Innovative (including INNReach) and Voyager systems.
Download
http://code.google.com/p/sfx-scripts/downloads/list
Working journal example
http://sfx.calstate.edu:9003/sanmarcos?issn=0028-9604&year=1970
In this (simplified) example, the user is looking for an article from Newsweek published in 1970. Although the library at Cal State San Marcos has a Newsweek subscription, it's missing older issues, including those from 1970. The standard SFX Z39.50 plug-in would show a link to the catalog in this scenario, since it's merely doing a title-level search, leaving the user confused as to why the library doesn't actually have the article they want. Chameleon, however, correctly determines this article is not available in print, and so hides the target, leaving display logic to only show Inter-library Loan as an option.
http://sfx.calstate.edu:9003/sanmarcos?issn=0028-9604&year=1974
The second example here is for a year that is covered by the holdings at San Marcos, and so Chameleon correctly shows the link to the catalog.
Working book example
http://sfx.calstate.edu:9003/cpslo?isbn=0672632780
In this example, Cal Poly has the book, and it is available for borrowing.
http://sfx.calstate.edu:9003/cpslo?isbn=0545010225
Cal Poly has the book in this example, too, but (at least at the time these instructions were written) it is checked out. Chameleon therefore hides the catalog target. Several libraries in a regional consortium called Link+ have this book, however. Cal Poly has an SFX Link+ target that uses its own Chameleon plug-in. Since Chameleon finds available copies there, it shows the link.
http://sfx.calstate.edu:9003/cpslo?isbn=0768655102
In this example, the book is not held by Cal Poly. It is held by two libraries in the Link+ consortium (see http://csul.iii.com/search/i0768655102). But since these are both e-books, which Cal Poly students cannot borrow, Chameleon correctly does not show a link to Link+, instead leaving display logic to only show Inter-library Loan as an option.
Using the following Ex Libris open interfaces
SFX plug-in architecture
Installation instructions
Test Script
Before you get started, try this test script. It should give you some sense about whether Chameleon will work with your catalog or not.
http://library.calstate.edu/chameleon
Chameleon's ability to determine book availability is pretty simple, and is almost guaranteed to work.
The journal look-up and holdings parsings, however, requires that your holdings statements follow a reasonably consistent pattern. You do not need MFHD (although that helps), and they don't need to necessary following a specific pattern. Chameleon uses a very generous regular expression pattern to catch a wide array of ways in which libraries enter holdings information. But if you don't have any consistent pattern for how holdings statement were entered, or that pattern has changed significantly over the years, then Chameleon will likely not be able to parse them. A retrospective holdings clean-up project could solve this problem, of course.
Contents
Chameleon consists of two plug-ins:
Chameleon.pm – this is the base Chameleon module. Your SFX targets will not use this plug-in directly. Rather, all Chameleon plug-ins share this module.
Chameleon_Local.pm – this is essentially a configuration file for Chameleon. Here you'll set the various options for the catalog you wish to search. When configuring your catalog target in SFX, you'll actually tell it to use this plug-in.
You can have as many Chameleon_Local.pm plug-ins as you like. Just rename each one something different (make sure to change the 'package' name at the top of the file as well).
In this way, you can have multiple different catalog targets in the SFX menu (for your own catalog, a union catalog, those of nearby libraries, etc.), each with it's own Chameleon plug-in. But, as new versions of Chameleon become available, you'll be able to upgrade all of your Chamelon plug-ins by simply upgrading the base Chameleon.pm module.
Configure Chameleon_Local.pm
Open Chameleon_Local.pm in a text editor and follow the instructions with each configuration option. You'll need to enter the Z39.50 connection information for the catalog, as well as some options for how to parse journal holdings and book availability.
Upload file to the SFX server
Upload both files to the plugin directory (lib/Parsers/PlugIn) of your SFX instance, and then restart the Apache server. Check the SFX documentation on how to do that.
Configure your catalog target
You can now go into your catalog target in the SFX admin target section, and configure it's threshold to use the Chameleon_Local plug-in. Again, consult the SFX documentation on setting thresholds.
If you only want Chameleon to do a book look-up, then you can set an additional threshold parameter to require an ISBN in the OpenURL. If you only want Chameleon to do the journal look-up, then adjust the threshold to also require an ISSN. You can also set this up with separate book and journal targets, if you prefer. That would allow you to also adjust the wording in the menu.
Debugging
You may run into problems during your set-up. Set the 'logging' config option to '1' in order to have Chameleon spit-out it's debugging message (like the one you see in the test script) to the SFX Apache logs. The download also comes with the test script you see above. Simply upload this to the public cgi-bin in your SFX instance (cgi/public), and access it via your browser.

