Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace Dialogové systémy Luděk Bártek Laboratoř vyhledávání a dialogu, Fakulta Informatiky Masarykovy Univerzity, Brno jaro 2017 >0 0,0 Řízení toku dialogu Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace VoiceXML poskytuje dva způsoby řízení průchodu dialogem: ■ Funkcionální: ■ Založen na FIA. ■ Omezení provádění daného bloku/pole - atribut cond, přiřazení hodnoty danému vstupnímu poli, . .. ■ Použití elementu initial - iniciální část dialogu, většinou je iniciativa na straně uživatele. ■ Procedurální: ■ Využívají se klasické řídící struktury - if/then/else/elseif, goto. Funkcionální přístup řízení průběhu dialogu Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace Průběh dialogu řízen FIA - opakovaně se vybírá další vhodný nevyplněný element. Ke změně pořadí vyhodnocování vstupních polí a bloků lze využít: ■ změny hodnot vstupních polí: ■ přiřazení - (nepřejeme si toto pole provádět ■ smazání - dané pole bude znovu vyplněno; lze využít pro opakované zadávání nějaké hodnoty (např. koníček, kód předmětu při zápisu, ...) ■ atribut cond: ■ Obsahuje podmínku, která musí být splněna, aby se vstup/blok provedl. ■ Podmínka zapsána v jazyce ECMAScript. Prirazení hodnoty Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace Element assign ■ Má atributy: ■ name - název proměnné/vstupního pole ■ expr - obsahuje výraz (může být i konstantní), jehož hodnota se má proměnné přiřadit. ■ Proměnná musí být před použitím definována - stínová proměnná vstupního pole; pomocí elementu var. V gramatice - pomocí atributů objektu out, více viz přednáška o SISR. Prirazení hodnoty Dokončení Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace Pomocí kódu v jazyce ECMAScript. Smazání hodnoty proměnné - element clear. ■ seznam proměnných uveden v atributu namelist ■ názvy jsou odděleny mezerou. Atribut cond Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace Obsahuje podmínku, která musí být splněna, aby se daný element zpracoval. Podmínka zapsána jako logický výraz v jazyce ECMAScript: ■ Syntakticky hodné resp. velmi blízké podmínkám v jazycích C/Java/JavaScript. ■ Operandy relačních operátorů jsou: ■ konstanty/konstantní výrazy ■ proměnné/stínové proměnné z dokumentu. . — 5 5 II > Element initial Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace Typicky se využívá u dialogů se smíšenou iniciativou. Slouží k zadání informací platných v rozsahu celého dialogu. Využívá gramatiku formuláře - obsažena jako dceřiný uzel elementu form - většinou jako 1. Element initial Ukázka použití Dialogové systémy Luděk Bártek Řízení toku dialogu Procedurální přístup
Nastavení vlastností interpretace Zadejte, který předmět si přejete zaregistrovat a s jakým ukončením. Element initial Ukázka použití Dialogové systémy Luděk Bártek Bohužel Vám nerozumím. Zkusíme to jinak. □ r3 = Element initial Ukázka použití Dialogové systémy Luděk Bártek Způsob ukončení předmětu. Řízení toku Jedna z možností zkouška, kolokvium, dialogu Funkcionální zápočet. přístup Procedurální vlastností interpretace Přejete si zaregistrovat s ukončením ? Element initial Ukázka použití Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace
Řízení průběhu dialogu Procedurální přístup Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace Umožňuje psát dialogová rozhraní způsobem, který je obvyklý u strukturovaného programování. Řídící struktury: ■ podmíněné provádění ■ skoky. Podmíněný příkaz: ■ elementy if, elseif, else Příkazy skoku: ■ elementy goto, submit, exit, return, subdialog. <3 Podmíněný príkaz Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace Umožňuje vykonání určité části dialogu za předem stanovených podmínek. Realizován pomocí elementů: ■ if ■ else ■ elseif Elementy if a elseif mají atribut cond - obsah shodný s atributem cond u funkcionálního přístupu. Elementy else a elseif musí být potomky elementu if. Element if může být na místech, kde je povolen proveditelný obsah: ■ element block ■ element filled Podmíněný príkaz Príklad Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace Príkazy skoku goto Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace Příkaz slouží k přechodu na: ■ jinou položku daného formuláře ■ jiný formulář (dialog) v daném dokumentu ■ jiný dokument v dané aplikaci. Element - goto Atributy: ■ nextitem - umožňuje předat řízení jinému vstupnímu poli daného formuláře. Hodnotou je řetězcová konstanta s URI vstupního pole. ■ expritem - umožňuje předat řízení jinému vstupnímu poli daného formuláře. Hodnotou může být libovolný výraz v jazyce ECMAScript, jehož výsledkem je URI vstupního pole. ■ next - URI formuláře, kterým se má pokračovat. ■ expr- výraz v jazyce ECMAScript, který se vyhodnotí jako URI formuláře, kterým se má pokračovat. Príkazy skoku submit Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace Příkaz slouží k odeslání získaných hodnot ke zpracování serverové části aplikace a v pokračování dokumentem, který je vrácen jako odpověď. Element - submit ■ atributy next, expr- URI aplikace, která má data zpracovat, a která vrací pokračování dialogu. ■ atribut method - obsahuje jednu z hodnot get a post. Značí zda se má se serverem komunikovat pomocí HTTP metody post a nebo get. Príkazy skoku exit, return, subdialog Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace ■ Element exit ■ Slouží k ukončení aplikace. ■ může obsahovat atributy: ■ expr- návratová hodnota dialogu. ■ namelist - seznam proměnných, které se mají vrátit interpretru. ■ Element subdialog - slouží k vyvolání dílčího dialogu viz minulá přednáška). (více ■ Element return - slouží k návratu ze subdialogu (více minulá přednáška). viz Nastavovaní vlastností interpretace properties Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace Nastavování parametrů interpretace - pomocí vlastností (properties). Element property. ■ Slouží k nastavování vlastností interpretace. ■ Atributy: ■ name - jméno nastavované vlastnosti ■ value - hodnota, která se má nastavit. Typy vlastností: ■ platformně závislé vlastnosti ■ obecné vlastnosti rozpoznávání řeči ■ obecné vlastnosti DTMF ■ vlastnosti výzev ■ vlastnosti komunikace po síti ■ ostatní vlastnosti. Vlastnosti Dialogové systémy Luděk Bártek Řízení toku dialogu Funkcionální přístup Procedurální přístup Nastavení vlastností interpretace Platformě závislé vlastnosti: ■ Vnášejí do aplikací nekompatibilitu - dané vlastnosti jsou dostupné pouze na některé platformě. ■ Platformě závislé vlastnosti by měly používat reverzní název domény autora. Obecné vlastnosti rozpoznávání řeči: ■ Vlastnosti jsou převážně přebrány z Java Speech API. ■ Patří sem např. confidencelevel - nastavuje minimální hodnotu důvěry ve výsledek vracený rozpoznávačem, aby byl vstup akceptován. Obecné vlastnosti DTMF: ■ interdigittimeout - maximální délka prodlevy při zadávání série číslic pomocí DTMF. ■ termtimeout - maximální prodleva, po které je ukončeno zadávání vstupu pomocí DTMF. ■ Vlastnosti výzev a vstupů: ■ timeout- po jak dlouhé době se má generovat událost noinput. ■ bargein - jestli má skončit předčítání promptu v okamžiku, kdy je detekován vstup od uživatele. ■ bergeintype - jaký typ vstupu od uživatele má přerušit předčítání výzvy (speech, dtmf). ■ Vlastnosti načítání obsahu: ■ Slouží k nastavování různých vlastností, které se vztahují k načítání obsahu (dokument, audio, gramatika, skript, ■ ■■)■ ■ Patří sem např. fetchtimeout - doba, po které skončí načítání chybou. ■ a další.