Voice Xml Eléments de syntaxe

Dimension: px
Commencer à balayer dès la page:

Download "Voice Xml Eléments de syntaxe"

Transcription

1 SOMMAIRE I- PRINCIPALES NOTIONS...4 I-1. APPLICATION VOICEXML...4 I-2. DIALOGUE ET SOUS-DIALOGUES...5 I-3. GRAMMAIRES...5 I-4. EVENEMENTS...6 I-5. LIENS...6 II- STRUCTURE D UN DOCUMENT VXML...6 Voice Xml Eléments de syntaxe II-1. VERSION XML : <XML>...6 II-2. DOCUMENT VOICEXML : <VXML>...7 II.3- COMPOSITION D UNE APPLICATION VOICEXML...8 II.3.1 FORMULAIRE : <FORM>...8 II.3.2 ALGORITHME D INTERPRETATION DES FORMULAIRES...9 II.3.3 SOUS-DIALOGUE : <SUBDIALOG>...9 II.4- ELEMENTS COMPOSANT UN DIALOGUE OU UN SOUS-DIALOGUE...11 II.4.1. ELEMENT DE TYPE BLOC : <BLOCK>...11 II.4.2. FICHIERS SONORES : <AUDIO>...12 II.4.3. QUESTION SYSTEME OU PROMPT : <PROMPT>...12 II.4.4. CHAMP ET VALEUR ASSOCIEE : <FIELD> <FILLED> <VALUE>...13 II DEFINIR UN CHAMP DANS UN FORMULAIRE : <FIELD>...13 II QUE FAIRE UNE FOIS LE CHAMP REMPLI : <FILLED>...14 II COMMUNIQUER L INFORMATION A L UTILISATEUR : <VALUE>...15 II.4.5. ELEMENT POUR L INITIATIVE MIXTE : <INITIAL>...15 II.4.6. ELEMENT DE TYPE LIEN : <LINK>...17 III. GESTION DES ERREURS...17 III.1. REPETER LE MEME PROMPT : <REPROMPT>...17 III.2. RELANCER L UTILISATEUR APRES UN SILENCE : <NOINPUT>...18 III.3. RELANCER APRES UNE REPONSE NON ADEQUATE : <NOMATCH>...18 III.4. FOURNIR DE L AIDE A L UTILISATEUR : <HELP>...19 III.5. DECLENCHER UN EVENEMENT : <THROW>...19 III.6. INTERCEPTER UN EVENEMENT : <CATCH>...20 III.7. RECUPERATION DES ERREURS D EXECUTION : <ERROR>...20 IV- SPECIFICATION D UNE GRAMMAIRE...21 Dialogue oral Homme-Machine Isabelle Ferrané version IV.1- RAPPEL : GRAMMAIRE HORS CONTEXTE (CONTEXT FREE GRAMMAR)...21 IV.2- DEFINITION XML D UNE GRAMMAIRE HORS CONTEXTE (CFG)...22 IV.2.1. ELEMENTS TERMINAUX : <TOKEN>...22 IV.2.2. ELEMENTS NON TERMINAUX ET REGLES : <RULE> ET <RULEREF>...23 IV.3. DEFINITION D UNE GRAMMAIRE...28 IV.3.1. GRAMMAIRE INTERNE A UN DOCUMENT...28 IV.3.2. GRAMMAIRE EXTERNE...29 IV.3.3. EXEMPLES DE GRAMMAIRE OU CLASSE DE MOTS...29 V- OBJETS PREDEFINIS...32 VoiceXml Dialogue oral Homme-Machine 2 Isabelle Ferrané

2 V.1. LE TYPE DATE...32 V.1.1. FORMAT INTERNE :...32 V.1.2. UN OBJET DE TYPE DATE...32 VI- CONTENU EXECUTABLE...32 VI.1. VARIABLE...33 VI.1.1. DÉCLARATION D UNE VARIABLE : <VAR>...33 VI.1.2. AFFECTATION D UNE VALEUR A UNE VARAIBLE : <ASSIGN>...33 VI.1.3. RAZ D UNE LISTE DE VARIABLES : <CLEAR>...33 VI.1.4. PROMPTS : <PROMPT>...34 VI.2. INSTRUCTIONS...34 VII- BIBLIOGRAPHIE...35 Le langage VoiceXML est un langage à balises qui permet de développer et de déployer des applications principalement téléphoniques utilisant la parole non seulement en sortie, comme réponse du système, mais également en entrée (voice-enabled applications). L objectif est d interagir l utilisateur final (end user) pour la réalisation d une tâche précise. Cela nécessite l intégration de composante permettant la reconnaissance de la parole, le traitement du langage naturel, et la synthèse de la parole (Text To Speech). Ce document a pour vocation de rassembler les principaux éléments de syntaxe nécessaires à la constitution d applications VoiceXML. Les documents cités dans la partie Bibliographie ( VII) doivent être consultés en complément. I- Principales notions I-1. Application VoiceXML Une application est constituée d un ou plusieurs documents VoiceXML (fichier.vxml). Dans le second cas, il y a forcément un document «racine» de l application, les autres sont des documents «feuilles». L ensemble constitue une machine à états finis (modèle de gestion de dialogue de type automate). Les états correspondent aux différentes étapes du dialogue (voir I.2 pour la définition de ce qu est un dialogue VoiceXML) et les transitions se font d un dialogue à l autre par le biais d URI, le dialogue source faisant référence au dialogue destination. L exécution dans un document débute implicitement par le premier dialogue qui y est défini. Au fur et à mesure de l'exécution, chaque dialogue détermine le suivant (transitions). Lorsqu'il n y a plus de dialogue suivant, l'exécution du document se termine. L éxécution d une application commence par le chargement du document «racine» par l interpréteur VoiceXML. Le document «racine» reste chargé tant que l on effectue des transitions entre dialogues de l application (dans un même document ou d un document à l autre). Les variables et les grammaires définies dans le document «racine» sont visibles dans les autres documents de l application. Pour plus de détail se référer aux spécifications VoiceXML [1] et [2]. Dans le cadre des TP nous utiliserons l interpréteur d OptimTalk dans sa version basique que l on peut trouver à l adresse suivante : Ceci donne accès à : Un interpréteur VoiceXML : pour l interprétation de documents VoiceXML en utilisant la reconnaissance de la parole, la synthèse vocale, ou des entrées sorties textuelles. VoiceXml Dialogue oral Homme-Machine 3 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 4 Isabelle Ferrané

3 Un interpréteur CCXML : pour l interprétation de documents CCXML documents en utilisant du matériel de téléphonie ou en simulant ce matériel. Un outil de test pour la mise au point des grammaires incluant une représentation sémantique. L outil proposé par OptimTalk peut être configuré facilement en fonction des besoins : la reconnaissance et la synthèse de la parole sont par défaut remplacées par des entrées-sorties textuelles pour faciliter les tests. La sélection du système de reconnaissance et de synthèse vocale nécessite de modifier le fichier de configuration associé. Autres solutions : OpenVXI, Attention : Toutes les spécifications VoiceXML ne sont pas forcément implémentées dans ces outils, d où un possible décallage entre ce que l on devrait pouvoir faire et ce que l on peut réellement faire. I-2. Dialogue et sous-dialogues Dans les spécifications VoiceXML [1] les notions de dialogue et de sous-dialogues ont une définition précise. Un dialogue VoiceXML correspond: - soit à une suite d échanges entre le système et l utilisateur dans le but de recueillir un ensemble d informations représentées par des champs (<field>). On décrira alors cela par le biais d un formulaire (<form>). Une application peut être constituée de l enchaînement de plusieurs dialogues. - soit à un menu présentant différents choix à l utilisateur. Le choix effectué alors par celui-ci provoque la transition vers un autre dialogue. Un sous-dialogue VoiceXML (<subdialog>) est vu comme un appel de fonction qui permet d invoquer une nouvelle interaction l utilisateur (en faisant référence à un autre formulaire) et de retourner ensuite au point d appel. Ceci permet de rendre une application modulaire, de réutiliser certains dialogues et de réaliser des sous-tâches spécifiques (vérifier l identité d un abonné, clarifier une information, négocier un changement, ). I-3. Grammaires Il existe deux types de grammaires. Celles qui analysent les énoncés de l utilisateur reconnus par le système de reconnaissance automatique de la parole (speech grammars) et celles qui décodent l activation des touches du téléphone (Dual-Tone Multi- Frequency = DTMF grammars ). Les grammaires sont actives ou pas suivant le type d interaction défini pour l application. - Si l application est dirigée par la machine (le système à l initiative du dialogue), seules les grammaires associées au dialogue VoiceXML courant sont actives. - Si l application autorise les initiatives mixtes (l utilisateur peut prendre l initiative) certains dialogues VoiceXML doivent rendre leurs grammaires actives même si le dialogue en cours est ailleurs dans le document, voire dans un autre document de l application. I-4. Evénements Les applications VoiceXML sont du type grille à remplir (form-filling). Cependant il se peut que d autres événements se produisent : pas de sortie du système de reconnaissance, pas d information pertinente extraite, délai trop long, VoiceXML permet de définir à tout niveau de l application, un comportement spécifique que le système adoptera lorsque ces événements surviendront (event handler pour la gestion des événements : <noinput>, <nomatch>, <help>, <error>). I-5. Liens Grâce aux liens on peut développer des applications à initiative mixte. Le contrôle du dialogue peut être transféré au formulaire dont l URI est spécifiée dans le lien. Un lien permet également de déclencher un événement (<link>, <throw>). II- Structure d un document Vxml II-1. Version Xml : <xml> VoiceXML est un sous-langage de XML. La première chose à faire est d indiquer la version XML et le codage de caractères utilisé. UTF-8 pour un codage anglo-saxon et iso pour un codage accentué (mais apparemment non disponible dans la version d OptimTalk utilisée). <?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="iso "?> Ce langage permet de décrire le déroulement d une application indépendamment des ressources de la plateforme. Il permet de séparer ce qui relève de l interaction (interprétation, gestion de dialogue, génération de réponse) et ce qui relève des traitements réalisés par un serveur (gestion de bases de données, calculs importants, ). VoiceXml Dialogue oral Homme-Machine 5 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 6 Isabelle Ferrané

