Title: Unicorn, VuFind, and the DLF ILSDI
1Unicorn, VuFind, and the DLF ILS-DI
SirsiDynix Northeast Regional User Group
(SNRG) Lehigh University June 17, 2008
Jim Farrugia Drew University jfarrugi_at_drew.edu
some slides borrowed from a SuperConference
2008 talk presented by Tim McGeary ?
2Outline
- Non-technical overview
- VuFind goal and quick demo http//www.vufind.org
/demo - Getting VuFind and Unicorn talking to each other
- Exporting and importing bib records
- Two styles of Unicorn drivers
- Next steps? MARC Holdings, Authority records,
Patron records? - VuFind functions and the DLF ILS-DI Technical
Recommendation - http//project.library.upenn.edu/conflue
nce/download/attachments/5963787/DLF_ILS_Discovery
_1.0.pdf
3VuFind Goal search, browse library e-resources
- Achieved via
- Search results give options for narrower and
related searches - Browse resources via facets
- Suggestions for similar resources
(algorithmically generated) - Live record status and location Unicorn
integration (focus of this talk) - Other features include
- Saving resources to lists
- Localization and branding
- Persistent URLs (you can actually book mark a
search!) - OAI syndication
4VuFind demo
- Maine demo site http//www.vufind.org/demo/
- Sites using/testing VuFind http//www.vufind.org
/about.php
5Id (e.g. OCLC in 001)
from http//vufind.org/docs/VufindDiagram.jpg
6Brief hit list
Where the pieces come from
Unicorn.php
vufind.pl
Amazon book cover
Bib rec in SOLR
Callnum and item info retrieved live from
Unicorn
7It takes time to load call/item info
8During this time, VuFind Unicorn cooperate
Unicorn.php (on VuFind server) sends unique ids
for the bib records to Unicorn vufind.pl (on
Unicorn server), returns xml data for callnums
and items to VuFind.
9Full record display call/item info
Similar communication between VuFind and Unicorn
gives item info on Holdings tab.
10Exporting and importing bib records
Exporting Problem embed a unique id for bib
records in the export Solution stick catalog
key in a MARC field/subfield Importing Specify
where to find the unique id (cat key) Some
problems reported with large imports (1 million
recs) Automating both Drew exports and
imports all bib recs (600,000) nightly Export
20 minutes import 30 minutes.
11Two styles of Unicorn drivers
Style 1 Unicorn.php, in VuFind, contains no
SD-proprietary API stuff vufind.pl, on
Unicorn server, invokes API commands Style
2 Unicorn.php, in VuFind, contains
SD-proprietary API stuff No server-side
script needed Pros/Cons Style 1 lets
Unicorn.php be distributed as open
source Style 2 needs no Unicorn server script,
makes admins ? Discussion Do you want
to see some gory details?
12Next steps MARC holdings, authority records?
MARC holdings Will take work, but should be
doable within the same framework (with either
style driver) Auth Recs I wouldnt know where
to start Note Neither MARC Holdings nor
Auth Recs slated for version 1.0 (Confirmed by
Andrew Nagy via email.)
13DLF ILS-DI Technical Recommendation
What API for interoperation between ILSs and
discovery applications Common baselines for
common operations Structure Levels of
functionality Function specifications Bindin
gs VuFind/Unicorn We implement two basic
functions Other functionality may be in the
works
14Levels of interoperability (p.10)
Level 1 Basic discovery interfaces minima
l set of functions that are easily implemented
and essential to support applications that
provide discovery outside the ILS. Level 2
Elementary OPAC supplement functions needed
for a reasonably broad range of practical
discovery applications that operate in tandem
with the OPAC. Level 3 Elementary OPAC
alternative functions needed for a practical
discovery application that can operate
completely independently of the OPAC. Level 4
Robust/domain specific discovery
platforms functions required to build useful
discovery applications beyond the elementary
level.
15Level 1 functions
Basic discovery interfaces minimal set of
functions that are easily implemented and
essential to support applications that provide
discovery outside the ILS.
Functions HarvestBibliographicRecords (Data
Aggregation, section 5.3.1)
HarvestExpandedRecords (Data Aggregation, section
5.3.2) GetAvailability (Real Time Search,
section 6.3.1) GoToBibliographicRequestPage
(OPAC interaction, section 8.3.1)
Requires associated MARC Holdings, not planned
for VuFind version 1.0 Maybe could be
implemented relatively easily ??
16Level 2 functions
Elementary OPAC supplement functions needed
for a reasonably broad range of practical
discovery applications that operate in tandem
with the OPAC. Functions
all of Level 1 functions plus
HarvestAuthorityRecords (Data Aggregation,
section 5.3.3) HarvestHoldingsRecords (Data
Aggregation, section 5.3.4) GetRecords (Real
Time Search, section 6.3.2) Search (Real Time
Search, section 6.3.3) Scan (Real Time
Search, section 6.3.4) GetAuthorityRecords
(Real Time Search, section 6.3.5) Either
OutputRewritablePage or OutputIntermediateFormat
(OPAC Interaction, sections 8.3.2 and
8.3.3) Not planned for VuFind version
1.0 VuFinds search is not real-time through
the ILS
17Level 3 functions
Elementary OPAC alternative functions needed
for a practical discovery application that can
operate completely independently of the OPAC.
Functions all of Level 2
functions plus LookupPatron (Patron
Functionality, section 7.2.1)
AuthenticatePatron (Patron Functionality, section
7.2.2) GetPatronInfo (Patron Functionality,
section 7.2.3) GetPatronStatus (Patron
Functionality, section 7.2.4) GetServices
(Patron Functionality, section 7.2.5)
RenewLoan (Patron Functionality, section
7.2.6) HoldTitle (Patron Functionality,
section 7.2.7) HoldItem (Patron
Functionality, section 7.2.8) CancelHold
(Patron Functionality, section 7.2.9)
RecallItem (Patron Functionality, section
7.2.10) CancelRecall (Patron Functionality,
section 7.2.11)
18Level 4 functions
Robust/domain specific discovery
platforms functions required to build useful
discovery applications beyond the elementary
level. Functions all of
Level 3 functions plus SearchCourseReserves
(Real Time Search, section 6.3.6 for academic
libraries) Explain (Real Time Search,
section 6.3.7) Both OutputRewritablePage and
OutputIntermediateFormat (OPAC Interaction,
sections 8.3.2 and 8.3.3)
19Where we are
Level 1 Basic discovery interfaces minim
al set of functions that are easily implemented
and essential to support applications that
provide discovery outside the ILS.
Functions HarvestBibliographicRecords
-- via nightly exports of bib recs with
unique ids GetAvailability -- via
live lookup of callnum/item info A long way to
go
20Development Issues, Politics, and
Some off-the-record remarks ?
21End
Thanks! Questions??
22Optional Supplemental Material
On GL3.1 Patch clusters 5 and 5e. Jim on
Windows, Tim on AIX. Need Sirsi binary called
xmlitem Currently running on Linux, Solaris, and
Windows Uses Apache SOLR for indexing Apache HTTP
Server 2.2 or later PHP 5.1.0 or later MySQL 4.1
or later Java J2SE JDK 1.5 or later YAZ 3.0 or
later (from IndexData) no longer not needed GNU
Aspell Library (optional spell checker) Goal
from vufind/README The goal of VuFind is to
enable your users to search and browse through
all of your library's electronic resources. DLF
ILS Discovery Interface Task Group (ILS-DI)
Technical Recommendation An API for effective
interoperation between integrated library systems
and external discovery applications
23Details Unicorn.phps getHolding function
unique id catkey
When displaying an individual record, VuFind show
this URL http//someURL/vufind/Record/54
2931
getHolding builds this query and sends it to
Unicorn server http//unicornserver/cgi-b
in/vufind.pl?searchholdingid52219
getHolding
vufind.pl
vufind.pl on the Unicorn server processes this
query and http//unicornserver/cgi-bin/v
ufind.pl?searchholdingid15621
24Details Unicorn.phps getHolding function
vufind.pl on the Unicorn returns item data in XML
format
vufind.pl
getHolding processes the XML and sends it through
VuFind for display
getHolding
25Details Unicorn.phps getHolding function
if (searchType eq "holding") id
query-gtparam('id') open (API, SECRET API
COMMANDS) while (ltAPIgt) xml . _
xml cleanXML(xml) print xml close
API
From vufind.pl on Unicorn server
From Unicorn.php on VuFind server
26Details Unicorn.phps getHoldings function
When displaying a hit list, VuFind show this URL
http//www.vufind.org/demo/Search/Home?lookforja
neaustentypeallsubmitFind
getHoldings is invoked and builds a query like
this for vufind.pl http//.../vufind.pl?searchho
ldingsid0o15421931id1o23451234...
vufind.pl on the Unicorn server processes this
query and returns item info in XML for multiple
records (including multiple call/copy info per
record) then
through several different steps
27Details Unicorn.phps getHoldings function
getHoldings processes the XML format and sends
it through VuFind for display in brief hit list