Chapitre 1

Langages pour l'expression de la synchronisation spatiale et temporelle

A l'heure actuelle, il existe de nombreux outils pour la création de documents multimédia. L'objectif de ce chapitre est d'en présenter un sous-ensemble qui nous a paru pertinent, en se concentrant particulièrement sur le langage, parfois sous-jacent, de ces outils.

Ce chapitre commence par définir le terme de scénario qui, dans le monde de l'informatique, se spécifie à travers un langage. Ensuite un état de l'art de ces langages est présenté en distinguant les langages impératifs des langages déclaratifs.

[Table des matières]

1 Introduction

[Table des matières]

1.1 Le scénario

L'élaboration d'une présentation multimédia passe par une première phase de créativité : l'écriture d'un scénario. Le terme scénario est issu du domaine artistique (théatre, cinéma, etc.) et dans ce contexte, un scénario représente le canevas d'une oeuvre, regroupant une description précise des scènes, incluant le positionnement des acteurs (personnages ou objets), leurs déplacements et éventuellement leurs dialogues. L'enchaînement des scènes se concrétise par une transition, qui est parfois une simple continuité de la scène précédente. Les scénaristes définissent de tels enchaînements par le biais de scripts en langage naturel pseudo-codé. La Fig 1 illustre le concept de scénario par un extrait du script du film Terminator 2.

Scène 1 ext.city street - day 1
  Downtown L.A. NOON on a hot summer day. On an EXTREME LONG LENS the (...).
In SLOW MOTION they move (...) and like a dream it begins very slowly to
DISSOLVE TO :
Scène 2 ext. city ruins - night 2
  Same spot as the last shot (...)
ANGLE ON
Scène 3 a heap (...)
DISSOVE TO
Scène 4 (...) WE TRACK SLOWLY (...) HOLD ON THIS IMAGE as a female
VOICE speaks (...)

Fig 1. Extrait du scénario de Terminator 2

La description des scènes utilise un pseudo-code pour le mouvement des caméras (EXTREME LONG LENS, SLOW MOTION), et pour la transition (DISSOLVE TO, ANGLE ON). Pour une présentation multimédia les besoins expressifs sont similaires et nous employons aussi le terme de scénario. Plus précisement, nous identifions les besoins d'expression suivants :

Par contre, une présentation multimédia peut être interactive, alors que le film est généralement préorchestré.

[Table des matières]

1.2 Le langage

En informatique, la description d'un scénario s'effectue par l'intermédiaire d'un langage. Les objets sont caractérisés par des attributs. L'objectif est de fournir un langage suffisamment expressif afin que l'auteur puisse représenter le plus fidèlement possible son scénario.

La spécification de ce langage dépend du domaine d'application. Dans les systèmes de bases de données multimédia, ce langage se veut plus typé que celui des systèmes d'édition. En effet, un des objectifs des bases de données en général est de pouvoir accéder à un document ou à une classe de documents, tandis que l'objectif des systèmes d'édition est de créer une instance de document. Cela se traduit par un typage plus fort, sous forme de hiérarchie par exemple . Ainsi en base de données le positionnement des objets s'effectue grâce à des relations spatiales topologiques (disjoint, equal, etc.) alors que les systèmes d'édition nécessitent l'apport de relations spatiales directionnelles (à_gauche, au_dessus, etc.) et de distance. Notre travail se situe dans les systèmes d'édition multimédia.

En plus du domaine applicatif, le langage se définit par son paradigme : impératif ou déclaratif. Un langage impératif est un langage permettant de dire comment réaliser une opération, alors qu'un langage déclaratif permet de dire quoi réaliser. La frontière entre ces deux paradigmes dépend du vocabulaire du domaine qui est parfois difficile à établir. Par exemple, dans l'édition multimédia, nous avons vu qu'il était nécessaire d'avoir un mécanisme de positionnement des objets. Un langage permettant de dire que A est aligné à gauche avec B est un langage déclaratif pour ce domaine par rapport à un langage où pour obtenir cette propriété il faut calculer explicitement la position de l'un par rapport à l'autre :


A Aligné_A_Gauche B


Déclaratif
À chaque instant
  A.x = B.x

Impératif

[Table des matières]

1.3 Critères d'évaluation

