Bibframe, RDA, MARC, JSON... on vous aide à démêler ces concepts!

L'échange de données bibliographiques est un acquis de longue date. Nous pourrions commencer notre analyse avec les bibliographies imprimées et les catalogues collectifs sur fiches (mot-clé: Répertoire bibliographique universel de Paul Otlet). Mais par pragmatisme, nous nous contentons de mentionner le format MARC, qui symbolise cet échange de données depuis l'informatisation des bibliothèques. Datant de la fin des années 1960 – bien avant le web, donc – MARC est encore hégémonique aujourd'hui dans les systèmes de bibliothèque.

Depuis longtemps donc, le partage des données fait partie de l'ADN des bibliothèques. C'est aussi ce qui les différencie tant des archives: les ressources sont publiées, elles sont possédées par d'autres institutions, et donc le travail de description peut être mutualisé et partagé. Ce contexte change de nos jours avec les référentiels d'autorités, nous y reviendrons.

Comment se fait l'échange bibliographique standard aujourd'hui, en bibliothèque?

Nous pouvons décomposer nos différents standards en niveaux:

1. Le format d'enregistrement: MARC/ISO ou MARC/XML

A titre d'exemple, voici ci-dessous une notice MARC en format d'échange natif (selon la norme ISO 2709 d'origine, conçue pour économiser l'espace de stockage)...

00562nz  a2200169n  4500001001400000003000500014005001700019008004100036035001500077039010600092040002600198072000900224110006100233410004500294667003000339999002300369vtls009951124RERO20140816170306.0970318   a z  babn             ana     d  aA009951124 9a201408161703bVLOADc200902131049d9511c200902131048d9511c200406201733dVLOADy200406201021zVLOAD  aRERO vsmatbfrefrero  as1se2 aAssociation des métiers d'art et d'artisanat du Valais2 aMétiers d'art et d'artisanat du Valais  aDescripteur validé RERO  aVIRTUA50         y

... et voici son équivalent en MARC/XML (qui consomme beaucoup plus de caractères):

<?xml version="1.0" encoding="UTF-8" ?>
<marc:collection xmlns:marc="http://www.loc.gov/MARC21/slim" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd">
    <marc:record>
        <marc:leader>00562nz  a2200169n  4500</marc:leader>
        <marc:controlfield tag="001">vtls009951124</marc:controlfield>
        <marc:controlfield tag="003">RERO</marc:controlfield>
        <marc:controlfield tag="005">20140816170306.0</marc:controlfield>
        <marc:controlfield tag="008">970318   a z  babn             ana     d</marc:controlfield>
        <marc:datafield tag="035" ind1=" " ind2=" ">
            <marc:subfield code="a">A009951124</marc:subfield>
        </marc:datafield>
        <marc:datafield tag="039" ind1=" " ind2="9">
            <marc:subfield code="a">201408161703</marc:subfield>
            <marc:subfield code="b">VLOAD</marc:subfield>
            <marc:subfield code="c">200902131049</marc:subfield>
            <marc:subfield code="d">9511</marc:subfield>
            <marc:subfield code="c">200902131048</marc:subfield>
            <marc:subfield code="d">9511</marc:subfield>
            <marc:subfield code="c">200406201733</marc:subfield>
            <marc:subfield code="d">VLOAD</marc:subfield>
            <marc:subfield code="y">200406201021</marc:subfield>
            <marc:subfield code="z">VLOAD</marc:subfield>
        </marc:datafield>
        <marc:datafield tag="040" ind1=" " ind2=" ">
            <marc:subfield code="a">RERO vsmat</marc:subfield>
            <marc:subfield code="b">fre</marc:subfield>
            <marc:subfield code="f">rero</marc:subfield>
        </marc:datafield>
        <marc:datafield tag="072" ind1=" " ind2=" ">
            <marc:subfield code="a">s1se</marc:subfield>
        </marc:datafield>
        <marc:datafield tag="110" ind1="2" ind2=" ">
            <marc:subfield code="a">Association des métiers d'art et d'artisanat du Valais</marc:subfield>
        </marc:datafield>
        <marc:datafield tag="410" ind1="2" ind2=" ">
            <marc:subfield code="a">Métiers d'art et d'artisanat du Valais</marc:subfield>
        </marc:datafield>
        <marc:datafield tag="667" ind1=" " ind2=" ">
            <marc:subfield code="a">Descripteur validé RERO</marc:subfield>
        </marc:datafield>
        <marc:datafield tag="999" ind1=" " ind2=" ">
            <marc:subfield code="a">VIRTUA50         y</marc:subfield>
        </marc:datafield>
    </marc:record>
</marc:collection>

2. La structure interne du MARC

Ces structures sont standardisées et décrivent quels contenus se trouvent dans quelles zones. Les standards les plus connus aujourd'hui sont l'UNIMARC (le titre est en zone 200) et MARC21 (le titre est en zone 245). Tous les deux peuvent être sauvegardés en MARC/ISO ou en MARC/XML.

3. Les règles de saisie

Celles-ci définissent la manière de saisir le contenu des champs. À titre d'exemple, nous pouvons citer la source d'information pour la saisie, le caractère obligatoire et facultatif des éléments, l'usage des majuscules et minuscules, la transcription du texte figurant sur la ressource, l'usage d'abréviations spécifiques, les listes de termes autorisés (rôles, types de contenus, de supports), etc.

Les règles de description bibliographique les plus répandues aujourd'hui se nomment RDA (Resource Description and Access).

4. La modélisation des données peut représenter une extension, un quatrième niveau.

