PMB. Documentation développeur

Gestion des périodiques

François Lemarchand et Eric Robert. Octobre 2003


1. Termes utilisés

périodiques
S'applique à  toute publication en série (y compris non-imprimée) dont la parution se fait à  intervalles plus ou moins réguliers et sous un titre uniforme
Bulletinage
Le bulletinage consiste à intégrer au catalogue (aka exemplariser) chacune des unités constituant un périodique en vue de son prêt
Dépouillement
Le dépouillement consiste à intégrer au catalogue des notices correspondant à des parties de documents. Exemple : cataloguer un article paru à la page 10 du Monde du 18 Juin 2003

2. Structure

Le module périodique introduit une notion de niveau de notice qui n'existait pas jusqu'alors dans PMB. On définit trois niveaux :

Notice du périodique
ex. Le Monde / mentions de responsabilités ; éditeur, etc... Par convention, dans le reste de ce document, nous parlerons pour ce type de notices de 'notice chapeau'
Bulletinage
ex. Le Monde. 18 Juin 2003 (cette notice est liée à la Notice du périodique). C'est elle qui fait l'objet de l'exemplarisation (on prête un numéro de la revue, ou du journal)
Dépouillement
ex. Tempête monstre à Lhassa. in Le Monde du 18 Juin 2003 par Alain Dupont. Le lien se fait avec la notice de bulletinage et renvoit à l'exemplaire du journal.

Nous recherchons une intégration maximum au catalogue existant. C'est moins facile, mais c'est ce qu'il faut faire. Le lecteur obtient comme résultat de sa recherche tous les documents qui répondent. Ex. Martin Winckler : a écrit des livres, mais aussi pas mal d'articles dans des journaux... Ce serait dommage se se priver d'en informer notre lecteur (NB. la condition à cela est que la bibliothèque dépouille ses périodiques. Très peu de bibliothèques disposent des ressources en temps/homme pour faire cela. Théoriquement pourtant, c'est ce qui devrait être fait).

Le parti-pris qui semble souhaitable est celui d'intégrer le maximum de choses au catalogue existant (qui ne comprend pour l'instant que des monographies), afin de ne pas réinventer la roue en étant conduit à redéfinir un module de recherche spécifique. Ceci a pour conséquence les aspects suivants :

  1. Les notices de périodiques (notices chapeau) sont intégrées à la table notices au même titre que les monographies
  2. les notices de dépouillement sont également intégrées à la tables notices. Ces éléments sont donc par définition interrogeables dans la recherche telle qu'implémentée à l'heure actuelle.
  3. Le dernier niveau, celui du bulletinage est utilisé dans le cadre de la gestion physique des documents, et notamment du prêt, donc proche de la notion d'exemplaire.

Conséquences sur la structure MySQL

Nous sommes donc devant la nécessité de faire ressortir une notion de niveau de notice dans la table des notices. Nous préconisons dans ce cadre, d'utiliser les outils mis à notre disposition par la spécification UNIMARC, dans un souci d'homogénéité.

Dans un enregistrement UNIMARC, il existe ce qu'on appelle le label de la notice. Le label est une suite de caractères dont la position et la valeur nous donne des informations sur la notice représentée dans l'enregistrement. (reportez vous à la spécification UNIMARC pour plus de détail).

Dans le cadre de ce document, nous décrivons les 3 positions du label qui permettent de gérer les niveaux de notices :