L'objectif de mon stage est d'établir un modèle intégrant la spécification spatio-temporelle, c'est-à-dire rendre les objets ainsi que les relations spatiales dynamiques. Dans ce cadre, pour évaluer les langages présentés dans cet état de l'art, les points suivants sont juste introduits lorsque nous en avons besoin, mais nullement discutés : Par contre, nous porterons notre attention sur les points suivants : La suite de ce chapitre est organisée autour du mode d'expression du langage, en commençant par les langages impératifs. Nous distinguerons alors les langages structurels par rapport aux langages opérationnels. Puis, les langages déclaratifs seront décrits, en séparant les langages événementiels des langages relationnels.

[Table des matières]

2 Les langages impératifs

La première classe de langages présentée repose sur une approche structurelle, c'est-à-dire que le langage s'appuie sur la structure du document afin de pouvoir le modifier. Dans la seconde classe, les langages opérationnels reposent sur un jeu de commandes manipulant la présentation en faisant abstraction de la structure du document.

[Table des matières]

2.1 Approche structurelle

[Table des matières]

2.1.1 Un modèle objet de document

Le modèle objet de document (Document Object Model : DOM ) fournit un mécanisme pour accéder et manipuler des documents HTML et XML . Le langage de base de ces documents est un langage descriptif statique permettant de décrire des documents structurés. Grâce à DOM, les documents peuvent être créés ou modifiés dynamiquement.

DOM fournit un ensemble de classes constituant le noyau, ainsi que des classes particulières au type de document HTML et XML. La liste des principales classes du noyau avec un bref descriptif est donnée dans la Fig 2 .

Image DOMClasses.gif
Fig 2. Principales classes du noyau DOM

Un des avantages de DOM est qu'il permet à des documents intrinsèquement statiques de devenir dynamiques. Par exemple, le texte d'un lien peut changer de taille et de couleur lorsque la souris passe dessus, le contenu d'un article peut être étendu lorsque le lecteur le sélectionne, et le numéro de téléphone saisi peut être vérifié, etc.

On s'aperçoit aisément que cette solution pour rendre les documents dynamiques est difficile à maîtriser par des utilisateurs, notamment non informaticiens. Il est nécessaire d'apprendre les concepts du langage descriptif comme HTML, ainsi qu'un langage impératif implémentant l'APInote1 DOM. Un exemple d'utilisation de DOM est décrit dans la section suivante à travers un langage de script tels que VBScript ou JavaScript.

[Table des matières]

2.1.2 Une implémentation de DOM : Dynamic HTML

DHTML est une combinaison de HTML augmenté des feuilles de style (c.f. section 3.1) et d'une implémentation du modèle objet de document (DOM). La liaison est effectuée grâce à un langage de script tel que Javascript ou VBScript.

Les feuilles de style permettent de spécifier le rendu visuel d'un document, par exemple la taille des caractères, la fonte, la taille des marges, etc. Par conséquent, combinés à l'API DOM, les documents HTML deviennent véritablement dynamiques avec notamment l'introduction de la notion d'attributs spatio-temporels, c'est-à-dire des styles dépendants du temps. De plus, augmenté d'un modèle à événement , DOM apporte une véritable interactivité.

La Fig 3 montre un exemple de document DHTML « drag&drop »(glisser-lacher) illustrant la modification dynamique de l'attribut de style Position et la prise en compte des événements provenant de la souris. Dans l'en-tête, délimité par les marques <HEAD> et </HEAD>, est définie une feuille de style (iegear) selon le modèle CSS (c.f. 3.1). Ensuite, dans le corps du document HTML, le style est appliqué via la marque <DIV> avec comme attribut le nom de la feuille de style. Dans la partie script, délimitée par les marques <SCRIPT> et </SCRIPT>, la position est modifiée grâce à la méthode moveBy de l'objet iegear, lui-même accédé via l'objet document. L'objet concerné par ces actions est l'image de fond définie dans la feuille de style, ce qui fait que le corps du document est vide.


<HTML>
<HEAD>
<STYLE TYPE="text/css"> 
 
     <!-- Définition d'une feuille de style -->
 <!-- #iegear { <!-- Identificateur -->
  (...) 
  layer-background-image: url(http://www.ruleweb.com/
                            html/preview/ns_gear.jpg);
     <!-- Spécifie une image comme fond de la feuille de 
          style -->
 } -->
</STYLE> <!-- Fin feuille de style -->
</HEAD>
<BODY bgcolor="Black">
<!-- Document HTML -->
<DIV ID="iegear"> <!-- Applique le style iegear -->
  <!-- Document vide car l'image est définie dans la
       feuille de style -->
