Skip to main content
ExLibris
Ex Libris Knowledge Center

Configuring External Metadata

Configuring External Metadata: SRU/SRW

External metadata about content objects in Rosetta is stored in external systems such as collection management systems. To enable Rosetta to communicate with external systems, Administrators can edit the configuration files from the Administration page by clicking Repository Configuration > External Interfaces > SRU/SRW sources and definitions.The Configuration Files page opens to the SRU/SRW sub-group (below).
rcAdvRepoExtrnlMetadtaSrcesIntrfc.gifSRU/SRW Configuration Files
The fields are described in the following table:
External Metadata Configuration Files
File Defines...
explain.properties Parameters of the Rosetta system server
external_resource_explorer_configuration.xml Parameters of an external system server
The following tasks must be performed in the configuration of SRU:

Configure Rosetta Parameters - External Resource File

Use the following procedure to configure Rosetta parameters for external files:
  1. With the File Group field set to External Interface and the Sub-Group set to SRU/SRW, click Edit for the file named external_resource_explorer_configuration.xml.
    The file opens on the page. It contains all SRU configurations that are delivered with Rosetta.
  2. Add your configuration to the file. The parameters that should be modified are:
  • baseUrl - the URL of the system that acts as an SRU server (CMS)
  • version - SRU version (currently 1.1 is supported by Rosetta)
  • operation - since Rosetta is the client, "searchRetrieve" is the only option
  • recordSchema - should be "dps"
  • indexName - should be "rec.id"
  • recordPacking - should be xml
  • updateUrl - in cases where the server can get a response for updating the exists-in-Rosetta flag, the url should be added here (currently available only for Voyager and Aleph. For other systems - leave it empty.
The following is an example of an SRU configuration for Aleph and Voyager:

<?xml version="1.0" encoding="UTF-8"?>

<ExternalResourceExplorer xmlns="http://www.loc.gov/zing/srw/configuration/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xml="http://www.w3.org/XML/1998/namespace">

<RepositoryName name="qa654mkdb">

<protocol type="SRW">

<parm name="baseUrl">http://10.100.2.36:17191/voyager</parm>

<parm name="version">1.1</parm>

<parm name="operation">searchRetrieve</parm>

 

<parm name="recordSchema">dps</parm>

<parm name="indexName">rec.id=</parm>

<parm name="recordPacking">xml</parm>

<parm name="updateUrl">http://10.100.2.36:17114/vxws/updateDPSFlag</parm>

</protocol>

</RepositoryName>

 

<RepositoryName name="USM01" type="ALEPH">

<protocol type="SRW">

<parm name="baseUrl">http://il-aleph07:5667/usm01</parm>

<parm name="version">1.1</parm>

<parm name="operation">searchRetrieve</parm>

<parm name="recordSchema">dps</parm>

<parm name="indexName">rec.id=</parm>

<parm name="recordPacking">xml</parm>

 

<parm name="updateUrl">http://il-aleph07:8997/X?op=ros_doc&amp;library=USM01</parm>

<parm name="detachUrl">http://il-aleph07:8997/X?op=ros_doc_del&amp;library=USM01</parm>

</protocol>

</RepositoryName>

</ExternalResourceExplorer>


It should be noted that RepositoryName must equal the name that is returned in the SRU/SRW response. For example, if
<identifier>DPS:10.100.2.36:ALEPH01:9611</identifier>
then the name attribute of RepositoryName must be ALEPH01, as in
<RepositoryName name="ALEPH01" type="ALEPH">
To get the parameters from the SRU server, call the explain URL.
The following is an example of the explain URL from the Aleph system:

<zs:explainResponse>

<zs:version>1.1</zs:version>

<zs:record>

<zs:recordSchema>http://explain.z3950.org/dtd/2.0/</zs:recordSchema>

<zs:recordPacking>xml</zs:recordPacking>

<zs:recordData>

<explain>

<serverInfo>

<host>il-aleph07</host>

<port>9997</port>

<database>usm01</database>

</serverInfo>

 

<indexInfo>

<set identifier="info:srw/cql-context-set/1/cql-v1.1" name="cql"/>

<set identifier="info:srw/cql-context-set/1/dc-v1.1" name="dc"/>

<set identifier="http://zing.z3950.org/cql/bath/2.0/" name="bath"/>

<index id="4">

<title>title</title>

<map>

<name set="dc">dc.title</name>

</map>

</index>

<index id="48">

<title>identifier</title>

 

<map>

<name set="dc">dc.identifier</name>

</map>

</index>

<index id="12">

<title>rec.id</title>

<map>

<name set="dc">rec.id</name>

</map>

</index>

</indexInfo>

</explain>

</zs:recordData>

</zs:record>

 

<zs:diagnostics>

<diagnostic>

<uri>info:srw/diagnostic/1/7</uri>

<message>Mandatory parameter not supplied</message>

<details>version</details>

</diagnostic>

<diagnostic>

<uri>info:srw/diagnostic/1/7</uri>

<message>Mandatory parameter not supplied</message>

<details>operation</details>

</diagnostic>

</zs:diagnostics>

</zs:explainResponse>

Configure Rosetta Parameters - Explain File

Use the following procedure to configure the dbInfo parameter in the explain file:
With the File Group field set to External Interface and the Sub-Group set to SRU/SRW, click Edit for the file named explain.properties and enter your SRU (Rosetta) details for dbInfo={DPS SRU Database}
For example,:

dbInfo=DPS SRU Database

Adaptation Needed in the SRU Server

Rosetta should store the CMS ID and metadata in the repository and link it to an IE. In order for Rosetta to perform the link, the following metadata should be returned as part of the response:

<identifier>{DPS}:{IP}:{NAME}:{CMS-ID}</identifier>

where:
  • {DPS} = constant text
  • {IP} = the IP of the server
  • {NAME} = the name of the repository
  • {CMD-ID} = the CMS ID
For example:

<identifier>DPS:10.100.2.36:qa654mkdb:9611</identifier>

Note: The response should be in DC format only.
The query:
  • Was this article helpful?