Règles de fusion de notices
Dans Koha, une notice bibliographique existante est souvent remplacée par une nouvelle version : réimport d'une notice déjà présente dans le catalogue, remplacement par une notice trouvée en Z39.50, modification par lot, envoi depuis un autre logiciel par l'API. Par défaut, la notice entrante remplace entièrement la notice existante : les champs saisis localement (indexation, notes...) sont perdus.
Les règles de fusion de notices permettent de décider, champ par champ, ce qui est conservé de la notice existante et ce qui est repris de la notice entrante. Les règles peuvent varier selon l'endroit de Koha d'où vient la mise à jour et selon la personne qui la fait.
Dans cette page, K désigne la notice existante dans le catalogue Koha et E la notice entrante.
Les règles de fusion ne s'appliquent qu'à la mise à jour d'une notice existante, jamais à la création d'une notice. Elles ne concernent pas non plus la fonction Fusionner des notices du catalogue, qui réunit deux notices du catalogue en une seule.
Activation
- La préférence système
MARCOverlayRulesactive les règles. Tant qu'elle n'est pas activée, les règles saisies ne s'appliquent pas. - Les règles se gèrent dans Administration > Règles de fusion de notices.
- Il faut la permission
manage_marc_overlay_rules.
Sources
Chaque mise à jour d'une notice est faite par une source, qui indique d'où elle vient :
| Source | Mise à jour de la notice |
|---|---|
intranet |
Enregistrement dans l'éditeur MARC de l'interface professionnelle |
z3950 |
Remplacement de la notice par une notice trouvée en Z39.50, dans l'éditeur MARC |
batchimport |
Import de notices MARC téléchargées, quand une notice entrante correspond à une notice du catalogue |
add_to_basket |
Ajout au panier d'acquisition depuis un fichier importé, quand une notice entrante correspond à une notice du catalogue |
batchmod |
Modification de notices par lot |
bulkmarcimport |
Script d'import bulkmarcimport.pl |
import_lexile |
Script import_lexile.pl |
Ces sources sont listées dans Administration > Sources de notices (depuis Koha 24.05). On peut y en ajouter d'autres : un logiciel qui met à jour des notices par l'API REST de Koha indique sa source : les règles de cette source s'appliquent.
Contexte
Une règle s'applique dans un contexte, défini par un module et un filtre.
Le filtre précise la portée du module, ou vaut * pour toutes les valeurs. Il
y a trois modules :
- Nom d'utilisateur — Le nom d'utilisateur (identifiant de connexion) de la personne connectée qui fait la mise à jour.
- Catégorie d'utilisateur — La catégorie d'adhérent de cette personne.
- Source — La source de la mise à jour (voir ci-dessus).
Lors d'une mise à jour, Koha connaît ces trois valeurs (sauf pour les scripts, qui n'ont que la source). Il retient alors un seul jeu de règles :
- Il cherche des règles dont le filtre correspond exactement, en commençant
par le nom d'utilisateur, puis la catégorie, puis la source. Le premier
module trouvé l'emporte : ses règles sont complétées par les règles de
filtre
*du même module, pour les champs qu'elles ne couvrent pas. - À défaut, il prend les règles de filtre
*, dans le même ordre. - Si aucune règle ne correspond, la notice entrante remplace entièrement la notice existante.
Les jeux de règles de modules différents ne se combinent pas. Si un catalogueur a des règles à son nom, les règles de sa catégorie et de la source sont ignorées pour ses mises à jour.
Champs
Chaque règle porte sur une ou plusieurs étiquettes de champ :
- une étiquette exacte :
606; - une expression régulière :
6..pour tous les champs 6XX,7[01].pour les champs 70X et 71X ; *pour tous les champs.
Quand plusieurs règles du jeu retenu concernent un champ, la plus précise
s'applique : l'étiquette exacte, puis l'expression régulière, puis *. Un
champ qu'aucune règle ne concerne est remplacé par celui de la notice
entrante.
Événements
Pour chaque champ, la comparaison de K et de E donne un des événements suivants. La règle indique, pour chacun, si la modification est faite ou ignorée :
- Ajouté — Le champ n'existe que dans E (aucun champ de cette étiquette dans K). Ajouter : les champs de E sont ajoutés à K. Ignorer : ils ne sont pas ajoutés.
- Joint — Le champ existe dans K et dans E ; une occurrence de E ne se trouve pas dans K. Ajouter : cette occurrence est ajoutée à K. Ignorer : elle n'est pas ajoutée.
- Enlevé — Le champ existe dans K et dans E ; une occurrence de K ne se trouve pas dans E. Supprimer : cette occurrence est retirée de K. Ignorer : elle est conservée.
- Supprimé — Le champ n'existe que dans K (aucun champ de cette étiquette dans E). Supprimer : les champs de K sont supprimés. Ignorer : ils sont conservés.
Deux occurrences sont identiques si elles ont les mêmes indicateurs et les mêmes sous-champs, avec les mêmes valeurs, quel que soit l'ordre des sous-champs. Une occurrence modifiée, même d'une virgule, est donc à la fois enlevée (l'ancienne version) et jointe (la nouvelle).
Préréglages — Plutôt que de choisir les quatre actions une à une, on peut utiliser un préréglage :
| Préréglage | Ajouté | Joint | Enlevé | Supprimé |
|---|---|---|---|---|
| Protéger | Ignorer | Ignorer | Ignorer | Ignorer |
| Écraser | Ajouter | Ajouter | Supprimer | Supprimer |
| Ajouter | Ajouter | Ignorer | Ignorer | Ignorer |
| Ajouter et joindre | Ajouter | Ajouter | Ignorer | Ignorer |
| Protéger de la suppression | Ajouter | Ajouter | Supprimer | Ignorer |
- Protéger — Le champ de K n'est jamais modifié.
- Écraser — Le champ de E remplace celui de K. C'est le comportement par
défaut : ce préréglage ne sert qu'à faire une exception à une règle plus
générale, par exemple une règle
*qui protège tous les champs. - Ajouter — Le champ de E n'est repris que si K n'en a pas.
- Ajouter et joindre — Les occurrences de E s'ajoutent à celles de K, qui sont toutes conservées.
- Protéger de la suppression — Le champ est mis à jour, mais il n'est pas supprimé si E n'en a plus.
Comportements particuliers
- Éditeur MARC — Les règles de la source
intranets'appliquent aussi aux modifications faites à la main dans l'éditeur. Si les champs 606 sont protégés pour cette source, un 606 supprimé ou modifié dans l'éditeur revient tel quel à l'enregistrement. Une règle*pour toutes les sources peut ainsi empêcher de corriger une notice dans l'éditeur. - Z39.50 — Quand on remplace une notice par une notice trouvée en Z39.50,
l'éditeur affiche directement la notice fusionnée selon les règles de la
source
z3950. Voir aussi Protocole Z39.50/SRU. - Label — Le label de la notice est toujours celui de E.
- Champs de contrôle (001 à 009) — Ils n'ont qu'une valeur : le champ de E remplace celui de K seulement si Joint et Enlevé sont tous deux permis. Sinon, le champ de K est conservé. Koha refuse une règle qui permet Joint sans Enlevé pour un champ de contrôle.
- Exemplaires — Les champs d'exemplaires (995 en UNIMARC) ne sont pas concernés : les exemplaires sont gérés à part.
Exemples
Les exemples suivants partent d'une notice UNIMARC du catalogue (K) :
200 1#$aSur la télévision$fPierre Bourdieu
210 ##$aParis$cLiber$d1996
606 ##$aTélévision$xAspect social$yFrance
Et de la notice entrante (E), réimportée depuis un réservoir :
200 1#$aSur la télévision$esuivi de L'emprise du journalisme$fPierre Bourdieu
210 ##$aParis$cLiber$d1996
320 ##$aBibliogr. p. 93-95
606 ##$aTélévision$xAspect politique
Protéger l'indexation — Avec la règle : source *, champ 606,
Protéger. Le 606 local est conservé ; les autres champs, sans règle, sont
repris de E (200 modifié, 320 ajouté) :
200 1#$aSur la télévision$esuivi de L'emprise du journalisme$fPierre Bourdieu
210 ##$aParis$cLiber$d1996
320 ##$aBibliogr. p. 93-95
606 ##$aTélévision$xAspect social$yFrance
Cumuler l'indexation — Avec la règle : source batchimport, champ 6..,
Ajouter et joindre. Lors d'un import, les 606 de K sont conservés et ceux de E
qui sont nouveaux s'y ajoutent :
606 ##$aTélévision$xAspect social$yFrance
606 ##$aTélévision$xAspect politique
Tout protéger sauf exception — Avec les deux règles : source batchimport,
champ *, Protéger ; source batchimport, champ 606, Écraser. Un import ne
modifie que le 606 de la notice ; les autres champs de K sont conservés et le
320 n'est pas ajouté.
Une catégorie de catalogueurs — Avec les deux règles : catégorie CATAL,
champ *, Écraser ; source *, champ 606, Protéger. Pour un catalogueur de
la catégorie CATAL, seule la première règle s'applique, quelle que soit la
source : il peut modifier le 606. Pour les autres utilisateurs, le 606 est
protégé.