4 II-2. Document VoiceXML : <vxml> Un document VoiceXML est stocké dans un fichier.vxml. Il est traité par un interpréteur VoiceXML. La balise <vxml> indique qu il s agit d un document VoiceXML. Il faut indiquer la version. Ce document est basé sur la version 2.0 dont on trouve la spécification complète en [1] et sa traduction en français en [2]. Une version 3.0 est en cours d élaboration. En plus de l attribut version, d autres attributs peuvent être spécifiés. La définition générale des éléments qui font partie du langage VoiceXML est donnée par la DTD [3], dont certains extraits sont repris dans les différents tableaux ci-dessous. et exemple <!ELEMENT vxml (%event.handler; form link menu meta metadata property script var)+> <!ATTLIST vxml application %uri; #IMPLIED xml:base %uri; #IMPLIED xml:lang NMTOKEN #IMPLIED xmlns CDATA #FIXED ' xmlns:xsi CDATA #IMPLIED xsi:schemalocation CDATA #IMPLIED version CDATA #REQUIRED > <vxml xmlns=" xmlns:xsi= " xsi:schemalocation= " version="2.0"> <!-- contenu du document --> </vxml> application L'adresse URI du document «racine» de l application. xml:base L'adresse URI de base du document, adresse que tous les appels relatifs dans le document prennent comme adresse de base. xml:lang langue du document utilisée par les grammaires et les sorties audio xmlns Espace de noms désigné pour le langage VoiceXML (obligatoire). version Version utilisée pour le langage VoiceXML Un document VoiceXML est composé d une hiérarchie d éléments. Les éléments de plus haut niveau sont les dialogues VoiceXML (ou formulaires). Un même document peut comporter plusieurs formulaires. Au même niveau, on peut également trouver des éléments correspondant à des métadonnées (<meta>), des déclarations de variables (<var>), des scripts (<script>), des propriétés, des éléments permettant la gestion d événements ou event handlers (<nomatch>, <noinput>, <help>, ) et des liens (<link>). II.3- Composition d une application VoiceXml II.3.1 Formulaire : <form> Elément de base d un document, un formulaire correspond à la notion de dialogue VoiceXML c est-à-dire à la description d un comportement interactif système/utilisateur qui vise à obtenir un ensemble d informations précises ou champs (<field>). Ainsi la suite d échanges entre l utilisateur et le système permettra de «remplir la grille» (ou ensemble de champs) associée au dialogue. L identifiant permet de faire référence au formulaire soit dans le même document vxml, soit dans un autre. <!ELEMENT form (%input; %event.handler; filled initial object link property record script subdialog transfer %variable;)*> <!ATTLIST form id ID #IMPLIED scope %scope; "dialog" > <!ENTITY % input "grammar"> <!ENTITY % event.handler "catch help noinput nomatch error"> <!ENTITY % variable "block field var"> <form> <!-- contenu d un formulaire anonyme --> </form> <form id = "nom_formulaire" scope="portée" > <!-- contenu d un formulaire nommé --> </form> id Identifiant du formulaire scope Portée associée = "dialog" limité au formulaire courant = "document" étendue à tout le document <form> <block> Bonjour et bienvenue </block> <!-- contenu --> <block> Au revoir et merci </block> </form> Un formulaire est traité par l intermédiaire d un algorithme d interprétation (appelé FIA = Form Interpretation Algorithm). VoiceXml Dialogue oral Homme-Machine 7 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 8 Isabelle Ferrané

5 II.3.2 Algorithme d interprétation des formulaires Boucle principale : Phase de sélection : Sélectionner le prochain élément du formulaire non encore rempli. Le premier non encore rempli dans l ordre du document Phase de collecte : Produire les prompts correspondants (<prompt>) Activer les grammaires appropriées (<grammar>) Attendre la réponse et extraire les informations (un ou plusieurs champs peuvent être remplis <field> ) ou déclencher le bon événement pour la gestion d erreur (aucun champ n a été rempli, <nomatch>, ) Phase de traitement : Exécuter les séquences correspondant : - aux éléments nouvellement remplis (<filled>) même s ils sont dans un autre formulaire ou un autre document, - ou bien aux événements déclenchés. Condition d arrêt : - il n y a plus d élément à sélectionner (sortie implicite =exit) - le contrôle passe (<goto>) à un autre dialogue (<form>) ou un autre document vxml ou bien soit la requête est soumise au serveur (<submit>). II.3.3 Sous-dialogue : <subdialog> Pour des raisons de structuration ou de réutilisabilité, une application complexe peut être décomposée en sous-tâches donnant lieu chacune à un sous-dialogue approprié. L appel à un sous-dialogue (<subdialog>) peut être accompagné de paramètres (<param>). De son coté le formulaire associé doit définir autant de variables (<var>) que de paramètres à recevoir, le lien se faisant sur la base du nom (nom_paramètre = nom_variable). Un sous-dialogue peut renvoyer des valeurs au dialogue appelant (<return>). Ces valeurs sont alors désignées par le nom du sous-dialogue suivi du nom de la variable contenant la valeur (notation pointée). <!ELEMENT subdialog (%audio; %event.handler; filled param prompt property)*> <!ATTLIST subdialog %item.attrs; src %uri; #IMPLIED srcexpr %expression; #IMPLIED %cache.attrs; fetchaudio %uri; #IMPLIED %submit.attrs; > <!ENTITY % item.attrs "name %restrictedvariable.name; #IMPLIED cond %expression; #IMPLIED expr %expression; #IMPLIED "> <!ENTITY % uri "CDATA"> <! appel à un sous-dialogue et spécification des paramètres et de leurs valeurs --> <subdialog name = "nom_sous_dialogue" src= "#nom_formulaire" > <param name ="nom_parametre1" expr= "valeur parametre1" /> <param name ="nom_parametre2" expr= "valeur parametre2" /> </subdialog> <!--définition d un sous-dialogue--> <form id= "nom_formulaire"> <var name = "variable locale"/> <var name = "nom parametre transmis"/> <! contenu sous-dialogue idem formulaire --> <return namelist = "liste variables à renvoyer"/> </form> <!-- accès à la valeur renvoyée par le sous-dialogue --> <prompt> la valeur récupérée est <value expr= "nom_sous_dialogue.nom_variable"/> </prompt> name Identifiant du sous-dialogue cond Condition supplémentaire d activation expr Valeur initiale de la variable associée undefined par défaut. Si une valeur est donnée alors le formulaire ne sera execute que si la variable associée est efface (clear) src Nom du formulaire où est défini le sous-dialogue = "#nom_formulaire" sous-dialogue interne au fichier courant = "Nom_fichier.vxml" sous-dialogue externe = "Nom_fichier.vxml#nom_formulaire" si le fichier contient plusieurs sous-dialogue il est nécessaire de spécifier le nom <subdialog name=confirm_id src=#confirmer_info> <param name="id_user" expr ="num_abonne"/> </subdialog> <!-- exemple a valider --> <block cond= confirm_id.res== True > Numero confirme </block> <!-- voir norme voicexml pour autres exemples --> VoiceXml Dialogue oral Homme-Machine 9 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 10 Isabelle Ferrané