</DIV> 
<!-- Fin du document HTML -->
<!-- Script -->
<SCRIPT LANGUAGE="JavaScript1.2">
<!--
 currentX=currentY=0; <!-- Position courante de 
                           l'image -->
 <!-- grabGear : active l'événement MOUSEMOVE -->
 function grabGear(gear) {
 <!-- gear est un objet événement --> 
  currentX = gear.pageX; currentY = gear.pageY; 
  captureEvents(Event.MOUSEMOVE);         
  onmousemove = moveGear; <!-- fonction reflexe de
                        l'événement MOUSEMOVE -->
 }                    
 <!-- moveGear : déplace l'image -->
 function moveGear(gear) {
  distanceX = (gear.pageX - currentX);   
  distanceY = (gear.pageY - currentY);         
  currentX = gear.pageX; currentY = gear.pageY;  
  document.iegear.moveBy(distanceX,distanceY);
  
 }
 <!-- désactive l'événement MOUSEMOVE -->  
 function dropGear() { 
  releaseEvents(Event.MOUSEMOVE); 
 }
 <!-- Initialisation -->
 document.iegear.document.onmousedown = grabGear;
 document.iegear.document.onmouseup = dropGear;
//--> 
</SCRIPT>
</BODY>
</HTML>

Fig 3. Un glisser-lacher en Dynamic HTML
 

En conclusion, DHTML est un langage hybride, mélangeant l'aspect déclaratif pour spécifier le placement spatial et l'aspect impératif pour réaliser des animations et d'éventuelles synchronisations. Un des avantages de cette approche est qu'elle permet d'augmenter en douceur et sans cassure l'expressivité d'un langage sur lequel sont basés plusieurs millions de documents. Par contre, peu de pages utilisent cette fonctionnalité d'une part parce qu'elle est relativement complexe, et d'autre part car DHTML est très récent et souffre d'un manque de standardisationnote2.

[Table des matières]

2.2 Approche opérationnelle

Parmi les outils multimédia basés sur cette approche, nous avons retenu ToolBook , Director et Flash . ToolBook et Director utilisent tout deux un langage de script. L'édition temporelle diffère, ToolBook utilisant la métaphore du livre et Director des time-lines (axe de temps absolu). Par contre, le langage de script est fondamentalement identique, et c'est pourquoi nous n'en présentons qu'un seul : ToolBook. Nous décrirons ensuite Flash.

[Table des matières]

2.2.1 ToolBook

ToolBook est un logiciel développé par Asymétrixnote3. C'est un système de création d'applications multimédia interactives. Il est composé d'une interface utilisateur pour créer et positionner les objets du scénario, et du langage de script OpenScript.

Un document Toolbook reprend la métaphore de livre. Il se compose de une ou plusieurs pages représentant les écrans de l'application. La visualisation des pages s'effectue dans des fenêtres appelées visionneuses. Les pages contiennent des champs, des boutons, et des graphismes. Multimédia Toolbook permet d'ajouter des vidéos et des sons. Les pages et les composants qu'elles contiennent représentent les objets de ToolBook. Un objet peut être partagé par plusieurs pages en le plaçant sur un arrière-plan commun à plusieurs pages (c.f. Fig 5 ).

Image ToolBook.gif
Fig 5. L'interface utilisateur de ToolBook

Pour combler les lacunes du système d'édition, comme notamment l'impossibilité d'animer les objets, Toolbook offre la possibilité d'écrire des scripts. Ils permettent de modifier dynamiquement les attributs des objets, d'interagir avec l'utilisateur, et de naviguer à travers les pages du livre. Par exemple, le script de la Fig 6 montre comment l'objet self (objet contenant le script) peut se déplacer vers la gauche grâce à la fonction move. Lorsque l'objet atteint le bord inférieur, son déplacement change de direction.


bord = (item 2 of size of this book) - 700
posOrig = item 2 of my bounds --Emplacement 
                    --courant de l'objet
changePos = 100     --incrément de déplacement
do
move self by 0, changePos
limNouv=my bounds
if item 2 of limNouv > Bord then
changePos = -100
end if
until item 2 of limNouv <= posOrig

Fig 6. Script Toolbook

Avec ces scripts, Toolbook a un fort pouvoir d'expression. Grâce à son langage OpenScript, seule l'imagination de l'auteur limite la création d'une application multimédia ; à condition, bien évidemment, de maîtriser ce langage. De plus, la synchronisation temporelle est éparpillée à travers le code, rendant le comportement de la présentation difficile à cerner.

[Table des matières]

2.2.2 Flash de Macromédia

