This article explains how Talis products integrate with third party library management systems. Warning - it is quite in-depth!
Integration with library catalogues
This article is intended for a technical audience with assumed familiarity with the following topic areas:
- Library Management Systems
- MARC records
- z39.50 services
- JavaScript, CSS and HTML
Basic concept
When constructing a reading list, the user will want to assemble a number of resources from different locations into the list.
Talis Aspire will try to find out as much information as possible about the resource being bookmarked. This information is used to lead the student back to the resource and make resource access as straightforward as possible.
- A bookmarking extension captures initial data about a resource.
- Talis Aspire tries to find an authoritative record for the resource - preferably from a local library catalogue.
- Talis Aspire then tries to show the user local library availability information.
- Talis Aspire also provides links back to the resource.
Bookmarking extension
The end user (often an academic or member of library staff) will add a bookmarking extension to their web browser.
The user will be browsing a library catalogue or another website which has a page about a resource. If the user wants to add that resource to their library catalogue, they will click the browser extension. More information on this is explained in the Bookmarking from your web browser support article.
Bookmarking extension parser
The bookmarking extension javascript will:
- Inject a
<script>
tag into the HTML of the page being viewed. - Send the URL of the page being bookmarked to Talis Aspire.
Talis Aspire will send back some more javascript bookmarking parser rules which are specific to the URL of the page being bookmarked. This javascript will look for data in the page that we can use to identify the resource. Typically we use jQuery andCSS selectors to find the elements on the page. Occasionally we can load other pages from the same domain and retrieve additional data from there.
Construct an openURL string to send to Talis Aspire
We use the data scraped from the page to build a set of openURL parameters which are then sent back to Talis Aspire. The parameters that we are able to use are explained in the Bookmarklet API documentation.
We automatically then redirect the user to Talis Aspire.
Temporarily redirect the user to Talis Aspire
The user is redirected to Talis Aspire Reading Lists in order to complete the bookmarking process. The user has the opportunity to:
- Amend the data that is found
- Add additional data if required.
- Add the bookmark to their My Bookmarks, or
- Add the bookmark to a recent list that has been worked on as well as My Bookmarks
Catalogue lookup
Where possible, we will prefer to lookup data from trusted sources, rather than use the data scraped from the source web page. A user could be bookmarking from a bookstore catalogue page or from some other web page containing ISBNs.
The data sent to the bookmarking API is used to determine what sort of lookup we will do.
Identifier | Lookup from… | Method |
---|---|---|
Local Control Number | Local Library Catalogue only | z39.50 |
ISBN | Local Library Catalogue or else the Open Library | z39.50 or in the case of Open Library URLbased |
ISSN | Cross Ref (Plus additional info such as volume and issue details) | URL based |
DOI | Cross Ref | URL based |
Talis Aspire is able to read the resulting record and choose data from the record to build into its resource display. The record might be in MARC21 or some other XML format. Talis supports MARC21 records as well as MARC21 records which use RDA.
If the catalogue lookup fails to find a usable record then we resort to using the data passed to Talis Aspire via the extension.
Z39.50
Where a library uses z39.50, in order to make this available to a number of parts of the Talis Aspire system, a single z39.50 endpoint is created within Talis Aspire Reading Lists which essentially proxies requests to the z39.50 service. This allows the application to easily make certain limited types of searches.
All z39.50 servers are required to support searching for ISBN, ISSN and Local Control Number. The attribute set expected to be in use is the Bib-1 attribute set.
If multiple records are returned, the first result is the one that will be used.
Search for… | TARL endpoint | Equivalent z39.50 search | Notes |
---|---|---|---|
ISBN | /catalog/records/isbn/<ISBN> |
find @attr 1=7 <ISBN> |
We expect the ISBN to be in the Marc21 020 data field |
Local Control Number | /catalog/records/<LCN> |
find @attr 1=12 <LCN> |
This sometimes has to be requested as a special index. For Primo customers, both the IE.MID (source record number) and the MARC record 001 need to be indexed in this field |
CKey | /catalog/records/ckey/<CKEY> |
find ^C <CKEY> |
Additional configuration is required in the tenancy to support the use of CKey as the default search type |
any | /catalog/records/any/<anything> |
find @attr 1=1016 <anything> |
This is rarely used as it allows a search in ANY field that is indexed by the z39.50 service. Not all z39.50 services support this. |
Local Control Numbers
If we are successful with getting a MARC record from the Library catalogue, then one of the most important bits of information that we pull from the record is the Local Catalogue Number. This may or may not be the identifier used to get the record in the first place (e.g. ISBN lookup) but will be required by Talis Aspire for two purposes.
- To allow deep linking back in to the library catalogue from within the resource display of Talis Aspire.
- To allow library availability lookup to take place every time a user views the resource.
The exact location of the Local control number can vary between library systems. This is not an exhaustive list but typical known locations are:
System Vendor | Product | Local name | Marc field | validation regular expression |
---|---|---|---|---|
ExLibris | Alma | Source Record Number | (not present) | Captured via Bookmarking |
III Innovative | Millennium and Sierra | Record Number | 907a or 035a |
/b[0-9]{7}/ (the check digit is ignored as it cannot be used when passed to the online catalogue) |
SirsiDynix | Unicorn and Symphony | CKey | May not be present or 001 | use full value |
SirsiDynix | Horizon | Bib Number | May need to be added to MARC record | use full value |
ESS | Alto and Chorus | work id | 001 | use full value - always a numeric of varying length |
Infor | V-Smart | 001 |
This LCN is unusual in that it will contain a forward slash |
|
IS Oxford | Heritage | Not applicable |
The LCN is often a user entered field so varies wildly. |
|
Open Source | Folio | hrid | 001 |
The 'Human Readable Identifier' |
Library Availability
This is shown in Talis Aspire from the resource view of an item on a list. The availability will be fetched on each page load so that it always returns the most recent data.
Talis Aspire supports the following sources for Library Availability.
System Vendor | System | Service |
---|---|---|
ExLibris | Alma | z39.50 (Opac format record with <holdings> ) |
ExLibris | Aleph | X-Services |
ESS | Alto or Chorus | Local Data Services - ESS Connect for Talis Aspire |
III | Millennium | z39.50 (Opac format record with <holdings> ) |
III | Sierra | (Opac format record with <holdings> ) |
SirsiDynix | Symphony | z39.50 - Holdings are in the MARC 926 fields |
Open Source | Folio | z39.50 (Opac format record with <holdings> ) |
Deep linking
Talis Aspire offers deep links back into the Library Catalogue in order to provide the student with an opportunity to place holds or find additional information about a resource.
Deep Link type | Info |
---|---|
A deep link to the item | Uses the Local Control Number |
An optional deep link to an author and title search to aid alternative format and edition searches. | Uses the title and author as seen on the resource in Aspire |
Deep Links require the library catalogue to have a stable URL into which the appropriate value is placed by Talis Aspire. This will be the value as captured in the resource details and may have been edited by the user.
Typical stable URL patterns for different online catalogues might be as shown in the table below.
Example URLs
The *LCN*
part of any of these URLs refers to a token that Talis Aspire uses to replace with the actual token captured by the bookmarking. The *author*
and *title*
are used in the other formats and editions urls and will be replaced with the author and title taken from the current resource being displayed.
The <customer>
part in these examples refers to any specific identifier that identifies that particular customer to the system vendor and would be a static value.
System Vendor | Online Catalogue Product | Deep Link Type | example URL |
---|---|---|---|
ESS | Prism 3 | item | http://prism.librarymanagementcloud.co.uk/<customer>/items/*LCN* |
Serial Solutions | Summon 2 | view in catalogue | http://<customer>.summon.serialssolutions.com/#!/search/document?id=FETCHMERGED-<customer>_catalog_1_*LCN*1 |
Serial Solutions | Summon 2 | other formats editions | http://<customer>.summon.serialssolutions.com/search?s.q=TitleCombined:(*title*)%20AND%20AuthorCombined:(*author*) |
III | Classic catalogue | view in catalogue | http://<customer-domain>/record=*LCN* |
III | Encore | view in catalogue | http://<customer-domain>/iii/encore/record/C__R*LCN* |
SirsiDynix | Symphony | view in catalogue | http://<customer-domain>/uhtbin/cgisirsi/x/0/0/5?user_id=WEBSERVER&&searchdata1=*LCN*{001} |
ExLibris | Aleph | view in catalogue | http://<customer-domain>/F?func=item-global&doc_library=<customer>&doc_number=*LCN* |
ExLibris | Primo | view in catalogue | http://<customer-domain>/primo_library/libweb/action/display.do?&vid=<customer>&doc=<customer-prefix>*LCN* |
ExLibris | Primo (alternative) | view in catalogue | http://<customer-domain>/primo_library/libweb/action/dlSearch.do?institution=<customer>&onCampus=false&vid=<customer>&query=any,contains,*LCN*&indx=1&bulkSize=10&dym=true&highlight=false&displayField=creator |
Open Source | Folio | View in catalogue and Other Formats and editions | This will vary depending what discovery layer is being used alongside Folio. |
Other Library Systems
Talis believes that you should be able to choose a combination of systems that will work together to enable you to achieve a resource list service in your university that meets your needs.
Talis will happily have a conversation with your library system vendor to help establish whether integration will be possible and the best method to use. In general our requirements are:
- That we can search an index of Local Control Numbers
- That we can search an index of ISBNs
- That we can search an index of ISSNs
- That these searches will return bibliographic data. Either a MARC record or another representation of the record. AND that the Local Control Number is present in the record.
- That we can use a Local Control Number to lookup live item holding availability.
- That we can build a deep link to your library catalogue or discovery service using the previously captured Local Control Number
- That we can build a deep link to an author and title search for finding other formats and editions of a title.
We may need to do some development work to support local specifics of an library system integration. but we have not come across a system that we cannot integrate with.