Table des matières
v1.1, décembre 2011: Première version pour la v1.1.
Une version en-ligne de ce document est disponible aux URL suivantes : |
| Résumé | |
|---|---|
Le Chargeur SUDOC Koha est un logiciel sous licence GNU GPL. Il permet de déployer un Catalogue Koha dans le SUDOC. Ses principales caractéristiques sont les suivantes :
|
Le catalogue du Système Universitaire de Documentation SUDOC est le catalogue collectif français réalisé par les bibliothèques et centres de documentation de l'enseignement supérieur et de la recherche. Le SUDOC est géré par l'Agence bibliographique nationale de l'enseignement supérieur (ABES). Le SUDOC comprend plus de 9 millions de notices bibliographiques qui décrivent tous les types de documents (livres, thèses, revues, ressources électroniques, documents audiovisuels, microformes, cartes, partitions, manuscrits et livres anciens…)
Le Chargeur SUDOC Koha est une boîte à outils permettant l'échange de données entre le SIGB Koha et le SUDOC. Différentes opérations sont à réaliser afin de déployer dans le SUDOC un établissement (ILN pour l'ABES) constitué d'une ou plusieurs bibliothèques (RCR). A chaque ILN, correspond une instance de Koha et à chaque RCR d'un ILN correspond une bibliothèque d'une instance Koha.
Il y a une phase préalable de localisation des ressources de l'ILN dans le SUDOC. Cette opération peut être plus ou moins automatisée. Le Chargeur SUDOC propose des outils d'extraction des données bibliographiques d'un Catalogue Koha dans des formats reconnus par le SUDOC. Au moyen de ces fichiers, un ILN évalue le taux de recouvrement de son Catalogue dans le SUDOC, le localise automatiquement et en retour enrichit son Catalogue de liens vers les notices du SUDOC.
On passe ensuite dans la phase de fonctionnement avec le SUDOC. A cette étape, l'ILN utilise le logiciel WinIBW afin de saisir ses notices bibliographiques et d'autorités directement dans le SUDOC. Les notices ainsi créées sont renvoyées par l'ABES à l'ILN qui les charge périodiquement dans son Catalogue Koha. Le Chargeur SUDOC gère à la fois les transferts de fichiers par l'ABES et le chargement des notices dans un Catalogue Koha.
Le Chargeur SUDOC est une collection de scripts Perl qui fonctionnent sous tout système d'exploitation Linux/Unix. Vous téléchargez une archive contenant tous les fichiers nécessaires à cet emplacement :
http://www.tamil.fr/sudoc/sudoc.tar.gz
Décompressez l'archive dans un répertoire, par exemple dans le
répertoire /usr/local/koha :
cd /usr/local/koha tar zxvf <chemin-vers-archive>/sudoc.tar.gz
Vous aurez un répertoire /usr/local/koha/sudoc contenant une
arborescence de sous-répertoires et les fichiers du Chargeur. Quelque
chose comme ceci :
.
|-- COPYING
|-- README
|-- bin
| |-- sudoc-load-authorities
| |-- sudoc-load-biblios
| |-- sudoc-localisation
| |-- sudoc-spool
| `-- sudoc-trans
|-- doc
| |-- README
| |-- sudoc.txt
| `-- sudoc.xml
|-- etc
| `-- sudoc.conf
|-- lib
| |-- Conversion.pm
| |-- Converter.pm
| |-- EchoWatcher.pm
| |-- FileProcess.pm
| |-- Koha
| | `-- BiblioReader.pm
| |-- Koha.pm
| |-- RecordReader.pm
| |-- RecordWriter.pm
| |-- Sudoc
| | |-- Converter.pm
| | |-- Loader
| | | |-- Authorities.pm
| | | `-- Biblios.pm
| | |-- Loader.pm
| | |-- Localisation.pm
| | `-- Spool.pm
| |-- Sudoc.pm
| `-- WatchableTask.pm
`-- var
|-- log
| |-- 80-Authorities.log
| `-- 80-Biblios.log
`-- spool
`-- 80
|-- done
|-- staged
`-- waiting
|-- ILN186-TEST-933r374B001.raw
|-- ILN186-TEST-933r374C001.raw
`-- ILN186-TEST-933r376A001.rawInstallez les bibliothèques Perl requises (en étant root) :
cpan App::cpanminus cpanm MARC::Moose::Record cpanm AnyEvent cpanm Log::Dispatch cpanm Locale::TextDomain
La commande perldoc doit être installée. Installation sous Debian/Ubuntu:
apt-get install perl-doc
Pour exécuter les scripts du chargeur, faites pointer la variable
d'environnement PATH sur le répertoire sudoc/bin, par exemple pour
l'installation dans /usr/local/koha, sous Linux :
export PATH=$PATH:/usr/local/koha/sudoc/bin
Et bien sûr, il faut que vous ayez au moyen au moins une instance de
Koha installée, avec les variables d'environnement KOHA_CONF et
PERL5LIB correctement initialisées.
Lisez attentivement la suite de ce document pour comprendre le fonctionnement du Chargeur SUDOC. Configurer soigneusement le chargeur lui-même et la/les instances de Koha avec lesquelles vous l'utiliserez. Avant toute utilisation, initialisez le spool de votre ILN : voir la commande sudoc-spool. Faites des essais sur une instance de test de Koha avant d'utiliser le Chargeur sur votre instance de production. |
Table des matières
Le Chargeur SUDOC distingue le transfert des fichiers de l'ABES de leur chargement dans un/des catalogues Koha. Le chargeur peut fonctionner sur un serveur partagé disposant de plusieurs instances de Koha correspondant à des ILN distincts.
Pour chaque ILN, il y a un spool de fichiers SUDOC qui sont placés dans trois sous-répertoires. Les fichiers passent d'un sous-répertoire à l'autre en fonction de l'avancement des traitements :
Le transfert de fichiers du serveur du SUDOC sur le serveur Koha se fait au moyen de la méthode PUT proposée par l'ABES. Le serveur SUDOC et le serveur Koha réalisent des actions et échangent des messages par courriel selon le protocole suivant :
SUDOC |
Les notices de l'ILN sont extraites selon la périodicité qui a été demandée à l'ABES. Quand les fichiers sont prêts, un message est envoyé au serveur Koha, le message status 9. |
Koha |
Le message status 9 est reçu par le serveur Koha. Un message GTD est envoyé au serveur de l'ABES. Il est demandé que les fichiers soient transférés dans un sous-répertoire dont le nom est le code de l'ILN suivi du sous-répertoire staged. Le répertoire accessible sur le serveur Koha par FTP/SFTP est un lien symbolique vers le Spool du chargeur. |
SUDOC |
Réception du message GTD de l'ILN. Transfert des fichiers par FTP sur le serveur Koha dans le sous-répertoire de l'ILN. Envoi du message GTD Status 0. Signifiant que le transfert est terminé. |
Koha |
Réception du message GTD Status 0. Les fichiers sont déplacés dans le Spool de staged en waiting. |
Les éléments suivants doivent être définis/configurés :
Un serveur FTP/SFTP doit être configuré sur le serveur Koha ainsi qu'un serveur SMTP.
Le script sudoc-trans gère ce protocole de transfert. Il examine la
boîte aux lettres locale MBOX définie dans le fichier de configuration
par son chemin d'accès. Il traite deux messages en provenance du SUDOC :
sudoc-trans répond à ce message en
renvoyant immédiatement une demande de transfert par FTP : GTD.
sudoc-trans déplace les fichiers dans le répertoire
waiting du spool de l'ILN.
Le fonctionnement du daemon sudoc-trans est piloté par la section
Transfert de sudoc.conf.
L'ILN définit avec l'ABES les fichiers qu'il souhaite recevoir régulièrement. Les notices bibliographiques des ressources cataloguées par l'établissement dans le SUDOC sont toujours transmises. Le chargeur SUDOC requiert que les notices envoyées soient encodées en UTF-8. Il est possible de demander à recevoir également les notices liées, les notices de collection par exemple. Enfin, l'ABES peut également transmettre des fichiers des autorités contenues dans les différentes notices bibliographiques.
Le Chargeur SUDOC dispose de deux programmes distincts de chargement des notices : un premier pour les notices bibliographiques et un second pour les notices d'autorités.
Si vous n'avez pas utilisé |
Il faut toujours commencer par charger les autorités afin de permettre la création des liens entre notices bibliographiques et notices d'autorité. |
Le script de chargement des autorités sudoc-load-authorities examine le répertoire des fichiers en attente de chargement. Il traite un-à-un les fichiers d'autorités.
Pour chaque autorité, on détermine s'il s'agit d'une nouveauté ou de la mise à jour d'une autorité existante. Les nouveautés sont ajoutées à Koha. Les mises à jour remplacent les autorités Koha correspondantes.
Il y a deux cas de figure où l'on a affaire à une mise à jour :
Après chargement, chaque fichier d'autorités est déplacé dans le répertoire done des fichiers ayant été traités.
Le chargement des notices bibliographique est réalisé par le script sudoc-load-biblios. Tout en ayant la même logique de fonctionnement que le chargeur des autorités, ce script réalise des traitements supplémentaires et paramétrables. On peut par exemple avoir pour un établissement donné une logique spécifique de création des exemplaires reprenant des données de champs locaux (niveau 2) de la notice entrante. Pour les mises à jour, il peut y avoir des règles de fusion entre la notice entrante et la notice existante.
Pour chaque notice bibliographique, on détermine s'il s'agit d'une nouveauté ou de la mise à jour d'une autorité existante. Les nouveautés sont ajoutées à Koha. Les mises à jour remplacent les notices Koha correspondantes.
Il y a trois cas de figure où l'on a affaire à une mise à jour :
$5 contenant un des RCR de l'ILN et en $a le
numéro (biblionumber) de la notice Koha correspondante.
$9 sudoc. Le $a contient le PPN de l'ancienne notice qui a
été fusionnée. Dans ce cas, on peut savoir si une autorité Koha existe déjà
ayant le PPN de l'autorité qui a été fusionnée à l'autorité entrante. Le
Chargeur SUDOC ne peut effectuer la fusion de la notice entrante à une notice
existante dans Koha que si une fusion n'est pas déjà nécessaire pour une des
raisons précédentes (mise à jour dans le SUDOC ou localisation) et s'il n'y a
bien qu'une notice Koha correspondante à une fusion SUDOC. En cas de fusion
nécessaire mais que le chargeur ne peut pas effectuer, un message d'alerte est
laissé dans les logs.
Pour les nouvelles notices, des exemplaires Koha peuvent être créés.
C'est paramétrable : voir sudoc.conf paramètre itemize. Pour une
mise à jour, la notice bibliographique est fusionnée avec la notice
entrante mais ses exemplaires ne sont pas affectés. Il n'y pas de
logique de fusion des exemplaires en standard.
En standard, le Chargeur SUDOC crée automatiquement des exemplaires Koha (zones 995) à partir du contenu des zones 915 et 930 des notices entrantes. Les sous-champs suivants de la zone 995 sont créés de la façon suivante :
sudoc.conf.
Pour toute notice, il est possible "d'autoritiser" les zones contrôlées
par autorités (7xx, 6xx, etc.), c.-à-d. leur ajouter l'identifiant des
autorités Koha. En effet, les notices entrantes ont un PPN SUDOC dans le
sous-champ $3. Il convient d'y ajouter un sous-champ $9 contenant le
numéro d'autorité Koha. On peut choisir de ne pas effectuer ce
traitement, auquel cas on n'aura que des identifiants d'autorités SUDOC,
ce qui peut convenir à un établissement dont tout le Catalogue Koha
provient du SUDOC sans notices locales. Voir sudoc.conf paramètre
authoritize.
Les chargeurs des notices bibliographiques et des autorités affichent à l'écran
quelques informations sur les traitements qu'ils effectuent. Le détail de
l'activité des chargeurs est écrit dans des fichiers de log se trouvant dans le
répertoire var/log :
Ces log contiennent les informations suivantes :
En phase de test, on peut utiliser les chargeurs sans le paramètre —doit.
Ainsi les notices/autorités sont préparées pour être chargées dans Koha mais ne
sont pas effectivement chargées. En examinant les log, on peut voir les
traitements réalisés et vérifier qu'ils correspondent bien à ce que l'on
souhaitait obtenir.
Un fichier de configuration sudoc.conf contient tous les paramètres
nécessaires au bon fonctionnement du Chargeur SUDOC. Il y a deux grandes
sections : une première qui pilote le fonctionnement du transfert de
fichiers et une seconde qui, pour chaque ILN, pilote le chargement des
notices. Le fichier sudoc.conf se trouve dans le sous-répertoire etc
du répertoire d'installation du Chargeur SUDOC.
Une section trans détermine le fonctionnement du daemon de
sudoc-trans de transfert des fichiers ABES :
600 signifie que la boîte aux lettres SUDOC
sera examinée toutes les dix minutes.
Section contenant les adresses de courrier électronique utilisées par le protocole de transfert de fichiers entre l'ABES et le serveur Koha :
abes_ftp@carmin.sudoc.abes.fr
Il y a pour chaque ILN une section qui définit le mode de fonctionnement du chargement des notices.
/etc/koha-conf.xml.
Cette section contient tous les paramètres du chargeur des autorités
sudoc-load-authorities :
NP et que les autorités
auteurs entrantes ont leur vedette en 200, on aura alors :
200: NP.
Cette section contient tous les paramètres du chargeur des notices
bibliographiques sudoc-load-biblios :
---
trans:
timeout: 601
email:
abes: abes_ftp@carmin.sudoc.abes.fr
koha: sudoc@monserveur.fr
mbox: /var/mail/sudoc
ftp_host: ftp.monserveur.fr
187:
koha_conf: /etc/koha-conf.xml
rcr:
315555302: BRANCH1
315555502: BRANCH2
auth:
ppn_move: 009
typefromtag:
200: NP
210: CO
215: SNG
216: TM
220: FAM
230: TU
235: CO_UNI_TI
240: SAUTTIT
245: NAME_COL
250: SNC
260: PA
280: GENRE/FORM
biblio:
ppn_move: 009
authoritize: 1
itemize: 1
framework: OUV
converter:
exlure:
- 680
- 801
proteger:
- 610Une des tâches du Chargeur SUDOC consiste à mettre en correspondance les notices d'autorité et bibliographiques en provenance du SUDOC avec les notices déjà présentes dans Koha. Dans le SUDOC, chaque notice, d'autorité et bibliographique, est identifiée par un numéro unique appelé le PPN qui se trouve dans la zone 001.
Il est nécessaire que les notices SUDOC chargées dans Koha conservent leur PPN car c'est au moyen de cet identifiant que le Chargeur peut savoir si une notice entrante doit être ajoutée à Koha ou bien si elle doit écraser (partiellement éventuellement) une notice existante. Le PPN des autorités sert également à autoritiser les zones des notices bibliographiques liées à des autorités.
En fonction de son paramétrage de Koha, il peut être nécessaire de
déplacer le PPN dans une zone différente qui n'entre pas en conflit avec
les zones déjà utilisées. Par exemple, il arrive que la zone 001 des
notices bibliographiques Koha contienne le biblionumber (numéro
interne des notices Koha). Il est recommandé de déplacer la zone 001 des
autorités et des notices bibliographiques dans la zone 009. Cette zone
cible est définie via le paramètre ppn_move de la section biblio/auth
de sudoc.conf. Ce déplacement est même indispensable pour les
autorités parce que l'identifiant interne de Koha est placé en 001. Ce
n'est pas le cas nécessairement pour les notices bibliographiques.
Afin que le Chargeur SUDOC puisse interroger les PPN, il faut ajouter aux fichiers de configuration de Zebra un nouvel index PPN. Par exemple, si on les déplace en 009, il faudra ajouter la ligne suivante aux fichiers records.abs des autorités et des notices bibliographiques :
melm 009 PPN,PPN:n
Les différents programmes du Chargeur SUDOC doivent être utilisés conjointement et en séquence afin de réaliser les opérations de chargement des notices : 1°) autorités, 2°) notices liées, 3°) notices bibliographiques. De plus, entre chaque chargement, l'indexation des nouvelles données doit être réalisée.
Toutes ces tâches peuvent être automatisées au moyen d'un script Shell. Par exemple :
#!/bin/sh CLIENT='xxx' ILN='123' DOIT='--doit' EMAIL_FROM='Tamil e-Biblio Service <contact@tamil.fr>' EMAIL_TO='xx@yy.fr' EMAIL_CC='yy@zz.fr' SLEEP='5m' TMP_FILE="/tmp/sudoc_$CLIENT" export LANG='fr_FR.UTF-8' exec 1>$TMP_FILE 2>&1 echo "Chargement SUDOC" sudoc-load-authorities $ILN $DOIT echo ---------------------------------------- sleep $SLEEP sudoc-load-biblios $ILN $DOIT echo ---------------------------------------- sleep $SLEEP sudoc-load-biblios $ILN $DOIT iconv -f utf8 -t latin1 -c $TMP_FILE | \ mail -a "FROM: $EMAIL_FROM" -s 'Chargement SUDOC' -c $EMAIL_CC $EMAIL_TO
Opération de chargement initial des notices d'un établissement dans le SUDOC.
Table des matières
Ce script examine le spool des fichiers ABES d'un ILN. Pour chaque ILN, il y a trois sous-répertoires dans son spool :
On obtient par exemple la liste des fichiers du spool de l'ILN 80 en lançant la commande :
sudoc-spool 80
Le script répondra comme ceci :
Fichiers des autorités chargées : Fichiers des notices biblio chargées : Fichiers des autorités en attente de chargement : 1. ILN186-TEST-933r374C001.raw Fichiers des notices biblio en attente de chargement : 1. ILN186-TEST-933r374B001.raw 2. ILN186-TEST-933r376A001.raw
Cette commande permet également d'examiner le contenu des fichiers listés précédemment :
sudoc-spool 80 fichier1 fichier2 ...
Cette commande lance le daemon de transfert de fichiers. Il répond aux deux messages envoyés par l'ABES : (1) des fichiers de notices extraites pour l'ILN sont prêts à être transférés et (2) les fichiers des notices extraites ont été copiés par FTP sur le serveur Koha.
Ce script se lance sans paramètres.
|
Par exemple :
sudoc-load-authorities 80 sudoc-load-authorities 80 --doit
Sans le paramètre —doit, le script ne charge pas les autorités mais
il montre les traitements qu'il effectue. Les log contiennent des
informations détaillées sur les traitements réalisés.
Par exemple :
sudoc-load-biblios 80 sudoc-load-biblios 80 --doit
Sans le paramètre —doit, le script ne charge pas les notices
bibliographiques mais il montre les traitements qu'il
effectue. Les log contiennent des informations détaillées sur les
traitements réalisés.
Cette commande est à utiliser en vue d'une localisation automatique d'un Catalogue Koha dans le SUDOC.
A partir d'un Catalogue Koha, ce script génère des fichiers d'ISBN ou de Date-Auteur-Titre. Ces fichiers sont demandés par l'ABES afin de réaliser soit un test de recouvrement soit une localisation automatique. Ces fichiers suivent la convention de nommage demandée par l'ABES : commence par la lettre i ou r (pour ISBN ou Date-Auteur-Titre), suivi du RCR de la bibliothèque, puis le code de PEB (u ou g). Ces noms de fichiers sont suffixés d'un index. Par exemple :
i3641767u.0001 i3641767g.0002
Permet d'obtenir la liste des ISBN d'un Catalogue. Plusieurs fichiers sont créés, chacun contenant un maximum de 5000 lignes. Chaque ligne contient un ISBN, suivi d'une cote et du biblionumber de la notice Koha, séparés par un point virgule. Un groupe de fichier est généré par RCR.
Ces fichiers sont envoyés à l'ABES qui, en retour, soit renvoie un rapport de taux de recouvrement soit procède à la localisation automatique des notices de chaque bibliothèque dans le SUDOC.
Ce script dispose de plusieurs paramètres :
Produit un fichier de type Auteur-Date-Titre. Sans ce paramètre, c'est un fichier d'ISBN qui est généré.
Sélection des biblionumber des notices pour lesquelles générer les fichiers de localisation. Par défaut, on prend toutes les notices. Exemple :
--select "SELECT biblionumber FROM biblioitems WHERE itemtype='OUV'" --select "SELECT biblionumber FROM biblioitems WHERE isbn IS NULL"