Ceci est une ancienne révision du document !


UUID et URI : identification du contenu de manière unique

UUID

L'objectif de Scrutari est de rassembler des informations provenant de sites différents. Se pose alors la question de donner une identification unique à chacun des contenus transmis par le format de ScrutariData (autrement dit les fiches, les mots-clés, les corpus, les thésaurus et les bases elles-mêmes) afin d'éviter les conflits. En interne, le serveur Scrutari attribue un numéro à chacun de ces contenus mais ce numéro n'est pas pérenne (sauf paramétrage particulier), n'est pas signifiant et reste propre au serveur lui-même alors qu'un même fichier au format ScrutariData peut être utilisé par plusieurs serveurs différents.

Le principe adopté dans Scrutari repose sur l'UUID (Universally Unique Identifier : identifiant unique universel) qui est un mécanisme de génération d'identifiants assurés d'être unique. De nombreux langages de programmation possèdent une bibliothèque susceptible de générer cet identifiant et des sites proposent d'en créer un en ligne (par exemple, http://www.famkruithof.net/uuid/uuidgen).

Attribuer un identifiant unique sous la forme d'un UUID à chaque contenu serait laborieux et risquerait de compliquer sérieusement la tâche. L'idée est donc de n'utiliser qu'un seul UUID, l'UUID du producteur de l'information (l'élément <authority-uuid> dans l'élément <base-metadata>), c'est ensuite ce producteur d'information qui a la responsabilité de nommer la base et les autres contenus du fichier au format ScrutariData.

Ainsi dans l'exemple suivant :

<base>
<base-metadata>
   <authority-uuid>e17a05b0-c45e-11d8-9669-0800200c9a66</authority-uuid>
   <base-name>gouvafrique</base-name>
   ...
</base-metadata>
<corpus corpus-name="analyse">
...
</corpus>
</base>

Le code du corpus « analyse » est le composé de l'UUID, du nom de la base et du nom du corpus, soit : e17a05b0-c45e-11d8-9669-0800200c9a66/gouvafrique/analyse.

Il n'y a donc pas de risque de doublons entre deux producteurs d'information qui ont des UUID différents. Par contre, un même producteur d'information doit prendre garde aux doublons s'il utilise le même UUID dans différents fichiers au format ScrutariData. Pour éviter des doublons, il suffit tout simplement de nommer les bases différemment (via l'élément <base-name> dans <base-metadata>) : e17a05b0-c45e-11d8-9669-0800200c9a66/gouvafrique/analyse et e17a05b0-c45e-11d8-9669-0800200c9a66/gouvafrique2/analyse sont bien deux corpus différents même si leur nom (analyse) est le même

URI

De l'UUID à l'URI (Unique Resource Identifier), il n'y a qu'un pas : comme on l'a vu avec l'exemple des corpus, l'agrégation UUID + nom de la base + nom du corpus permet de distinguer les corpus entre eux. En précédant cette agrégation d'un espace de nom, on obtient un URI.

Cela donne les formes suivantes :

  • URI d'une base : base:/UUID/nom de la base
  • URI d'un corpus : corpus:/UUID/nom de la base/nom du corpus
  • URI d'une fiche : fiche:/UUID/nom de la base/nom du corpus/identifiant de la fiche
  • URI d'un thésaurus : thesaurus:/UUID/nom de la base/nom du thésaurus
  • URI d'un mot-clé : motcle:/UUID/nom de la base/nom du thésaurus/identifiant du mot-clé

L'URI est d'ores et déjà utilisé dans des fichiers de configuration du serveur Scrutari.

Une des applications possibles des URI serait le partage de thésaurus entre plusieurs bases. Cette application n'est pas encore opérationnelle dans le serveur Scrutari.

scrutaridata/uri.1467819808.txt.gz · Dernière modification: 2016/07/06 17:43 par vincent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0