UP PREVIOUS NEXT TOP

10.7 Réalisation

L'architecture d'un hyperdocument se compose théoriquement de trois couches (selon les systèmes, certaines couches sont soudées): Chaque noeud peut par exemple être un paragraphe stocké dans une base de données (a). Les mots qui serviront de bouton ont été 'marqués' par l'auteur, généralement en plaçant un signe conventionnel devant et en indiquant le noeud de destination. L'interface (c) permet d'afficher un noeud dans une format donné et de présenter dans un format différent les objets activables. Enfin, le gestionnaire (b) recherche dans la base de données le noeud-destination associé à l'objet activé par l'utilisateur. Il transmet ce noeud à l'interface pour affichage. Il met à jour le 'chemin' de l'utilisateur et gère les outils d'aide à la navigation.

Certains outils tels que GUIDE(TM) ont été conçus pour la réalisation d'hyperdocuments. Ils disposent par exemple de plusieurs types de bouton aux fonctions spécifiques: saut, expansion, note, ... . Nous avons implémenté le programme Bylaskie au moyen d'Authorware par souci de cohérence à l'intérieur du cours, mais ce progiciel ne constitue pas l'outil le plus approprié pour la création d'un hyperdocument. En effet, Authorware repose sur une logique d'emboîtement: si le noeud A offre des liens vers les noeuds X1 et X2 , les icônes décrivant X1 et X2 doivent être insérées dans l'algorithme d'interaction de l'icône A. Ceci ne pose pas de problème. Mais, si un autre noeud B offre également un lien vers X2, l'icône X2 devrait également figurer dans l'algorithme d'interaction de B. On peut certes dupliquer l'icône X2, mais si l'hyperdocument comporte un réseau tant soit peu complexe de liens, cette solution devient rapidement irréaliste.

Authorware offre deux autres possibilités. La première consiste à placer ces noeuds dans une librairie. La seconde utilise la fonction 'goto (IconID, "rivières")'. Cette fonction permet de se rendre directement vers l'icône "rivières" quelle que soit sa position dans le programme. Certes, le 'GoTo' est considéré comme l'ennemi de la programmation structurée.

La structure du programme Bylaskie s'écarte du mode d'organisation habituel d'Authorware et se rapproche de l'architecture décrite ci-dessus. Le programme sépare l'information (la base de noeuds) et le contrôle (la gestion des liens). Il n'y a pas de couche 'interface' car les noeuds sont directement décrits dans la forme où ils sont présentés. La couche 'base de données' comprend l'ensemble des noeuds, mis à plat dans l'icône de décision. Chaque noeud est implémenté par une icône d'interaction présentant une information (texte et/ou graphique) et contenant plusieurs boutons ou zones sensibles. Ces noeuds sont sélectionnés par l'icône de décision en fonction de leur position (de 1 à 23). Le numéro de position du prochain noeud à sélectionner est conservé dans la variable 'NextNode'. Si au cours d'une interaction, l'utilisateur clique sur le bouton 'Rivières', l'action associée à cette réponse dans l'algorithme d'interaction n'est pas d'aller directement vers l'icône 'rivière', mais d'attribuer à NextNode la valeur 7 (qui est la position du noeud 'rivière' dans la liste des noeuds).

Le gestionnaire de liens mémorise chaque valeur de la variable NextNode dans une variable-vecteur (voir fonction 'ArraySet') afin de conserver le chemin de l'utilisateur. Si l'utilisateur demande un 'backtracking', le système recherche l'avant-dernier noeud du chemin (voir fonction ArrayGet). Le gestionnaire des liens comporte diverses aides à la navigation. Celles-ci sont disponibles à chaque noeud. Elles sont définies une fois pour toutes au début du programme comme réponses permanentes (voir module ?): les aides locales sont implémentées comme des zones sensibles permanentes, les aides globales sont des menus permanents. Le concepteur d'un programme est familier avec la notion de menu comme modalité d'interaction permanente. Un atout d'Authorware est d'avoir conçu d'autres modalités de réponses permanentes. L'ensemble de ces réponses permanentes correspond au concept de carte de fond dans Hypercard. Comme pour les liens explicites, chacune de ces aides à la navigation attribue une nouvelle valeur à la variable NextNode, laquelle sert à la sélection du prochain noeud.