UP | HOME

Modèles unifiés de données structurées

Table of Contents

L'intégration et la communication sur Internet supposent la définition de modèles unifiés de données, c'est-à-dire de langages permettant de représenter toutes les sortes de données échangées. On esquisse ici la théorie sous-jacente à ces modèles.

Modèle unifié de données

Besoin

Langage pour représenter toute sorte de données échangées

  1. suffisamment abstrait pour être compréhensible par des humains,
  2. suffisamment structuré pour être traitable par des machines.

Alternative

  • Forme binaire : eg. RMI (Remote Method Invocation), qui utilise une représentation de bas niveau pour représenter des objets
    • Propriété 1 non vérifiée
    • Propriété 2 enrichie : traitement efficace de la représentation par des machines

Principe général

Algèbre de termes

t ::= f(t_1, ..., t_n) (n : arité)
  • L'arité peut être fixe ou variable.
  • Un terme = un arbre
  • Représentation par un mot (une chaîne de caractères) après un parcours en profondeur (ou en largeur)

Exemple : (5 + 3 * 2) représentation (classique) de l'arbre

  +
 / \
5   *
   / \
  3   2

Propriété fondamentale : bijection entre les termes et les mots les représentant

Plusieurs bijections classiques

  • Notation préfixe (polonaise) ou suffixe (polonaise inversée) lorsque l'arité des opérateurs est fixée

    + 5 * 3 2
    5 3 2 * +
    
  • Notation infixe avec parenthèses

    5 + (3 * 2)
    
  • Notation infixe avec parenthèses et règles de priorité (* prioritaire sur +)

    5 + 3 * 2
    
  • Notation préfixe avec parenthèses (à la Lisp)

    (+ 5 (* 3 2))
    

Applications

Deux langages dominants : XML et JSON

XML : langage utilisant essentiellement des parenthèses paramétrées (les balises)

JSON : langage plus simple utilisant des parenthèses (accolades ou crochets)

Cf. les compléments sur XML et JSON, ainsi que l'étude des correspondances entre données, et particulièrement entre les langages à objets et les langages de documents.

Author: Hervé Grall
Version history: v1: 2016-10-10; v2:2017-10-30[*text]; v3: 2019-01-04[*text].
Comments or questions: Send a mail.
The webpage content is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.