À la différence des autres outils présentés dans ce chapitre, Flash masque complétement le langage, fournissant un système d'édition et de présentation fortement couplé. Flash est spécialisé dans la création d'animations pour les documents du web.

Le système d'édition temporelle s'inspire de Director , c'est-à-dire qu'il repose sur une vue time-line. Pour chaque objet, il est possible de définir des « keyframes » (images clés), et d'associer entre deux « keyframes » d'un même objet un effet de style : déplacement d'un objet, changement de couleur, ou changement de forme (morphing). Sur la figure Fig 7 sont représentés deux objets animés par un déplacement. Chaque ligne de la vue time-line correspond à un objet. L'effet de style est représenté par un arc, entre deux « keyframes », étiquetté par le nom de l'effet (position, rotate, shape, etc.)

Image Flash.gif
Fig 7. Deux objets avec la vue time-line à deux instants différents

Le fait de masquer complètement le langage facilite grandement la création d'animations et par conséquent rend ce logiciel accessible à des non-informaticiens. Par contre, le champ d'expression est limité aux seules commandes fournies par une interface utilisateur. Il n'est pas possible, par exemple, de maintenir une relation spatiale pendant un intervalle de temps donné.

[Table des matières]

2.3 Synthèse

L'avantage des langages impératifs est qu'ils offrent un fort pouvoir expressif et par conséquent sont les outils privilégiés pour la création de documents multimédia. Néanmoins, seuls les auteurs avertis peuvent s'en servir pleinement. Une solution pour palier cette difficulté d'apprentissage est d'utiliser la technique de Flash, c'est-à-dire en encapsulant totalement le langage par une interface utilisateur. Mais en contre-partie, le pouvoir d'expression diminue.

Une autre approche consiste en la spécification d'un langage déclaratif qu'il est possible d'encapsuler plus aisement par une interface utilisateur. Ces langages sont présentés dans la section suivante.

[Table des matières]

3 Les langages déclaratifs

Cette section présente plusieurs langages déclaratifs en commencant par ceux dédiés au spatial. Ensuite sont décrits les langages intégrant la dimension temporelle sous forme d'événements. Enfin, l'approche relationnelle est étudiée à travers le prototype Madeus.

[Table des matières]

3.1 Les standards de la spécification spatiale

Cette section présente deux standards pour la spécification des styles de présentation, CSS et XSL.

CSS (Cascading Style Sheet : CSS ) est un langage de feuilles de style permettant aux auteurs et aux lecteurs d'associer des styles à des documents structurés tels que HTML ou XML. Un style permet de contrôler la présentation d'un document sur l'écran, sur l'imprimante ou comment les objets sonores qu'il contient sont prononcés. Par exemple, la police de caractères, la visibilité et la couleur sont des styles de présentation.

Une feuille de style en CSS est composée d'une ou plusieurs règles, constituées d'un sélecteur et d'une déclaration. Le sélecteur détermine quelles règles sont appliquées aux éléments de l'arbre. La déclaration spécifie l'effet de style à appliquer au sélecteur. Par exemple, la règle

EM { color : blue; fontsize : 16 }

associe à l'élément EM la couleur bleue et une taille de caractères de seize.

La valeur des styles est héritée par les descendants d'un noeud dans l'arbre du document. Par exemple, dans la spécification suivante :

<H1>L'en-tête <EM>est</EM> important!</H1>
si la couleur de l'élément EM n'a pas été spécifiée, alors le texte « est » hérite de la couleur de l'élément père H1. Cette spécification est illustrée par la Fig 8 .

L'en-tête est important!

Fig 8. Exemple de feuille de styles

Ce langage fait office de référence pour contrôler la présentation d'un document indépendamment de la structure. Son fort pouvoir d'expression est accompagné d'une très bonne lisibilité et d'une facilité d'apprentissage pour l'auteur. Par contre, pour le moment, seuls les documents statiques peuvent être complétés par une spécification CSS.

XSL (eXtensible Style Langage : XSL ) est un langage de feuilles de style dont l'objectif est de fournir des mécanismes permettant de créer des feuilles de style respectant la syntaxe XML, et basé sur DSSSL (Document Style Semantics and Specification Language ).

XSL en est à ses premiers balbutiements et semble potentiellement intéressant pour spécifier des feuilles de style dans des documents structurés.

[Table des matières]

3.2 Langages spatiaux et temporels à base d'événements

Les outils présentés dans cette section reposent soit sur des relations à base d'instants, soit sur des relations à base d'intervalles. Nous commençons donc par les comparer. Ensuite les langages sont décrits.