6 II.4- Elements composant un dialogue ou un sous-dialogue II.4.1. Element de type Bloc : <block> Un bloc correspond à une partie de formulaire dont le contenu est exécutable (voir VI) et dans laquelle il n y a pas d interaction l utilisateur. Si aucune condition n est spécifiée, il sera systématiquement exécuté, sinon l exécution dépendra de la valeur de vérité de la condition (évaluée à Vrai). Les conditions sont spécifiées à l aide du langage ECMAScript [3]. <!ELEMENT block (%executable.content;)*> <!ATTLIST block %item.attrs; > <!ENTITY % executable.content "%audio; assign clear disconnect exit goto if log prompt reprompt return script submit throw var "> <!ENTITY % item.attrs "name %restrictedvariable.name; #IMPLIED cond %expression; #IMPLIED expr %expression; #IMPLIED " > <block name="nom_bloc" cond="condition_à_verifier" expr="valeur_initiale_associée" > <!-- contenu du bloc --> Texte à synthétiser par le système TTS </block> name Identifiant du bloc cond Permet l exécution conditionnelle du bloc expr Permet de donner une valeur initiale <!-- bloc exécuté sans condition --> <block name="conseil" > Merci de lire attentivement ce document </block> Un bloc permet de diffuser un message ne nécessitant pas de réponse de la part de l utilisateur (exemple : message de bienvenue ou clôture du dialogue). C est le système de synthèse vocale Text To Speech (TTS) qui synthétise le message écrit. Il est également possible de faire «jouer» des fichiers sonores enregistrés (<audio>). La qualité de la synthèse TTS peut-être améliorée en introduisant des pauses, en mettant en emphase une partie du texte, en influant sur la prosodie, Ceci peut être fait par le biais de balises qui ne seront pas détaillées ici. Voir spécifications VoiceXML [1]. II.4.2. Fichiers sonores : <audio> Il s agit d une balise vide, c est-à-dire n ayant que des attributs mais pas de contenu. Le fichier source qui doit être joué doit être mentionné. <!ELEMENT audio (%allowed-within-sentence; %structure; desc)*> <!ATTLIST audio src %uri; #IMPLIED expr %expression; #IMPLIED %cache.attrs; > <audio scr="uri_fichier_son" /> src Uri ou chemin d accès au fichier son <audio src="message_bienvenue.wav" /> II.4.3. Question système ou Prompt : <prompt> Lorsque le système doit s adresser à l utilisateur (par synthèse vocale TTS ou fichier audio) on utilise la balise <prompt>. Lorsque le prompt est à l intérieur d une balise <field> le système attend la réponse de l utilisateur. Pour les autres utilisations voir VI-1.4. <!ELEMENT prompt (%allowed-within-sentence; %structure; lexicon metadata meta )*> <!ATTLIST prompt bargein %boolean; #IMPLIED bargeintype %bargeintype; #IMPLIED cond %expression; #IMPLIED count %integer; #IMPLIED xml:lang NMTOKEN #IMPLIED timeout %duration; #IMPLIED xml:base %uri; #IMPLIED version CDATA #FIXED "1.0" > <prompt bargin="activé_ou_pas" cond="condition" count="numero interaction" timeout="duree" > Question pour l utilisateur </prompt> bargein Spécifie si le système peut être interrompu ou pas par l utilisateur avant que le message ne soit complètement diffusé. = "false" pas d interruption (par défaut) = "true" interruption autorisée bargeintype cond Permet l exécution conditionnelle du bloc count = "N" comptabilise les interactions la machine timeout = "NBs" ou "NBms" ou NB indique le nombre de secondes (s) ou de millisecondes(ms) qu il faut attendre avant d activer l événement <noinput> <prompt bargin= true > VoiceXml Dialogue oral Homme-Machine 11 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 12 Isabelle Ferrané

7 Ceci est un message interruptible </prompt> <!-- Premier message attente de la réponse 5 secondes--> <prompt count ="1" timeout = "5s"> Pouvez-vous me donner l heure? </prompt> <!-- deuxième message délai par défaut--> <prompt count ="2" > Est-ce que vous auriez l heure s il vous plait? </prompt> <!-- la balise prompt peut-être omise quand on sait qu il n y a pas ambiguïté et qu il n y a pas d attributs --> Auriez-vous l heure? II.4.4. Champ et Valeur associée : <field> <filled> <value> L objectif étant la réalisation d applications vocales interactives, utilisant la parole aussi bien en entrée qu en sortie, il est nécessaire de pourvoir reconnaître ce que dit l utilisateur et l interpréter. Ces applications étant également des applications téléphoniques, il est possible de communiquer également le système par le biais des touches téléphoniques (touches DTMF). <!-- que demander et que faire de la réponse --> </field> name Nom du champ type types prédéfinis: "boolean", "date", "digits", "currency", "number", "phone", "time" (pas sous OptimTalk) slot Permet de spécifier le nom du slot (ou propriété) qui a pu être rempli par la grammaire active au niveau du formulaire et qui est à associé à ce champ. Par exemple si une balise <initial> a été activée et que des données ont pu être extraites à ce momentlà, celles-ci peuvent être récupérées directement dans les champs correspondants. A ce moment-là la balise <prompt> n est pas activée pour ne pas demander à l utilisateur une information qu il vient de fournir et on passe directement à <filled>. modal = "false" toutes les grammaires actives sont utilisables (par défaut) = "true" aucune grammaire active n est utilisable à l exception de celles définies dans le champ lui-même (grammaires locales au champ) <field name= "Nom_utilisateur"> <prompt> Quel est votre nom? </prompt> <!-- suite traitement <filled> --> </field> Pour que l information pertinente extraite de la réponse de l utilisateur soit mémorisée il faut déclarer un champ dans le formulaire. Le nom qui lui est attribué doit être unique à l intérieur d un même formulaire. On peut utiliser des types prédéfinis pour typer le champ. Dans ce cas une grammaire interne standard est utilisée pour décoder la réponse de l utilisateur. Sinon, il faut avoir recours à une grammaire interne ou externe. Attention : sous OptimTalk, utiliser ces types n est pas possible. Il faut donc écrire ses propres grammaires. Soit pour décoder les énoncés de l utilisateur soit pour décoder les actions sur les touches DTMF. Dans le premier cas on définira une grammaire <grammar> et dans le second <dtmf> (voir section II.). II Définir un champ dans un formulaire : <field> <!ELEMENT field (%audio; %event.handler; filled %input; link option prompt property)*> <!ATTLIST field %item.attrs; type CDATA #IMPLIED slot NMTOKEN #IMPLIED modal %boolean; "false" > <!-- voir partie <block> pour details sur item.attrs --> <field name="nom_du_champ" type="type_predefini" > II Que faire une fois le champ rempli : <filled> Une fois qu une valeur a pu être extraite de ce qu a dit l utilisateur, un bloc d instructions peut être exécuté. Celui-ci est déterminé par la balise <filled>. Cette balise peut apparaître à deux niveaux. Localement à un champ (<field>) et la séquence d instruction est exécutée lorsque le champ associé a été rempli, ou bien au niveau du formulaire (<form>). Dans ce cas, la séquence peut porter sur plusieurs champs, pour contrôler leur cohérence par exemple. <!ELEMENT filled (%executable.content;)*> <!ATTLIST filled mode (any all) #IMPLIED namelist %restrictedvariable.names; #IMPLIED > <filled namelist="liste de champs" mode="valeur_mode"> <! traitement à effectuer --> </filled> namelist mode Inutile lorsque l élément <filled> est rattaché à un élément <field>. Sinon si il est directement rattaché à un élément <form> donne la liste des champs qui une fois remplis déclenchent l exécution de l élément <filled> = "all" tout les éléments de la liste doivent avoir VoiceXml Dialogue oral Homme-Machine 13 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 14 Isabelle Ferrané

8 été remplis (par défaut) ="any" au moins un des éléments de la liste déclenche l exécution <!-- exemple au niveau field --> <field name= "Nom_utilisateur"> <prompt> Quel est votre nom? </prompt> <filled> Votre nom est : <value expr="nom_utilisateur" /> </filled> </field> <!-- exemple au niveau form --> <form id="depart_et_arrivee"> <field name="depart"> </field> <field name="arrivee"> </field> <filled mode="all" namelist="depart arrivee"> <if cond="depart == arrivee"> <prompt> Ce trajet n est pas valide </prompt> <clear/> </if> </filled> </form> II Communiquer l information à l utilisateur : <value> Grâce à la balise <value> on peut faire en sorte que le système effectue un retour d informations (via la synthèse vocale) vers l utilisateur et insère la valeur du champ dans la sortie vocale. <!ELEMENT value EMPTY> <!ATTLIST value expr %expression; #REQUIRED > <! élement vide --> <value expr="expression à évaluer" /> expr Expression à évaluer : champ, variable, concaténation de chaînes de caractères <value expr= champ_prenom > II.4.5. Element pour l initiative mixte : <initial> Dans les dialogues à initiative mixte, le système peut faire une annonce générale pour amorcer le dialogue et plusieurs champs peuvent être remplis en une seule fois. Il est donc nécessaire d activer avant une grammaire dont la portée couvre tout le formulaire, et de définir ensuite tous les champs (<field> cf. section II) qui peuvent être potentiellement remplis par la réponse de l utilisateur à l annonce générale faite. Dès qu au moins un des champs est renseigné, la valeur de la balise passe à true et l annonce ne se reproduit plus. Sinon, on force le changement de stratégie en modifiant directement la valeur de la variable (<assign name="nom_var" expr="true"/>). On peut ensuite basculer dans un mode plus dirigé par le système où les champs sont demandés un par un. Un élément initial possède ses propres prompts (<prompt>, détection d événements <catch> et compteur d erreur associé via l attribut count). Il n y a pas par contre de grammaire ou de partie action associées (pas de <grammar> ni de <filled>). <!ELEMENT initial (%audio; %event.handler; link prompt property)*> <!ATTLIST initial %item.attrs; > <!ENTITY % item.attrs "name %restrictedvariable.name; #IMPLIED cond %expression; #IMPLIED expr %expression; #IMPLIED " > <initial name="nom_partie_initiale" cond="condition_à_verifier" expr="valeur_initiale_associée" > <!-- contenu --> <prompt> Texte </prompt> <catch name="nom événement" count = nb_fois > Texte associé à l événement détecté </catch> </initial> name Nom associé à la variable qui est évaluée pour savoir si la balise est désactivée ou pas cond Condition additionnelle expr Permet de donner une valeur initiale différente de undefined (valeur par défaut) et donc de ne pas activer la balise <initial name="trajet"> <prompt> Quel est votre trajet? </prompt> <nomatch count="1"> Veuillez donner le point de départ et d arrivée de votre trajet. </nomatch> <nomatch count="2"> Je suis desolé, je n ai toujours pas compris. Je vais changer de mode et vous demander les informations une à une. <assign name="trajet" expr="true"/> <reprompt/> VoiceXml Dialogue oral Homme-Machine 15 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 16 Isabelle Ferrané

