Gérer une fichothèque avec le logiciel BDF

Quelles pistes pour regrouper des fiches liées à un mot-clé ou une fiche en fonction d’un autre thésaurus dans une export tabulaire ?

Il arrive souvent qu’un thésaurus soit utilisé pour classer des fiches par type. Lorsque ces fiches se retrouvent sous forme de liste (par exemple, la liste des fiches indexées par un mot-clé), il est pertinent de regrouper ces fiches par type afin d’aérer la liste et la rendre plus lisible.

Une solution est de mettre en place une extraction spécifique pour l’export tabulaire et de passer ensuite par une transformation. Cette solution a l’avantage de s’adapter à tous les cas de figure mais elle est complexe à mettre en place. C’est pour simplifier le travail qu’a été introduit une « inclusion » particulière : json_fichedistribution (rappelons que dans un export tabulaire, une inclusion est une instruction qui va proposer un traitement spécifique, différent du formatage habituel d’une colonne).

L’inclusion json_fichedistribution produit une colonne dont le contenu est un objet au format JSON décrivant la répartition des fiches.

Voici un premier exemple :

Exemple d’une distribution simple
%json_fichedistribution:fiches_par_type
corpus_document|thesaurus_typedoc|propriete_date

La première ligne, commençant par %, est la déclaration de l’inclusion. json_fichedistribution est le nom de l’inclusion, le texte après les deux-points est le nom de la colonne dans la table (ici fiches_par_type).

Les lignes suivantes contiennent les informations de configuration de l’inclusion. Les barres verticales | sont les séparateurs entre les arguments qui peuvent être au nombre de trois

Le premier argument obligatoire est le nom d’un ou plusieurs corpus (séparés par une espace ou des virgules), dans notre exemple corpus_document. Ce sont les corpus sur lequel vont se faire la répartition.

Après les corpus vient l’argument du thésaurus qui va servir au regroupement (ici thesaurus_typedoc).

Le troisième et dernier argument est facultatif et indique un deuxième niveau de regroupement des fiches, en plus du thésaurus. L’argument doit être le nom d’un champ Propriété ou Information qui est soit de type « Datation », soit de type « Langue ». Il peut également prendre la valeur lang pour indiquer que le regroupement se fait suivant la langue des fiche.

En cas d’absence de troisième argument, le regroupement se fait suivant la date de création des fiches.

Lorsque le regroupement se fait par « datation », les fiches sont regroupées par année puis classées par la valeur de la date.

 

Un exemple de JSON résultant est le suivant :

{"_2":[{
      "year":2001,
      "fiches": [{
          "corpus":"document",
          "id":4,
          "lang":"fr",
          "date":"2001-10"
      }]
  }
]}

Et dans le cas d’un regroupement par langue :

{"_2":[{
      "lang":"fr",
      "fiches": [{
          "corpus":"document",
          "id":4,
          "lang":"fr"
      }]
  }
]}