Modèles unifiés de données structurées
Les besoins d'intégration et d'échanges permis par le web 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.
Table of Contents
Modèle unifié de données
Besoin
Langage pour représenter toute sorte de données échangées
- suffisamment abstrait pour être compréhensible par des humains,
- 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).
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.