9 </nomatch> </initial> II.4.6. Element de type lien : <link> Un lien associe une grammaire (externe ou interne) à un événement (event) ou un renvoi sur un autre formulaire (next ou expr). La portée du lien définit la zone où la grammaire est active. Si ce que dit l utilisateur correspond à la grammaire, le comportement à adopter est celui associé à l événement détecté ou au formulaire appelé. <!ELEMENT link (%input;)*> <!ATTLIST link %cache.attrs; %next.attrs; fetchaudio %uri; #IMPLIED dtmf CDATA #IMPLIED %throw.attrs; > <!ENTITY % input "grammar"> <link next ="URI_document_ou_dialogue" > <! grammaire associée --> </link> next event expr URI du document ou du dialogue à enchaîner..spécifie le nom de l événement à déclencher lorsque ce que dit l utilisateur correspond à la grammaire. Equivalent à next mais l URI est determinée dynamiquement en évaluant l expression ECMAScript spécifiée. <link next=" </link> <link event="help"> </link> <link expr="'#' + autre_dialogue"> </link> III. Gestion des erreurs Plusieurs types d événements peuvent être activés soit par la plateforme soit par l interpréteur. Ils nécessitent de relancer l utilisateur voire de rejouer le message courant. III.1. Répéter le même prompt : <reprompt> En cas d erreur survenue en attendant la réponse à un prompt donné (<noinput>, <nomatch>, ) le système peut rejouer le même message que celui prévu dans le prompt. III.2. Relancer l utilisateur après un silence : <noinput> Si aucune entrée n arrive en provenance du module de reconnaissance, le système peut relancer l utilisateur, soir en rejouant le même message grâce à la balise <reprompt> soit en diffusant un message plus explictite au fur et à mesure que l erreur se reproduit. La plateforme définit un laps de temps après lequel cet événement est déclenché. Ce laps de temps peut être modulé par l attribut timeout de la balise <prompt> initiale (cf. II.6). <!ELEMENT noinput (%executable.content;)*> <!ATTLIST noinput %event.handler.attrs; > <!ENTITY % event.handler.attrs "count %integer; #IMPLIED cond %expression; #IMPLIED"> <noinput count="nb"> Message de relance ou sans <reprompt/> <!-- Peut être différent suivant nb --> </noinput> count Nombre de fois que l événement a lieu cond Condition supplémentaire à vérifier pour que l événement soit déclenché. = "true" message diffusé (par défaut) = "false" message non diffusé <noinput count="1"> Vous n avez pas répondu. <reprompt/> </noinput> <noinput count="2"> J attends que vous me donniez votre prénom. </noinput> III.3. Relancer après une réponse non adéquate : <nomatch> Il faut que le système réagisse lorsqu aucune information pertinente ne peut être extraite de ce que dit l utilisateur. Pour cela, il faut lui donner la possibilité d indiquer à l utilisateur que sa réponse n a pas été comprise. Le message peut varier en fonction du nombre consécutif de fois où l erreur se produit. <!ELEMENT nomatch (%executable.content;)*> <!ATTLIST nomatch %event.handler.attrs; > <!ENTITY % event.handler.attrs "count %integer; #IMPLIED cond %expression; #IMPLIED"> <nomatch count="nb"> Message indiquant un problème de compréhension ou sans <reprompt/> VoiceXml Dialogue oral Homme-Machine 17 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 18 Isabelle Ferrané

10 <!-- Peut être différent suivant nb --> </nomatch> count Nombre de fois que l événement a lieu cond Condition supplémentaire à vérifier pour que l événement soit déclenché. = "true" message diffusé (par défaut) = "false" message non diffusé <nomatch count="1"> Je n ai pas compris votre réponse. <reprompt/> </nomatch> <nomatch count="2"> Pouvez-vous me redonner votre prénom? </nomatch> <throw event="nom_event"/> <! élément vide --> event nom de l événement donné directement eventexpr nom de l événement résultant de l évaluation de l expression de type ECMAScript si celui-ci n est pas donné directement ( event) message message additionnel donné dirctement messageexpr message additionnel généré par l évaluation de l expression de type ECMAScript si celui-ci n est pas donné directement ( message) <if cond= condition de déclenchement > <throw event= choix invalide /> </if> III.4. Fournir de l aide à l utilisateur : <help> Permet de diffuser un message d aide destiné à débloquer l utilisateur. Pour qu un tel événement puisse être déclenché, il faut qu une grammaire capable de reconnaître une demande d aide soit active. Certaines plateformes la prévoit d autres pas. <!ELEMENT help (%executable.content;)*> <!ATTLIST help %event.handler.attrs; > <!ENTITY % event.handler.attrs "count %integer; #IMPLIED cond %expression; #IMPLIED"> <help count="nb"> Ceci est un message d aide <!-- Peut être différent suivant nb --> </help> count Nombre de fois que l événement a lieu cond Condition supplémentaire à vérifier pour que le message soit diffusé Cf. ci-dessous III.5. Déclencher un événement : <throw> En plus des événements prédéfinis ci-dessus, des événements propres à l application peuvent être définis. Ils seront déclenchés par la balise <throw> et captés par la balise <catch>. <!ELEMENT throw EMPTY> <!ATTLIST throw %throw.attrs; > <!ENTITY % throw.attrs "event %event.name; eventexpr %expression; #IMPLIED message CDATA #IMPLIED messageexpr %expression; #IMPLIED"> #IMPLIED III.6. Intercepter un événement : <catch> Les événements déclenchés par la plateforme ou explicitement par le biais de la balise <throw> peuvent être interceptés grâce à la balise <catch>. Les variables visibles au moment du déclenchement de l événement sont accessibles dans la partie interception. <!ELEMENT catch (%executable.content;)*> <!ATTLIST catch event %event.names; #IMPLIED %event.handler.attrs; > <!ENTITY % event.handler.attrs "count %integer; #IMPLIED cond %expression; #IMPLIED"> <catch event="nom_event"> Séquence à exécuter lorsque l événement survient </catch> event nom de l événement déclenché count Nombre de fois que l événement a lieu cond Condition supplémentaire à vérifier pour que la séquence d action soit exécutée <catch event = choix invalide > La valeur donnée <value expr= champ est invalide <clear namelist= champ /> <reprompt/> </catch> La balise <noinput> est un raccourci pour la capture de l événement prédéfini <catch event= noinput >. Idem pour <nomatch>, <help> et <error>. III.7. Récupération des erreurs d exécution : <error> Lorsqu une erreur se produit, la balise <error> permet d informer l utilisateur. Ainsi des cas d erreurs comme error.semantic, error.badfetch, peuvent être traitées. VoiceXml Dialogue oral Homme-Machine 19 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 20 Isabelle Ferrané