Position 6 : type de document
Nous ne nous étendons pas outre mesure sur cette position, déjà utilisée dans PMB (type de document a, b, c... r). Il est mentionné ici pour rappeler que la notion de périodique peut recouvrir autre chose que des documents imprimés (documents sonores, ressources électroniques, etc.).
Position 7 : niveau bibliographique
Cette position peut recevoir les valeurs suivantes :
a = analytique (partie composante)
Il s'agit d'un document bibliographique inclus dans un autre document de telle sorte que l'identification physique et la localisation de la partie dépendent de celle du document la contenant. Un tel document peut aussi bien appartenir à une monographie qu'à un périodique. Exemples de documents codés 'a' : un article de périodique, une colonne dans un journal, une communication dans les compte-rendus d'un congrès, etc.
m = monographie
Une monographie est un document bibliographique complet en une partie physique ou qui doit être complété en un nombre fini de parties.
s = publication en série
Il s'agit d'un document bibliographique composé de parties publiées successivement et sans limite dans le temps.
c = recueil factice
très rarement applicable dans les établissements de lecture publique (exemple : un ensemble de brochures conservé dans une boite, tous les manuscrits d'un auteur, etc.).
Position 8 : code de niveau hiérarchique
Ce code indique que la notice est hiérarchiquement liée à d'autres notices et montre la place de la notice dans la hiérarchie. Les codes utilisés sont :

Concrétement, ces trois codes permettent de gérer la notion de niveau très facilement. Il suffit pour s'en convaincre de prendre le tableau suivant :

Type de document Position 6 du label Position 7 du label Position 8 du label
Monographie A déterminer par le catalogueur m 0
Notice chapeau d'un périodique A déterminer par le catalogueur s 1
Notice de dépouillement (ex. un article de périodique) A déterminer par le catalogueur a 2
définition du niveau de notice

Ca se présente pas mal. La position 7 permet à elle seule de définir pour une notice le niveau de notice. Objection : Pourquoi donc dans ce cas utiliser la position 8 en plus ? La raison en est : prévoir les évolutions futures et se ménager une porte de sortie pour des cas tordus auxquels on pourrait être confronté...

Conséquence pratique : la table notices se voit insérer deux nouveaux champs : blevel et hlevel (nom à déterminer pour accueillir les codes de niveau bibliographique et de niveau hiérarchique. Ces champs sont de type enum avec des valeurs par défaut fixées à m pour le niveau bibliographique et à 0 pour le niveau hiérarchique.

Une fois la question du niveau de notice réglée, reste celle des liens qui doivent nécéssairement être établis entre des notices entrant dans la hiérarchie que nous souhaitons définir.

Le problème est ici rendu plus conséquent par le fait que, dans le cas du dépouillement d'un périodique, le lien ne se fait pas directement entre la notice de dépouillement et la notice chapeau. On est contraint de passer par le niveau intermédiaire du bulletinage. Illustration :

La bibliothèque est abonnée à Linux Pratique.

Cela me donne une notice chapeau :

Linux Pratique. Editeur <Diamond Editions>., etc... niveau_bibliographique = s et niveau_hierarchique = 1

En Mars 2003, nous recevons le numéro 16 de la revue. Je colle un code-barre dessus et en effectue le bulletinage. En fait, cela revient à créer dans une table qui n'existe pas encore) la ligne suivante :

id_bulletinage id_notice_periodique numero mention_de_date
auto_incremented id notice de Linux Pratique (notice chapeau) 16 Mars-Avril 2003
entrée dans la table 'bulletinage'

Dans ce numéro, figure un article passionnant sur la copie privée par Loïc Dachary aux pages 16 à 18. Je souhaite en faire profiter mes usagers.

Je suis donc amené à créer une notice de dépouillement dans la table notices :

titre : Menace sur la copie privée
sous-titre : désir de monopole ?
auteur 1 : Dachary, Loïc
catégories : ...
indexation libre : ...

Dans la collation, nombre de pages, je fais figurer la mention : p.16 à 18 (petite entorse à l'ISBD, mais défendable... théoriquement, cela devrait figurer dans une zone de note. On peut discuter ce détail...).

On voit bien ici le problème : si le lien de la notice de dépouillement se fait vers la notice chapeau, ça ne marche pas... Je sais que l'article que j'ai trouvé est dans le magazine Linux Pratique, mais pas dans quel numéro !!!

Le lien de la notice de dépouillement doit se faire vers l'entrée dans la table du bulletinage. Comme l'entrée dans la table de bulletinage comprend un autre lien vers la notice chapeau, je suis en mesure de reconstituer l'affichage désiré :

Menace sur la copie privée : désir de monopole ? / Loïc Dachary.- p. 16-18

in Linux Pratique. Numéro 16, Mars Avril 2003

Notez bien que le passage par la table de bulletinage m'a permis d'obtenir un lien vers un exemplaire qui me donne les informations utiles (en prêt, localisation, etc...) et me permet de compléter cet affichage.

Nous avons donc besoin d'une seconde table servant à faire le lien entre une notice de dépouillement et le niveau du bulletinage :

id_depouillement id_bulletinage
contient l'id de la notice de dépouillement de l'article contient l'id de la ligne de bulletinage correspondant au numéro de la revue
structure de la table faisant le lien dépouillement/bulletinage

modification de la table des exemplaires ('expl')

La table des exemplaires doit se voir adjoindre un champ de type entier non-signé qui accueillera pour les exemplaires d'un périodique l'id de l'entrée de bulletinage du numéro. Ceci est très important car la bibliothèque peut posséder plusieurs exemplaires d'un même numéro. De plus, ceci permet de remonter directement de l'exemplaire à la notice liée.

3. Conséquences sur le code PHP

Première chose à bien intégrer : les codes de niveau bibliographique et hiérarchiques ne sont jamais accessibles directement à l'utilisateur. C'est le passage au module périodique qui définit l'attribution de ces codes à une notice. En d'autres termes, si l'on est en catalogage 'normal' les notices créées se voient attribuer les codes par défaut (blevel = m et hlevel = 0). Par contre, dès que l'on est sur le module périodique, le logiciel prend en charge la gestion des codes : création d'un nouveau périodique = saisie d'une notice avec blevel = s et hlevel = 1. Saisie d'une notice de dépouillement = création d'une notice avec blevel = a et hlevel = 2.

Au niveau de la saisie des dépouillements, nous sommes sur la base d'une création de notice standard. Cependant, le form de saisie peut ici être allégé et se limiter aux champs de titres, de mention de responsabilités, indexation matière et indication de l'emplacement dans le numéro (pages tant à tant...).

La classe notice_display doit être revue de telle sorte qu'elle sache adapter son comportement à ce qui se trouve dans les champs de niveau bibliographique et hiérarchique.

Au niveau du prêt, même problématique. Lors d'un prêt, l'application doit être en mesure si le code barre ne correspond à aucune monographie, de déduire que l'objet prété est probablement un périodique, d'où la nécessité de l'adjonction d'un champ dans la table des exemplaires (rappel : l'exemplaire est lié au niveau du bulletinage : on prête un numéro de la revue, pas une notice de dépouillement !!!)

Lors de la recherche, si d'aventure s'affiche une notice chapeau de périodique, un lien doit ouvrir un pop-up avec la liste des numéros du-dit périodique conservés à la bibliothèque (les infos sont alors prises dans la table de bulletinage).

Enfin, mise en oeuvre de procédures de tests d'intégrité sévères pour s'assurer de la synchronisation des infos des tables concernées.

4. Notes sur l'interface du module de gestion des périodiques

En partie catalogage : ajout d'un lien 'gestion des périodiques'

Sur la page du module de gestion des périodiques :

Les accès aux différentes choses se font par recherche sur titre de la revue ou de l'article. Ce module n'a pas besoin d'être très compliqué à ce niveau. Prévoir quand même la possibilité d'accéder directement à une ligne de bulletinage par saisie d'un numéro d'exemplaire.

Lors de l'affichage d'une ligne de bulletinage, liste des dépouillements pour cette ligne avec possibilité d'accès direct à chacune des notices de dépouillement pour modif ou suppression.

Lors de l'affichage d'une notice chapeau, idem : accès direct aux lignes de bulletinage.

Conclusion (provisoire)

Y'a du pain sur la planche...