Vocabulaire ad hoc

Un article de WikiXMLfr.

Sommaire

Définition

Les vocabulaires ad hoc sont des vocabulaires XML développés pour une application ou organisation sans la recherche de généricité qui caractérise les vocabulaires standards.

Utilité des vocabulaires ad hoc

Parmi les avantages des vocabulaires ad hoc, on peut citer :

  • Une structure et une sémantique adaptées au plus près des besoins de l'application.
  • Une sémantique sans ambiguïté et bien comprise de tous les utilisateurs (humains et logiciels) du vocabulaire, car elle découle directement de l'objectif à atteindre, sur lequel ils se sont accordés a priori (typiquement via une formalisation UML).
  • Une structure choisie librement par ses utilisateurs, pour faciliter soit le travail d'écriture des données, soit leur lecture (selon les objectifs de l'application).
  • Un encombrement restreint : il n'est pas nécessaire d'inclure dans le vocabulaire des éléments qui n'ont pas de sens pour l'application.
  • Leur objectif n'est pas tant l'échange d'informations, comme pour les vocabulaires standards, mais la coordination de ces informations, aux différents niveaux d'un système informatique cohérent. Nous pourrions parler de vocabulaire d'orchestration, de gamme. Ils ne réalisent rien eux mêmes, puisque ce ne sont que des expressions sémantiques, mais ils servent de repère central au développement et à l'exécution d'un ensemble applicatif. C'est pour cela que l'on évoque souvent à leur propos des techniques de bind, de lien : lien entre bases de données et classes d'objet, entre un service web et un serveur ou un client, transformations - autre forme de la notion de lien - d'un type de document à un autre.

Publication de vocabulaires ad hoc

Les vocabulaire ad hoc n'ont pas vocation à être publiés. Pourtant, il est courant que les données organisées à partir d'un vocabulaire ad hoc doivent être partagées avec des utilisateurs qui n'ont pas participé à l'élaboration de l'application.

Dans ce cas, il est nécessaire de passer par une opération de transformation des données XML de l'application, soit directement vers un autre vocabulaire ad hoc (celui par lequel les données seront consommées) soit, plus fréquemment, vers un vocabulaire standard, qui pourra éventuellement servir de pivot vers d'autres vocabulaires ad hoc.

Il est à noter que la transformation vers un autre vocabulaire a une taille proportionnelle à celle du vocabulaire de départ, et peut être réutilisée autant de fois que nécessaire ; de même, toute évolution du vocabulaire ad hoc implique une modification de complexité équivalente de la transformation.

Par ailleurs, rien n'interdit d'écrire une transformation inverse (notamment depuis un vocabulaire standard), y compris si le vocabulaire de départ est plus générique que celui d'arrivée. La perte d'information potentielle est simplement la traduction de l'inadéquation entre les données et l'application d'arrivée. Cette transformation inverse, souvent négligée, comporte les avantages suivants :

  • Permettre aux outils ad hoc de fonctionner sans adaptation sur des données venues de l'extérieur.
  • Permettre l'utilisation d'outils génériques en amont de la production de données, ce qui évite la phase d'apprentissage pour les utilisateurs qui n'étaient pas associés à l'élaboration du schéma ad hoc.

Exemples

Beaucoup des vocabulaires de configuration de logiciels sont des vocabulaires ad hoc. Voir par exemple celui de Tomcat avec son server.xml.

Réflexions sur des Cas Concrets