11 <!ELEMENT error (%executable.content;)*> <!ATTLIST error %event.handler.attrs;> <!ENTITY % event.handler.attrs "count %integer; #IMPLIED cond %expression; #IMPLIED"> <error> Séquence à exécuter lorsque l événement survient </error> count Nombre de fois que l événement a lieu cond Condition supplémentaire à vérifier pour que la séquence d action soit exécutée <error> Une erreur est survenue. Rappeler plus tard. <exit/> </error> Dans ce document nous nous focalisons sur les grammaires permettant de reconnaître et interpréter les énoncés de l utilisateur transmis par le système de reconnaissance de la parole. IV- Spécification d une grammaire Une grammaire décrit, sous forme compacte et structurée, un ensemble de mots, d expressions et de phrases susceptibles d être énoncés par l utilisateur. Une interprétation sémantique peut également être associée à une suite de mots décrite par la grammaire. L écriture des grammaires dites speech grammar suit des spécifications [5] correspondant au standard du W3C ( Une DTD spécifique indique quels sont les éléments XML qui interviennent dans l écriture de grammaires [6]. Des extraits de celle-ci seront repris dans les tableaux suivants. Le format proposé s inspire du format JSGF (Java Speech Grammar Format Sun Microsystem). Une grammaire est dite interne lorsqu elle est écrite dans le code même du document VoiceXML. Une grammaire externe sera définie dans un autre fichier suivant un format bien précis. IV.1- Rappel : Grammaire hors contexte (Context Free Grammar) Dans la théorie des grammaires formelles, une grammaire est définie par un quadruplet : G = (V T, V N, P, R) où V T représente le vocabulaire terminal (unités qui apparaissent dans la phrase) V N représente le vocabulaire non terminal (symboles intermédiaires). P est le symbole non terminal qui représente la phrase, ce symbole est appelé axiome R est l ensemble des règles de réécriture du type X Y signifiant «X se réécrit en Y» Dans une grammaire hors contexte, les règles sont telles que : - X est un symbole non terminal - et Y une combinaison d élément terminaux et/ou non terminaux. Elles permettent, partant de l axiome (P) et par dérivations successives (applications de règles de réécriture), d obtenir une suite d éléments terminaux ou de mots (w = w 1 w 2 w 3 w n ). Si un même symbole a plusieurs possibilités de réécriture, il y aura soit autant de règles que de parties droites différentes. Cependant on peut factoriser les écritures en se ramenant à une seule règle et des disjonctions ou) de parties droites. X Y1 X Y2. équivaudra à X Y1 Y2 X se réécrit Y1 ou bien Y2 ou bien IV.2- Définition XML d une grammaire hors contexte (CFG) Dans la transposition XML d une grammaire on appelle : - token : tous les éléments du vocabulaire terminal ; - item : chaque élément d une règle ; - rule : la définition d une règle de réécriture composée du nom de la règle et de son expansion ; - ruleref : la référence à une règle de réécriture locale ou externe qui permet de l utiliser dans la définition d une autre règle (partie expansion) ; - tag : interprétation sémantique associée à un élément de la règle voir à la règle ; - grammar : une grammaire dont la règle principale correspondant à l axiome est désignée par l attribut root ; IV.2.1. Elements terminaux : <token> Les tokens correspondent aux mots du vocabulaire susceptibles d être reconnus par ce qui est fournit par le système de reconnaissance, ou d être synthétisé par le module de synthèse (TTS ou parole codée). La balise token est facultative et souvent omise pour ne pas alourdir l écriture. <!ELEMENT token (#PCDATA)> <!ATTLIST token xml:lang NMTOKEN #IMPLIED > <token xml:lang = "langue"> valeur_token </token> xml:lang spécifier la langue concernée : "fr" français, "fr-ca" VoiceXml Dialogue oral Homme-Machine 21 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 22 Isabelle Ferrané

12 français canadien, ou "en" anglais ou "en-us" pour anglais Etats-Unis <token> Toulouse </token> ou Toulouse ou "Toulouse" <token> Saint Malo </token> ou "Saint Malo" <token xml:lang="en"> yes </token> Référence à une règle Il s agit d un élément vide caractérisé par des attributs. Elle peut faire référence à une règle définie dans la même grammaire ou dans une grammaire externe. IV.2.2. Eléments non terminaux et règles : <rule> et <ruleref> Dans Vxml il y a trois aspects : la définition de la règle (a), son expansion (b) et son utilisation (c). a) Définition d une règle : <rule> Définir une règle revient à spécifier le nom de celle-ci, ainsi que sa portée. Vient ensuite son expansion (regroupant toutes les parties droites des règles ayant même partie gauche) et éventuellement des exemples de suite de mots modélisées. <!ELEMENT rule (%rule-expansion; example)*> <!ATTLIST rule id ID #REQUIRED scope (private public) "private" > <!ELEMENT example (#PCDATA)> <rule id = "nom_regle" scope = "type_portée" > <! expansion de la règle : ne peut pas être vide --> <! voir détail b) --> <example> texte correspondant à l exemple </example> </rule> b) Expansion d une règle id nom de la règle qui doit être unique dans une même grammaire (= symbole non terminal en partie gauche) scope private = (par défaut) connue seulement dans la grammaire dans laquelle elle est définie public = peut être explicitement référencée dans une autre grammaire ou dans un autre document <rule id="nombre" scope="public"> <!-- expansion cf. b) --> <example> nombre entre 0 et </example> </rule> On y trouve du texte (#PCDATA), des symboles terminaux (<token> ou sans balise), des références locales ou externes à des règles de grammaire (<ruleref>), des éléments de partie droite d une règle (<item>), des combinaisons de ces éléments voire même des alternatives (<one-of>) ainsi le cas échéant de parties relevant de l interprétation sémantique (<tag>). <!ELEMENT ruleref EMPTY> <!ATTLIST ruleref uri %uri; #IMPLIED type CDATA #IMPLIED special (NULL VOID GARBAGE) #IMPLIED > <ruleref attributs /> uri type special NULL = correspond à n importe quel mot VOID = séquence impossible (??) GARBAGE = consommer des mots comme bruit Attention : soit uri soit special mais pas les deux <!-- Référence locale à une règle (définie dans la même grammaire/même document) --> <ruleref uri="#chiffres" /> Alternatives : <!-- Référence externe explicite à une règle (URI) définie comme public--> <ruleref uri="grammar_uri#rulename" /> <ruleref uri="grammar_uri#root" /> <!-- Référence externe implicite à une règle (URI) définie comme public et de nom root --> <ruleref uri="grammar_uri" /> <!-- Référence à une règle spéciale «poubelle» (*) --> <ruleref special="garbage" /> (*) ne semble pas implémenté optimtalk Elle permet de prendre en compte plusieurs réécritures possibles pour un même symbole non terminal. Correspond à une règle qui offre plusieurs possibilités chacune correspondant à un élément (<item>) <!ELEMENT one-of (item)+> <!ATTLIST one-of xml:lang NMTOKEN #IMPLIED > <one-of> <item> au moins un item </item> </one-of> xml :lang Langage correspondant à l item <one-of> <item> oui </item> <item xml:lang= "en"> yes </item> </one-of> VoiceXml Dialogue oral Homme-Machine 23 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 24 Isabelle Ferrané

13 Elément ou item <!ELEMENT item (%rule-expansion;)*> <!ATTLIST item repeat NMTOKEN #IMPLIED repeat-prob NMTOKEN #IMPLIED weight NMTOKEN #IMPLIED xml:lang NMTOKEN #IMPLIED > <item repeat="nombre_repétition" repeat-prob="prob_répétition" weight="poids associé à l élément" xml :lang="langage"> <!-- description --> </item> repeat Niveau de répétition de l item : 0-1 : item optionnel N : nombre exact de répétitions (= N fois) N- : nombre minimum (= au moins N fois) -N : nombre maximum (= au plus N fois) N-M : entre N et M répétitions (au moins N fois et au plus M) repeat-prob weight xml:lang pondération associée à la suite décrite (optionnel) Interprétation sémantique associée à une règle <!ELEMENT tag (#PCDATA)> <!-- affectation implicite d une valeur à la variable sémantique out --> <tag> Valeur_sémantique </tag> <!-- affectation explicite d une valeur à la variable sémantique out --> <tag> out = Valeur_sémantique ;</tag> <!-- affectation d une valeur à un champ de la variable sémantique out <tag> out.champ1 = Valeur_sémantique_champ1 ; out.text = "texte associé" </tag> renvoie "voicexml" --> <tag> out.text1 = "voice"; out.text2 = "xml" ; out = out.text1 + out.text2 </tag> </rule> Chaque règle a une variable associée qui peut être simple ou structurée (constituées de champs appelés propriétés). Cette variable contiendra la valeur correspondant à l interprétation ou représentation sémantique qui aura pu être extraite de la partie d énoncé traité par la règle. Cette variable est désignée par out. Elle est locale à la règle, donc attention aux problèmes de visibilité. Il est possible d affecter une valeur à cette variable (out = "valeur") ou à une partie de celle-ci (out.property = "valeur du champ ou propriété"). Il est aussi possible de l évaluer pour utiliser sa valeur dans une expression (out.property = out.property + constante ;). Interprétation sémantique associée à une règle référencée <!ELEMENT tag (#PCDATA)> <! récupération de l interprétation associée à une règle référencée pour construire l interprétation de la règle courante (dans out) --> <ruleref uri=#rule_name1 > <tag> out.partie2 = rules.rule_name1 </tag>. <ruleref uri=#rule_name2 > <tag> out.partie3 = rules.rule_name2.property1 </tag> <ruleref uri=#rule_name3 > <tag> out.partie3 = rules.latest() ; out.partie4 = meta.rule_name1.text + meta.current().text </tag> Récupération de l interprétation d une règle référencée <ruleref uri=#rule_name > <! chacun des 3 item a une partie interprétation locale et une partie commune <tag> apparaît à deux niveaux --> Sous la balise <rule id=rule_name> <!-- out est implicite : on renvoie 0 --> <tag> 0 </tag> <!-- out est explicite : on renvoie 0 --> <tag> out = 0 </tag> <! variable composée de deux propriétés : on renvoie une structure à deux champs : nb et text nb = 0 et text = "zero" --> <tag> out.nb = 0; out.text = "zero" </tag> <!-- construction d une valeur par concaténation --> <! dans ce cas text1 et text2 sont écrasés et on <item> zero <tag> out.nb = 0 ; </tag> </item> <item> un <tag> out.nb = 1 ; </tag> </item> <!-- chiffres de 2 a 9 --> <item> <ruleref uri="#chiffres" /> <tag> out.nb = rules.chiffres.nb ; </tag> </item> <!-- tag commun au 3 item = factorisation --> <tag> out.text = meta.current().text ; </tag> VoiceXml Dialogue oral Homme-Machine 25 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 26 Isabelle Ferrané

