Tech Blog

Search25 target parser

  • Description

Two simple SFX getHolding target parsers to the Search25 discovery tool of catalogues of nearly 60 collections in the M25 Consortium of academic libraries in the south-east of the United Kingdom.

The parsers issue outbound URLs from SFX menus that initiate on-the-fly searches of M25 catalogues or a search of a centralised database of M25 serials holdings, depending on the linking option chosen, and return results in the Search25 catalogue user interface.

  • Author: Jeremy Acland
  • Institution: Queen Mary University of London
  • Year: 2013
  • Contact: For the time being, please address enquiries to
  • ForThe M25 Consortium of Academic Libraries
  • License: BSD style
  • Short description: Use, modification and distribution of the code are permitted provided the copyright notice, list of conditions and disclaimer appear in all related material.
  • Skill required for using this code: Basic or intermediate. As well as basic SF Admin UI configuration, you need to be able to find your way around SFX installation directory structures.


Stable. Further development depends on feedback &/or future development of Search25 discovery service

Programming language


Software requirements

  • Presupposes SFX 4.X
  • Not tested for SFX3 but no reason why it shouldn’t work there with similar installation processes

Target homepage


SEARCH25 and ULS25 target parsers are both contained in the file, together with a document outlining installation instructions for both SFX Admin and UNION_ALL_CATALOGUES installation.

Working example

SFX Admin-configured menu links via QMUL test instance:
  • Book: Holdings in London M25 Consortium Union catalogues via Search25
  • Journal: Holdings in London M25 Consortium Union List of Serials via Search25 (offers both Search25 and ULS25 options)

UNION_ALL_CATALOGUES-configured menu links via QMUL production instance menu

  • Book: Access via another Library? … <dropdown Search25 catalogues item>
  • Journal: Access via another Library? … <dropdown Search25 serials item>


Version 1.0

Initial implementation (not loaded to CodeShare): deployment as UNION_ALL_CATALOGUES targets only.

Version 2.0

Current deployed version:
  • improvements to author and title searching in Search25 parser for deployment via SFX Admin configuration
  • some future-proofing against developments in Search25 search functionality

Release notes

Search25 is a discovery tool to the library catalogues of nearly 60 collections within the M25 Consortium of academic libraries. The M25 Consortium works to improve library and information services across London, the East and South-East of England in the United Kingdom.

Two getHolding parsers are presented here:

  •, which uses an on-the-fly search based on Z39.50 of the live M25 consortium member library catalogues;
  •, based on the University of London Union List database of print serials held by M25 consortium member libraries.

They can be installed either as SFX menu options through Admin configuration, or as part of the UNION_ALL_CATALOGUES dropdown list of catalogue lookup options.

  • Search25 replaces the now-deprecated Inform25 and ULS search services.
  • Linking is by ISXN where available, otherwise by title, then author. Search25 does not currently support an author/title composite search.
  • Comments, especially improvement suggestions, most welcome!

Installation instructions

Unpack the zip file and place and files in the UNION subdirectory of the target parser directory of your SFX instance, ie /exlibris/sfx_ver/sfx4_1/sfxlcl41/lib/Parsers/TargetParser/UNION.
(You may unpack to a different dubdirectory, eg SEARCH25, but in this case you will need to edit the 1st lines of the two parsers to reflect their altered location. The instructions below assume UNION, where they will work perfectly well regardless of SFX Admin or UNION_ALL_CATALOGUES configuration.)

Configuration via SFX Admin

1. Search25 parser
  1. Create a new Target SEARCH25; label as required. This becomes SEARCH25_LCL when saved to indicate a local target
  2. Add a new getHolding service; label as required.
  3. Edit the getHolding service
    1. edit Institute settings to set aggregator settings to ‘Inherit’
    2. uncheck ‘Object Lookup (global)’
    3. check ‘Is free’
    4. in the Parser (Global) field, enter UNION::SEARCH25
    5. in the Threshold (global) field, enter ($obj->need(‘rft.isbn’))||($obj->need(‘rft.issn’))||($obj->need(‘’))||($obj->need(‘rft.title’))
    6. add notes as required

2. ULS25 parser

1. As above, create a new target ULS25 (becomes ULS25_LCL), add a new getHolding service, and label as required
2. Edit the getHolding service as above except:
a. in the Parser (Global) field, enter UNION::ULS25
b. in the Threshold (global) field, enter ($obj->need(‘rft.issn’))||($obj->need(‘rft.title’))

Try restarting your local instance Apache (da -> ./server_admin_util -> 1 -> 8) if any changes you make to the SFX configuration don’t seem to have any effect.

Configuration as UNION_ALL_CATALOGUES target

This one depends on which SFX menu you have deployed. The following instructions are for the simplified template, which is the one deployed at QMUL.
  1. Log into the SFX instance where you want to offer the Search25 menu linking options (if not already) and cd to the templates directory with tm (or cd /exlibris/sfx_ver/sfx4_1/sfxtst41/templates).
  2. cd simplified_template1/services
  3. cp getHolding_UNION.tmpl getHolding_UNION.tmpl.yyyymmdd to make a safe copy of this service
  4. vi getHolding_UNION.tmpl
  5. add at the point in the file where you want the two Search25 options to appear in the menu catalogues dropdown list, usikng whatever labels you choose – typically:
    1. <option value=”UNION::SEARCH25″>London Search25 union catalogue
    2. <option value=”UNION::ULS25″>London Search25 union serials list
  6. and that’s it!

Typical UNION_ALL_CATALOGUES setup command line session:

login as: sfxtst41's password:
~$ tm
templates$ cd simplified_template1/services
services$ cp getHolding_UNION.tmpl getHolding_UNION.tmpl.20130301
services$ vi getHolding_UNION.tmpl
services$ diff getHolding_UNION.tmpl getHolding_UNION.tmpl.20130301
< <option value="UNION::SEARCH25">London Search25 union catalogue (*new!*)
< <option value="UNION::ULS25">London Search25 union serials list (*new!*)
services$ exit

Use vi to enter the new parser options into getHolding_UNION.tmpl

Page Attachments

Leave a Reply