[Table des matières]

3.2.1 Intervalle versus instant

Les relations temporelles permettent de décrire la façon dont les objets multimédia doivent être combinés temporellement pour produire le scénario multimédia. Il existe deux modes de représentation des unités temporelles, les instants et les intervalles, et donc deux classes de relations temporelles. Plusieurs arguments plaident en faveur d'une spécification des documents multimédia à base d'intervalles : En revanche, la représentation à base d'instants fournit un très bon support d'exécution pour la présentation.

Dans les relations à base d'intervalles, les relations possibles entre deux objets multimédia se réduisent à toutes les combinaisons de positionnement possibles de deux intervalles sur une droite orientée. Le modèle le plus général, proposé par J.F Allen , dresse la liste exhaustive de toutes ces relations (c.f annexe A).

Dans la suite de cette étude, nous verront comment ces deux approches ont été utilisées.

[Table des matières]

3.2.2 SMIL

SMIL (Synchronized Multimédia Intégration Language : SMIL ) permet d'intégrer un ensemble d'objets indépendants dans une présentation multimédia synchronisée. Ses principales caractéristiques sont les suivantes : Pour réaliser la synchronisation temporelle, SMIL s'appuie à la fois sur un arbre d`opérateurs et sur les événements : Enfin, SMIL permet de spécifier des régions afin de positionner spatiallement les objets. La Fig 9 illustre l'ensemble de ces concepts.

<smil>

<head> // En-tête du document

<layout type="text/smil-basic">

<region id="titre" width="90%" high="5%" />

<region id="ecrivain" left="10" top="10" width="200" high="200" />

</layout>

</head>

<body> // Début de la spécification temporelle

<par>

<audio src="chezmoi/bonjour.wav" />

<seq>

<text src="text_titre.txt" region="titre" dur="10s">

<par>

<video id="v" src="ecrivain.mpg" region="ecrivain" />

<audio src="ecrivain.au" begin="id(v)(5)"/> /* Synchro fine qui

précise que le début de l'audio doit débuter 5 unités de

temps après le début de la vidéo v */

</par>

</seq>

</par>

</body>

</smil>

Fig 9. Un exemple de document SMIL

Du fait que SMIL soit un langage déclaratif, il est très facile d'écrire des scénarios multimédia nécessitant de la synchronisation. Néanmoins, la possibilité de choisir entre deux types de synchronisation (arbre d'opérateurs ou événements) est déroutante.

De plus, à l'heure actuelle, SMIL ne permet pas de définir des mises en page dynamique. Pour combler cette lacune, propose de considérer la mise en page comme un média. Par conséquent, la mise en page peut changer au cours du temps en la synchronisant avec les autres objets du document. Cette méthode est adaptée à une mise en page à gros grain mais pas à grain fin comme le nécessite les animations.

[Table des matières]

3.2.3 iMuSe

