Laurentian University is part of the Ontario Council of University Libraries (OCUL), and a user of the centrally hosted Ontario Scholars Portal SFX link resolver, so one of the things we needed when we migrated to Evergreen was a target parser for our link resolver. This is the target associated with Search the library catalogue that is the last resort when the resolver fails to turn up any full-text resources for a given OpenURL - so hopefully it won't need to be invoked too often, as we have a very rich set of full-text electronic resources at Laurentian University.
The code
Here is a quick implementation of a target parser that generates search URLs based on ISSN, ISBN, book title, or journal title. Pretty impoverished from an OpenURL perspective, but it maintains the same level of functionality from our previous system. In TargetParser/Evergreen/Conifer.pm I created a target parser called Evergreen::Conifer that implements a subset of the Parsers::TargetParser API for SFX as follows:
package Parsers::TargetParser::Evergreen::Conifer;
use Parsers::TargetParser;
use base qw(Parsers::TargetParser);
use strict;
sub getHolding {
my ($this,$genRequestObj) = @_;
my $objectType = $genRequestObj->{'objectType'};
my $ISBN = $genRequestObj->{'ISBN'};
my $eISBN = $genRequestObj->{'eISBN'};
my $ISSN = $genRequestObj->{'ISSN'};
my $eISSN = $genRequestObj->{'eISSN'};
my $CODEN = $genRequestObj->{'CODEN'};
my $bookTitle = $genRequestObj->{'bookTitle'};
my $journalTitle = $genRequestObj->{'journalTitle'};
# Canonical search results URL for simple searches:
# http://laurentian.concat.ca/opac/en-CA/skin/lul/xml/rresult.xml?rt=keyword&tp=keyword&t=0895-2779&l=105&d=2&f=&av=
my $svc = $this->{svc};
my $egHost = $svc->parse_param('eg_host');
my $egLocale = $svc->parse_param('eg_locale');
my $egSkin = $svc->parse_param('eg_skin');
my $egOrgUnit = $svc->parse_param('eg_org_unit');
my $egDepth = $svc->parse_param('eg_depth');
my $path = "http://${egHost}/opac/${egLocale}/skin/${egSkin}/xml/rresult.xml?l=${egOrgUnit}&d=${egDepth}";
my $searchString = '&rt=keyword&tp=keyword&t=';
if (defined($ISSN)) {
if ($ISSN =~ m/x/i) {
# Current indexer doesn't deal well with ISSNs containing an X, so break it up
$ISSN =~ s/^(\d{4})-?(\d+)x/$1 -$2 x/i;
$searchString .= $ISSN;
} else {
$searchString .= "\"$ISSN\""; # format 9999-9999 for MARC
}
}
elsif (defined($ISBN)) {
# Evergreen doesn't force ISBNs to be stripped of hyphens, so take whatever
$searchString .= "\"$ISBN\"";
}
elsif (defined($journalTitle)) {
# Restrict searches to title index, with bibliographic level = s
$searchString .= "ti:${journalTitle}&bl=s";
}
elsif (defined($bookTitle)) {
# Restrict searches to title index, with bibliographic level = m
$searchString .= "ti:${bookTitle}&bl=m";
}
return ($path . $searchString);
}
1;
And here's the help that I added to the corresponding Conifer.hlp file:
General Information
Target - LOCAL_CATALOGUE_EVERGREEN_CONIFER
Service - getHolding
Parser - Evergreen::Conifer
Information needed in the Target Service:
In the PARSE_PARAM field, replace the following information:
eg_host = $$LOCAL_CATALOGUE_SERVER
eg_locale = Locale (en-US, en-CA, fr-CA, etc)
eg_skin = algoma, default, lul, nohin, uwin
eg_org_unit = 103, 1, etc
eg_depth = 0, 1, 2, 3, etc
Findings and wishlists
While it's quite easy to set up Evergreen as a searchable resource, thanks to its straightforward URL syntax, one of the things that leaps out at me is that Evergreen, by default, has no identifier index for limiting searches by ISBN / ISSN / LCCN / OCLCnum. Ideally, we would disable full-text indexing on this index so that we can more accurately search for ISSNs that include an x. Right now we have to split ISSNs with an "x" into constituent parts and generate searches on those parts, which results in false hits from across the database. This would also be useful for limiting Z39.50 searches.
I would also like to teach Evergreen about ISBN-10/ISBN-13 equivalence, to broaden the search while maintaining precision. And I would like to automatically normalize ISSN and ISBN formats so that I don't have to worry about whether a cataloguer entered hyphens or not - and the same for incoming search terms.
Finally, to support services like xISBN that search for multiple formats and editions of a given work by generating a shotgun blast of ISBNs for all known representations, I would love to teach Evergreen how to accept a list of identifiers as search input.
Don't ask me when these things will happen, though; if it requires work from me, it will probably be 2010 before any of it happens.
American Library Association Annual Conference (Chicago, Illinois, July 9-15). Evergreen folks from all over will be exhibiting, presenting, meeting with people, and so forth!































The Laingsburg Public Library successfully went live on Michigan Evergreen today. In this photo, Sandy watches while Susie checks in the first book on the system. Welcome Laingsburg!

MLC staff trained Oscoda County Library staff this week on May 12-13. Oscoda’s “go live” date is scheduled for June 3.

Kevin Pischke, Jessup’s library director, added some thoughts about Evergreen. “We were in need of a new ILS from the standpoint that our old ILS no longer met our needs as a growing academic library. We looked into various proprietary and open source options for a replacement. Ultimately, we choose Evergreen because it is a well-supported open source project with a growing focus on the needs of academic libraries.”
e are a small library with a solid IT staff to rely on for support; however, as a library director I had the peace of mind that I could always contract with Equinox if we need further professional support.”


is a new Technical Support Specialist at Equinox, expanding our tech services department to meet our growing clientele.
I have two cats. The youngest, an orange tabby named Tabula Rasa — my wife Jodi is a philosopher, and it was either that or “Sophia” — joined our family last year. She had been abandoned in a bathroom by a departing tenant and found by the landord, days later, curling up in the sink. Tabula (”Beulah” for short) still loves bathroom sinks, and any other sources of running water. She also loves using her claws on Pied.