Os Guiões de Interacção (GI) são o formalismo desenvolvido para a especificação de Controladores de Diálogo no âmbito do sistema GAMA.
Um GI descreve um subdiálogo da interface. A título de exemplo apresenta-se um GI correspondente à síntese do comando REMPAL(pal), que remove uma palavra de um dicionário. Note-se que a operação só é válida se o dicionário não estiver vazio e dele constar a palavra que se pretende remover.
Como se pode ver pelo exemplo apresentado, um GI divide-se em duas componentes principais: Declaractions e Behaviour. Cada uma delas está dividida, por sua vez, em várias cláusulas.
A componente Declarations engloba a declaração do tipo de Guião (TYPE), dos símbolos que o identificam (SYMBOL), de Guiões externos ou de sub-Guiões que ele utiliza (EXTERNAL e SUBGI), dos argumentos da operação a executar (ARGS) e de variáveis locais, da aplicação, ou da apresentação que manipula (STATE-CTRL, STATE-APL e STATE-UI respectivamente).
A componente Behaviour engloba a declaração de condições de contexto necessárias para que a utilização do GI seja válida (CONTEXT), de acções de inicialização (INIT), da sequência de eventos que o GI aceita (EVSEQ), de condições a verificar e acções a executar para cada evento (TRANS) e da expressão a enviar à Aplicação para execução (EXEC).
Para descrever, em EVSEQ, as sequências possíveis de eventos existem os operadores de sequência (), paralelismo (com e sem sincronização, | e ||), repetição (*) e escolha (+).
Os eventos possíveis são, ou o evento especial input (input(v) corresponde à leitura da variável v), ou Guiões de Interacção (correspondendo ao processamento dos mesmos)
.
Na cláusula TRANS é ainda possível declarar eventos especiais, correspondentes a comandos pré-definidos: cancelamento do GI (CANCEL), confirmação do diálogo (OK), reinicialização do GI (RESET) e repetição do GI (APPLY).