L'évolution des standards du W3C
Une vue d'ensemble
Vincent Quint
W3C / INRIA
Introduction
Quelques uns des formats multimédia présentés dans cette école ont été
créés par le W3C
Objectifs de ce cours : comprendre le contexte dans lequel se placent ces
formats
- Le World Wide Web Consortium
et le processus de création des spécifications
- Les travaux en cours au W3C
- Les technologies en rapport avec les formats multimédia du W3C
I. W3C - World Wide
Web Consortium
Mission du W3C
``Leading the Web to its Full Potential''
Organisation
- Membres
- Plus de 500 organisations couvrant l'ensemble de l'industrie du Web
Participent aux travaux techniques et aux orientations
30+ groupes de travail, 500+ participants
- Équipe
- 67 personnes, 3 hôtes (MIT, INRIA, Keio), Directeur : Tim Berners-Lee
Anime les travaux techniques et gère le fonctionnement
- Public
- Toute personne ou organisation intéressée au Web
Participe aux discussions publiques, aux développements Open Source, experts invités
Principes
- Neutralité
- Les hôtes et l'équipe W3C sont indépendants
- Coordination
- avec les organisations de standardisation : IETF, WAP Forum, ATSC,
Unicode Consortium, ETSI, etc.
- Consensus
- La résolution des problèmes et les décisions sont fondés sur le
consensus
- Ouverture
- Mailing lists, archives,
documents de travail, revues
Rôle
- Vision
- Développer et promouvoir sa vision de l'avenir du Web
Identifier les besoins du Web de demain
- Conception
- Concevoir les technologies pour réaliser cette vision
Conception collaborative impliquant des représentants de toute
l'industrie
- Standardisation
- Contribuer à la standardisation des technologies du Web :
Recommandations
Orientations
- Accès universel
- Assurer que le Web soit accessible par tous
Différences de langage, culture, éducation, handicap, mode d'accès,
appareil d'accès
- Web sémantique
- Permettre aux machines de rechercher et traiter l'information pour
les utilisateurs du Web
- Confiance
- Guider les développements du Web en considérant les nouveaux
problèmes légaux, commerciaux et sociaux
Processus
- Identification des besoins : workshops, soumissions, etc.
- Proposition d'activité avec un programme - commentaires des membres,
candidats
- Création d'un ou plusieurs groupes de travail ou d'intérêt
- Publication des documents de travail (Working Drafts)
- Appel à commentaires (Last
Call) - le groupe de travail pense avoir fini
- Recommandation candidate - appel à implémentation
- Recommandation proposée - revue par les membres
- Recommandation
- Errata, nouvelle édition, suite de tests, guides d'utilisation,
promotion, etc.
Processus (2)
À chaque étape, une spécification peut retourner à l'état de document de
travail

