Modèles de données et langages de description ouverts 2021-2022 - 2
1. Modèles de données et langages
de description ouverts - 2
Licence DIST
2021-2022
2. Programme global
• Comprendre la notion de métadonnée,
approche des langages à balises (s1)
• Comprendre le XML et ses applications (s2-4)
• Données ouvertes, traitements et
matérialisations informatiques (s5-6)
3. Programme de ce cours
1. Rappel Langage à balises
2. Vers le HTML et le XML
3. Qualités et principes du XML
4. Construire un XML à partir d’une DTD
5. Concevoir une DTD
6. Rappel DTD
7. XML Schema
4. 1) Rappel langages à balise
• Les langages à balise sont une manière
d’insérer des métadonnées dans un document
• Ils permettent aux machines de traiter les
données et la structure plus facilement
• On représente le système des balises comme
une arborescence que suivent les machines
pour récupérer ou traiter de l’information
5. 2) Vers le HTML et le XML
• A la fin des années 1960 IBM invente un
langage de description, GML (Generalized
Markup Langage ou Goldfarb - Mosher - Lorie,
du nom des inventeurs).
• Charles Goldfarb, co-inventeur du GML
développe ensuite un successeur appelé SGML
(Standard Generalized Markup Language),
publié en 1986 comme norme ISO (ISO
8879:1986)
5
6. Vers le HTML et le XML
• Tim Berners-Lee choisit de décliner le SGML
en une version simplifiée pour structurer les
pages web :
HTML (HyperText Markup Language)
• De la grande simplicité du début (tag soup)…
• Aux 104 éléments définis dans HTML 5
6
7. Vers le HTML et le XML
Exemple HTML :
<!DOCTYPE html>
<html>
<head>
<title>Titre de page</title>
</head>
<body>
<h1>Titre de section niveau 1</h1>
<p>Paragraphe</p>
</body>
</html>
7
8. Vers le HTML et le XML
Exemple HTML :
<!DOCTYPE html>
<html>
<head>
<title>Titre de page</title>
</head>
<body>
<h1>Titre de section niveau 1</h1>
<p>Paragraphe</p>
</body>
</html>
Question piège : en bleu, grammaire ou vocabulaire du HTML ?
8
9. Vers le HTML et le XML
• Les principes du HTML sont liés aux principes
du Web:
– Notion d’hypertexte
– Des serveurs fournissent des documents
– Les documents sont décrits selon une grammaire
SGML
– Les clients (navigateurs) peuvent lire les
documents
9
10. Vers le HTML et le XML
• Présentation pédagogique et nombreux
exemples sur le tutoriel :
http://www.w3schools.com/html/default.asp
[pour s’entraîner à manipuler du code HTML et l’utiliser pour
présenter des métadonnées : essayez de reconstituer une
version très simplifiée d’une notice d’oeuvre, par exemple
https://www.imdb.com/title/tt1160419/]
11. Vers le HTML et le XML
• Dès la mise en place du web, pour structurer
les pages web un nouveau langage semble
nécessaire
– Echanger des informations avec d’autres logiciels
que les navigateurs
– Utiliser une syntaxe plus rigoureuse
– Simplifier l’adaptation du langage aux besoins
– Poursuivre la séparation des fonctions de balises
11
12. Vers le HTML et le XML
Exemple HTML :
<!DOCTYPE html>
<html>
<head>
<title>Titre de page</title>
</head>
<body>
<h1>Titre de section niveau 1</h1>
<p>Paragraphe</p>
</body>
</html>
12
13. Vers le HTML et le XML
• XML pour
eXtensible Markup Language
13
15. 3) Qualités et principes du XML
• Le XML est un langage à balises et
l’exploitation la plus connue de ce
fonctionnement
• C’est un méta-langage qui permet de définir
d’autres langages (grammaires et / ou
vocabulaires spécifiques)
• XML est plus souple que SGML, mais plus
structuré que HTML
16. Plus lent, plus haut, plus fort : XML
• Plus lent : nécessité de lier à des grammaires
et vocabulaires, pas d’interprétation
« directe »
• Plus haut : langage généraliste, adaptable à
presque tous les contextes d’application
• Plus fort : adapté aux traitements automatisés
à grande échelle
17. Plus lent, plus haut, plus fort : XML
• Objectifs d’origine du XML
– Facilement utilisable sur le web
– Adaptable dans de multiples situations
– Compatible avec SGML
– Facilite la création de traitements informatisés des
documents XML
– Réduit la complexité des choix à faire [???]
– Lisible et raisonnablement clair
18. Plus lent, plus haut, plus fort : XML
• Objectifs d’origine du XML - suite
– La conception de XML doit être rapide
– La description de XML doit être formelle et
concise
– Les documents issus de XML doivent être faciles à
créer
– L’économie de balisage est une priorité secondaire
(c’est à dire : plutôt la précision que la concision)
19. Plus lent, plus haut, plus fort : XML
• XML est un métalangage
– Permet de décrire des types de documents,
d’autres langages
– Permet de définir des instances XML
• Répondant à un type de document
• « seulement » bien construites
– Les instances XML peuvent décrire
• Des documents (texte balisé, comme le fait le SGML)
• Des données structurées quelconques
20. Plus lent, plus haut, plus fort : XML
• Organisation des informations pour XML
– DTD (Document Type Definition) ou Schéma
• Comment décrire les données / documents ?
– XML
• Les données et documents eux-mêmes, balisés
– « Feuilles de style » (= stylesheet)
• Comment présenter les données / documents ?
• NB : on ne sait plus trop où sont les données et ou sont les
documents (selon les points de vue) !
21. Plus lent, plus haut, plus fort : XML
• Très bonne intégration du XML dans les SI
– Pour le stockage des données
• Simples fichiers (configuration)
• BdD structurées
• BdD documentaires (XML ou web)
– Pour l’échange des données
• Entre 2 BdD
• Publication des données avec feuille de style
– Transferts arbre entier [ou « à la volée » plus rarement]
24. Qualités et principes du XML
• Les balises de XML forment une arborescence
stricte (pas de double lien hiérarchique)
– Auteur
• nom
– Zola, Emile
• mort
– date : 1902
– lieu : Paris
• né
– date : 1840
– lieu : Paris
25. Qualités et principes du XML
• balises ou attributs des balises ?
L’utilisation de balises ou d’attributs pour
représenter la structure des données dépend
du contexte d’utilisation
– Identifiants uniques dans une série : attributs
– Variantes linguistiques d’une donnée : attributs
– Données dont on ne connaît pas par avance
l’exploitation : balises
26. Qualités et principes du XML
• Les métadonnées en XML s’organisent en 3
parties:
– Le fichier XML lui-même, obligatoire
– Une DTD ou un schéma XML, facultatifs
– Une ou plusieurs feuilles de style CSS, facultatives
• La DTD (document type definition) ou le schéma
définissent la validité (grammaticale) du XML
• Les feuilles de style définissent comment sont
représentées les données
27. Qualités et principes du XML
DTD
Document
XML
Page web
PDF
Doc XML
Feuille
de style
1
Feuille
de style
2
Feuille
de style
3
28. Qualités et principes du XML
DTD
Document
XML
Page web
PDF
Doc XML
Feuille
de style
1
Feuille
de style
2
Feuille
de style
3
Un XML doit être
bien formé…
pour être du XML
(il y a une
conformité au
XML)
29. Qualités et principes du XML
DTD
Document
XML
Page web
PDF
Doc XML
Feuille
de style
1
Feuille
de style
2
Feuille
de style
3
Une DTD définit
les règles que
doit respecter un
XML pour être
valide pour
l’utilisation prévue
(la DTD définit la
validité du XML)
30. 4) Construire un fichier XML à partir
d’une DTD
• Lire une DTD
– Les balises interprétables sont toutes listées
– Les balises sont qualifiées
• Ce qu’elles doivent contenir (dans une certaine mesure)
• Quelles sont les balises filles ou attributs possibles, et
combien le XML peut en comporter
• Une DTD incomplète peut ne pas bloquer le
traitement informatique mais empêche la
validité du XML ou limite son utilisation
31. Construire un fichier XML à partir
d’une DTD
• Exemple 1 :
<!ELEMENT liste_livres (livre+)>
<!ELEMENT livre (titre,auteur+,
éditeur,description?,prix)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT auteur (#PCDATA)>
<!ELEMENT éditeur (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT prix (#PCDATA)>
32. Construire un fichier XML à partir
d’une DTD
• Une DTD peut définir une balise :
– Contenant du texte !ELEMENT balise (#PCDATA)
– Contenant une autre balise
!ELEMENT balise (balise2)
– Contenant une série de balises
!ELEMENT balise (balise3, balise4, balise5)
– Contenant une autre balise optionnelle
!ELEMENT balise (balise9?)
– Contenant une autre balise répétable
!ELEMENT balise (balise10+)
33. Construire un fichier XML à partir
d’une DTD
• Exemple 2 :
<!ELEMENT personne (nom | pseudo)>
<!ELEMENT nom (#PCDATA | surnom*)>
<!ELEMENT surnom (#PCDATA)>
<!ELEMENT pseudo (#PCDATA)>
<!ELEMENT identité (personne?, insee,
personne?)>
<!ELEMENT insee (#PCDATA)>
34. Construire un fichier XML à partir
d’une DTD
• Une DTD peut définir une balise :
– Contenant une des balises alternatives
!ELEMENT balise (balise6 | balise7 | balise8)
– Contenant une autre balise répétable optionnelle
!ELEMENT balise (balise11*)
– Ne contenant rien !ELEMENT balise (EMPTY)
– Contenant n’importe quoi !ELEMENT balise (ANY)
35. Construire un fichier XML à partir
d’une DTD
• Une DTD peut définir les attributs :
!ATTLIST balise attribut type mode
– type indique les règles de formation de l’attribut
– mode indique le caractère obligatoire ou non
[complexe]
• Une DTD peut définir des entités réutilisables :
!ENTITY ns 'xmlns CDATA #FIXED
"urn:isbn:1-931666-00-8"‘
36. Construire un fichier XML à partir
d’une DTD
• Exemple 1 bis :
<!ELEMENT liste_livres (livre+)>
<!ELEMENT livre (titre,auteur+,
éditeur,description?,prix)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT auteur (#PCDATA)>
<!ATTLIST auteur isni ID #implied>
<!ELEMENT éditeur (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT prix (#PCDATA)>
37. 5) Concevoir une DTD
• Situation A
La ville de Florence veut faire un document
XML valorisant ses chefs-d’œuvre artistiques
• Situation B
L’école de Poudlard veut faire un annuaire
XML complet de ses élèves
• Situation C
Un chercheur doit formaliser en XML une base
de données sur les catastrophes naturelles
39. 6) Rappel XML - DTD
• Un fichier XML peut être bien formé
(respecter les préconisations du XML) mais ne
pas respecter des règles spécifiques liées à son
utilisation
• Un fichier XML valide respecte les règles d’une
DTD ou d’un schéma XML
• Une DTD est un fichier décrivant la grammaire
d’un XML : les balises utilisables, leur
organisation, les attributs liés, …
40. Rappel XML - DTD
Une DTD définit par exemple :
- qu’il y a des balises 3 et 4
facultatives dans une balise
2
- Qu’il ne peut y avoir aucune
balise dans une balise 7
- Qu’il doit y avoir soit une
balise 6 soit une balise 6’
dans une balise 5
- Que les balises 2, 5 et 9
doivent être présentes dans
une balise 1 et dans cet
ordre
- Qu’il peut y avoir n’importe
quelle balise dans une balise
9
- Qu’il ne peut y avoir que du
contenu et non une balise
dans une balise 10
41. Rappel XML - DTD
• Une DTD peut définir les attributs :
!ATTLIST balise attribut type mode
– type indique les règles de formation de l’attribut
– mode indique le caractère obligatoire ou non
Exemple : on définit un élément « lettre », on
veut appliquer attribut « privée » ou « ouverte »
de façon systématique
!ATTLIST lettre genre (privee|publique)
#REQUIRED
42. XML - DTD
• La définition des attributs, 4 types de
contenus principaux :
!ATTLIST operation codename CDATA #IMPLIED
!ATTLIST lettre genre (privee|ouverte)
#REQUIRED
!ATTLIST ville codepostal ID #REQUIRED
!ATTLIST personne cp IDREF #IMPLIED
44. XML Schema
• [eng] XML Schema = [fr] Schéma XML
• Un schéma XML, c’est une DTD exprimée en
XML
• Le schéma peut donc plus facilement être
inséré avant le document XML lui-même, en
continuité
45. XML Schema
• Les avantages de XML Schema:
– Définit où doit se situer la racine d’un document
XML valide
– Permet de définir des critères pour le contenu du
document (le #PCDATA des DTDs) = les contraintes
sur les données / le contenu
– Permet de définir plus finement le nombre de
répétitions possibles pour une balise
– Autorise des fonctions d’héritages hiérarchiques
(liées à l’arborescence XML du schéma)
46. XML Schema
• Grammaire de XML Schema (simplifiée)
– Une racine fixée <xsd:schema>
– Des éléments simples (balise = « element » de
niveau feuille, ou « attribut »)
– Des éléments complexes (dont les parties ou
attributs sont regroupés dans un
« complexType », selon différentes modalités dont
les séquences, les ensembles…)
49. XML Schema Vs DTD
XSL Schema + XML DTD + XML
+ Rigueur pour les traitements
+ Rentable à l’échelle “industrielle”
+ Accessible avec un peu d’habitude
+ Adapté aux traitements “artisanaux”
- Investissement lourd pour création
- S’éloigne de la gestion par les
humains “normaux”
- Ne peut pas s’adapter à tous les
besoins / toutes les contraintes
- Complique la tâche des machines et /
ou le dispositif
50. Devoirs pour la prochaine fois
Regarder des playlists Spotify ou Youtube, des
résultats de recherche dans un moteur de
recherche, regarder des boîtiers de DVD, des
recettes, ou des paquets de céréales… bref tout ce
qui peut porter des métadonnées.
Et imaginer (ou trouver !) l’arborescence XML
correspondante
50
51. Calendrier prévu
• 07/10/21 – Séance 3
• Courte évaluation intermédiaire (principes des
langages à balises, XML, DTD, Schema)
• XSL; espaces de noms XML
• 21/10/21 – Séance 4
• Travaux par groupes
• Applications XML
• 18/11/21 – Séance 5 : Modèles de données
• 02/12/21 – Séance 6 : fin + évaluation finale