Library catalogues

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.

TARL will try to find as much information out about the resource been bookmarked as possible. This information is used to lead the student back to the resource and make resource access as straightforward as possible.


The end user (often an academic or member of library staff) will add a javascript bookmarklet to their web browser favourites toolbar.

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 Add to my bookmarks button, or the browser extension.  More information on these bookmarking options is explained in the Bookmarking from your web browser support article.

Bookmarklet parser

The bookmarklet 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 bookmarklet 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 Bookmarklet.


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.

  1. To allow deep linking back in to the library catalogue from within the resource display of Talis Aspire.
  2. 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<customer>/items/*LCN*
Serial Solutions Summon 2 view in catalogue http://<customer>!/search/document?id=FETCHMERGED-<customer>_catalog_1_*LCN*1
Serial Solutions Summon 2 other formats editions http://<customer>*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/<customer>&doc=<customer-prefix>*LCN*
ExLibris Primo (alternative) view in catalogue http://<customer-domain>/primo_library/libweb/action/<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.

Have more questions? Submit a request


Please sign in to leave a comment.