Structures de coordination
Assurer la cohérence entre les spécifications, réutilisation
- Coordination assurée par l'équipe : domaines
- Groupes de coordination : représentants des groupes de travail
- Technical Architecture
Group : traite les problèmes d'architecture
- Technical Plenary : réunion
de tous les groupes de travail
- Advisory Committee :
représentants de toutes les organisations membres
- Coordination avec les autres organisations de standardisation
Résultats
Plus de 30 Recommandations publiées depuis 1996
19 logiciels en open source,
dont
- Jigsaw - serveur Web avancé
- Amaya - éditeur hypertexte
- Validateurs : HTML, CSS, XML, Unicode
- bibliothèques : libwww, libxml
II. W3C - Travaux en cours
Domaines et Activités
Les activités du W3C sont organisées en 5 Domaines (voir Road map) :
- Architecture
- Les technologies de base du Web : XML, Protocoles XML, HTTP,
Jigsaw
- Formats de documents
- Formats et langages pour représenter les documents sur le Web : HTML,
Graphique, Math, Style, Internationalisation, Amaya
Domaines et Activités (2)
- Interaction
- Nouveaux modes d'accès et d'interaction avec le Web : Device Independence, Multimédia,
Browsers Vocaux
- Technologie et Société
- Infrastructure pour traiter les aspects sociétaux et légaux du Web :
web sémantique, méta-données, signatures numériques, privacy
- Accessibilité
- Accessibilité du Web : technologie, guides, outils, éducation
Principes architecturaux
Principes
architecturaux communs :
- interopérabilité
- évolutivité
- modularité
- passage à l'échelle
- décentralisation
- accessibilité
- internationalisation
Domaine Architecture
- XML : représentation de données structurées - Core, Schema, Linking, Query
- Protocoles XML : communication entre machines en utilisant XML
- URI (Uniform Resource
Identifiers) : adressage des ressources sur le Web
- DOM : modèle de document et API pour la manipulation de documents
Domaine Formats de Documents
- Hypertexte : XHTML, XForms
- Style - Séparation contenu/style
- CSS - Cascading Style Sheets
- XSL - Extensible Stylesheet Language
- Mathématiques : MathML -
Mathematical Markup Language
- Graphique : SVG - Scalable Vector Graphics, PNG
Domaine Interaction
Domaine Technologie et Société
- Web sémantique : RDF - Resource
Description Framework
- Privacy : P3P - Platform for Privacy Preferences
- Confiance : Signature XML et canonicalisation, cryptage pour XML
- Public Policy
Accessibilité du Web
- Revue des spécifications des autres groupes
- Guides : contenu, browsers,
outils auteur
- Développement d'outils pour évaluer et réparer les sites
- Supports pour l'éducation
- Suivi des activités de recherche sur l'accessibilité
III. W3C - Technologies de base
- XML : Schémas XML, Espaces de noms, XLink, XQuery, XPath, XSLT
- Style : CSS, XSL
- Méta-données : RDF
- Formats de documents : XHTML, MathML
XML - Extensible Markup
Language
- Un format universel pour les documents et données
structurés sur le Web
- Une version simplifiée de SGML (ISO 8879)
- Un méta-langage pour définir des langages de balisage
- Extensible
XML et les utilisateurs
- Adaptable à toutes sortes d'applications
- Directement lisible - syntaxe textuelle
- Compréhensible par les machines
- Facile à mettre en oeuvre, nombreux outils
- Complètement internationalisé
- caractères : Unicode - ISO/IEC 10646
- balises d'identification de la langue : Internet RFC 1766,
- nom des langues et des pays : ISO 639, ISO 3166
- Assure l'interopérabilité : contenu, style, comportement
XML - Remarques
- XML fournit une syntaxe, pas de sémantique
- Les balises n'ont pas de présentation ou de signification
prédéfinie
- XML ne définit que la structure et le contenu d'un document, pas son
comportement ni son traitement
XML - Exemples
<?xml version="1.0"?>
<memo xml:lang="fr">
<to>J. Smith</to>
<from>P. Brown</from>
<date>20/01/2000</date>
<body>
<p>meeting confirmed
<em>tomorrow</em> 10am
</p>
</body>
</memo>
|
<?xml version="1.0"?>
<mfrac>
<mn> 1 </mn>
<mrow>
<mn> 2 </mn>
<mo> ⁢ </mo>
<mi> n </mi>
</mrow>
</mfrac>
|
<?xml version="1.0"?>
<customer>
<name>...</name>
<order>...</order>
<order>...</order>
</customer>
|
<?xml version="1.0"?>
<par>
<video id="a" src="movie1"/>
<seq>
<audio src="audio1"/>
<audio begin="5s" src="audio2"/>
</seq>
</par>
|
Syntaxe XML - instances
XML, langage de balisage :
- Structure arborescente
- Éléments typés
- Attributs : couples nom/valeur
- Identification unique des éléments : ID
- Contenu et noms (éléments, attributs, valeurs) internationalisés
XML - Structure et contraintes
Deux langages pour contraindre les structures XML :
- Définition de Type de Document (DTD)
héritée de SGML
- Schéma XML : un formalisme plus complet et
plus rigoureux pour déclarer les contraintes structurales et les
types
DTD et Schémas ne sont pas obligatoires :
- Les structures de documents peuvent être contraintes ou non
- Les document XML doivent au moins être bien formés,
c'est-à-dire respecter la syntaxe
- Les documents XML peuvent être valides, c'est-à-dire conformes
à une DTD ou à un schéma
DTD XML - Exemple
<!ELEMENT memo (to, from, date, subject?, body) >
<!ATTLIST memo security (public | member | team) 'public'
status (draft | finished) #REQUIRED ><!ELEMENT to (#PCDATA) >
<!ELEMENT from (#PCDATA) >
<!ELEMENT date (#PCDATA) >
<!ELEMENT subject (#PCDATA) >
<!ELEMENT body (p+) >
<!ELEMENT p (#PCDATA | em)* >
<!ELEMENT em (#PCDATA) >
Schéma XML
Le traitement des documents XML demande plus que ce que peuvent offrir les
DTD
Limitations des DTD :
- Tout doit être défini
- Le contenu n'est pas contraint, seulement la structure
- La syntaxe des DTD est différente de la syntaxe de balisage
Schémas XML :
- Contraintes de structure : définitions de types, classes, sous-classes,
modèles de contenu, importation, inclusion
- Types de contenu : chaînes, booléens, binaire, uri, nombre, entier,
décimal, réel, date, heure, intervalle de temps
- Même syntaxe que le balisage
Documents composés - espaces de noms
Les espaces de noms permettent à un même document d'utiliser plusieurs
langages de balisage XML, par exemple XHTML + MathML + SVG + RDF
- Associer des éléments et attributs XML avec des URIs
- Identifier de façon unique éléments et attributs
- Des données spécifiques d'un domaine peuvent être stockées dans un
document
Espaces de noms - Exemple
<?xml version="1.0" encoding="iso-8859-1"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML">
<head>...</head>
<body>
<h1>Les données</h1>
<m:math>
<m:mfrac>...</m:mfrac>
</m:math>
<h1>Le graphe</h1>
<svg:svg width="4cm" height="8cm">
<rect x="0.5cm" y="0.5cm" width="2cm" height="1cm"/>
...
</svg:svg>
</html>
XLink - Hypertexte avancé
Fonctionnalité hypertexte au niveau de l'état de l'art (HyTime, TEI,
Dexter)
XLink - XML Linking
Language - permet d'insérer dans les documents XML de quoi décrire les
liens entre ressources Web
- Liens simple unidirectionnels à la HTML
- Liens hors document
- Liens multidirectionnels
- Comportement des liens
XLink utilise XPath pour adresser
l'intérieur des structures XML
Documents dynamiques
Permettre la manipulation de documents sur le Web
- Un ensemble d'objets standard pour représenter les documents HTML et
XML
- Un modèle standard sur la façon dont ces objets peuvent être
combinés
- Une interface standard pour accéder à ces objets et les manipuler
DOM - Document Object
Model
DOM : un modèle de document et une interface de programmation
indépendante du langage et des plates-formes pour manipuler
- la structure des documents (HTML et XML)
- le contenu des documents
- le style
- les événements
L'API est définie pour trois langages : OMG IDL, Java, ECMAscript
XQuery - Langage de requête
Un langage de requête pour XML - « le SQL de XML »
- Un modèle de données pour les documents XML
- Un ensemble d'opérateurs sur ce modèle (algèbre)
- Un langage de requête fondé sur ces opérateurs (syntaxe)
Les requêtes XQuery
- Opèrent sur un seul document ou une collection fixée
- Peuvent sélectionner des documents entiers ou des sous-arbres qui
répondent à la requête
- Peuvent construire des documents nouveaux fondés sur ce qui est
sélectionné
XPath - Langage d'expression de chemin
XPath : un langage pour adresser des parties de documents
XML
Une expression élémentaire XPath contient :
- un axe qui spécifie la relation structurale : fils, descendants,
ancêtres, frères, attributs,...
- un test qui spécifie le type de noeud
- des prédicats pour raffiner la sélection
Exemple : tous les fils de type para
qui ont un attribut
type
ayant pour valeur warning
child::para[attribute::type="warning"]
Transformation de documents
Le Web présente de multiples cas de transformation
- Formatage
- Réutilisation de document
- Adaptation aux appareils de présentation
- Conversion de format, par exemple XML —> HTML
Deux approches
- Des programmes utilisant le DOM
- Les feuilles de transformation XSLT
Transformations XSLT
XSLT - Langage de transformation
XSLT : « le Perl de XML »
Une feuille de transformation XSLT contient un ensemble de règles pattern/template
- Pattern
- Contexte structural dans l'arbre source
Expression XPath
- Template
- Un fragment du résultat à produire pour le pattern correspondant
Quand le pattern est reconnu dans
le document source, le template
correspondant est engendré dans le document résultat
XSLT - Exemple 1
<xsl:template match="Titre">
<h1>
<xsl:apply-templates/>
</h1></xsl:template>
Source :
<Titre>Introduction</Titre>
Résultat :
<h1>Introduction</h1>
XSLT - Exemple 2
<customers>
<customer>
<name> Dupont </name>
<order> aaa </order>
<order> bbb </order>
</customer>
<customer>
<name> Durand </name>
<order> 111 </order>
</customer>
</customers>
|
Dupont |
aaa |
bbb |
Durand |
111 |
|
|
XSLT - Exemple 2
<xsl:template match="/">
<html>
<head>
<title>Customers</title>
</head>
<body>
<table>
<tbody> <xsl:for-each select="customers/customer">
<tr>
<th> <xsl:apply-templates select="name"/>
</th> <xsl:for-each select="order">
<td> <xsl:apply-templates/>
</td> </xsl:for-each>
</tr> </xsl:for-each>
</tbody>
</table>
</body>
</html></xsl:template>
Feuilles de style
Séparer le style d'un document de son contenu
- Sans modifications, un même document peut être présenté de différentes
façons :
- Selon le lecteur
- Selon les caractéristiques de l'appareil de restitution
- Un ensemble de documents peuvent être présentés de façon homogène
Avantages : maintenabilité des sites Web, indépendance des
plates-formes, performances
CSS, XSL - Langages de feuille de style
- CSS - Cascading
Style Sheet
- Un langage simple pour associer des propriétés de style à des
documents structurés
Cascade: différentes feuilles de style peuvent être
combinées (auteur, site, client, utilisateur)
- XSL -Extensible Style sheet Language
- Conçu pour XML. Permet de transformer la structure du document ou des
données
Syntaxe : XML
Structures de pages complexes, tables des matières, index,
conversion de format
CSS - Principes
Une feuille de style est un ensemble de règles
comprenant chacune
Sélecteurs CSS
- Type de l'élément : h1 {color:
yellow}
- Classe de l'élément (attribut class) : .important
{font-style: italic}
- Un élément unique (ID) : #z98y
{font-family: helvetica}
- Pseudo-classe : p:first-letter
{font-size: 24pt}
- Type et classe : li.important
{background-color: yellow}
- Contexte structural : ul ul li
{font-size: small}
- etc.
Propriétés CSS2
- Polices : famille, taille, style, variantes, graisse,
étirement, etc.
- Couleur du texte, couleur de fond, image de fond
- Format : Bloc, élément flottant, élément en ligne
- Position absolue, relative, superposition
- Géométrie : Largeur, hauteur, marges, filets
- Génération de contenu, numérotation, marques de
listes
- Description des pages, contrôle des sauts de page
- Texte : indentation, alignement, décoration,
soulignement, interlettrage, etc.
- Tables : bordures, cadres, espacement, etc.
- Sortie vocale : volume, pauses, effets sonores, position de la
source, débit, hauteur du son, etc.
CSS - Exemple
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="mystyle.css" type="text/css"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
h4 {font: 17pt "Arial, Helvetica"; font-weight: bold}
h2 {font: 15pt "Courier"; color: blue}
p {font: 12pt "Arial, Helvetica"; color: black}
@import "style/default.css"; </style>
</head>
...
XSL
Mêmes propriétés de style que CSS, mais une étape de transformation en plus
XSL comprend
- Le langage de transformation XSLT, qui
utilise XPath
- Un vocabulaire XML pour spécifier la sémantique de
formatage (formatting objects
- FO)
XSL - Exemple
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
result-ns="fo">
<xsl:template match="/">
<fo:page-sequence font-family="serif">
<xsl:apply-templates/>
</fo:page-sequence> </xsl:template>
<xsl:template match="para">
<fo:block font-size="10pt" space-before="12pt"> <xsl:apply-templates/>
</fo:block> </xsl:template>
</xsl:stylesheet>
RDF - Méta-données
RDF - Resource
Description Framework
- Décrit des ressources Web, indépendamment de tout domaine
d'application
- Un modèle pour représenter des méta-données
- Un langage déclaratif qui utilise XML pour exprimer ces
méta-données
- Méta-données : assertions sur des propriétés des ressources
Web et relations entre elles
RDF - Méta-données (2)
- Des noeuds auxquels sont attachées des paires attribut-valeur
- Noeuds: ressources Web
- Attributs: propriétés des noeuds (noms)
- Valeurs: un atome, d'autres ressources Web, des méta-données
- Graphes étiquetés orientés
RDF - Exemple
XHTML
Les premières versions de HTML étaient fondées sur SGML: HTML 2.0,
HTML 3.2, HTML 4.0, HTML 4.01
XHTML 1.0 : reformulation de HTML 4.01 en XML
XHTML 1.1 : une version modularisée de XHTML
XHTML Basic : un ensemble de modules pour des clients
légers
- Profils pour des applications ou des appareils spécifiques
- Les modules peuvent être combinés avec d'autres applications XML
MathML - Mathematical Markup
Language
- Objectifs
- Intégrer proprement des expressions mathématiques dans les pages
Web
- Permettre l'échange de formules entre logiciels mathématiques
- Représenter la structure de présentation
et la structure mathématique des formules
- Caractéristiques
- Un langage écrit en XML
- Utilisable dans n'importe quel type de document XML (espaces de
nom) :
- Style compatible avec CSS
MathML - Exemple
(a + b)2
<msup> <apply>
<mrow> <power/>
<mo>(</mo> <apply>
<mi>a</mi> <plus/>
<mo>+</mo> <ci>a</ci>
<mi>b</mi> <ci>b</ci>
<mo>)</mo> </apply>
</mrow> <cn>2</cn>
<mn>2</mn> </apply>
</msup>
Pas (encore) de conclusion