Très souvent, ce niveau est étroitement lié aux règles de catalogage. Il indique les entités existantes et leurs relations. Durant longtemps, les bibliothèques n'ont décrit que des notices bibliographiques, des états de collection et des exemplaires. Au début des années 2000, la modélisation FRBR, aujourd'hui LRM, a replacé le catalogage dans un contexte plus large d'entités: personnes, œuvres, lieux, concepts... Ces entités sont généralement communes avec les descriptions faites dans les archives, les musées et sur le web en général, et ouvrent donc la voie vers un formidable élargissement du partage de données dont les bibliothèques restent les principales garantes. Le projet GND pour les données culturelles (GND4C) en est un exemple éloquent.

En quoi RERO ILS est différent

Lors de la conception de RERO ILS, un choix fondamental a été de ne pas baser le logiciel directement sur le format MARC. Comme RERO ILS repose sur les technologies du framework Invenio 3, nous avons naturellement adopté JSON comme socle pour les données. JSON est un format permettant de structurer des données, sur le même principe que XML, mais qui est intégré à de nombreux langages de programmation récents.

Pour reprendre le principe des niveaux évoqué précédemment, nous vous proposons la comparaison suivante:

Niveau RERO ILS Le reste du monde (sauf exceptions) Nos commentaires
Format d'enregistrement JSON MARC/ISO On pourrait très bien imaginer enregistrer du MARC21 ou de l'UNIMARC en JSON.
Structure interne Bibframe MARC21, UNIMARC, ... Bibframe définit globalement comment se nomment les éléments JSON et le type de données qu'ils contiennent: a-t-on une structure hiérarchique en poupées russes ou a-t-on un élément simple avec du texte comme valeur?
Règles de saisie RDA RDA L'évolution encore récente de RDA mène à des niveaux d'implémentation différents selon les bibliothèques.
Modélisation des données LRM (objectif) LRM (objectif) La modélisation est implémentée différemment, en fonction des systèmes de bibliothèques, des normes de catalogage et des interfaces de découverte. LRM est un objectif ambitieux qu'il est difficile d'atteindre rapidement...

Exemple concret de Bibframe/JSON

La structure Bibframe/JSON est utilisée dans les deux projets, RERO ILS et SONAR, de manière très similaire.

Voici un extrait JSON du document "Bulle au pluriel" (voir la notice dans le catalogue RERO+ ou les données JSON dans l'API RERO ILS. Cet extrait correspond à l'auteur, à savoir

  • en RDA: un agent (personne) associé à une manifestation/oeuvre (un document)
  • en MARC21: la zone 100 ou 700
  • en Bibframe: le champ contribution
    "contribution": [
      {
        "agent": {
          "$ref": "https://mef.rero.ch/api/agents/idref/254732569",
          "type": "bf:Person"
        },
        "role": [
          "cre"
        ]
      }]

Contrairement à MARC, Bibframe et JSON permettent d'imbriquer les éléments et d'avoir une hiérarchie à plusieurs niveaux, ce qui donne la possibilité d'avoir des données plus granulaires et plus structurées. Ainsi, dans notre exemple, la clé $ref fait référence à l'auteur dans le référentiel IdRef, et elle se trouve au sein de la clé agent, elle-même au sein de contribution. Cette granularité permet d'améliorer certaines limites de MARC (pour celles et ceux qui se souviennent par exemple des sous-zones de liaison 245$6 ou 336$8).

Pourquoi le nom de l'auteur n'apparaît-il pas? On lui préfère l'identifiant, c'est ainsi que le Linked Data fonctionne. Si le nom est modifié, on ne doit pas modifier tous les documents liés. Par contre, ces documents sont réindexés pour permettre une recherche efficace sur la base du nouveau nom.

Vous aviez dit qu'il y avait du RDA? Oui, le RDA se reconnaît au niveau du vocabulaire utilisé dans les valeurs, à l'instar du code cre (creator) pour le rôle. La clé agent vient de Bibframe mais coïncide heureusement avec la terminologie RDA. La couche complète RDA ne s'ajoute que dans l'éditeur, et elle est traduite selon la langue de l'interface, en français dans l'image ci-dessous.

editeur_contribution

RERO ILS est-il interopérable?

Nous n'allons pas dire le contraire! RERO ILS est interopérable avec le reste du monde car il gère le format MARC en import et export. Ce qui se passe à l'intérieur du système n'est pas réellement pertinent du point de vue de l'interopérabilité.

Pour que les processus d'échange puissent se dérouler, les systèmes de bibliothèques s'appuient sur des protocoles, notamment SRU (successeur de Z39.50), qui décrit sous quelle forme exactement on peut rechercher et récupérer des données principalement en MARC/XML.

Ainsi, RERO ILS est en mesure d'importer en MARC (via la fonction "Import depuis le web) et d'exporter en MARC via SRU. Voir par exemple tous les documents de Jean Piaget (dont le PPN IdRef est 027071170) via le service SRU.

Enfin, on pourrait presque dire que RERO ILS est naturellement interopérable puisque le projet est Open Source.

Pourquoi ne pas faire comme tout le monde?

MARC est un standard extrêmement bien conçu pour son époque, et est dans une certaine mesure évolutif: sa durée de vie le prouve! Toutefois les technologies du web s’accommodent plus facilement de nouveaux formats tels que XML et JSON. C'est aussi et surtout le cas des personnes développant les applications d'aujourd'hui: elles interagissent avec les données des bibliothèques pour développer des sites web institutionnels, des applications mobiles, des services web, etc. Souvent, ces personnes ne travaillent pas qu'avec les données des bibliothèques, et préfèrent donc des formats généralistes répandus dans tous types de domaines.

C'est l'un des atouts de RERO ILS, qui fonctionne nativement avec certains standards modernes tels que les API REST.

Partager