14 <! et autres combinaisons --> <item> <ruleref uri="#chiffres" /> <ruleref uri="#centaines" /> <tag> out.nb = ((rules.chiffres.nb -1)* 100) + rules.centaines.nb; out.text = meta.chiffres.text + meta.centaines.text; </tag> </item> Les variables associées à des règles référencées (<ruleref > ) peuvent elles aussi recevoir une valeur ou être évaluées. Il existe un objet générique rules qui possède autant de propriétés que de règles visibles et donc appelables (rules.rulename1, rules.rulename2, ). Ainsi rules.rulename1 représente l interprétation sémantique de la règle nommée rulename1, Si cette interprétation est elle-même structurée, on accède à ses propriétés comme suit : rules.rulename1.property2 (exemple : rules.chiffres.nb). L interprétation associée la dernière règle référencée (la plus récente) peut être aussi désignée par rules.latest(). Chaque résultat partiel comporte par défaut une propriété text et une propriété score. La première mémorise la suite de mots qui a été traitée localement, la seconde le score correspondant (si celui-ci est calculé). Dans ce cas, la partie text associée à une règle est identifiée par meta.rulename.text, celle associée à la règle la plus récemment référencée est désignée par meta.latest().text tandis que celle associée à la règle courante est identifié par meta.current().text. Ces dernières sont en lecture seule (non modifiable). Idem pour la partie score : meta.rulename.score, meta.latest().score, meta.current().score. Expansion complète Extrait de la DTD définissant la partie expansion d une règle : <!ENTITY % rule-expansion "#PCDATA token ruleref item one-of tag "> Voir syntaxe de chaque type d élément <! extrait de la definition d une règle et de son expansion --> <rule id="nombre" scope="public"> <one-of> <item> zero <tag> out.nb = 0; </tag> </item> <item> un <tag> out.nb = 1; </tag> </item> <item> <ruleref uri="#chiffres" /> <tag> out.nb = rules.chiffres.nb ; </tag> </item> <! et autres combinaisons --> <item> <ruleref uri="#chiffres" /> <ruleref uri="#centaines" /> <tag> out.nb =((rules.chiffres.nb -1)* 100) + rules.centaines.nb; out.text = meta.chiffres.text + meta.centaines.text; </tag> </item> </one-of> </rule> IV.3. Définition d une grammaire IV.3.1. Grammaire interne à un document Une grammaire est dite interne si sa définition est incluse dans le fichier Vxml à interpréter. Les balises <grammar> et </grammar> délimitent alors l ensemble des règles qui caractérisent la grammaire et décrivent les suites de mots. <!ELEMENT grammar (%grammar-header;, %grammar-body;)> <!ATTLIST grammar tag-format %uri; #IMPLIED xml:base %uri; #IMPLIED version NMTOKEN #REQUIRED xml:lang NMTOKEN #IMPLIED xmlns CDATA #FIXED ' xmlns:xsi CDATA #IMPLIED xsi:schemalocation CDATA #IMPLIED root IDREF #IMPLIED mode (voice dtmf) "voice" > <grammar> <! ensemble de définitions de règles --> </grammar> root type Nom de la règle principale qui peut ainsi être associée à l axiome de la grammaire type suivant lequel le contenu de la grammaire est interprété. Plusieurs formats sont disponibles : format JSGF = "application/x-jsfg" ou "application/sgrs+xml" (ok marche) VoiceXml Dialogue oral Homme-Machine 27 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 28 Isabelle Ferrané

15 IV.3.2. Grammaire externe scope private = par défaut sinon = public doit être spécifié version définit la version de la grammaire ("1.0") xml :lang pour préciser la langue associée Langue et dialecte : "fr-fr", "en-uk", "fr-ca", "en-us",) mode définit le mode de la grammaire "voice" ou "dtmf" Cf. section suivante Dans le fichier Vxml on a une balise vide comportant les attributs caractérisant la grammaire : <!ELEMENT grammar (#PCDATA meta metadata lexicon rule tag)*> <!ATTLIST grammar scope %scope; #IMPLIED src %uri; #IMPLIED type CDATA #IMPLIED weight CDATA #IMPLIED %cache.attrs; tag-format %uri; #IMPLIED xml:base %uri; #IMPLIED version NMTOKEN #IMPLIED xml:lang NMTOKEN #IMPLIED root IDREF #IMPLIED mode (voice dtmf) "voice" > <grammar src = "fichier source" type =" application/sgrs+xml " /> src chemin d accès relatif ou absolu où se trouve le fichier source dans lequel est défini la grammaire (fichier.grxml marche) si aucun nom de règle n est spécifié, c est la racine (root) qui est activée type type suivant lequel le contenu de la grammaire est interprété. Si non spécifié il est déterminé dynamiquement ( sinon "application/sgrs+xml" marche) weight une grammaire peut être pondérée si besoin (exemple : "0.5") par défaut "1.0" tag-format format pour l interprétation sémantique semantics/1.0 ou semantics/1.0-literals (par défaut??) Cf. Section suivante IV.3.3. de grammaire ou classe de mots a) Fichier Vxml grammaire interne : <?xml version="1.0" encoding="utf-8"?> <vxml version="2.0" xmlns=" <meta name="description" content="test execution"/> <meta name="author" content="isabelle Ferrane"/> <meta name="copyright" content="free for any purpose"/> <form id="intro"> <field name="mon_chiffre"> <! traitement des événements spéciaux --> <noinput> Je ne vous ai pas entendu </noinput> <nomatch> Veuillez me donner votre code S.V.P? </nomatch> <! Question posée à l utilisateur <prompt> Quel est le chiffre choisi? </prompt> <! Analyse de la réponse suivant la grammaire définie cidessous <grammar root="chiffres" type ="application/srgs+xml"> <rule id="chiffres"> <one-of> <item> zero </item> <item>un</item> <item>deux</item> <item>trois</item> <item>quatre</item> <item>cinq</item> <item>six</item> <item>sept</item> <item>huit</item> <item>neuf</item> </one-of> </rule> </grammar> <! feedback sur la valeur reconnue --> <filled> Votre chiffre est le : <value expr="mon_chiffre"/> </filled> </field> </vxml> b) Fichier Vxml grammaire externe Reprise de l exemple précédent mais utilisant une grammaire externe définie dans un fichier.grxml. <?xml version="1.0" encoding="utf-8"?> <vxml version="2.0" xmlns=" <!-- Fichier.vxml a interpreter utilisant une grammaire externe --> VoiceXml Dialogue oral Homme-Machine 29 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 30 Isabelle Ferrané

16 <meta name="description" content="test execution"/> <meta name="author" content="isabelle Ferrane"/> <meta name="copyright" content="free for any purpose"/> <!-- Nom du formulaire --> <form id="intro"> <!-- premier champ a remplir nom : chiffre --> <field name="chiffre"> <noinput> Je ne vous ai pas entendu </noinput> <nomatch> Veuillez me donner un chiffre S.V.P? </nomatch> <prompt> Quel est le chiffre choisi? </prompt> <!-- Appel a une grammaire externe --> <grammar src="grammaires/chiffres.grxml" type="application/srgs+xml"/> <!-- la valeur extraite est affectee a la variable chiffre --> <filled> Votre chiffre est le : <value expr="chiffre"/> </filled> </field> </form> </vxml> <?xml version="1.0" encoding="utf-8"?> <! Fichier.grxml contenant la définition de la grammaire --> <grammar version="1.0" root="chiffres" xml:lang="fr"> <meta name="description" content="liste Chiffres"/> <meta name="author" content="isabelle Ferrane"/> <meta name="copyright" content="iup SI M1"/> <!-- Chiffres de 0 a 9 --> <rule id="chiffres" scope="public"> <one-of> <item> zero </item> <item> un </item> <item> deux </item> <item> trois </item> <item> quatre </item> <item> cinq </item> <item> six </item> <item> sept </item> <item> huit </item> <item> neuf </item> </one-of> </rule> </grammar> V- Objets prédéfinis V.1. Le type Date V.1.1. Format interne : Une seule valeur numérique, le nombre de millisecondes depuis t 0 t 0 = temps de référence = 1 er janvier 1970 minuit UTC (temps universel). A ce t 0 vient se rajouter le décalage horaire de la zone concernée. En considérant qu il y a millisecondes par jour, on peut calculer : - le nombre de jours entiers depuis t 0 - le nombre de millisecondes de la journée - ce qui permet de calculer l heure exacte ( heures, minutes, secondes et milisecondes). Cela permet de gérer la même structure (objet de type Date) les jours de l année ainsi que les heures, minutes, secondes et ce sur le plan international. V.1.2. Un objet de type Date a) Constructeur new Date () crée une instance de la classe Date new Date(2007, 10, 15) crée une instance initialisée au 15 octobre 2007 new Date(2007, 10, 15, 12, 30) crée une instance initialisée au 15 octobre 2007 à midi trente (12h30) b) Transformation en chaîne de caractères var Ma_date = new Date (2007, 10, 15, 12, 30) ; VI- Contenu executable VoiceXml Dialogue oral Homme-Machine 31 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 32 Isabelle Ferrané

17 Les contenus exécutables se trouvent dans les zones <block> et <filled> ainsi que dans les parties dédiées à la gestion des événements <catch> <help> VI.1. Variable VI.1.1. Déclaration d une variable : <var> Une variable n est pas un champ, le système ne demandera pas sa valeur à l utilisateur. C est donc à la charge du programmeur de gérer cette variable. <var name= "nom_variable" expr="valeur" /> : <var name= "nombre" expr="115" /> <var name= "chaine" expr=" cent quinze " /> <var name= "x" expr="nombre + 1" /> Zone Portée <block> <field> Zone balisée <catch> <help> <form> Dialogue associé <vxml> Document associé <vxml> document racine Application complète VI.1.2. Affectation d une valeur à une varaible : <assign> La variable doit avoir été déclarée au préalable (<var>). Si la variable contient déjà une valeur, celle-ci sera écrasée. <assign name= "nom_variable" expr="valeur" /> : <assign name= "nombre" expr="nombre * 2"/ > <assign name= "etudiant.nom" expr=" Marcel "/ > VI.1.3. RAZ d une liste de variables : <clear> Il est possible de réinitialiser à undefined les variables ainsi que les champs d un formulaire. Dans ce dernier cas les compteurs (count) associés aux événements sont réinitialisés. <clear namelist= "variable1 champ2 " /> Lorsque aucun nom n est spécifié (balise vide <clear/>) ce sont les valeurs de tous les champs du formulaire courant qui sont effacés. VI.1.4. Prompts : <prompt> On peut spécifier des prompts dans les contenus executables autres que <field>. Dans ce cas l attribut count n est pas significatif. Par contre on peut utiliser l attribut cond. Si cet attribut n est pas spécifié, les balises <prompt> et </prompt> peuvent être omises. Il n y a que dans une zone <field> où le système attend la réponse de l utilisateur. VI.2. Instructions VI.2.1. Type d instruction Type instruction test <if cond="condition" > <! actions --> </if> alternative <if cond="condition" > <! actions si condition vraie--> <else/> <! actions si condition fausse --> </if> Tests imbriqués <if cond="condition1" > <! actions si condition 1 vraie --> <elseif cond="condition2" /> <! actions si condition1 fausse et condition2 vraie --> <elseif cond= /> </if> Branchement <goto next = "#nom_autre_formulaire_interne" /> <goto next = "fichier.vxml#nom_formulaire_externe"/> Soumission à un serveur Lien associé à une grammaire <submit /> <link /> VI.2.1. Expression des conditions via l attribut cond Type de condition Expression associée cond= CONDITION Résultat booléen cond="nom_var_bool" Egalité/Différence d un champ ou d une variable une chaîne de caractères cond="nom_var== chaine " cond="nom_var!= chaine " OU entre deux conditions cond="nom_var== chaine VoiceXml Dialogue oral Homme-Machine 33 Isabelle Ferrané VoiceXml Dialogue oral Homme-Machine 34 Isabelle Ferrané

