AUTOR(ES): AMÓS CORCINO DOS SANTOS, DANYELLE FERREIRA GARDIANO, GABRIEL HIPÓLITO CABRAL

Documentos relacionados
Manual do Tutor PIRELLI TYRE CAMPUS

Introdução a Programação

Desenvolvimento de Aplicações Desktop

AULA 4 - FLUXOGRAMAS PARTE 1 Noções sobre a ferramenta Flowgorithm para construção de fluxogramas

Manual de Acesso ao Ambiente Usuário: Aluno

DEINF - UFMA Especialização em Análise e Projeto de Sistema

Novo Sistema de Relatórios. Associado. Informação Confidencial

Aula 2 BD Introdução. Profa. Elaine Faria UFU

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Técnicas de Programação

3 Arquitetura do Sistema

Instalação e utilização do Software Pináculo SMS

Programação Estruturada Aula - Introdução a Linguagem de Programação

Orientações básicas para a navegação no ambiente virtual. Curso de Especialização em Educação na Diversidade e Cidadania, com ênfase na EJA

SISTEMA DE GESTÃO DE RECURSOS HUMANOS

Manual do Usuário Network

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O

Universidade Estadual de Feira de Santana Departamento de Ciências Exatas. Clone do MatLab. João Carlos Nunes Bittencourt. Feira de Santana, 2008

Programação Procedimental

FACULDADE DE CIÊNCIA DE ENGENHARIA DE SOFTWARE MATRIZ CURRICULAR DO CURSO DE ENGENHARIA DE SOFTWARE PRIMEIRO PERÍODO SEGUNDO PERÍODO

Processos de software

Inteligência Computacional Aula 2 - Introdução ao MatLab Graduação /2

Bancos de Dados Notas de Aula Introdução Prof. Dr. Daniel A. Furtado

1. INTRODUÇÃO A MODELAGEM DE DADOS

A c c e s s B á s i c o

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

Assistente de Configuração de URA

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Sistemas da Informação. Banco de Dados I. Edson Thizon

Bem vindo à semana 14! Tema central: Banco de Dados

Algoritmos e Programação

1.1 Linguagens de Programação

Introdução à Programação

Agentes pedagógicos. 2. Referencial teórico

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior

Ferramenta de apoio a identificação de eventos utilizando Linguagem Natural. Aluno: Ricardo Tomelin Orientador: Everaldo Artur Grahl

Algoritmos e Programação

APLICATIVO PARA ENSINO DE ENGENHARIA QUÍMICA BÁSICA

Manual Converte-MV S_Line

Programação de Computadores I Introdução PROFESSORA CINTIA CAETANO

Esta primeira parte do manual do Moodle está destinada para orientações em como acessar o curso, atualizar o perfil e realizar as atividades.

DESENVOLVIMENTO DE UM APLICATIVO MÓVEL (JOGO) PARA AUXÍLIO NO ENSINO DE MATEMÁTICA. Beatriz Polita Franchin 1, Elvio Gilberto da Silva 2

Centro de Suporte. (Sistema Android) RCAMail Manual de Utilização Página 1

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 2. Prof. Leonardo Vasconcelos

MANUAL DO PROFESSOR AMBIENTE VIRTUAL DE APRENDIZAEGEM

MANUAL DE UTILIZAÇÃO DO SISTEMA LUX NF-E V

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Instituto de Ensino Superior de Rio Verde - IESRIVER SEMIPRESENCIAL MANUAL DO ALUNO SEMIPRESENCIAL MANUAL DO ALUNO MOODLE

PLANO DE AÇÃO MÓDULO I

Algoritmos Fundamento e Prática

Manutenção de Boletos Emitidos Envio de Ocorrências ao Banco

Manual de Utilização PrintScout

Introdução à Computação

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 29

Arquiteturas RISC e CISC. Adão de Melo Neto

Linguagem de Descrição de algoritmos

Sibele Loss Edimara Heis

Professora Orientadora do Departamento de Ciências Exatas e Engenharias. 4

GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP. Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri

AMBIENTE DIDÁTICO GRÁFICO PARA A COMPREENSÃO DE LÓGICA DE PROGRAMAÇÃO. Rodrigo Ferreira da Silva

XIV CIAEM: Guia para Autores(as) Versão 1.1 Última atualização: abril de 2013.

Data Warehouse ETL. Rodrigo Leite Durães.

LO GICA E TE CNICA DE PROGRAMAC ÃO. TÁSSIO JOSÉ GONÇALVES GOMES

AMBIENTANDO-SE NA PLATAFORMA MOODLE

EXERC EXAME DISCIPLINA: ALG ESTRUTURA DE DADOS I

Instruções de Operação

FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS

4 Arquitetura Adotada

AULA 02. OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO

UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE SISTEMAS DE INFORMAÇÃO - BACHARELADO. Eduardo Cesar Eberle Prof. Wilson Pedro Carli, Orientador

Sistema Gerenciador de Aprendizagem - 3.0

ELABORADO POR ALBINO SZESZ JUNIOR E JEAN POPOATZKI (NUTEAD/UEPG) PONTA GROSSA, MARÇO DE 2017

O Seletor 2.0 o ajudará a selecionar os seguintes Evaporadores com Ar Forçado da Linha MIPAL:

Estrutura de Dados e Lógica de Programação. Cátia Alves Marcelo Nunes 102 h/a 17/08/2015 a 12/12/2015

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Manual de Geração de Arquivos para o SIB versão 3.0

SISTEMA PARA MONITORAR O IDOSO EM RELAÇÃO À VULNERABILIDADE SOCIAL. Felipe Lima Morais¹; Dr. Odival Faccenda²; Dra. Márcia Regina Martins Alvarenga ³

Núcleo EAD Tutorial TUTORIAL AMBIENTE VIRTUAL DE APRENDIZADO - AVA

Conceitos Básicos de Algoritmos

SGCD 2.0 Sistema Gerenciador de Conteúdo Dinâmico

Banco de Dados? Banco de Dados Professor Vanderlei Frazão

MANUAL DO ALUNO PORTAL UNIVERSITÁRIO - UniMB Sanmia Shunn de Oliveira Jesus Costa 1 Walex Milto Martins dos Santos 2

Algoritmos Computacionais

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

Plano de Testes VideoSystem

Sistemas de Informação e Decisão. Douglas Farias Cordeiro

Introdução a orientação a objetos

Laboratório de Programação 1 Algoritmos e a Lógica de Programação

27/02/2016 UML. Prof. Esp. Fabiano Taguchi DIAGRAMAS DE SEQUÊNCIA

TÍTULO: FERRAMENTA PARA CRIAÇÃO, VALIDAÇÃO E RESOLUÇÃO DE DESAFIOS LÓGICOS TEXTUAIS

Universidade Federal de Roraima Diretoria de Tecnologia da Informação SIG Software e Consultoria em T.I

Fundamentos de Programação Introdução

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Sumário. CEAD - FACEL Manual do Aluno, 02

Sistema de Atendimento Telefônico Automático. Manual do Usuário

Introdução à Ciência da Computação

Transcrição:

16 TÍTULO: SISTEMA INTERATIVO INTELIGENTE - SII CATEGORIA: CONCLUÍDO ÁREA: CIÊNCIAS EXATAS E DA TERRA SUBÁREA: COMPUTAÇÃO E INFORMÁTICA INSTITUIÇÃO: FACULDADE DE TECNOLOGIA DE CARAPICUIBA AUTOR(ES): AMÓS CORCINO DOS SANTOS, DANYELLE FERREIRA GARDIANO, GABRIEL HIPÓLITO CABRAL ORIENTADOR(ES): ANDREIA CRISTINA GRISOLIO MACHION, RODRIGO BOSSINI TAVARES MOREIRA, SILVIA MARIA FARANI COSTA

