940 likes | 1.4k Views
2. Game Plan. WebBridge explainedImplementation decisionsWho, What, When, Where, Why...How to make it workConfiguring WebBridgeResources, field selectors, data tests, etc.Coverage dataTesting
E N D
1. Implementing WebBridge as an OpenURL Resolver Bob Duncan
Lafayette College
2. 2 Game Plan WebBridge explained
Implementation decisions
Who, What, When, Where, Why...
How to make it work
Configuring WebBridge
Resources, field selectors, data tests, etc.
Coverage data
Testing & Troubleshooting
Customizing
WebBridge display
3. Concepts…
4. 4 What is WebBridge? Resource linking component of MAP
Context-sensitive linking to appropriate resources
Where you go is appropriate to where you are
Get from A to Z without going through B…Y
OpenURL resolver
Remote (non-III) origins
OpenURL resolver-like behavior
WebOPAC
Millennium modules
5. 5 WebBridge as an OpenURL Resolver Origin generates OpenURL
OpenURL ? metadata from citation formatted as URL
User clicks WebBridge link
WebBridge “resolves” the OpenURL
URL of the WebBridge window = The OpenURL
Resources offered based on:
Contents of OpenURL
WebBridge configurations
6. 6 The OpenURL Framework The OpenURL framework is…
A syntax for creating web-transportable packages of metadata about an information object
A syntax for enabling context-sensitive linking to appropriate resources
A NISO standard
0.1 versus 1.0
OpenURL 1.0 support in Release 2006LE
The OpenURL framework is NOT…
A search mechanism
A mechanism for finding full text
A persistent linking syntax
7. 7 Record in origin (Expanded Academic)
8. 8 Metadata from record in origin, converted to OpenURL key/value pairs
9. 9 OpenURL – What happens
10. 10 Window content is the result of resolver’s analysis of metadata in the OpenURL
11. 11 WebBridge concepts Origins
Where you link from
Any OpenURL-enabled database
Resources
Where you link to (aka, the “Target”)
JSTOR, Google, your OPAC, ILL form
Categories
Types of Resources
Full-text, library catalogs, ILL, A&I
12. 12 WebBridge concepts (cont.) Data tests
Under what condition(s) the resource is offered
MatchISSN, MatchDATE, HasVOLUME
Field selectors
Objects for data tests / Placeholders for link URLs
ISSN, ISSN-HYPHEN, AULAST, ATITLE
Filters
Block the resource
OriginIsABCCLIO, OriginIsExpAcad
13. 13 WebBridge concepts (cont.) Coverage data
Journal-level details for full-text publications
ISSN, title, dates, URL
Custom info
Associated with a resource definition
Data matching
Data retrieval
Secondary lookups
Loaded via Mill Serials, Admin, or ERM
Obtained from vendor, third party, etc.
14. Implementation…
15. 15 Implementation Decisions Who…will set up, maintain, etc.?
What…kinds of resources will you offer?
When…will you offer resources?
Where…
…from where will you offer links?
…to where in a resource will you link?
Why…will you offer resources?
How…will you figure it all out?
16. 16 Why offer resources? Save the time of the user
Save the time of the user
Save the time of the user
Save the time of the user
Save the time of the user
17. 17 What can you link to? Anything with a URL
Anything with a URL
Anything with a URL
Anything with a URL
Anything with a URL
18. 18 What should you link to? Context-sensitive appropriate resources
Appropriate for your users/staff
Appropriate for your library type
Appropriate to the context
Something useful
Appropriate to the context
Results
Links should describe what user will get
19. 19 When will you offer resources? When appropriate to “Why” and “What”
Under what conditions?
All the time
Situational
Depending on possible result
Just in case
OpenURL vagaries
20. 20 From Where will you offer resources? Wherever it’s possible
“OpenURL compliant”
The database can generate OpenURLs
Nothing to do with linking TO a database
Where it makes sense
Should you link from full-text resources?
Works cited
Better copy
21. 21 To Where in the resource will you link? Possibilities
For full text
Article
Search result, TOC, Journal home, Database
For library catalogs (yours and/or others)
Search screen, search results, record
For document delivery
Filled out ILL form, “how-to” page
For anything
Whatever makes sense…
22. 22 To Where in the resource will you link? Depends on…
Data in the OpenURL
Is what you need to create a link available?
Is what you need to create a link correct?
The resource
What does it allow/support?
What you’re trying to accomplish
Get the user to the article?
Get the user to the journal?
Instruction vs information?
23. How to make it work… Getting Started
24. 24 Best path Think about:
The kinds of resources you want to offer
From where you want to offer them
Configure (in this order):
Categories
Origins
Filters
Field Selectors
Data Tests
Resources
Load coverage data for full-text resources
25. 25 Reality path Think about:
The kinds of resources you want to offer
Set up an origin
Configure a resource
Get all confused
Contact Innovative
Ask the WebBridge list
Contact Bob
WebBridge idiot in a former life
26. 26 Recommended Path Think about:
The kinds of resources you want to offer
From where you want to offer them
Configure:
One category
One full-text resource
Load its coverage data
One “fake” origin
An origin is determined by the value of its SID
Test with “fake” OpenURLs for real articles
27. 27 WebBridge Management interface aka “WebBridge Edit”
Initials / password controlled
Function “WebBridge Edit Database”
Function “WebBridge View Database”
Access:
http://<yourserver>/webbridge/edit
Button in Millennium Administration
One editor at a time
Inactivity timeout
TIMEOUT_WEBBRIDGE_EDIT wwwoption
Release 2006LE +
28. 28 WebBridge Management menu
29. How to make it work… Nuts & Bolts
30. 30 Categories What TYPES of resources you link to
Categories assigned to origins
Links grouped by category in WebBridge panel
Full Text, Library Catalogs, ILL
“Edit Categories”
Name it
Whatever you want – it’s just a name
Appears as header for group of resource links
Assign a sort order
Assign origins
31. 31 Categories
32. 32 Category – Create New…
33. 33 Category – “Full Text Available (Direct Link)”
34. 34 Origins Where you link FROM
Must set up on vendor’s side
SID-dependent
“Edit Origin Definitions”
External Origin
Name (and description)
sid or sid/rfr_id (Release 2006LE+)
Do external lookup
Assign category(ies)
At least one required
Can edit later
Deselect “Active” if not ready to be live
35. 35 Origin Definition – Create New…
36. 36 Origin Definition – “Historical Abstracts”
37. 37 SIDs – Service IDentifiers WebBridge needs one
Change in Standard
OpenURL 0.1:
&sid=ISI:WoK:WOS
Origin def value: ISI:WoK:WOS
OpenURL 1.0:
&rfr_id=info:sid/www.isinet.com:WoK:WOS
Origin def value: www.isinet.com:WoK:WOS
Values determined by vendor
No standard / No registry
38. 38 Origin Definition – “BobTest”
39. 39 Filters Block the resource from being offered
Evaluated prior to data tests
For III origins, lots of possibilities
For OpenURL resolver, based on the origin
Limited usefulness
Hybrid origins
Suppress the origin’s full text links to itself
Misbehaving origins
Suppress a resource if data tests can’t be met
Bad OpenURL implementations
40. 40 Filter Definition – Create New…
41. 41 Filter Definition – “OriginIsEAI”
42. 42 Field Selectors Objects of data tests
Field selector name ? VOLUME
Defined as value for the volume key in the OpenURL
Data test name ? HasVolume
Asks “does the OpenURL have a value for volume?”
Placeholders in link URL variables
#@FieldSelectorName# replaced with value from OpenURL
#@VOLUME# or #@volume#
http://muse.jhu.edu/cgi-bin/resolve_openurl.cgi?genre=article&issn=#@ISSN-HYPHEN#&title=#@TITLE#&volume=#@VOLUME#&issue=#@ISSUE#&aulast=#@AULAST#&spage=#@SPAGE#
Name is just a name
43. 43 Field Selector Definition – Create New…
44. 44 Field Selector Definition – “ISSN”
45. 45 Field Selectors – definition Where to look in the OpenURL
OpenURL version 0.1
issn, volume, title
OpenURL version 1.0
rft.issn, rft.volume, rft.title or rft.jtitle or rft.btitle
Release 2006LE +
Pipe-delimited list:
title|rft.title|rft.jtitle|rft.btitle
Key in OpenURL not part of a standard?
Just define it
46. 46 Field Selectors – regular expressions Regular Expressions:
Manipulate the data
Optional
Format
/ MatchThis / ReplaceWithThis /
Examples:
/-//
look for a hyphen and replace with nothing
/,$//
look for comma at the end of a string and remove it
47. 47 Field Selectors with regex applied ISSN field selector
def: issn regex: /-//
1234-5678 ? 12345678
ISSN-HYPHEN field selector
def: issn regex: /(^.{4})(.{4}$)/\1-\2/
1234-5678 ? 1234-5678
12345678 ? 1234-5678
Find the value for the issn key in the OpenURL; take the first four characters from the beginning of the string and the last four characters from the end of the string and stick a hyphen in between them.
48. 48 OpenURL: issn=1234-5678
Resource definition link syntax:
http://muse.jhu.edu/cgi-bin/resolve_openurl.cgi?genre=article&issn=#@ISSN-HYPHEN#&title=#@TITLE# &volume=#@VOLUME#&issue=#@ISSUE#&aulast=#@AULAST#&spage=#@SPAGE#
&issn=1234-5678
Field selector as placeholder
49. 49 Data Tests Under what condition(s) a resource is offered
Data test = true ? resource is offered
Data test = false ? resource is NOT offered
However…III Manual says:
“Data tests are used to suppress links to target resources”
Translation: a resource without data tests applied will always be offered; if you apply a data test, the resource link will be suppressed from displaying always and will only display when the data test(s) is(are) true.
No Data test(s) applied ? resource is offered
50. 50 Data Tests – WHY? Offer link when content should be there:
MatchDATE & MatchISSN
Check for elements required by link syntax:
HasVOLUME
HasSPAGE
HasTITLE
Check to see what something is:
isArticle
isNBERWorkingPaper
isDissAbs
51. 51 Data Test Types Match Data
Match the contents of a field selector against the coverage database
MatchDATE, MatchISSN
Regular expression
Match a pattern in field selector string
HasVOLUME, HasSPAGE, isArticle
Bool data
Perform a test on bib/item record data
Innovative origins only
52. 52 Data Test – Create New…
53. 53 Data Test – “MatchISSN”
54. 54 Regular Expressions Regular expressions ? pattern matching
Regex describes the pattern
Character string is the object of the pattern match
Simple
Check for the existence of any character(s)
.+
Match a specific string of characters
bob
Complex
Match a varying pattern of characters
(^.{4})(.{4}$)
55. 55 Regular Expression Data Tests Match a string pattern in a field selector
RegEx describes the pattern
.+ = “look for any character(s)”
Field selector is the object string
VOLUME
Data test applies the regex to the field selector
HasVolume ? Are there any characters in the data defined by the VOLUME field selector?
If yes, OpenURL has a value for volume ? data test = true
If no, OpenURL has no volume value ? data test = false
56. 56 Data Test – “HasVOLUME”
57. 57 Data Test – “isNBERWorkingPaper”
58. 58 Resources Where you link TO (aka, the “Target”)
Definition components shared with III linking
Name, Description
Active, Show coverage, Logging
Sort Order, Category
Navigation, Image file
Resolution Server Linking Components
URL
Link Display
Data Tests
Coverage Data
59. 59 Resource Def – Create New…
60. 60 Resource Def – Create New…
61. 61 Resource Def – Project Muse
62. 62 Resource Def – Name & Description Name does not need to be unique
Multiple definitions for same resource
One category per resource definition
Name becomes the text of the link
Value for #LinkText# placeholder in URL
Should make sense
Gets context from category
Can/will appear with other text
Description
Internal use only
63. 63 Resource Def – Active, etc. Active
On / Off switch
Logging
Stats
Show coverage
Display info from coverage data
Uses local catalog “LIB HAS” label
Start and end dates:
LIB. HAS 01-01-1995 - 12-31-2003
Useful?
64. 64 Resource Def – Show coverage
65. 65 Resource Def – Navigation & Image Navigation (frame vs. window)
WebOPAC only
Origin determines how WebBridge opens
Image
Displays as the link to the resource
#LinkImage# used in URL
File path relative to screens directory
Meant for WebOPAC resource table
66. 66 Resource Def – Link Display How the link displays
#LinkText# (or #LinkImage#)
What users click
#LinkText# ? resource name
Descriptive text (optional)
Search for ABC at XYZ.
HTML allowed
Field selectors (optional)
Anything that’s appropriate
67. 67 Resource Def – link display examples Project Muse
Get article at #LinkText#.
Project Muse
Browse to article at #LinkText#.
Lafayette Library Catalog
Search for <i>#@TITLE#</i> in the #LinkText#.
ILL Article Request
If this journal is not available at Lafayette, place an #LinkText#.
RefWorks
Export citation data for this record to #LinkText#.
68. 68 WebBridge panel
69. 69 Resource Def – URL aka the Link Syntax – URL for where users go when they click the link to the resource
http://0-muse.jhu.edu.www.library.lafayette.edu/cgi-bin/resolve_openurl.cgi?genre=article&issn=#@ISSN-HYPHEN#&title=#@TITLE#&volume=#@VOLUME#&issue=#@ISSUE#&aulast=#@AULAST#&spage=#@SPAGE#
$#@ISSN-HYPHEN##@URL#$
The more specific the target, the better
Field selector placeholders
Use data tests to make sure data is available
Can’t always get specific
URL dependent on resource, not WebBridge
70. 70 Link Syntaxes – How to find ‘em No standard for resource linking
CSDirect
WebBridge Link Syntax FAQ
WebBridge List
Vendor Websites
Trial and error
Must be predictable
Variable pieces must come from:
OpenURL data
Coverage data
CrossRef to the rescue
71. 71 Proprietary linking syntax Persistent article URLs – Project Muse
http://muse.jhu.edu/journals/american_imago/v060/60.4schapiro.html
Problems using OpenURL metadata
american_imago ? American Imago
060 ? 60
schapiro ? Schapiro
More than one article by author in one issue
v060/60.4schapiro1.htmlv060/60.4schapiro2.html
Persistent/Durable ? Predictable
72. 72 Resource Def – URL Link syntax tips
No line breaks or spaces
URL-encoded
e.g., space ? %20 | semicolon ? %3B
Beware of case-sensitivity
Experiment with different values
Field selectors represent variables
Don’t confuse vendor keys with field selector names
…&vol=45&iss=3…
…&vol=#@VOLUME#&iss=#@ISSUE#…
Can’t include session info
73. 73 Resource Def – Data Tests Why?
So the link is appropriate
So the link has a chance of being successful
Example: Project Muse
Data Tests:
MatchDATE, MatchISSN
So the article is there
HasTITLE, HasVOLUME, HasSPAGE
So the link is successful
http://muse.jhu.edu/cgi-bin/resolve_openurl.cgi? genre=article&issn=#@ISSN-HYPHEN#&title=#@TITLE# &volume=#@VOLUME#&issue=#@ISSUE#&aulast=#@AULAST#&spage=#@SPAGE#
74. 74 Match Against this Resource
75. 75 Secondary Lookups Use value from OpenURL to return value from coverage data
Format:
$#@FieldSelector##@ColumnNameFromCovData#$
Example: use ISSN to retrieve journal URL
$#@ISSN-HYPHEN##@URL#$
Get value defined by ISSN-HYPHEN from OpenURL
Look up that value in coverage data
Return value for URL from same row:
http://muse.jhu.edu/journals/american_imago/
Entire sting ($...$) replaced by returned value
76. 76 Secondary Lookups – Example uses Journal-level Link URL:
$#@ISSN-HYPHEN##@URL#$
$#@TITLE##@URL#$
Article-level Link URL; journal URL as base:
$#@TITLE##@URL#$@volume#.#@issue#.#@spage#
Grab JID value:
http://expensivejournals.com/getit?fmt=FT&pub=$#@TITLE##@JID#$&date=#@DATE#&issue=#@ISSUE#&page=#@SPAGE#
Grab any user-defined value in coverage data
77. 77 External Lookups Applied to Origins
Replace OpenURL data with data looked up somewhere else (“external” to the origin)
Example: Google Scholar
Weak OpenURLs, but often DOIs
GS origin def: Do external lookup (CrossRef)
If GS OpenURL has DOI:
WebBridge sends DOI to CrossRef
CrossRef returns citation data
WebBridge resolves CrossRef data, not OpenURL data
78. 78 External Lookup – Google Scholar & CrossRef lookup Requirements:
Field selector for GS DOI:
Name: DOIGS Def: id=doi RegEx: /doi://
External lookup definition URL:
http://doi.crossref.org/servlet/query?id=#@DOIGS#&pid=lafayette:lafayette
GS Origin definition: use external lookup.
Mapping file in the live WebOPAC directory
What to do with data returned by CrossRef lookup
Map CrossRef tag “surname” to OpenURL aulast
Map CrossRef tag “given_name” to OpenURL aufirst
79. How to make it work… Troubleshooting
80. 80 Troubleshooting Ask:
Where is the process failing?
WebBridge not a factor until button is clicked
Is the category assigned to the origin?
Is the missing resource assigned to the category?
Are the data tests being met?
Look at the OpenURL
Look at the OpenURL
Look at the OpenURL
81. 81 OpenURLs Origins
Can pass whatever they want
Can NOT pass whatever they want
Visible metadata may not equal OpenURL
OpenURL may contain invisible data
Can pass conflicting data
Can pass incorrect data
Can pass correct data in incorrect keys
82. 82 Looking at the OpenURL The OpenURL is
the URL of the WebBridge window
To view it:
Browser Address/Location bar
Bookmark the window
View window properties/info
Firefox “CopyURL+” extension
If HTTP POST instead of GET:
<!--{openurl:<X>}--> tokens in resserv_panel.html
83. How to make it work… Customizations
84. 84 Customizable displays resserv_panel.html
Used by OpenURL resolution server
Only the copy in live screens is used
Fully customizable
resserv_staff_panel.html
Millennium staff modules
wp_panel.html
WebOPAC
85. 85 resserv_panel.html
86. 86 resserv_panel.html – (manual page 106495) Major tokens:
<!--{resourcelist}-->
<!--{ifnoresources}-->
<!--{xif}-->
Useful tokens
<!--{ifopenurl:<X>}-->
<!--{openurl:<X>}-->
Major classes for style sheet use
wbbody, wbresourcelist, wbcategory
wblinkdisplay, wblinkfield, wblinktext
87. 87 resserv_panel.html – Sample code <!--{ifnoresources}-->
<h1 class="heading-res">Sorry!</h1>
<p><strong>Based on the information provided, WebBridge cannot offer appropriate links.</strong><p>
<!--{ifopenurl:title}-->
<p>Try searching for <i>
<!--{openurl:title}-->
</i>in the <a href="http://www.library.lafayette.edu/search/t?SEARCH=
<!--{openurl:title}-->
" target="_blank">Lafayette Library Catalog</a>.
</p>
88. 88 No resources – Rendered
89. 89 OpenURL data passed to ILL form
90. 90 HTML generated by resourcelist token
91. 91 Rendered view
92. 92 Write citation to window
93. That’s all
94. Really…that’s all I have
Bob Duncan
Lafayette College