1. SFX in Barton
The project that wouldn't end
Beth Brennan, Metadata Systems Librarian
Rich Wenger, E-resource Systems Manager
2. Why put SFX buttons in the
catalog?
Accessing e-resources via Barton has always been
a problem, especially from off campus
Needed a consistent way to send users through the
proxy server
Wanted to stop maintaining URLs in Aleph records
Recent explosion of e-book records in the catalog
SFX in Barton | ENUG 2011
Page 2
3. A collaborative effort
Other members of the project team: Systems
Goddess (Christine Moulen),catalogers (Ben
Abrahamse, Jennifer Edwards), serials acquisitions
(Kim Maxwell), and usability experts (Darcy Duke,
Melissa Feiden)
Everyone worked on different pieces of the puzzle;
none of us could do this presentation alone
Working meetings, where we threw out ideas, made
quick server-side changes, and saw immediate
results (to embrace or discard)
SFX in Barton | ENUG 2011
Page 3
4. Why this project took so long
SFX buttons could be integrated into Aleph since
version 14. And others have done so. However...
We wanted to put SFX buttons where we wanted
them, and when we wanted them
Only show the button if it is very likely to take the
user to an e-resource
SFX in Barton | ENUG 2011
Page 4
5. Why this project took so long
Earlier attempts failed to get the information we
needed onto the OPAC pages we needed it to
appear on
Poor collaboration between Ex Libris' Aleph and
SFX support teams
Other projects took priority while we struggled for
solutions
SFX in Barton | ENUG 2011
Page 5
6. Obstacles
Aleph provides a conditional SFX button on the Full
record display only, but patrons often don't look past
the Brief results
Aleph puts the button at the top of the page, and we
preferred other placement
Conditionality options were not sufficient
Aleph provides an unconditional SFX button on the
Brief results, in table view only. Our default is list
view
SFX in Barton | ENUG 2011
Page 6
7. Solution: Aleph fix scripts
Finally created a simple fix script that put the system
number into the OPAC record displays
From there, things started to fall into place, and the
fix script blossomed into a display tag that helps to
determine:
o Conditionality and quantity of SFX buttons,
display of URL and HOL public notes, and even
whether to display HOL at all
o C:UsersrwengerDocumentsAlephOPACHi-level_animated.pptx
SFX in Barton | ENUG 2011
Page 7
8. Aleph fix scripts
The fix builds this: SFX91 L $$s0-0-0-2-9-3-5-9-2
$$lMIT01$$901$$zbutton~~~$$pAvail$$av.122:no.1
(2000:Feb.)-
Which tells the Java Script:
o Aleph system number 000293592 (for SFX
Z39.50 lookup) is an MIT01 record (as opposed
to MIT30 course record)
o It should display 1 SFX button, with the caption:
v.122:no.1 (2000:Feb.)-
o Availability lines should be shown (print HOL)
SFX in Barton | ENUG 2011
Page 8
9. SFX tag
Created from SYS so EVERY record has one
Determines if the record gets a button and how
many
Determines if there are print holdings to display as
well
Shows summary holdings statement next to button,
if Barton has only one, or shows generic message
and lets the SFX menu show more complicated
details
SFX in Barton | ENUG 2011
Page 9
10. Subfields: part 1
$$a: Summary holdings statement
$$i: Summary holdings public note
$$l: MIT01 or MIT30 (doc library identifier)
$$p: Avail (only possible value - means there ARE
non-internet holdings)
$$q: NoAva (only possible value - means there are
NO non-internet holdings)
$$s: SYS padded with hyphens
SFX in Barton | ENUG 2011
Page 10
11. Subfields: part 2
$$z: Place holder saying if you need a button, and
how to count it for stats
$$8: 00 (only possible value - meaning this record
has NO URLs)
$$9: Counter, tells you how many URLs are in the
record
SFX in Barton | ENUG 2011
Page 11
12. Temporary subfields
There are two subfields that are temporarily used
during the script, but are gone before the final
rendering of the page:
o $$a (used and deleted before the summary
holdings are made) holds the marker identifying
a Books24x7 or MARCit record
o $$u holds the URL itself (http://.....)
SFX in Barton | ENUG 2011
Page 12
13. URL counting
We needed to know how many URLs are in the
record, and which to turn into buttons
We use two tags to figure this out...
o One ends up feeding the final count and other
details to the SFX tag which generates the
button (URL tag)
o The other is used to hold data to enable multiple
buttons to display (U564 tag)
SFX in Barton | ENUG 2011
Page 13
14. URL tag
We prevent the fix from counting certain kinds of
URLs
o Local 'get' URLs (unless it's the only one)
o Table of Contents
Use col.7 of fix table to add counter
Only the LAST copy of this tag is kept
This tag feeds data to the SFX tag and helps create
summary holdings or generic message
SFX in Barton | ENUG 2011
Page 14
15. Adding summary holdings
Split NET from other summary holdings statements
(SMHL tag)
Convoluted way to mark if there's more than one
NET summary holding
o Mark NOT-FIRST with $$7mlt
o Combine $$7 into URL tag
o Re-combine $$7 and $$9 of URL tag into SMHL
tag
Delete SMHL if $$9 ≠ 0; or if $$7mlt is present
SFX in Barton | ENUG 2011
Page 15
16. U564 tag
Holds URL data when multiple buttons are displayed
This is where 856 $z and $3 notes are really
displayed from
Counter ($$9) says which button the data goes with
All U564 tags are kept, EXCEPT for serials which
only ever get one button
SFX in Barton | ENUG 2011
Page 16
17. Data clean up
Consistency of public notes in URL and HOL tags
o Remove references to on campus vs. off
campus access, as the proxy server handles this
now
Fix incorrect or obsolete indicators on URL tags
Fix subfielding in URL tags
Clean up URLs that contain proxy string
SFX in Barton | ENUG 2011
Page 17
19. Aleph OPAC
Construct conditional buttons on Brief lists and Full
pages, short-b-body-mit01 and full-999-body-
mit01 according to information passed to the
page(s) from sfx_brief.fix and sfx_full.fix
o Use Aleph-supplied SFX button when possible
o Remove disabled Aleph-supplied button in all
cases where it exists
SFX in Barton | ENUG 2011
Page 19
21. JavaScript (1/3)
0-0-0-2-9-3-5-9-2MIT0101button~~~Avail | v.122:no.1 (2000:Feb.)-
000293592 System number
MIT01 Doclib
01 URL count
button~~~ 'button~~~', or 'Books24x7', or 'MARCit~~~'
Avail 'Avail' or 'NoAva'
v.122:no.1 (2000:Feb.)- text string to append after the button
SFX in Barton | ENUG 2011
Page 21
22. JavaScript (2/3)
o Uses DOM methods throughout
• document.getElementsByTagName
• document.getElementById
• document.createElement
• document.createTextNode
• parentNode.removeChild
• encodeURIComponent
• firstChild.nodeValue
• setAttribute
• appendChild
SFX in Barton | ENUG 2011
Page 22
23. JavaScript (3/3)
o Function library loaded by header files:
• direct-head-mit01
• full-set-head-ill
• full-set-head-ill-nobor
• short-1-head-mit01
• short-2-head-mit01
• short-4-head-mit01
SFX in Barton | ENUG 2011
Page 23
24. URL construction (1/5)
Construct 4 different types of URLs depending on
the data passed from the fix routines
SFX in Barton | ENUG 2011
Page 24
26. URL construction (3/5)
3. Aleph
http://library.mit.edu:80/F/?
func=service-sfx
&doc_number=001701742
&line_number=0000
&service_type=RECORD
file://C:UsersrwengerDocumentsAlephOPACurl2.pptx
SFX in Barton | ENUG 2011
Page 26
27. URL construction (4/5)
4. 856_url
http://walter.mit.edu/F/?
func=service-sfx
&line_number=0000
&service_type=RECORD
&doc_number=001706051
C:UsersrwengerDocumentsAlephOPACurl3.pptx
SFX in Barton | ENUG 2011
Page 27
28. URL construction (5/5)
856_url (second of 2)
http://owens.mit.edu/sfx_local?
&rfr_id=info:sid/ALEPH:MIT01
&856_url=http://purl.access.gpo.gov/GPO/LPS117034
SFX in Barton | ENUG 2011
Page 28
29. SFX (1/2)
Using OpenURL version 1.0
Activate 856_url target with proxy flag checked
Enable z39.50 fetch of MARC record from Aleph
o We set up a separate logical base for this,
specified in
config/source/OpenURL_0_1/aleph.config_
and config/z3950_lookup.config
SFX in Barton | ENUG 2011
Page 29
30. SFX (2/2)
Display logic rule
o Only display 856_url target if there are no other
full text targets eligible
SFX in Barton | ENUG 2011
Page 30
31. Ezproxy
Include Barton URLs in config.txt
Set up proxy_URL API for catalogers
o Requires "ProxyURLPassword xxxxxxxx"
directive in config.txt
o https://walter.mit.edu/shib/proxylookup.cgi
SFX in Barton | ENUG 2011
Page 31
32. Obstacles (1/8)
Semicolons and ampersands in URLs croak SFX
http://library.mit.edu/item/001733820
o Regular encoding doesn't work because
JavaScript window.location and window.open
automatically decode them
SFX in Barton | ENUG 2011
Page 32
33. Obstacles (2/8)
o Required double encoding. Semicolon becomes
'%253b'. JS will convert '%25' to '&'. SFX will
convert '&3b' to semicolon on the redirect URL
o Doesn't work on Books24x7 & MARCit URLs.
Only applied to "856_url=" parameters
SFX in Barton | ENUG 2011
Page 33
34. Obstacles (3/8)
SFX source parser errors
o ALEPH.pm chokes on some author names.
Early failures were bypassed by switching to ver.
1.0 OpenURLs. Currently this is also failing in a
few cases
o Temporarily circumvented it by modifying the
parser
o SI 16384-249922 is open and in development
SFX in Barton | ENUG 2011
Page 34
35. Obstacles (4/8)
Some browsers require structures be closed before
invoking JavaScript on them. Good practice.
o Wrong: <td> <script> </script> </td>
o Right: <td> </td> <script> </script>
SFX in Barton | ENUG 2011
Page 35
36. Obstacles (5/8)
ALEPH.pm does not retrieve URLs in 956 fields
o Constructed a server-side fix routine for z39.50
that moves URLs in local 956 fields into 856
fields. sfx_z39.fix
o Logical base created to invoke this fix and
handle record length problem (new
z39_server_MIT01SFX.conf)
SFX in Barton | ENUG 2011
Page 36
37. Obstacles (6/8)
We were seeing duplicate 856_url targets on the
SFX menu
o Needed to turn on the 'deduplication' option on
the Related Objects Admin page
SFX in Barton | ENUG 2011
Page 37
38. Obstacles (7/8)
Aleph was constructing mangled OpenURLs
o Fixed in sfx-record-ver-1.0
SFX in Barton | ENUG 2011
Page 38
39. Obstacles (8/8)
SFX record fetch for MIT30 records failed because
of different doc numbers
o /exlibris/sfx_ver/sfx_version_3/sfxlcl3/config/sour
ce/source_v1_0.dir modified. Changed
"ALEPH.*" to "ALEPH.MIT01". This allows
MIT30 URLs with ISBNs and ISSNs to resolve
successfully until we decide how to handle
MIT30 doc numbers
SFX in Barton | ENUG 2011
Page 39
40. Demos
SFX button supplied by Aleph
o http://walter.mit.edu/item/000336947
856_url
o http://walter.mit.edu/item/001706051
Multiple URLs
o http://walter.mit.edu/item/000922127
SFX in Barton | ENUG 2011
Page 40
41. Round 2 adjustments
Overrides:
o SE were forced to have 1 button, but we found times we
needed the multiple button
o Sometimes SFX knew less than Barton, and was
interfering by trying a title search (e.g. Annual report)
Display text coming from summary HOL *and* notes with
the URL
New index on the 'button~~~' led to improved logical base
for electronic resources
SFX in Barton | ENUG 2011
Page 41
42. Finis
Aleph, SFX,
Searching, one for the other,
Together at last.
Beth Brennan, siers@mit.edu
Rich Wenger, rwenger@mit.edu
SFX in Barton | ENUG 2011
Page 42
43. Addendum
A PDF file containing this presentation, the Aleph fix
routines, and the JavaScript files is available for
download.
SFX in Barton | ENUG 2011
Page 43