18 nom_var == chaine2 " ET entre deux conditions cond="nom_var== chaine &amp ;&amp ;nom_var == chaine2 " Opérateurs relationnels &lt ; &gt ; ( ou > ) VII- Bibliographie Voice extensible Markup Language version 2.0 [1] spécifications générales document de référence: [2] traduction en français des spécifications : [3] syntaxe VoiceXml définie par la DTD : [4] spécification ECMAscript : [5] DTD définissant la syntaxe des grammaires : [6] spécifications concernant les grammaires : [7] spécifications pour l interprétation sémantique : [8] spécifications concernant les dialogue et l interaction vocale : [9] Practical spoken dialog systems, Edited by Deborah Dahl, Kluwer Academic Publishers, [10] VoiceXML le langage d accès à Internet par le téléphone, José Rouillard, Vuibert, Paris, VoiceXml Dialogue oral Homme-Machine 35 Isabelle Ferrané

Plateforme PAYZEN. Définition de Web-services

Plateforme PAYZEN. Définition de Web-services Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network

Plus en détail

Définition des Webservices Ordre de paiement par email. Version 1.0

Définition des Webservices Ordre de paiement par email. Version 1.0 Définition des Webservices Ordre de paiement par email Version 1.0 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Historique du document

Plus en détail

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition) Présentation du langage XML 1. De SGML à XML 17 2. Les bases de XML 18 2.1 Rappel sur HTML 18 2.2 Votre premier document XML 19 2.3 Les avantages de XML 21 3. La syntaxe XML 21 3.1 La première ligne du

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv> Langage HTML (2 partie) «Je n'ai fait que prendre le principe d - hypertexte et le relier au principe du TCP et du DNS et alors boum! ce fut le World Wide Web!» Tim Berners-Lee

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème Chapitre IX L intégration de données Le problème De façon très générale, le problème de l intégration de données (data integration) est de permettre un accès cohérent à des données d origine, de structuration

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Manuel d'utilisation. Ticket Center Manuel d'utilisation. Ticket Center 2: 1.0 1.1. 17 mai 2013. AdNovum Informatik AG. Mis en circulation

Manuel d'utilisation. Ticket Center Manuel d'utilisation. Ticket Center 2: 1.0 1.1. 17 mai 2013. AdNovum Informatik AG. Mis en circulation Manuel d'utilisation DESCRIPTION: Ticket Center Manuel d'utilisation RELEASE: Ticket Center 2: 1.0 VERSION DE DOCUMENT: 1.1 DATE: 17 mai 2013 AUTEURS: AdNovum Informatik AG STATUT: Mis en circulation AdNovum

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

Guide d implémentation. Réussir l intégration de Systempay

Guide d implémentation. Réussir l intégration de Systempay Guide d implémentation - Interface avec la plateforme de paiement - Réussir l intégration de Systempay Version 1.4b Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

SD1+ SD1+ SD1+ ENT ESC

SD1+ SD1+ SD1+ ENT ESC SD SD SD A B 4 5 6 C 7 8 9 D ENT 0 ESC Sommaire Options du Menu SD........ Généralités...... Raccordements.......... Mot de Passe........... Type de Mot de Passe........... Sortie Programmable...........

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

Learning Object Metadata

Learning Object Metadata Page 1 of 7 Learning Object Metadata Le LOM (Learning Object Metadata), est un schéma de description de ressources d enseignement et d apprentissage. Le LOM peut être utilisé pour décrire des ressources

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

Créer une base de données vidéo sans programmation (avec Drupal)

Créer une base de données vidéo sans programmation (avec Drupal) Créer une base de données vidéo sans programmation (avec Drupal) 10.10.2013 Nicolas Bugnon (nicolas.bugnon@alliancesud.ch) Centre de documentation Alliance Sud www.alliancesud.ch Résultat de l atelier

Plus en détail

.NET - Classe de Log

.NET - Classe de Log .NET - Classe de Log Classe permettant de Logger des données Text Dans tous les projets, il est indispensable de pouvoir stocker de l'information textuelle : Pour le suivi des erreurs Pour le suivi de

Plus en détail

Formation. Module WEB 4.1. Support de cours

Formation. Module WEB 4.1. Support de cours Formation Module WEB 4.1 Support de cours Rédacteur Date de rédaction F.CHEA 08/02/2012 Les informations contenues dans ce document pourront faire l'objet de modifications sans préavis Sauf mention contraire,

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

Master d Informatique Corrigé du partiel novembre 2010

Master d Informatique Corrigé du partiel novembre 2010 Universités d Aix-Marseille I & II Technologies XML Master d Informatique Corrigé du partiel novembre 2010 Année 2010-11 Documents autorisés Exercice 1 : Documents XML et Applications XML (4 points) Georges,

Plus en détail

BES WEBDEVELOPER ACTIVITÉ RÔLE

BES WEBDEVELOPER ACTIVITÉ RÔLE BES WEBDEVELOPER ACTIVITÉ Le web developer participe aux activités concernant la conception, la réalisation, la mise à jour, la maintenance et l évolution d applications internet/intranet statiques et

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

EJBCA PKI Open Source

EJBCA PKI Open Source PKI Open Source http://www.auditiel.fr/docs/installation.pdf 1 SOMMAIRE 1Sommaire... 2 2Introduction... 3 2.1Pré requis...3 2.2Versions... 3 2.3Glossaire...3 3Installation...4 3.1Composants nécessaires...

Plus en détail

TUTORIEL Qualit Eval. Introduction :

TUTORIEL Qualit Eval. Introduction : TUTORIEL Qualit Eval Introduction : Qualit Eval est à la fois un logiciel et un référentiel d évaluation de la qualité des prestations en établissements pour Personnes Agées. Notre outil a été spécifiquement

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Écriture de journal. (Virement de dépense)

Écriture de journal. (Virement de dépense) Écriture de journal (Virement de dépense) SERVICE DES FINANCES Équipe de formation PeopleSoft version 8.9 Août 2014 TABLES DES MATIERES AVERTISSEMENT... 3 INTRODUCTION... 4 RAISONS JUSTIFIANT LA CRÉATION

Plus en détail

Fonctions de l appareil :

Fonctions de l appareil : 1 A pleine puissance, l'écoute prolongée du baladeur peut endommager l'oreille de l'utilisateur. Pensez à ajuster le volume à un niveau normal, et non pas au maximum. Traduction assurée par LDLC.COM Toute

Plus en détail

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole : www.arcopole.fr

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole : www.arcopole.fr arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole : www.arcopole.fr Auteur du document : ESRI France Version de la documentation : 1.2.0.0 Date de dernière

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

AIDE MEMOIRE. Forprev. De l habilitation à la gestion de sessions. Page 1 sur 55

AIDE MEMOIRE. Forprev. De l habilitation à la gestion de sessions. Page 1 sur 55 2013 AIDE MEMOIRE Forprev De l habilitation à la gestion de sessions Page 1 sur 55 Bienvenue, Vous êtes, ou souhaitez être, habilité à dispenser des formations relevant du dispositif de démultiplication

Plus en détail

Manuel d intégration API SOAP SMS ALLMYSMS.COM

Manuel d intégration API SOAP SMS ALLMYSMS.COM Manuel d intégration API SOAP SMS ALLMYSMS.COM 26/02/2014 TABLE DES MATIERES OBJECTIF DU DOCUMENT... 3 LE PROTOCOLE SOAP... 3 ENVOI DE REQUETES SOAP A LA PLATEFORME ALLMYSMS.COM... 3 BACKOFFICE SMS...

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

opti-vm Serveur Vocal et Standard Automatique Siemens HiPath 11xx et Hipath 12xx Installation et Guide Utilisateur Version 1.0

opti-vm Serveur Vocal et Standard Automatique Siemens HiPath 11xx et Hipath 12xx Installation et Guide Utilisateur Version 1.0 opti-vm Serveur Vocal et Standard Automatique Siemens HiPath 11xx et Hipath 12xx Installation et Guide Utilisateur Version 1.0 SOMMAIRE SOMMAIRE 1- INTRODUCTION... 4 1.1 Standard Automatique...4 1.2 Messagerie

Plus en détail

Haka : un langage orienté réseaux et sécurité

Haka : un langage orienté réseaux et sécurité Haka : un langage orienté réseaux et sécurité Kevin Denis, Paul Fariello, Pierre Sylvain Desse et Mehdi Talbi kdenis@arkoon.net pfariello@arkoon.net psdesse@arkoon.net mtalbi@arkoon.net Arkoon Network

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

La Solution Télématique Innovante pour la voiture basée sur Microsoft Auto

