Discovery system provides the UI for Alma Link Resolver services for searches that were initiated in an outside bibliographic database (such as EBSCO, Google Scholar, etc.). The result of these searches is a dedicated page called the Services Page. This page usually contains the bibliographic information of the resource, as well as a link to ‘view’ electronic version, and / or ‘get’ a physical version.
The communication is done based on the OpenURL standard.
The following diagram illustrates the workflow:
Typically, the OpenURL includes the following:
- rfr_id – indication about the original source in which the resource was requested (e.g. google).
- Context object – i.e. metadata identifying the record.
The Discovery system should pass the openURL request to Alma. The openURL that will be sent from the discovery system to Alma is called ”Request for Services OpenURL”.
Request for services OpenURL
The following table describes the parameters that should be sent as part of the Request for Services OpenURL:
|rfr_id||The original source – the rfr_id of the request from the outside bibliographic database (e.g. google)|
|sid||The original source – the rfr_id of the request from the outside bibliographic database (e.g. google)|
|user_ip||IP of the user which originated the request|
|Context object||metadata identifying the record, as received|
|rft.mms_id||The specific MMS ID.|
Alma will return an XML which includes:
- Context object, including mms_id and other bibliographic information added by Alma.
- full_text_indicator – true/false indication if full text exists.
- Link which redirects to the actual resource (in a <resolution_url> field – supported from March 2017 release)
- List of available_services:
viewit: in case electronic/digital services are available
getit: in case physical services are available
Example of the returned xml:
<uresolver_content xmlns="http://com/exlibris/urm/uresolver/xmlbeans/u"> <context_object> <keys> <key id="full_text_indicator">true</key> <key id="available_services">viewit</key> <key id="available_services">getit</key> <key id="rft.auinit">W</key> <key id="rft.jtitle">Il Nuovo cimento.</key> <key id="rft.atitle">Singular hypersurfaces and thin shells</key> <key id="rft.spage">1</key> <key id="rft.epage">14</key> <key id="rft.object_type">JOURNAL</key> <key id="rft.mms_id">99122636890001021</key> <key id="rft.inventory_id">21378267430001021</key> <key id="rft.inventory_id">21378267270001021</key> <key id="rfr_id">google</key> <key id="inventory_id">21378267430001021</key> <key id="inventory_id">21378267270001021</key> …. </keys> … </context_object> </uresolver_content>
The discovery system receives the returned XML and should display metadata information, and the relevant options – view it / get it / both – according to the available_services fields. Following is an example of services page:
Once user clicks on one of the viewit/getit options, an OpenURL call should be sent to Alma in order to request the specific service.
Request for specific service OpenURL
- View it: with parameter svc_dat=viewit
- Get it: with parameter svc_dat=getit
In order to receive viewit / getit HTML in specific language, the following parameter should be added to the Request for specific service OpenURL: rft_dat = language=[language code]. Example: rft_dat=language=eng
For more information about request for specific service see Fulfillment services.
If you are a multi campus institution:
<Alma delivery domain>/view/uresolver/<institution_code>/openurl-<campus code>?
<Alma delivery domain>/view/uresolver/<institution_code>/openurl?
Important Note: The OpenURL integration is intended for integrating Alma with third party discovery systems. Using it for other workflows is not supported.