RESUMO O aprendizado de linguagens de programação representa uma dificuldade para boa parte dos estudantes de cursos de ciências exatas e tecnológicas (BOTELHO, 2008). Existem diversos recursos tecnológicos com o objetivo de auxiliar os estudantes a melhorarem seu desempenho, dentre os quais destacam-se os Sistemas Tutores Inteligentes (STI). As arquiteturas dos STI variam entre diferentes sistemas, sendo que alguns empregam gerenciamento de diálogos, visando tornar o seu uso mais agradável ao estudante. Para que o gerenciamento de diálogos apresente características como manutenção do tema abordado, percepção da mudança de tema e intenções do usuário, foi desenvolvido o recurso Estado da Informação EI (TRAUM & LARSSON, 2003), que permite agregar aos gerenciadores de diálogos soluções que viabilizam a conversa com seres humanos ou outros sistemas. Com base na arquitetura dos STI e aplicando o recurso Estado da Informação, foi desenvolvido o Sistema Interativo Inteligente SII, que tem por objetivo auxiliar estudantes no aprendizado dos conceitos básicos da linguagem de programação C. Utilizando uma interface amigável e no formato de chat, o SII apresenta, por meio de uma conversa com o usuário, os dados contidos em sua base de conhecimentos. INTRODUÇÃO A maioria dos cursos de ciências exatas e tecnológicas possui em sua grade curricular, disciplinas que envolvem linguagens de programação. Para a maioria dos estudantes, essas disciplinas são problemáticas, pois requerem raciocínio lógico e habilidades matemáticas, além de familiaridade com regras da gramática da própria linguagem escrita e falada (BOTELHO, 2008). Para auxiliar os estudantes, surgiram nos anos 50, sistemas orientados ao ensino, chamados Computer Aided Instruction (CAI) e Intelligent Computer Aided Instruction (ICAI). No início da década de 80 esses programas evoluíram para os Sistemas Tutores Inteligentes (STI) (BOTELHO, 2008), que têm a premissa de simular um tutor humano na tentativa de melhorar o aprendizado, provendo feedback aos estudantes, conforme exploram o conteúdo. A ideia inicial desse tipo de sistema era simular o que seria considerado um ensino adequado e de fácil

aprendizado para os usuários, de acordo com dados de pesquisas sobre métodos didáticos e sobre cada domínio incluído no sistema (GOULART & GIRAFFA, 2001). Com o passar do tempo, surgiram vários STI, voltados a diversos domínios de conhecimento. O uso de gerenciadores de diálogos para interfaces homem-máquina não é um estudo recente. Duas pessoas conseguem estabelecer entre si um diálogo eficiente e eficaz. Para que um diálogo seja estabelecido com um ou mais computadores, sistemas gerenciadores de diálogos são necessários. Isso porque possibilitam, entre outras coisas, a conversão do diálogo no nível da linguagem humana para instruções objetivas interpretadas pelo computador, que permitem a execução de tarefas e a solução de problemas. (McROY et al, 1999). A aplicação de gerenciadores de diálogos em sistemas computacionais tem como um de seus objetivos o aprimoramento da interface com o usuário, além da redução da quantidade de controles visuais. Existem sistemas com essa funcionalidade para várias aplicações, como por exemplo, o aplicativo ProGuide (AREIAS & MENDES, 2007) que é utilizado em conjunto com outros sistemas, como ferramenta adicional, visando construir os diálogos que serão enviados aos usuários. Tendo em vista os aspectos de STI observados, pretende-se neste projeto desenvolver uma ferramenta para auxiliar estudantes dos semestres iniciais de ciências exatas e tecnológicas em seus estudos sobre conceitos básicos da Linguagem C, tendo como base as arquiteturas clássicas dos STI, incluindo um módulo gerenciador de diálogos baseado no conceito de Estados de Informação (TRAUM & LARSSON, 2003), para realizar a interação com os estudantes. Esta ferramenta é chamada Sistema Interativo Inteligente (SII). OBJETIVO GERAL Este projeto tem como objetivo principal a construção de uma ferramenta baseada na arquitetura clássica de STI voltados para linguagens de programação, incluindo um gerenciador de diálogos, visando auxiliar os alunos em suas séries iniciais com os estudos sobre conceitos básicos da linguagem C.