La Solution Télématique Innovante pour la voiture basée sur Microsoft Auto F I A T 5 0 0 La Solution Télématique Innovante pour la voiture basée sur Microsoft Auto SOMMAIRE INFORMATIONS GÉNÉRALES... 3 La fonction Mains libres... 3 Le lecteur de textos... 5 Le Media Player...

Plus en détail

Tutoriel QSOS. Version 2.0-13/02/2013

Tutoriel QSOS. Version 2.0-13/02/2013 Version 2.0-13/02/2013 1 Table des matières 1 Note de licence 4 2 Historique des modifications 4 3 Introduction 4 4 Gérer les templates 4 4.1 Généralités sur les templates.................... 4 4.2 Créer

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

Instructions et spécifications pour la transmission en format XML de déclarations par lots. 30 mai 2015 MODULE 1

Instructions et spécifications pour la transmission en format XML de déclarations par lots. 30 mai 2015 MODULE 1 Instructions et spécifications pour la transmission en format XML de déclarations par lots 30 mai 2015 MODULE 1 Table des matières Modifications apportées dans la présente... 3 1 Renseignements généraux...

Plus en détail

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 FORMULAIRE DE CONTACT POUR PORTFOLIO PRINCIPE GENERAL Nous souhaitons réaliser un formulaire de contact comprenant les champs suivants : NOM PRENOM ADRESSE MAIL MESSAGE

Plus en détail

TAGREROUT Seyf Allah TMRIM

TAGREROUT Seyf Allah TMRIM TAGREROUT Seyf Allah TMRIM Projet Isa server 2006 Installation et configuration d Isa d server 2006 : Installation d Isa Isa server 2006 Activation des Pings Ping NAT Redirection DNS Proxy (cache, visualisation

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

SPF FIN. Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale. Version 1.1

SPF FIN. Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale. Version 1.1 SPF FIN Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale Version 1.1 Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale Date: 17/06/2004 Historique

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement

Plus en détail

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1 CARPE (Documentation Informatique) 1 CARPE Version 2.00 Août 2013 Documentation Informatique S E T R A Programme CARPE - Manuel informatique de l'utilisateur CARPE (Documentation Informatique) 2 Table

Plus en détail

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition XML par la pratique Bases indispensables Concepts et cas pratiques 3 ième édition Nouvelle édition Thierry BOULANGER Table des matières 1 Les éléments à télécharger sont disponibles à l'adresse suivante

Plus en détail

Service On Line : Gestion des Incidents

Service On Line : Gestion des Incidents Service On Line : Gestion des Incidents Guide de l utilisateur VCSTIMELESS Support Client Octobre 07 Préface Le document SoL Guide de l utilisateur explique comment utiliser l application SoL implémentée

Plus en détail

M1 : Ingénierie du Logiciel

M1 : Ingénierie du Logiciel M1 : Ingénierie du Logiciel UNIVERSITE PIERRE & MARIE CURIE (PARIS VI) Examen Réparti 2eme partie 16 Mai 2013 (2 heures avec documents : tous SAUF ANNALES CORRIGEES). Barème indicatif sur 20,5 points (max

Plus en détail

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1 Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-

Plus en détail

BIRT (Business Intelligence and Reporting Tools)

BIRT (Business Intelligence and Reporting Tools) BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

MANUEL DE L UTILISATEUR

MANUEL DE L UTILISATEUR MANUEL DE L UTILISATEUR COMPAS DYNAMIQUE Page 1 / 81 Page 2 / 81 SOMMAIRE PREAMBULE... 7 CHAPITRE 1 :... 9 PRESENTATION DU COMPAS DYNAMIQUE... 9 1 INTRODUCTION... 11 1.1 QU EST-CE QUE LE COMPAS DYNAMIQUE?...

Plus en détail

Architecture Orientée Service, JSON et API REST

Architecture Orientée Service, JSON et API REST UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API

Plus en détail

Apprentissage Automatique

Apprentissage Automatique Apprentissage Automatique Introduction-I jean-francois.bonastre@univ-avignon.fr www.lia.univ-avignon.fr Définition? (Wikipedia) L'apprentissage automatique (machine-learning en anglais) est un des champs

Plus en détail

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions Module Magento SOON Soon_AdvancedCache Rédacteur Hervé G. Lead développeur Magento herve@agence-soon.fr AGENCE SOON 81 avenue du Bac 94210 LA VARENNE ST HILAIRE Tel : +33 (0)1 48 83 95 96 Fax : +33 (0)1

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

Tutoriel d installation de Hibernate avec Eclipse

Tutoriel d installation de Hibernate avec Eclipse Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données... 4 2. Installation de Hibernate Synchronizer... 5 3. Utilisation de Hibernate... 6 3.1 Création

Plus en détail

GUIDE PRATIQUE D IVM

GUIDE PRATIQUE D IVM GUIDE PRATIQUE D IVM Nous vous remercions d avoir installé IVM. Pour être rapidement guidé pas à pas à travers le paramétrage de ce logiciel, cliquez sur l un des liens suivants : Je veux utiliser IVM

Plus en détail

Livre Blanc WebSphere Transcoding Publisher

Livre Blanc WebSphere Transcoding Publisher Livre Blanc WebSphere Transcoding Publisher Introduction WebSphere Transcoding Publisher vous permet d'offrir aux utilisateurs des informations Web adaptées à leurs besoins. Il vous permet, par exemple,

Plus en détail

Création et utilisation de formulaire pdf

Création et utilisation de formulaire pdf Création et utilisation de formulaire pdf Grâce à Adobe Acrobat, il est plus facile de créer, de remplir et d envoyer des formulaires électroniques PDF. Vous pouvez concevoir et créer un formulaire complètement

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

Langage SQL : créer et interroger une base

Langage SQL : créer et interroger une base Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

Nom de l application

Nom de l application Ministère de l Enseignement Supérieur et de la Recherche Scientifique Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Gafsa Département Technologies de l Informatique

Plus en détail

Guide de référence pour la Belgique relatif au Format XML du virement européen. version janvier 2014. www.ingsepa.com

Guide de référence pour la Belgique relatif au Format XML du virement européen. version janvier 2014. www.ingsepa.com Financial Supply Chain SEPA Guide de référence pour la Belgique relatif au Format XML du virement européen version janvier 2014 www.ingsepa.com Introduction 1 Questions fréquentes 2 Comment formuler correctement

Plus en détail

Paiement sécurisé sur Internet. Tableau de bord Commerçant

Paiement sécurisé sur Internet. Tableau de bord Commerçant Paiement sécurisé sur Internet Tableau de bord Commerçant SOMMAIRE 1 Principe 4 1.1 Principe général 4 1.2 Environnement de validation 4 1.3 Environnement de Production 4 2 Accès au tableau de bord 5 2.1

Plus en détail

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en détail

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

Excel 2007 Niveau 3 Page 1 www.admexcel.com

Excel 2007 Niveau 3 Page 1 www.admexcel.com Excel 2007 Niveau 3 Page 1 TABLE DES MATIERES UTILISATION DE LISTES DE DONNEES... 4 REMARQUES PREALABLES SUR LES LISTES DE DONNEES... 4 METTRE EN FORME LE TABLEAU... 6 METTRE LA LISTE A JOUR... 7 a/ Directement

Plus en détail

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2 Débuter avec EXPRESS Alain Plantec Table des matières 1 Schema 2 2 Entité 2 2.1 Attributs simples................................................ 2 2.2 Attributs collection...............................................

Plus en détail

Logiciel : GLPI Version : 0.72.4 SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

Logiciel : GLPI Version : 0.72.4 SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003. Ce document est libre de droit, merci simplement de respecter son auteur. Toutes remarques ou commentaires seront les bienvenues. ATTENTION : La mise à jour par script entre GLPI et Active Directory ne

Plus en détail

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail

Dragon Naturally Speaking 13

Dragon Naturally Speaking 13 Année 2015 Dragon Naturally Speaking 13 Guide premier pas Nathalie Macé / Grégoire Duval PROJET ORDYSCAN 1 Table des matières Introduction 3 Pourquoi utiliser Dragon Naturally Speaking avec les élèves

Plus en détail

i7 0 Guide de référence rapide Français Document number: 86141-1 Date: 11-2010

i7 0 Guide de référence rapide Français Document number: 86141-1 Date: 11-2010 i7 0 Guide de référence rapide Français Document number: 86141-1 Date: 11-2010 FRANÇAIS Document number: 86141-1 Date: 02-2011 Commandes d instrument Disposition des commandes et fonctions. Mise en marche

Plus en détail

Création d objet imbriqué sous PowerShell.

Création d objet imbriqué sous PowerShell. Création d objet imbriqué sous PowerShell. Par Laurent Dardenne, le 13/01/2014. Niveau Ce tutoriel aborde la création d objet composé, c est-à-dire que certains de ses membres seront eux-mêmes des PSObjects.

Plus en détail

Protocoles DHCP et DNS

Protocoles DHCP et DNS Protocoles DHCP et DNS DHCP (Dynamic Host Configuration Protocol) est un protocole qui permet à un serveur DHCP (Unix, Windows, AS400...) d'affecter des adresses IP temporaires (et d'autres paramètres)

Plus en détail

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Sub CalculAnnuite() Const TITRE As String = Calcul d'annuité de remboursement d'un emprunt TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 1 'TRADUCTION EN VBA DES EXEMPLES ALGORITHMIQUES SUR LES STRUCTURES 'DE CONTROLE DE L'EXECUTION

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail