ETELVINA U M G ERADOR D E P ERSONAGENS P ARA I NSTANT M ESSAGING Eduardo Jorge Costa Ribeiro...

12
ETELVINA UM GERADOR DE PERSONAGENS PARA INSTANT MESSAGING Eduardo Jorge Costa Ribeiro Universidade do Minho Departamento de Informática

Transcript of ETELVINA U M G ERADOR D E P ERSONAGENS P ARA I NSTANT M ESSAGING Eduardo Jorge Costa Ribeiro...

Page 1: ETELVINA U M G ERADOR D E P ERSONAGENS P ARA I NSTANT M ESSAGING Eduardo Jorge Costa Ribeiro Universidade do Minho Departamento de Informática.

ETELVINAUM GERADOR DE PERSONAGENS PARA INSTANT MESSAGING

Eduardo Jorge Costa Ribeiro

Universidade do MinhoDepartamento de Informática

Page 2: ETELVINA U M G ERADOR D E P ERSONAGENS P ARA I NSTANT M ESSAGING Eduardo Jorge Costa Ribeiro Universidade do Minho Departamento de Informática.

AGEN

DA

1. Apresentação do projecto e objectivos

2. Arquitectura da Etelvina

i. Motor da Etelvina

ii. Módulos , configurações e linguagem de configuração de

módulos

3. Base de conhecimento da Etelvina

i. Motivação

ii. Utilização de conhecimento na aplicação

iii. Extracção de conhecimento da Wikipédia

4. Conclusões e trabalho futuro

Page 3: ETELVINA U M G ERADOR D E P ERSONAGENS P ARA I NSTANT M ESSAGING Eduardo Jorge Costa Ribeiro Universidade do Minho Departamento de Informática.

1.APRESEN

TAÇÃO D

O PRO

JECTO E O

BJECTIVOS

O que é a Etelvina?

• Uma plataforma de criação de Elizas

• Totalmente configurável

A Etelvina é também a personagem criada ao longo do projecto, que permite demonstrar quais as potencialidades deste sistema, assim como servir de base para novas personagens.

Objectivos do projecto

i. Tornar a Etelvina uma presença funcional, sempre disponível num cliente de Instant Messaging.

ii. Construir uma ferramenta configurável, flexível e expansível, em que seja fácil a um qualquer utilizador compor módulos obtendo o comportamento desejado.

iii. Permitir o desenvolvimento de módulos com conhecimento próprio.

Exemplos de ferramentas úteis

•Calculadora

•Dicionários

•Tradutores automáticos

•Consulta de estado metereológico em

determinada localidade

•Outros

O que é uma Eliza?

Uma Eliza é um programa de computador que tem como objectivo simular um interlocutor a ter uma conversa com um ser humano, e deve o seu nome devido ao primeiro programa do género a surgir.

Page 4: ETELVINA U M G ERADOR D E P ERSONAGENS P ARA I NSTANT M ESSAGING Eduardo Jorge Costa Ribeiro Universidade do Minho Departamento de Informática.

2.ARQ

UICTECTU

RA DA ETELVINA

Esquema geral da arquitectura da Etelvina

Page 5: ETELVINA U M G ERADOR D E P ERSONAGENS P ARA I NSTANT M ESSAGING Eduardo Jorge Costa Ribeiro Universidade do Minho Departamento de Informática.

i.M

OTO

R DA ETELVINA

Motor da Etelvina: o que é?

•Módulo central da aplicação

•Desenvolvido de forma a permitir a ligação de

novos módulos

•Configurável através de um ficheiro XML

Funções do motor

•Controlar o fluxo de mensagens

•Interligar e executar os vários módulos que

compõem uma personagem

•Armazenar informações sobre os utilizadores

ligados à Etelvina

Exemplo de um ficheiro de configuração do motor

<etelvina> <general> <connection> <protocol>xmpp</protocol> <username>utilizadorX</username> <password>password</password> <displayname>Etelvina</displayname> <status>Supercalifragilisticoexpialidous</status> <hostname>talk.google.com</hostname> <port>5222</port> </connection> <database>etelvinaDB.db</database> <numberMessagesSaved>15</numberMessagesSaved> <numberRepetitionsAllowed>1</numberRepetitionsAllowed> <takeTimeToAnswer>true</takeTimeToAnswer> <timeToAnswerPerChar>0.3</timeToAnswerPerChar> <timeLimitToAnswer>5</timeLimitToAnswer> <defaultAnswerIsKnowledgement> true </defaultAnswerIsKnowledgement> </general> <modules> <module name="Etelvina::Meteo" <module conffile="meteorologia.conf"/> <module conffile="personalidade.conf"/> <module name="Etelvina::MatExp" <module conffile="matExp.conf"/> <module name="Chess::Game" <module conffile="xadrez.conf"/> </modules></etelvina>

Page 6: ETELVINA U M G ERADOR D E P ERSONAGENS P ARA I NSTANT M ESSAGING Eduardo Jorge Costa Ribeiro Universidade do Minho Departamento de Informática.

ii.M

ÓD

ULO

S, CON

FIGU

RAÇÕES E LIN

GU

AGEM

DE

CON

FIGU

RAÇÃO D

E MÓ

DU

LOS

Linguagem para criação de regras

Composto por três tipos de instruções:

a. Mensagens de entrada

b. Blocos de código

c. Mensagens de saída

Módulo da Etelvina: o que é?

•Bloco de regras que definem os comportamentos

da personagem

Tipos de regras