OBJETIVOS ESPECÍFICOS A fim de cumprir o objetivo geral especificado, tem-se os seguintes objetivos específicos: Modelar um repositório de dados suporte para a aplicação; Desenvolver um gerenciador de diálogos com base em Estados de Informação; Definir uma arquitetura baseada na arquitetura clássica dos STIs, incluindo um gerenciador de diálogos; Construir uma interface amigável para o estudante. DESENVOLVIMENTO Primeiramente, foi feita uma análise dos detalhes intrínsecos na comunicação entre humanos, no idioma português do Brasil, identificando-se expressões-chave contidas nas frases que denotam a sua natureza (afirmação, interrogação etc.). Com base nesses dados, desenvolveu-se o método aplicado neste projeto, que consiste em identificar o tipo de frase por meio das expressões-chave contidas nela, retirar essas expressões da frase e considerar as palavras restantes como o tópico do assunto sobre o qual o usuário quer conversar. Foi construído um banco de dados de expressões-chave comumente encontradas em frases escritas em português e também um repositório de dados de conhecimentos sobre linguagem C. O processamento do SII consiste então em identificar o sentido da frase e o tópico do assunto, buscar conhecimentos em seu repositório que atendam à requisição feita pelo usuário, fazer inferências, a fim de identificar possíveis ideias opostas entre o que o usuário afirma e o que está na base de conhecimentos, também identificar consequências e finalmente, gerar uma frase de resposta ao usuário. Repositórios de dados adicionais foram criados como apoio para as funcionalidades do sistema, a saber: Sinônimos, Silogismos e Usuários. Para a execução dessas tarefas, o sistema conta com uma interface do tipo janela de chat, onde o usuário digita suas frases para o sistema e recebe também por escrito as respostas do sistema.

O processamento das frases é feito no gerenciador de diálogos (Figura 1), composto por seis módulos: Estado da Informação (TRAUM & LARSSON, 2003); Entrada; Interpretador; Motor de buscas e inferências; Gerador de respostas; Saída. Figura 1 Arquitetura Funcional do SII A seguir, são descritos em detalhes cada módulo do gerenciador de diálogos. Estado da Informação O Estado da Informação - EI (TRAUM & LARSSON, 2003), é uma estrutura de dados concebida para fins de apoio funcional aos gerenciadores de diálogos. Estruturas desse tipo podem conter tantos campos quantos forem necessários para a funcionalidade do projeto, os quais são acessados, tanto para

escrita quanto para leitura, dependendo do momento em que o programa se encontra, interpretando frases do usuário ou gerando frases para resposta. Além disso, elas podem armazenar dados como a frase de entrada do usuário, o tema atual da conversa, se o usuário apresenta tendências de satisfação ou insatisfação, o horário da última frase trocada e quem a gerou (usuário ou sistema), entre outros. Com o uso do EI, é possível, por exemplo, manter continuidade na conversa, sem que seja necessário ao usuário repetir a todo momento qual o tema do assunto, pois esse é escrito no EI, para uso no decorrer da conversa. Ao se detectar uma mudança de tema, esse campo é atualizado com o novo valor. Inúmeras variações na implementação do EI podem ser encontradas nos projetos existentes. Sabe-se que quanto mais complexo e repleto de campos, maior a sua eficiência em colaborar com o estabelecimento de um diálogo bem-sucedido entre um ser humano e o computador (TRAUM & LARSSON, 2003). No SII, os elementos que compõem o EI são: Frase digitada, Afirmação, Negação, Questão, Saudação, Domínio, Assunto, Tópico, Conhecimentos, Consequência, Último Domínio, Último Assunto, Último Conhecimento e Resposta. Entrada O módulo Entrada serve como ponte entre a interface visual do sistema e o Gerenciador de Diálogos. Os dados inseridos pelo usuário são processados primeiramente por este módulo. Suas funções são: Avaliar o texto inserido pelo usuário: Caso o texto seja uma string vazia, ou uma sequência de caracteres que o algoritmo avalie como texto sem sentido, este módulo rejeita a entrada de dados do usuário. Neste caso, o sistema emite uma mensagem explicando o ocorrido e solicita que seja digitado algo que faça sentido; Definir o domínio: Há ocasiões nas quais o usuário define o domínio da conversa manualmente. O módulo entrada é responsável por receber o nome do domínio escolhido pelo usuário e enviá-lo ao EI para atualização do domínio.

Registrar a frase digitada: Quando o usuário digita uma frase que é aprovada pelo analisador de textos, este módulo a envia ao EI para atualização da frase. Interpretador O Interpretador, idealizado e desenvolvido pelos autores do projeto SII, detém funcionalidades de análise textual que dependem diretamente dos ajustes feitos pelo administrador do sistema. Suas funções são: Identificar o sentido da frase do usuário (questão, afirmação, negação, saudação); Identificar qual o domínio e o tópico a serem pesquisados pelo sistema para que atenda este usuário. A inteligência deste módulo reside na capacidade de identificar o sentido das frases do usuário, além de determinar o tópico ou assunto a ser considerado pelo sistema. Motor de Buscas e Inferências O Motor de Buscas e Inferências, ou simplesmente Motor é o módulo responsável por localizar os conhecimentos adequados para o contexto do diálogo entre o usuário e o sistema. Além de encontrar conhecimentos adequados, verifica a existência de relações de causa e consequência decorrentes do contexto atual da conversa, por meio do cadastro de silogismos, preenchido pelo usuário administrador. A inteligência deste módulo reside na capacidade de prever consequências ou determinar causas para as situações comentadas durante o diálogo, e também no fato de o motor reconhecer sinônimos de palavras. Assim, os usuários não são obrigados a digitar em suas consultas exatamente os termos existentes na base de conhecimentos, e o administrador não é obrigado a digitar várias versões do registro de um conhecimento, utilizando palavras diferentes para atender à forma de escrever do usuário. Basta preencher um cadastro de sinônimos. Essas funcionalidades, junto aos algoritmos de comparação de palavras e localização de expressões em textos, garantem ao sistema uma capacidade de adaptação imediata à forma de escrever do usuário, quer utilize palavras que não

estão diretamente escritas nos registros de conhecimentos, quer escreva com alguns erros de ortografia. Gerador de Respostas No Gerador de Respostas ocorre a penúltima etapa de processamento, antes que a resposta final seja enviada ao usuário. As tarefas deste módulo incluem: Acrescentar expressões de concordância ou discordância ao conhecimento selecionado pelo Motor; Adicionar expressões que sirvam de ligação entre o conhecimento selecionado e a conclusão ou consequência, se existir alguma; Acrescentar expressões indicando a espera de uma nova pergunta do usuário; Gerar uma mensagem ao usuário conduzindo o diálogo em caso de nenhum tópico ter sido identificado na última frase recebida. Saída O módulo Saída é o último estágio do Gerenciador de Diálogos do SII. Neste módulo, são executadas as seguintes tarefas: Enviar ao usuário a frase digitada, precedida do nome do usuário; Enviar ao usuário a resposta gerada pelo sistema, precedida do identificador SII -> ; Enviar ao usuário o nome do domínio atual; No início da conversa, enviar ao usuário a mensagem de boas-vindas. Essa tarefa é executada assim que o módulo Saída é iniciado pela primeira vez; Limpar os campos utilizados no Estado da Informação, preparando-o para a próxima iteração do diálogo. Armazenamento dos Dados O SII opera com algoritmos de pesquisa e comparação de textos que oferecem alguns diferenciais se comparados às pesquisas comumente realizadas por meio de instruções SQL. Por exemplo, é possível retornar um resultado satisfatório para uma pesquisa, mesmo que haja erros de digitação, ou mesmo que o repositório de dados possua apenas sinônimos do termo digitado. Caso o sistema precise encontrar o termo laco, com o uso desses algoritmos, o resultado será

