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

  1. Le World Wide Web Consortium et le processus de création des spécifications
  2. Les travaux en cours au W3C
  3. 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

  1. Identification des besoins : workshops, soumissions, etc.
  2. Proposition d'activité avec un programme - commentaires des membres, candidats
  3. Création d'un ou plusieurs groupes de travail ou d'intérêt
  4. Publication des documents de travail (Working Drafts)
  5. Appel à commentaires (Last Call) - le groupe de travail pense avoir fini
  6. Recommandation candidate - appel à implémentation
  7. Recommandation proposée - revue par les membres
  8. Recommandation
  9. 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

etapes d'une specification

Structures de coordination

Assurer la cohérence entre les spécifications, réutilisation

Résultats

Plus de 30 Recommandations publiées depuis 1996

19 logiciels en open source, dont

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 :

Domaine Architecture

Domaine Formats de Documents

Domaine Interaction

Domaine Technologie et Société

Accessibilité du Web

III. W3C - Technologies de base

XML - Extensible Markup Language

XML et les utilisateurs

XML - Remarques

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> &InvisibleTimes; </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 :

XML - Structure et contraintes

Deux langages pour contraindre les structures XML :

DTD et Schémas ne sont pas obligatoires :

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 :

Schémas XML :

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

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

XLink utilise XPath pour adresser l'intérieur des structures XML

Documents dynamiques

Permettre la manipulation de documents sur le Web

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

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 »

Les requêtes XQuery

XPath - Langage d'expression de chemin

XPath : un langage pour adresser des parties de documents XML

Une expression élémentaire XPath contient :

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

Deux approches

Transformations XSLT

Source Document Transformation Engine XSLT Sheet Result Document

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

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

Propriétés CSS2

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

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

RDF - Méta-données (2)

RDF - Exemple

stack

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

MathML - Mathematical Markup Language

Objectifs
Caractéristiques

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