Z3950-SBN and ILL-SBN data exchange with Alma

 

Fabiano Petrone - Universita degli Studi di Udine

 

 

 

 



Alma enrichment for the SBN Z3950 Opac

Intro
For this implementation I've followed the indications contained in the allegato tecnico al protocollo di intesa ICCU-ITALE sent to me by ICCU (sorry: only in italian..).

Please note that this ICCU doc was written only for Aleph: In this section I've tried to build a similar procedure for Alma.
This is only a working hypotesis: it doesn't mean that the following is the best solution for developing a dialogue between Alma and the Z3950 SBN opac:
every suggestion for alternative developments are welcome!


Said that, let's start...before all on the Alma side you should enable your Z3950 server with the Enrich with holdings option:

950 field implementation
T he first important part (implementation of the 950 field) should be common to the two softwares.
The ICCU requests are the following fields:

Books (950-1) Serials (950-2)
$$1 nome delle biblioteca in chiaro
$$2 nome del fondo
$$3 collocazione
$$4 n. volume
$$h descrizione del volume
$$f status di copia in chiaro
$$a codice della biblioteca
$$a codice biblioteca
$$2 fondo
$$3 collocazione
$$c consistenza
$$l lacune

Now an important issue: in our records (UNIUD) only the holdings data are up-to-date for libraries, locations, positions, etc. so the content of the 950 field should be "fetched" form the holding records (written in MARC21) and NOT from the BIB records (written in UNIMARC).
Maybe your situation is different (I.E. you've up-to-date libraries, locations, etc. also on the BIB records): in this case you can re-arrange the following normalization rules for applying them to your BIB records and NOT to your holdings


I've made 2 examples "at hand".
A book (sys 990001999880402531) and a serial (sys 990000017690402531)
here are two screenshots of the configuration implemented.

The first is for the book:

the second for the serial:

Please note that I've left the original ICCU descriptions of the subfields on:

950-1$$1 nome delle biblioteca in chiaro
950-1$$4 n. volume
950-1$$h descrizione del volume
950-1$$f status di copia in chiaro
950-2$$c $$c consistenza
950-2$$l $$l lacune

because these values are not available on the holding records, so their automatic consruction via normalization rules for the existing holdings should be problematic
if not impossible.

950 Holding enrichment

Creating the right logical sets
If the previous step is right, the first problem is the holding enrichment for all the data available in Alma.
The first step consists in building the right logical sets (one for all the physical books, call it books and the other for all the physical serials, call it serials).
My solutions for the sets are these...


...or these (based on the value of the FMT field):


Creating the normalization rules
The second step is creating the right normalization rules for the two sets:
Here's for the books with 950 still not set:

rule "Create 950-1 in Biblioteca Umanistica e della Formazione book holdings"
when
( (exists "852.{8,-}.b.GORIZ" OR exists "852.{8,-}.b.MANMO") AND not exists "950")
then
//**Add Biblioteca Umanistica 950 _1 and copy the selected fields content**//
AddField "950.{-,1}.1.Biblioteca Umanistica e della Formazione"
AddSubfield "950.{-,1}.2.placeholder"
replaceSubFieldContents "950.2" with "852.c"
AddSubfield "950.{-,1}.3.placeholder"
replaceSubFieldContents "950.3" with "852.h"
AddSubfield "950.{-,1}.a.placeholder"
replaceSubFieldContents "950.a" with "852.b"
end

and here's for the books with 950 yet set:

rule "Replace 950-1 in Biblioteca Umanistica e della Formazione book holdings"
when
( (exists "852.{8,-}.b.GORIZ" OR exists "852.{8,-}.b.MANMO") AND exists "950")
then
//**Replace Biblioteca Umanistica e della Formazione 950 _1 and copy the selected fields content**//
ReplaceContents "950.1.*" with "Biblioteca Umanistica e della Formazione"
replaceSubFieldContents "950.2" with "852.c"
replaceSubFieldContents "950.3" with "852.h"
replaceSubFieldContents "950.a" with "852.b"
end

This one is useful when used with the "normalize on save" option when something on the 950-related fields changes (like location...)

and here's for the serials with 950 still not set:

rule "Create 950-2 in Biblioteca di Scienze serial holdings"
when
( (exists "852.{8,-}.b.PORDE" OR exists "852.{8,-}.b.RIZZI") AND not exists "950")
then
//**Add Biblioteca di Scienze 950 _2 and copy the selected fields content**//
AddField "950.{-,2}.1.Biblioteca di Scienze"
AddSubfield "950.{-,2}.2.placeholder"
replaceSubFieldContents "950.2" with "852.c"
AddSubfield "950.{-,2}.3.placeholder"
replaceSubFieldContents "950.3" with "852.h"
AddSubfield "950.{-,2}.a.placeholder"
replaceSubFieldContents "950.a" with "852.b"
end

and here's for the serials with 950 yet set:

rule "Replace 950-1 in Biblioteca di Scienze serial holdings"
when
( (exists "852.{8,-}.b.PORDE" OR exists "852.{8,-}.b.RIZZI") AND exists "950")
then
//**Replace Biblioteca di Scienze 950 _2 and copy the selected fields content**//
ReplaceContents "950.1.*" with "Biblioteca di Scienze"
replaceSubFieldContents "950.2" with "852.c"
replaceSubFieldContents "950.3" with "852.h"
replaceSubFieldContents "950.a" with "852.b"
end
.

This one is useful when used with the "normalize on save" option when something on the 950-related fields changes (like location...)

 

Applying the rules to the logical sets



Visualization
Here is the visualization on the SBN site of a Book with two 950-enriched holdings:

The red holding (RIZZI) is created with the previous normalization rule, the green holding (PORDE) is created "at hand".

The big problem here is that applying the holding enrichment globally (following the procedure seen above) brings to a similar situation for all our books and serials, so, I.E. all the
Antique Books immediately appears as available for ILL, photocopying, scanning, etc.


An use by the SBN Opac of the Exlibris RestFUL APIs and the Primo deeplinks would resolve this important issue.
For Now, after the selection of a particular item we're NOT directly conducted to the Primo environment where all the policies & the ILL procedures regarding the item are clear.

About this important point, I've asked to the ICCU if it's possible to make some exceptions on their side for particular libraries and locations:
They answers Yes for the libraries but the thing is still not clear for the locations.

Services (ILL, photocopy...) requesting
Here seems that all still should be configured on both sides (OPAC SBN & Alma).
Clicking on the link Accedi ai servizi di prestito e riproduzioni per le biblioteche selezionate after selecting a copy, we're bring to a form with only few data mandatory (*):

we can choose the service we desire:

we should know the ICCU code for the library to which we ask for an ILL, photocopy, etc...

...in this example the request is made to our Scientific library.
At the end we have a summary of our request:

After that, at the destination library (for now) arrives only a mail like this:

and in Alma nothing arrives.

 

Summary of the critical points
A little summary of the critical points at now

ISO-ILL within Alma

Thanks a lot to Oren Farkas (Exlibris) for the technical help on this issue
and to Caterina Colombo (UNIUD) and Antonella Cossu (ICCU) for the help in experimenting this solution
.

 

Configuring the Partners

 

First you should configure an RS ISO partner via the following menu:

Fulfillment -> Resource sharing -> Partners -> Add Partner

please note that -like the following example- maybe you need two different records for the same partner (one ISO, the other I.E. Email):

This is the General Information panel:

you can choose freely the Code parameter, but the Profile type and the System type should be set like in the picture.

This is the Parameters panel:

here all the data (Server, Port, Symbol) is mandatory and should be the same data that SBN have sent to you.
The ISO symbol that you put here is the ISO symbol that will be used when sending out a message to SBN: in our case is (for our commodity) identical to partner code, but that identity is not mandatory, else if I strongly suggest it.

 

Configuring the Library

The second thing you should do is configuring your RS library to work properly with SBN.
This is done under:

Administration -> General configuration -> Configuration menu -> Libraries -> Add a Library or Edit Library Information

Then choose your RS library and click Edit, then set the RS info as following:

The code that SBN sends to you during a request (the ISO Symbol parameter: IT-UD0237 in our example) is the value that you can put here in the Symbol field (please don't confuse it with the Partner symbol seen above!).
You can choose also the Locate by Fields option:

 

Summary of critical points

Thanks a lot to to Caterina Colombo (UNIUD) and Antonella Cossu (ICCU) for the technical help on this issue

From Alma, you can add a SBN borrowing request picking the external resources...

...and then choosing SBN-on-line:

SBN On-Line is the name of an old SBN web interface, and should be substituted with something newer.
This is the output of a search:

Here on the output you can note the lack of the Location field (The code of the library that owns the document): in the SBN records they are written on the 899$1 nad 899$2 fields.
There's also the lack of the consistency of a serial: in the SBN record it's on the 899$4 field.