Travailler avec des règles de normalisation
- Administrateur de catalogue
- Gestionnaire de catalogue
- Catalogueur
- Pour appliquer des règles de normalisation à une seule notice, utilisez l'option Améliorer la notice (reportez-vous à la section Options du menu et de la barre d'outils dans l'Éditeur de métadonnées) ou Appliquer les changements sur une seule notice lorsque vous prévisualisez les règles de normalisation (voir Pour prévisualiser le résultat d'un fichier de règles).
- Pour appliquer des règles de normalisation à un ensemble de notices, vous devez créer un processus à l'aide des tâches MarcDroolNormalization ou DcDroolNormalization (voir Travailler avec les processus de normalisation) et spécifier la règle de normalisation créée avec l'Éditeur de métadonnées (se reporter à la procédure Créer un nouveau fichier de règle de normalisation). Une fois le processus créé, vous pouvez exécuter un traitement à l'aide de ce processus (voir Effectuer des traitements manuels sur des ensembles définis). En outre, vous pouvez créer un processus qui permettra d'appliquer des règles de normalisation lors de la sélection de l'option Enregistrer dans l'Éditeur de métadonnées (voir Travailler avec des processus de normalisation).
- Consulter les règles de normalisation et les notices de métadonnées côte-à-côte
- Prévisualiser le résultat d'une règle lorsqu'elle est exécutée sur une notice de métadonnées
- Basculer entre la règle et la prévisualisation des modifications
- Modifier les règles et les tester immédiatement
- Pour un rapide aperçu des règles de normalisation, regardez la vidéo Règles de normalisation (6:00).
- Pour obtenir des informations détaillées, assorties d'exemples, sur les règles de normalisation, regardez la vidéo Règles de normalisation (1 h).
Créer des règles de normalisation
- Sur la page Éditeur de métadonnées (Ressources > Catalogage > Ouvrir l'Éditeur de métadonnées), ouvrez la section Règles.
- Pour créer une règle de normalisation pour une notice MARC ou Dublin Core, sélectionnez Nouveau > Normalisation. La boîte de dialogue Normalization Rules Properties (New Rule) s'ouvre.
Boîte de dialogue Propriétés des règles de normalisation
- Saisissez un nom et une description pour la règle de normalisation.
Le mot « règle » ne doit pas être en majuscule s'il est utilisé dans le nom de la règle. S'il est en majuscule, la règle ne fonctionnera pas.
N'utilisez pas de barre oblique inversée (\) dans le nom de la règle ! Sinon, la règle ne pourra pas être utilisée pour la fonctionnalité Filtrer un ensemble. - Pour créer une règle de normalisation pour une notice MARC, sélectionnez Drool. Pour créer une règle de normalisation pour une notice DC (Dublin Core), sélectionnez 'XSL'.
- Sélectionnez une option d'accès, Privé ou Partagé. Si vous sélectionnez Privé, vous seul pouvez travailler sur la règle, qui ne peut pas être incluse dans un processus de normalisation. Si vous sélectionnez Partagé, votre règle sera partagée entre les catalogueurs. Dans ce cas, la règle peut être vue par plus d'un utilisateur à la fois. Si deux personnes ou plus ouvrent la règle pour la modifier, un message d'avertissement apparaît lorsque l'une d'elles essaie d'enregistrer des modifications. (Vous avez le choix entre conserver vos changements ou autoriser un autre utilisateur à effectuer et enregistrer ses changements.)
- Cliquez sur Enregistrer. Le panneau de l'Éditeur de métadonnées s'ouvre.
Vous pouvez inclure la syntaxe d'une règle existante (Modifier > Ajouter une règle > {type de règle}) ou définir une règle (pour plus de détails, voir Syntaxe des règles de normalisation). - Cliquez sur Enregistrer. La règle est ajoutée à la liste des fichiers de règle dans l'onglet Règles de normalisation.
- Sur la page Éditeur de métadonnées (Ressources > Catalogage > Ouvrir l'Éditeur de métadonnées), sélectionnez l'onglet Règles et agrandissez le dossier Normalisation.
- Pour copier, ouvrez le dossier Communauté. Faites un clic droit sur la règle que vous souhaitez copier, puis cliquez sur Dupliquer.
La boîte de dialogue Dupliquer règle s'ouvre. Indiquez votre nom et description, et indiquez si vous souhaitez l'enregistrer en tant que règle privée (disponible uniquement pour vous) ou partagée (disponible pour tous les utilisateurs de votre institution).
Le nom et l'e-mail de contact de l'utilisateur Alma qui a ajouté la règle à la CZ sont indiqués dans la boîte de dialogue, vous pouvez contacter cet utilisateur en cas de question. - Pour contribuer votre propre règle à la CZ, faites un clic droit sur la règle et sélectionnez Contribuer dans la CZ.
La boîte de dialogue Partage de règle s'ouvre. Indiquez un nom descriptif et une description, puis sélectionnez Enregistrer pour enregistrer la règle dans la CZ.
- Sur la page Éditeur de métadonnées (Ressources > Catalogage > Ouvrir l'Éditeur de métadonnées), cliquez sur l'onglet Règles et agrandissez le dossier Normalisation pour afficher les règles enregistrés.
- Cliquez sur la règle sur laquelle vous souhaitez travailler et sélectionnez l'une des options suivantes :
- Modifier – Ouvre la fenêtre de texte et affiche la syntaxe de la ou des règles, que vous pouvez alors modifier (pour plus de détails, voir Syntaxe des règles de normalisation).
- Supprimer – Cliquez sur Oui pour confirmer la suppression du fichier de règles.
- Dupliquer – Duplique le fichier de règles sélectionné, ce qui vous permet de le modifier et de l'enregistrer comme nouvelle règle sans que le fichier d'origine soit modifié.
- Propriétés – Ouvre la boîte de dialogue Propriétés des règles de normalisation, vous permettant de modifier les propriétés du fichier de règles.
- Pour renommer la règle, la dupliquer, donner au double le nom souhaité, puis supprimer l'ancienne règle.
- Localisez la notice bibliographique avec laquelle vous souhaitez travailler (à l'aide de Recherche dans le répertoire ou de l'onglet Notices de l’Éditeur de métadonnées) et ouvrez-la dans l'Éditeur de métadonnées.
- Appuyez sur (F6) ou cliquez sur l'icône Scinder l'éditeur.
- Sélectionnez l'onglet Règles dans le panneau de gauche et agrandissez le dossier Normalisation.
- Faites un clic-droit sur la règle que vous souhaitez prévisualiser ou tester dans le dossier Privé ou Partagé (et non Communauté) et sélectionnez Modifier.
La règle s'affiche sur le panneau droit de l’Éditeur de métadonnées.
- Cliquez sur Prévisualiser. La règle est appliquée à la notice et le résultat est affiché.
Pour mettre à jour des notices Réseau, la normalisation doit être exécutée par l'institution Réseau (et non par un membre). Une institution ne peut pas mettre à jour des notices Réseau. La normalisation ne sera donc appliquée qu'aux champs locaux (les extensions locales du membre). Lorsque vous prévisualisez une règle pour la notice du réseau, le message suivant s'affiche : Notez que les règles ne s'appliqueront qu'aux champs locaux lors de l'exécution du processus de normalisation.
- Cliquez sur Appliquer les changements pour enregistrer les modifications concernant la notice ou cliquez sur Retour aux règles de normalisation pour continuer à les modifier.
- Lorsque les modifications apportées à la règle de normalisation sont finalisées, cliquez sur Enregistrer et tester pour enregistrer la version finale de votre règle de normalisation. Pour plus de détails, voir Testing Normalization Rules for External Data Sources.
Règles de normalisation pour les notices Dublin Core et MODS
Dans l'Éditeur de métadonnées, voici les différents types de règles liées à Dublin Core et MODS :
- Règles d'indication XSL
- Règle de normalisation XSL
La règle de normalisation XSL ne prend pas en charge la valeur discovery:local.
Les règles de normalisation Dublin Core et MODS ne peuvent pas être rédigées dans un format de règle de normalisation standard, mais uniquement au format XSL. Cela signifie que vous pouvez composer directement le XSL dans l'Éditeur de métadonnées (comme expliqué ci-dessus), ou bien le composer sur Notepad (ou une autre application externe de votre choix), puis le copier dans l'Éditeur de métadonnées.
Vous pouvez voir les exemples ci-dessous de règles de normalisation XSL pour Dublin Core dans la Zone de communauté, dans l'Éditeur de métadonnées :
- EXL – Changez la valeur dc:language en à English
- EXL – Règle générique pour remplacer la chaîne dans une notice Dublin Core
- EXL_Add_field_accessRights
- Rédigez le XSL dans une application externe de votre choix.
- Ouvrez l'Éditeur de métadonnées > section Règles.
- Copiez et collez le XSL dans l'Éditeur de métadonnées et enregistrez la règle.
Règles de normalisation pour Primo VE et Esploro
Outre des règles de normalisation Alma, vous pouvez créer des règles de normalisation pour Primo VE et Esploro. Pour créer ces règles, cliquez sur Nouveau, puis sélectionnez :
-
Normalisation (Découverte) - Cette option s'affiche uniquement lorsque Primo VE est défini dans le système. Sélectionnez cette option si vous créez des règles de normalisation DC ou XML pour des notices bibliographiques qui sont chargées dans Primo VE et pas gérées dans Alma. Pour plus d'informations concernant la syntaxe de ces règles, voir Syntaxe des règles de normalisation pour les formats DC et XML.
-
Normalisation (Recherche) - Cette option s'affiche uniquement lorsque Esploro est défini dans le système. Pour obtenir des détails, voir Managing Asset Normalization Rules (Esploro).
Syntaxe des règles de normalisation
(<conditions sur la notice MARC>) then
Action
End
- “When” doit être le seul mot sur la première ligne. La condition doit être placée sur une ligne séparée.
- Vous pouvez utiliser plusieurs conditions sur l'ensemble de la notice dans la condition « When » uniquement. Chaque règle doit avoir une seule action (après la ligne « Then »). Si vous souhaitez utiliser plusieurs actions après la ligne « Then », divisez ceci en plusieurs règles, chacune avec une seule action.
- Veuillez noter que bien qu'il soit autorisé d'inclure plusieurs opérateurs booléens dans les règles, lorsqu'un grand nombre d'opérateurs booléens sont sélectionnés, il est probable que les performances ralentissent. Ainsi, chaque règle devrait inclure au maximum 200 opérateurs booléens.
- Si rien n'est spécifié, la condition fonctionne au niveau de la notice. Si vous souhaitez que la condition s'applique à chaque champ MARC21 de manière séparée, la condition doit être spécifiée pour chaque champ. Par exemple, lorsqu'il y a plusieurs champs MARC21 avec la même étiquette.
- \b
- \t
- \n
- \f
- \r
- \"
- \'
- \\
-
remplacer \\\ par \\
-
remplacer \. par .
-
remplacer \ par \\
-
remplacer \( par (
-
remplacer \) par )
-
remplacer \\\| par \\|
Éléments de la notice
Expression | Signification |
---|---|
"<tag>", "<new tag>" | Représente une étiquette de champ, par exemple, 001, 245, etc. |
"<oldCode>", "<newCode>" | Représente le code d'un sous-champ, par exemple, a, b, c. |
"<element>" pour un champ de données | Des valeurs possibles pour le champ de données sont les suivantes :
|
"<element>" pour un champ de contrôle | Des valeurs possibles pour un champ de contrôle sont les suivantes :
|
"<element>" pour un champ de position fixe |
Les valeurs suivantes sont les valeurs possibles pour un champ UNIMARC/CNMARC 1XX de position fixe :
Pertinent uniquement pour les champs UNIMARC/CNMARC 1XX. |
CONDITION au niveau de la notice | Les options suivantes sont les options de condition possibles : Voir la section suivante (Conditions) pour des informations importantes.
Les options suivantes sont les options de condition possibles pertinentes uniquement pour les champs UNIMARC/CNMARC 1XX :
|
Condition
- Clause WHEN – définit une condition qui doit être remplie par la notice dans sa globalité, cela permet de déterminer si la notice peut être choisie pour l'application de la règle
- Clause IF (dans une action) – définit une condition qui s'applique à un seul champ, cela permet de déterminer si une action spécifique sera ou non exécutée sur ce seul champ
-
containsScript – Utilisez cette condition afin de détecter une langue spécifique. La condition containsScript utilise la liste fixée suivante de langues pour lesquelles vous pouvez lancer une vérification : Arabe, Arménien, Bengali, Bopomofo, Braille, Buhid, Langues autochtones canadiennes, Cherokee, Cyrillique, Devanagari, Éthiopien, Géorgien, Grec, Gujarati, Gurmukhi, Han, Hangul, Hanunoo, Hébreu, Hiragana, Hérité, Kannada, Katakana, Khmer, Laotien, Latin, Limbu, Malayalam, Mongolien, Birman, Ogham, Oriya, Runic, Sinhala, Syriaque, Tagalog, Tagbanwa, TaiLe, Tamoul, Telegu, Thaana, Thai, Tibétain, et Yi. Voir les exemples de syntaxe suivants :la règle "CJK est-il dans l'Autorité
lorsque
containsScript "Han" "1**"
puis
définir l'indication."vrai"
fin -
exists <element> – Il existe au moins une correspondance
- exists <element> – S'applique aux champs de données Dans le cas d'une condition SI, l'élément de l'action et l'élément testé par la condition doivent tous les deux être le même champ (de données).
- existsControl <element> – S'applique aux champs de contrôle Dans le cas d'une condition SI, l'élément de l'action et l'élément testé par la condition doivent tous les deux être le même champ (de contrôle).
-
existsMoreThanOnce <element> – Plusieurs correspondances ont été trouvées. S'applique aux champs de données. Dans le cas d'une condition SI, l'élément de l'action et l'élément testé par la condition doivent tous les deux être le même champ (de données).
-
not exists <element> – Aucune correspondance trouvée
- not exists <element> – S'applique aux champs de données. Dans le cas d'une condition SI, l'élément de l'action et l'élément testé par la condition doivent tous les deux être le même champ (de données).
- not existsControl <element> – S'applique aux champs de contrôle. Dans le cas d'une condition SI, l'élément de l'action et l'élément testé par la condition doivent tous les deux être le même champ (de contrôle).
-
recordHasDuplicateSubfields (pour les règles d'indication; voir Travailler avec des règles d'indication) – Indique vrai si des sous-champs (sous-champs et leur contenu) dupliqués sont trouvés pour la notice actuelle selon les champs, sous-champs et caractères à ignorer (charsToIgnore) qui ont été définis dans le format suivant :recordHasDuplicateSubfields "<tag>" "<code>" "<charsToIgnore>"Des étiquettes multiples (champs) peuvent être spécifiées, séparées par des virgules. Des codes multiples (sous-champs) peuvent être spécifiés sans espace pour les séparer. Un ou plusieurs caractères (alphanumériques ou ponctuation) sans espace pour les séparer peuvent être spécifiés en tant que caractères à ignorer à la fin du contenu des sous-champs en cours d'évaluation pour duplication. Voir l'Exemple 6 pour plus d'informations.Pour les notices qui remplissent la condition recordHasDuplicateSubfields (retourne vrai), un ensemble des notices est créé.
- Est appliqué lorsqu'une condition spécifique n'est pas vraie, par exemple : addControlField "{element}" if(not exists "{condition}")
- Est appliqué lorsqu'une condition spécifique est vraie, par exemple : addControlField "{element}" if(exists "{condition}")
- S'applique sans condition, par exemple : addControlField "{element}"
Liste d'actions
Action | Format / Exemple | Commentaire |
---|---|---|
Remplacer les champs et les sous-champs par d'autres champs et sous-champs |
changeControlField "<tag>" to "<new tag>"
Exemple : ChangeControlField "007" to "008"
|
Change l'identifiant de l'étiquette d'un champ de contrôle ; ne modifie pas le contenu. |
changeField "<tag>" to "new tag"
Exemple : changeField "245" to "246"
|
Change l'identifiant de l'étiquette ; ne modifie pas les indicateurs ou les sous-champs. | |
changeSubField "<tag>.<code>" to "<new code>"
changeSubFieldOnlyFirst "<tag>.<code>" to "<new code>"
changeSubFieldExceptFirst "<tag>.<code>" to "<new code>"
Exemple : changeSubField "035.b" to "a"
|
Change les sous-champs (ou uniquement le premier sous-champ, ou bien tous les sous-champs sauf le premier) "<code>" en sous-champ "<new code>" dans le champ "<tag>". | |
changeFirstIndicator "<tag>" to "<value">
changeSecondIndicator "<tag>" to "<value">
Exemple : changeFirstIndicator "245" to "3"
|
Définit la valeur de l'indicateur spécifié dans l'étiquette <tag>. | |
combineFields "<tag>" excluding "<comma-separated subfield list>"
Exemple : combineFields "852" excluding "a,b"
|
Combine tous les champs d'un numéro spécifique. Copie tous les sous-champs à partir de la seconde et des lignes subséquentes à la première ligne, sauf les sous-champs nommés : seules les occurrences des sous-champs exclus sont copiées, et seulement s'ils n'existent pas sur la première ligne. | |
Ajouter des champs et sous-champs |
addField "<tag>.<code>.<value>"
addField "<tag>.{<ind1>,<ind2>}.<code>. <value>"
Exemple : addField "999.a.RESTRICTED"
|
Ajoute le champ à la notice MARC. Définit la valeur du sous-champ à la valeur indiquée. |
addControlField "<tag>"."<value>"
Exemple : addControlField "008.820305s1991####nyu###########001#0#eng##"
|
Ajoute le champ de contrôle à la notice MARC. | |
addSubfield "<tag>.<code>.<value>"
addSubfield "<tag>.{<ind1>,<ind2>}.<code>.<value>"
Exemple : addSubfield "245.h.[Journal]"
|
Ajoute le sous-champ <code> avec la valeur <value> dans le champ <tag>. Si le champ n'existe pas, rien n'est fait. | |
addSystemNumber "<element>" from "<tag>" prefixed by "<prefix tag>"
Exemple : addSystemNumber "035.a" from "001" prefixed by "003"
|
Ajuste les données du champ <element> au contenu du deuxième champ de contrôle <prefix tag> entre parenthèses suivi du contenu du premier champ de contrôle <tag>.
Par exemple, si le champ 001 a la valeur 9945110100121 et si le champ 003 a la valeur DAV, la condition de l'exemple à gauche indiquera 035 avec la valeur ‡(DAV)9945110100121.
|
|
Copier des champs |
copyField "<tag>" to "<new tag>"
copyField "<tag>.<code>" to "<new tag>.<new code>"
copyField "<tag>" to "<new tag>.{<ind1>,<ind2>}"
Exemple : copyField "971.a" to "100.u"
|
Copie des champs vers un autre champ. Dans la première version, les sous-champs ne sont pas précisés (<code> et <new code>), et le nouveau champ contient les mêmes sous-champs que l'ancien champ. Dans la seconde version, si seul le champ <new code> n'est pas indiqué, le nouveau sous-champ est identique à celui spécifié par le champ <code>.
copyField créé un champ séparé plutôt que de l'ajouter à un champ existant. Vous pouvez souhaiter combiner le nouveau champ à n'importe quels champs existants (voir combineFields).
|
Supprimer des champs et sous-champs |
removeControlField "<tag>"
Exemple : removeControlField "009"
|
Supprime toutes les occurrences du champ de contrôle.
Veuillez noter que si vous supprimez le champ de contrôle 008, Alma le recrée immédiatement si vous ne vous en chargez pas vous-même. Pensez à ajouter à nouveau ce champ après l'avoir supprimé, par exemple : rule "remove 008"
when (TRUE) then removeControlField "008" addControlField "008.######s2013####xx######r#####000#0#eng#d" end |
removeField"<tag>"
Exemple : removeField "880"
|
Supprime toutes les occurrences du champ <tag>. | |
removeSubfield "<tag>.<code>"
Exemple : removeSubfield "245.h"
|
Supprime toutes les occurrences du sous-champ <code> du champ indiqué. | |
Remplacer du texte dans les champs et sous-champs |
replaceControlContents "<tag>.{<position>,<length>}. <value>" with "<new value>"
Exemple : replaceControlContents "LDR.{7,1}.s" with "m"
|
Remplace <value> par "<new value>" dans la position de départ <position> jusqu'à <position>+<length> dans le champ de contrôle <tag>. Remplace uniquement le texte qui correspond à <value>. |
replaceContents "<tag>.<code>.<value>" with "<new value>"
replaceContentsOnlyFirst "<tag>.<code>.<value>" with "<new value>"
replaceContentsExceptFirst "<tag>.<code>.<value>" with "<new value>"
Exemple : replaceContents "245.h.[Journal]" with "[Book]"
|
Remplace les chaînes correspondantes (ou chaque instance de la chaîne de caractères correspondante dans le premier sous-champ correspondant ou bien toutes les chaînes de caractères correspondantes dans tous les sous-champs correspondants sauf pour le premier sous-champ correspondant) <value> dans le sous-champ <code> du champ "<tag>" avec "<new value>". La chaîne ou la partie de la chaîne qui ne correspond pas à <value> n'est pas modifiée. | |
replaceSubFieldContents "<tag>.<code>" with "<tag>.<code>"
Exemple : replaceSubFieldContents "245.b" with "100.a"
|
Remplace le contenu du sous-champ avec le contenu d'un autre sous-champ. | |
replaceFixedContents "<tag>.{<1_ind>,<2_ind>}.<code>.{<position>,<length>}.<value>" with "<new value>" Exemple : replaceFixedContents "100.{1,2}.a.{0,8}.20150226" avec "20220724" |
Remplace <value> par <new value> dans les champs de position fixe UNIMARC et CNMARC 1XX. Pertinent uniquement pour les champs UNIMARC/CNMARC 1XX. |
|
Ajouter du texte dans des sous-champs
|
prefix "<tag>.<code>" with "<value>"
Exemple : prefix "035.b" with "(OCoLC)"
|
Ajoute un préfixe à la valeur du sous-champ "<code>" dans le champ "<tag>".
La nouvelle valeur sera <value> suivie par l'ancienne valeur.
|
prefixSubField "<tag>.<code>" with "<source tag>.<source code>"
Exemple : prefixSubField "910.a" with "906.a"
|
Ajoute la valeur du sous-champ "<source code>" dans le champ "<source tag>" comme préfixe au sous-champ "<code>" dans le champ "<tag>".
La nouvelle valeur sera la valeur du sous-champ "<source code>" dans le champ "<source tag>" suivie par l'ancienne valeur.
|
|
suffix "<tag>.<code>" with "<value>"
Exemple : suffix "035.b" with "(OCoLC)"
|
Ajoute un suffixe au sous-champ "<code>" dans le champ "<tag>".
La nouvelle valeur sera l'ancienne valeur suivie par <value>.
|
|
suffixSubField "<"<tag>"code>" with "<source tag>.<source code>"
Exemple : suffixSubField "910.a" with "907.c"
|
Ajoute la valeur du sous-champ "<source code>" dans le champ "<source tag>" comme suffixe au sous-champ "<code>" dans le champ "<tag>".
La nouvelle valeur sera l'ancienne valeur suivie de la valeur du sous-champ "<source code>" dans le champ "<source tag>".
|
|
Maintenir les informations de l'agence dans des notices bibliographiques et d'autorité
Par exemple, cette syntaxe peut être utilisée dans les règles de normalisation qui sont sélectionnées dans la Liste des tâches de configuration des métadonnées bibliographiques MARC 21 pour normaliser les notices bibliographiques de la Zone réseau lors de leur enregistrement.
Cette fonctionnalité est en construction. Pour activer cette syntaxe, contactez le Support Ex Libris.
|
addCreatingAgency "<tag>.<code>"
Exemple : addCreatingAgency "040.a"
|
Ajoute le code ISIL de l'agence de création au sous-champ "<code>" dans le champ "<tag>". |
addModifyingAgency "<tag>.<code>"
Exemple : addModifyingAgency "040.d"
|
Remplace le code ISIL de l'agence à l'origine de la modification au sous-champ "<code>" dans le champ "<tag>". S'il existe déjà une agence à l'origine de la modification dans "<tag>.<code>", ceci ajoute un autre code d'agence ISIL. | |
replaceModifyingAgency "<tag>.<code>"
Exemple : replaceModifyingAgency "040.d"
|
Remplace le code ISIL de l'agence à l'origine de la modification au sous-champ "<code>" dans le champ "<tag>". S'il existe déjà des agences à l'origine de la modification dans "<tag>.<code>", elles sont toutes remplacées. | |
Couper les sous-champs |
splitSubField "<tag>.{ind1,ind2}.<code>.<delimiter>" to "<tag>.{<ind1>,<ind2>}.<code>" addSeq "<code>"
Exemple 1 : splitSubField "866.a.;" to "555.{0,0}.a" addSeq "8"
Exemple 2 : splitSubField "555.a. – " to "859.{0,0}.a" addSeq "8"
Exemple 3 : splitSubField "859.a.\\\\."
Exemple 4 : splitSubField "999.a.;" to "555.a" addSeq "8"
|
Cette étiquette est obligatoire.
Les indicateurs sont optionnels.
Comme la coupure a lieu au niveau du sous-champ, le code est obligatoire.
Le séparateur peut être n'importe quelle chaîne. Si aucun séparateur n'existe, le sous-champ est copié en entier comme première (et unique) occurrence et la séquence est ajoutée.
Le composant to est optionnel. S'il est précisé, plusieurs occurrences du code to sont créés, chacune contenant les données jusqu'au séparateur. Voir les exemples 1 et 2. Si le composant to n'est pas précisé, le sous-champ est divisé selon les mêmes sous-champs supplémentaires dans le même champ, comme indiqué dans l'exemple 3.
Le composant addSeq est optionnel. Il n'est pas important si le composant to n'est pas précisé. Lorsque le composant addSeq est renseigné, le sous-champ avec la séquence sera ajouté comme dans l'exemple 1. Si le sous-champ existe déjà dans le champ original, une séquence (commençant par un point) est ajoutée à ce champ comme indiqué dans l'exemple 2.
|
correctDuplicateSubfields "<tag>" "<code>" Par exemple : Élimine les sous-champs x, y et z dupliqués des champs 610 et 630. |
Corrige les sous-champs en double (par exemple, les sous-champs ayant le même code ET la même valeur= en conservant la première occurrence et en supprimant les autres de la notice actuelle, en fonction des champs et sous-champs transmis en tant que paramètres. Vous pourrez utiliser recordHasDuplicateSubfields pour créer l'ensemble que vous fournirez à votre règle de normalisation qui utilise correctDuplicateSubfields. Voir l'Exemple 6 pour plus d'informations. Pour dédupliquer les sous-champs ayant différentes valeurs, voir : |
|
moveSubfieldsToEndOfField "<tag>" "<code>" Par exemple : Déplace les sous-champs 9 et 2 à la fin du champ 650. |
Déplace la première occurrence de chaque sous-champ à la fin du champ et supprime toutes les autres occurrences du même sous-champ. Si plus d'un sous-champ est spécifié, ils sont placés à la fin dans la même séquence que celle identifiée dans la règle. Dans cet exemple, le sous-champ 9 e placé à la fin, suivi du sous-champ 2. Veuillez noter que la déclaration if n'est pas prise en charge avec l'action moveSubfieldsToEndOfField. |
|
Corriger les champs dupliqués pour la notice actuelle |
correctDuplicateFields "{fields}" Par exemple : correctDuplicateFields "610,630,650" |
Cette action prend un paramètre, les champs, qui contient des valeurs de champ séparées par des virgules, telles que 610,630,650. Cette action corrige les champs dupliqués de la notice actuelle, en fonction des champs transmis en tant que paramètres. |
Trouver des champs dupliqués (Règles d'indication ; voir Travailler avec des règles d'indication) |
recordHasDuplicateFields "{fields}" Par exemple : recordHasDuplicateFields "610,630,650" |
Cette action prend un paramètre, les champs, qui contient des valeurs de champ séparées par des virgules, telles que 610,630,650. Cette action peut renvoyer la valeur vrai ou faux. Elle renvoie la valeur vrai si des champs dupliqués ont été trouvés pour la notice actuelle, en fonction des champs transmis en tant que paramètres. |
Jokers et caractères spéciaux
when
(TRUE)
then
replaceContents "300.a.1 v\\\\." with "Leaves"
end
when
(exists '245.{*, }.c.\"')
then
replaceControlContents "008.{7,4}" with "2016"
end
when
((exists '260.{*, }.c.תשע\\"ו') OR (exists '264.{*, }.c.תשע\\"ו'))
then
replaceControlContents "008.{7,4}" with "2016"
end
- Des caractères spéciaux ne peuvent pas être utilisés comme premier caractère d'une condition ou d'une valeur.
- Pour utiliser une barre oblique inversée littéralement (\), faites-la précéder d'une autre barre oblique inversée : \\.
- Utilisez quatre barres obliques inversées (\\\\) pour faire échapper un point lorsqu'il s'agit du dernier caractère de la chaîne de caractères. Lorsque le point est immédiatement suivi d'un autre caractère, il n'a pas besoin d'être précédé par quatre barres obliques inversées (tel que dans addField "907.a.F.L.T\\\\."). Toutefois, la meilleure pratique est de toujours utiliser les quatre barres obliques inversées dans les règles de normalisation pour garantir les meilleurs résultats possibles en fonction des résultats désirés. Voir les exemples suivants.
- Comme mentionné ci-dessus, si des guillemets doubles sont utilisés dans une condition (uniquement) qui est échappée à l'aide de guillemets simples ou si des guillemets simples sont utilisés dans une condition qui est échappée à l'aide de guillemets simples, vous devez échapper en plus les guillemets doubles ou les guillemets suivis de deux barres obliques inversées.
- Dans les cas où la barre verticale fait partie de la condition, faites-la précéder de quatre barres obliques inversées (\\\\), par exemple : removeField "866" if (exists "866.8.0\\\\|99") Ceci est nécessaire uniquement si vous utilisez le symbole de la barre verticale dans la condition.
Exemple : Utiliser un point dans une règle de normalisation avec replaceContents
when
(TRUE)
then
replaceContents "245.a.\\\\." with ""
replaceContents "246.a.\\\\." with ""
end
Exemple : Utiliser un point dans une règle de normalisation avec addField
salience 100
when
TRUE
then
addField "906.a.Architecture\\\\."
addField "907.a.F\\\\.L\\\\.T\\\\."
end