1. Regras de acção-reacção

2. Regras de acção-computação-reacção

3. Regras de acção-computação-reacção computada

Page 7: ETELVINA U M G ERADOR D E P ERSONAGENS P ARA I NSTANT M ESSAGING Eduardo Jorge Costa Ribeiro Universidade do Minho Departamento de Informática.

ii.M

ÓD

ULO

S, CON

FIGU

RAÇÕES E LIN

GU

AGEM

DE

CON

FIGU

RAÇÃO D

E MÓ

DU

LOS (CO

NT.)

Sintaxe das regras

Bloco de PerguntasInicia-se por "P:" e é seguido pelo texto a reconhecer como mensagem de entrada.Pode conter expressões regulares escritas em Perl.

Bloco de CódigoBloco opcional, que se inicia por "C:".Permite a escrita de código numa linguagem semelhante a Perl.

Bloco de RespostasBloco que contém o texto a devolver como resposta. Inicia-se por "R:".

Exemplo de regras

P: OláP: OiR: Olá

P: O meu nome é <nome,MWORD>.R: Olá <nome>!

P: Qual é o teu nome?P: Como te chamas?P: Nome?R: Eu chamo-me Etelvina.R: Eu sou a Etelvina.

P: Quantos anos tens?P: Qual a tua idade?C: $$idade = getIdade(14,02,1974);R: Tenho <idade> anos.R: Quantos anos me dás?R: Já tenho <idade>.

P: Qual a temperatura em <localidade,MWORD>?P: Em <localidade,MWORD>, quantos graus estão?C: $$valor = temperatura($$localidade);R: Em <localidade> estão <valor>ºC.R: Estão <valor>ºC em <localidade>.

Utilização de variáveis em regras

Bloco de Perguntas<nomeVariável,regExp>

Bloco de Código$$nomeVariável

Bloco de Respostas

<nomeVariável>

Page 8: ETELVINA U M G ERADOR D E P ERSONAGENS P ARA I NSTANT M ESSAGING Eduardo Jorge Costa Ribeiro Universidade do Minho Departamento de Informática.

3.BASE D

E CON

HECIM

ENTO

DA ETELVINA

• Evitar mensagens de entrada do utilizador não possuam resposta

Ter um tratamento que possibilite respostas quando não existe regras associadas

• Obter informações para responder questões dos utilizadores sobre variados temas

Valorização da diversidade e actualidade

• Armazenamento local para evitar constantes pesquisas em tempo de execução

Motivação para a criação de uma base de conhecimento

Page 9: ETELVINA U M G ERADOR D E P ERSONAGENS P ARA I NSTANT M ESSAGING Eduardo Jorge Costa Ribeiro Universidade do Minho Departamento de Informática.

ii. UTILIZAÇÃO

DE CO

NH

ECIMEN

TO N

A APLICAÇÃOEsquema geral de utilização de conhecimento na aplicação

Page 10: ETELVINA U M G ERADOR D E P ERSONAGENS P ARA I NSTANT M ESSAGING Eduardo Jorge Costa Ribeiro Universidade do Minho Departamento de Informática.

ii.EXTRACÇÃO

DE CO

NH

ECIMEN

TO DA W

IKIPÉDIA

Extracção de informação de infoboxes Extracção de informação de páginas genéricas

Chave Valor

nome FOX Portugal

nome completo Fox International Channels Portugal Lda

imagem Ficheiro:FOX wordmark-orange.svg

descricao Televisão por assinatura

país PRT

fundação 2003

pertence a Fox Broadcasting Company

proprietário News Corporation

slogan ''A Casa das Séries''

cobertura TV por Cabo, Satélite e IPTV

site http://www.fox.pt/

{{Info/Rede de televisão|nome = FOX Portugal|nome completo = Fox International Channels Portugal Lda|imagem = [[Ficheiro:FOX wordmark-orange.svg|200 px]]|descricao = [[Televisão por assinatura| Assinatura]]|país = {{PRT}}|fundação = [[2003]]|pertence a = [[Fox Broadcasting Company]]|proprietário = [[News Corporation]]|slogan = ''A Casa das Séries''|cobertura = TV por Cabo, Satélite e IPTV|site = http://www.fox.pt/}}

Excepções:

1. Páginas com redireccionamentos

2. Páginas de desambiguação

Page 11: ETELVINA U M G ERADOR D E P ERSONAGENS P ARA I NSTANT M ESSAGING Eduardo Jorge Costa Ribeiro Universidade do Minho Departamento de Informática.

4.CO

NCLU

SÕES E TRABALH

O FU

TURO

Conclusões

• Estrutura criada é expansível e configurável

• Configurações fáceis de alterar, com muitas potencialidades devido à utilização de código Perl

• Encadeamento de conversas não é trivial

• Base de conhecimento construída simples

Trabalho Futuro

• Criação de uma ferramenta para validação da sintaxe de configurações

• Contextualização de conversas

• Reacção a eventos do utilizador

• Suporte a conversas multi-utilizador

• Suporte a um maior número de linguagens de programação

• Extracção de informação de mais fontes e mais complexa

Page 12: ETELVINA U M G ERADOR D E P ERSONAGENS P ARA I NSTANT M ESSAGING Eduardo Jorge Costa Ribeiro Universidade do Minho Departamento de Informática.

ETELVINAUM GERADOR DE PERSONAGENS PARA INSTANT MESSAGING

Eduardo Jorge Costa Ribeiro

Universidade do MinhoDepartamento de Informática