satisfatório, podendo retornar laço, loop ou estrutura de repetição (MIZRAHI, 1990). Seria possível trabalhar esses algoritmos em conjunto com SGBD s relacionais, porém, toda a funcionalidade de pesquisa dos SGBD s ficaria subutilizada. Sendo assim, o SII emprega o sistema de arquivos do sistema operacional como base de dados, o que dispensa a instalação de um SGBD, facilita a portabilidade do projeto e oferece um resultado satisfatório na pesquisa e comparação de textos. A Figura 2 mostra a estrutura hierárquica dos domínios inseridos no SII. Figura 2 Estrutura Hierárquica da Base de Conhecimentos Ferramentas de desenvolvimento Para o desenvolvimento do SII, foi selecionada somente a IDE Delphi, da Embarcadero (antigamente da Borland), que utiliza Object Pascal como linguagem de programação e ambiente de desenvolvimento visual. O Banco de Dados foi implementado em arquivos de texto, conforme já citado. RESULTADOS Como resultado do desenvolvimento do SII, obteve-se um sistema rápido, leve, de fácil portabilidade e intuitivo, além de versátil no que se refere à sua configuração. A Figura 3 mostra a tela que permite o cadastro de novos domínios na base de dados.

Figura 3 Inserção do Domínio Linguagem C Ao ser testado, o SII causou boa impressão em todos os usuários, além de ter se mostrado uma boa boa ferramenta de apoio aos estudos. Ele foi capaz de responder a questionamentos feitos de diversas formas, inclusive com frases muito curtas, mal formuladas ou com erros de ortografia por parte do usuário. A Figura 4 exibe um exemplo de tela de diálogo. Figura 4 Tela de Chat do SII CONSIDERAÇÕES FINAIS O desenvolvimento do SII trouxe aprendizado e conhecimentos de grande valor, visto que o trabalho no campo da inteligência artificial é considerado como um

dos pilares da tecnologia para a sociedade contemporânea. Foi uma tarefa árdua, trabalhosa, porém gratificante, sobretudo pelo fato de exigir a superação das dificuldades e da falta de informações claras e detalhadas neste campo. O desenvolvimento empírico eleva a capacidade de reagir a situações adversas e intensifica a criatividade. Do ponto de vista técnico, considera-se que os objetivos inicialmente propostos foram todos atingidos, pelo que se considera o projeto SII como bem-sucedido. Versões futuras podem ser consideradas, como a integração com sistemas de conversão de voz em fala e vice-versa, o que permitiria a sua utilização como aplicativo mobile via voz. FONTES CONSULTADAS AREIAS, C.; MENDES, A. A tool to help students to develop programming skills. International Conference on Computer Systems and Technologies CompSysTech 07-2007 (http://ecet.ecs.uni-ruse.bg/cst07/ - 09/07/2015, 20h32) BOTELHO, C. Sistemas Tutores no Domínio da Programação. Revista de Informática Aplicada, vol. IV, nº01 JAN/JUN 2008 (http://www.ria.net.br/index.php/ria/article/viewfile/34/34-10/07/2015, 19h55) GOULART, R.; GIRAFFA, L. Arquiteturas de Sistemas Tutores Inteligentes. Faculdade de Informática, PUCRS Brasil - 2001 (www.inf.pucrs.br 17/12/2015, 22h55) McROY, S.; et al. Building Intelligent Dialogue Systems. Natural Language and Knowledge Representation Research Group University of Wisconsin-Milwaukee 1999 (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.480.1575&rep=rep1&type =pdf 22/02/2016, 20h05) MIZRAHI, V. Treinamento em Linguagem C Curso Completo, Módulo 1. 1. ed. Makron Books, 1990, 127 p. TRAUM, D.; LARSSON, S. The Information State Approach to Dialogue Management. University of Southern California Institute for Creative Technologies, Department of Linguistics, Gothenburg University, 2003. (http://people.ict.usc.edu/~traum/papers/traumlarsson.pdf - 19/11/2014, 19h36)