iMuSe (interactive Multimedia Scenario ) est un système pour modéliser et présenter des applications multimédia interactives. Il couvre à la fois la composition spatio-temporelle, représentant la synchronisation temporelle et spatiale, et l'interactivité à travers la notion d'événements.
Composition spatio-temporelle
La composition spatio-temporelle représente à la fois l'ordonnancement temporel et spatial. La composition temporelle, notée temp_rel, est fondée sur les relations d'Allen transformées afin de faire apparaître les dépendances causales entre les objets. Pour cela, à chaque objet multimédia sont associés des événements caractérisant le début, la fin naturelle (quand l'objet finit sa présentation), la fin forcée (quand un événement arrête explicitement la présentation), la pause et la reprise de sa présentation. Par exemple l'expression « A> 4 !B< 0 >C » signifie « A commence (noté >), puis après 4 secondes il arrête B (fin forcée notée !), et C commence ».

La composition spatiale repose sur trois classes de relations (c.f. Fig 10 et ) :

Formellement, une relation spatiale entre deux objets A et B est modélisée par un quintuplet sp_rel = (rij, vi, vj, x, y) avec rij l'identificateur des relations topologiques-directionnelles entre A et B, vi, vj désignent les bords les plus proches et x, y sont les distances horizontales et verticales entre vi, vj. Par exemple, la Fig 10 (b) se spécifie le quintuplet (R3_1, v4, v2, 8, 12).

Par conséquent, une composition spatio-temporelle est un ensemble de couples ST_R(sp_rel, temp_rel), avec sp_rel une relation spatiale et temp_rel une relation temporelle. Un couple ST_R définit un positionnement spatial et, indépendemment, une composition temporelle entre deux objets.

Image ImuSe.gif
Fig 10. Les différents types de relations : topologiques-directionnelles (à gauche) et de distance (à droite)
Composition et événements
Un événement est levé par l'occurrence d'une action et est attaché à une instance spatiale et temporelle. identifie deux classes d'événements : les événements simples et complexes.

Les événements simples sont générés par des actions atomiques. Par exemple, la souris, le clavier, le changement d'état d'un objet, l'horloge, le début de l'application et le début d'une composition spatio-temporelle sont des événements simples.

Les événements complexes sont une composition des événements simples à travers un ensemble d'opérateurs et de fonctions. En voici quelques exemples :

Un des avantages de ce modèle est qu'il uniformise la représentation de la composition spatio-temporelle et de la gestion des interactions. L'ensemble est vu comme une succession d'actions et d'événements. Néanmoins, l'expression des relations d'Allen sous la forme événementielle ne saisit par entièrement la sémantique de celles-ci. En effet, la relation ends de iMuSe correspondant au finished en Allen, considère que la fin de l'objet A force la terminaison de l'objet B. Or la sémantique définie dans correspond à une terminaison simultanée. Dans le cas de deux vidéos, par exemple, leur début de présentation est calculé de telle façon qu'elles se terminent en même temps.

Pour finir, ce modèle ne permet pas de spécifier des animations sur les objets (déplacement, changement de couleur, etc.) et, de plus, les relations spatiales sont fixes. Les dimensions temporelles et spatiales sont considérées comme indépendantes : la composition spatiale s'effectue sans se préoccuper de la composition temporelle et réciproquement.

[Table des matières]

3.2.4 SSTS

SSTS (Synchronisation Spécification method for Temporal and Spatial events ) est une méthode permettant de spécifier une synchronisation des événements spatiaux et temporels.

Les événements sont représentés par des noeuds et leurs relations temporelles par des arcs. Les événements temporelles sont déclenchés par le début ou la fin de la présentation d'un objet, tandis que les événements spatiaux sont, par exemple, déclenchés par le début et la fin d'un déplacement. Les événements spatiaux sont caractérisés par les fonctions suivantes :

Les noeuds sont activés de deux façons, en fonction de leur type. Les noeuds ET sont complètement activés seulement lorsque tous les arcs entrant sont activés, tandis que les noeuds OU requièrent seulement qu'un arc entrant soit activé.

Dans la Fig 11 , les objets vidéoA et le sonA commencent leur présentation en même temps. La fin de sonA déclenche le début de l'événement spatial spécifié par RelativePath(). Lorsque l'objet vidéoA a terminé sont mouvement et après un temps d2, il déclenche la présentation de l'objet sonB.

Image SSTS.gif
Fig 11. Un exemple d'une spécification de synchronisation des événements temporels et spatiaux

Ce modèle de spécification est suffisamment puissant pour permettre de créer des animations grâce aux fonctions attachées aux noeuds spatiaux. De plus, il est possible de synchroniser les événements spatiaux. Enfin, l'ensemble de la spécification temporelle et spatiale est uniformisé sous la seule notion d'événements.

Néanmoins, ce modèle permet d'introduire des incohérences. De plus, l'environnement d'édition proposé souffre d'un problème de facteur d'échelle : plus le scénario devient complexe et moins la spécification devient lisible, et plus, la représentation ne reflète pas la dimension temporelle. En effet, les événements spatiaux peuvent avoir des durées différentes mais sont toujours représentés par un cercle de taille fixe. Enfin, les événements spatiaux ne sont que de simples raccourcis des événements temporels. En effet, chaque fonction prend en paramètre la variable time. Chaque noeud spatial peut donc être remplacé par deux noeuds temporels entre lesquels un fonction spatiale est appliquée. Par conséquent, les événements spatiaux n'apportent rien de nouveau au niveau de la synchronisation.

[Table des matières]

3.2.5 Menkalinan

Menkalinan est fondé sur le principe de stratification. Une strate est une unité sémantique à l'intérieur d'une scène filmique. En termes de documents multimédia, les strates sont des objets de base structurés en un arbre à travers des opérateurs fonctionnels.

Les objets multimédia de base sont des entités élémentaires du modèle, et sont considérés comme des intervalles de temps. La composition de ces objets par le biais des opérateurs constitue un objet composite qui est aussi un intervalle.

Les opérateurs sont classés en opérateurs temporels, et non temporels. Les opérateurs temporels exprime les relations d'Allen en explicitant les liens causaux entre les intervalles. Contrairement aux modèles vus dans les sections précédentes, toutes les possibilités de liens causaux sont exploitées. Voici un ensemble non exhaustif de ces opérateurs :

Enfin, les opérateurs non temporels sont les suivants : Un des avantages de Menkalinan est qu'il capture toute la sémantique des relations d'Allen dans un modèle à événement, à condition d'offrir une composition de ceux-ci. Par conséquent, le langage temporel peut facilement être étendu par les opérateurs de boucle et d'alternative.

Par contre, la construction d'un arbre d'opérateurs n'est pas facile, et se prête difficilement à l'incrémentalité du scénario. De plus, le choix d'implémenter la construction de l'arbre comme une API rend Menkalinan difficile d'accès pour des non-informaticiens et le scénario temporel est illisible.

[Table des matières]

3.3 Madeus

Ce section présente le prototype Madeus , en précisant plus en détails la syntaxe par rapport aux langages précédemment étudiés puisque c'est l'environnement que nous avons utilisé pour notre expérimentation. Madeus est un système d'édition et de présentation de documents multimédia. Il est fondé sur les relations temporelles d'Allen, dont une partie a été adapté au placement spatial. Les documents Madeus sont organisés autour de quatre dimensions, que nous présentons à travers un exemple complet dont le scénario est le suivant :

Nous souhaitons construire un document multimédia Inria-Opéra qui présente les activités de recherche du projet Opéra. Le document comporte une introduction composée d'un élément texte Titre-Présentation, d'un élément sonore Musique et de deux scènes Intro-Inria et Activité-Opéra. La scène Intro-Inria contient une vidéo (Vidéo1) qui présente le projet au sein de l'unité de recherche Inria Rhône-Alpes et un commentaire sonore (Audio1). La scène Activité-Opéra est composée de deux sous-scènes : Protos-de-Recherche qui contient trois éléments textuels (Thot, Alliance et Madeus) et Présentation-Opéra qui contient un élément audio (Audio2) ainsi qu'une vidéo (Vidéo2). Les trois textes précédents contiennent des liens externes vers d'autres documents. Trois éléments d'interaction, contenus dans l'introduction, permettent de naviguer dans le document : Bouton1 permet de revenir au début du document, Bouton2 permet d'interrompre la scène Intro-Inria et Bouton3 permet d'accéder directement à la partie Présentation-Opéra.

[Table des matières]

3.3.1 Organisation logique

L'organisation logique d'un document Madeus est décrite sous forme d'une hiérarchie de composants, les feuilles étant les éléments de base (texte, image, vidéo, son) du document. L'organisation logique de l'exemple Inria-Opéra est présentée dans la Fig 12 .
Image inria_opera_exemple.gif
Fig 12. Structure logique du document Inria-Opéra

[Table des matières]

3.3.2 Organisation hypermédia

Dans les documents Madeus, il est possible de définir des liens de navigation en spécifiant de façon classique une ancre de départ, une ancre d'arrivée (intra ou extra document) et le type du lien (renvoi, référence, annotation, etc.). La désignation d'un lien inter-documents s'effectue par la notion d'URL (Uniform Resource Locator) utilisée par le World Wide Web. La différence majeure par rapport aux systèmes hypertexte classiques réside dans la nature temporelle des documents. L'activation d'un lien peut ainsi provoquer soit l'interruption des activités en cours (avec ou sans retour), soit une inclusion d'une portion de scénario qui s'ajoute au scénario courant .

Dans l'exemple Inria-Opéra les trois éléments Thot, Alliance et Madeus sont des liens vers des documents externes désignés par leur URL.

[Table des matières]

3.3.3 Organisation spatiale

Cette dimension permet de décrire la disposition souhaitée des éléments du document sur l'écran. La disposition du document Inria-Opéra est montrée dans la Fig 13 . La configuration de l'écran sur cette figure correspond à l'instant marqué t sur le schéma du scénario Fig 16 .
Image inria_opera_dump.gif
Fig 13. Présentation graphique du document Inria-Opéra

La spécification du placement spatial dans Madeus s'effectue par l'intermédiaire de l'attribut de positionnement <POS> (Fig 14 ) qui définit la position spatiale absolue d'un élément de base. Les valeurs de cet attribut correspondent aux coordonnées en pixels du coin supérieur gauche de l'élément de base. Si cet attribut n'est pas spécifié, alors l'objet est positionné par défaut avec les coordonnées (0, 0).

<OBJECT> 
     <NAME> Vidéo1 
     <PCDATA> inria_opera.mpeg1
     <POS> 78 24
     <DUR> 1.00  3.00 
<EOBJECT>
Fig 14. Exemple de l'attribut de positionnement

Le placement spatial peut s'effectuer aussi par des relations spatiales (c.f annexe A) pour spécifier le placement relatif entre les objets. Elles sont délimitées par les balises <SPREL> et <ESPREL> et sont de la forme ObjetDeRéférence Relation ObjetSecondaire.

   <SPREL>
        Bouton1 Alignement_à_Gauche Vidéo1
        Bouton1 Alignement_Inférieur Video1
        Image2 Centrage_Vertical Text2
        Image1 Décalage_Supérieur(10) Text1
   <ESPREL>
Fig 15. Exemple de relations spatiales

[Table des matières]

3.3.4 Organisation temporelle

La présentation d'un document multimédia est orchestrée par son scénario temporel. Un soin particulier est donc apporté dans Madeus pour offrir à l'auteur les moyens de construire des scénarios complexes en utilisant des opérateurs temporels « intuitifs ». De plus, Madeus vérifie que le scénario ne contient pas d'incohérences temporelles susceptibles de rendre impossible sa présentation.

Le scénario temporel souhaité dans l'exemple Inria-Opéra est schématisé Fig 16 . Ainsi, l'introduction d'Opéra est orchestrée comme suit. Le document consiste en la présentation du Titre en même temps que de la Musique. Cinq secondes après le début de la Musique, la scène Intro-Inria commence. Celle-ci présente en même temps la vidéo Vidéo1 et l'audio Audio1, et peut être interrompue à tout moment par le bouton Bouton2. La terminaison de Intro-Inria rend ce bouton inactif.

Image inria_opera_timeline.gif
Fig 16. Exemple de scénario temporel du document Inria-Opéra

L'approche choisie pour la description du scénario temporel dans Madeus est une approche déclarative basée sur les contraintes d'intervalles d'Allen. L'idée sous-jacente à cette approche est que l'auteur spécifie ce qu'il souhaite obtenir comme placement temporel (A avant B, etc.) sans avoir à spécifier toutes les informations temporelles attachées aux éléments, comme leurs instants de début et de fin ou leur durée. Le scénario temporel d'un document est donc défini par un ensemble de relations entre les éléments d'un même élément composite.

En plus de ces relations, Madeus utilise deux opérateurs supplémentaires, parmin et parmaster, pour spécifier des relations de causalité entre les intervalles (c.f. et annexe A). Dans ces relations, deux intervalles commencent en même temps, A parmin B spécifie que le plus court interrompt le plus long, A parmaster B spécifie que la fin de A, désigné comme le maître de la relation, provoque la fin de B si et seulement si B n'est pas encore terminé.

[Table des matières]

3.3.5 Synthèse sur l'environnement Madeus

L'utilisation des relations d'Allen et les relations de causalité permet aux auteurs de construire des documents complexes en offrant des opérateurs temporels « intuitifs ». De plus, cette approche permet de tenir compte de la flexibilité des objets, c'est-à-dire de leur capacité à être présentés avec des durées variables. En contrepartie, l'auteur peut spécifier des documents incohérents et donc il est nécessaire de mettre en oeuvre des mécanismes, qui sont présents dans Madeus, pour vérifier et maintenir cette cohérence.

[Table des matières]

4 Conclusion

Dans ce chapitre, nous avons décrit deux classes de langages, l'une regroupant les langages impératifs, et l'autre les langages déclaratifs. La synthèse que nous faisons sur cet état de l'art est la suivante : Concernant ce dernier point, nous pouvons noter aussi que la définition des termes relatifs à la notion de spatio-temporel dans la littérature n'est pas suffisamment précise. En effet, pour , la composition spatio-temporelle est en faite une composition temporelle à laquelle est ajoutée de façon indépendante la composition spatiale. Les effets de style dans et sont relatifs à un seul objet. Enfin, dans est définie la notion de synchronisation basée sur les événements spatiaux, ce qui illustre un seul aspect de la relation spatio-temporelle.

Le chapitre suivant tente de clarifier le vocabulaire et propose un modèle pour ensuite spécifier l'expression spatio-temporelle des documents multimédia.

Notes :

(1)

Application Programming Interface
(2)

A l'heure actuelle, la spécification de DHTML diffère légèrement en fonction des butineurs du marché qui ralentit son expansion
(3)

http://www.asymetrix.com