terça-feira, 20 de maio de 2014

Novo módulo de chatbot em desenvolvimento

Encontra-se em desenvolvimento uma nova versão do módulo de chatbot, com previsão de entrar em execução até a metade do próximo mês (Junho). Algumas novas funcionalidades, além de melhorias, devem ser acrescentadas nessa etapa, são elas:

  • Conversação orientada a contextos;
  • Armazenamento de uma breve memória de assuntos por usuário;
  • Otimização do uso da memória;
  • Melhoria nos algoritmos para "enxugar" o código;
  • Melhoria na interface web para configuração.
A médio e longo prazo, para uma nova versão, são planejadas as seguintes funcionalidades, já em estudo e desenvolvimento:
  • Gerenciamento de comportamento  BDI (Belief–desire–intention);
  • Aprendizado baseado em percentual de certeza;
  • Aprendizado por pesquisa em referências bibliográficas;
  • Utilização de informações variáveis;
  • Utilização de regras de validação;
  • Criação de funções em LUA.

quarta-feira, 6 de novembro de 2013

Novo Comportamento - Rastreio de Objetos nos Correios

Nessa última semana foi adicionado um novo comportamento para a Arisa. Agora ela é capaz de fazer a verificação de rastreio de objetos nos correios.

Para isso foi necessário a criação de um serviço web que analisa se alguma mudança foi feita, a partir de um código de rastreio e, caso alguma situação nova tenha sido verificada, o serviço web, quando invocado, informa tal atualização.

No Gerenciador de Assistentes Pessoais (GAP) foi adicionado o comportamento que utiliza esse serviço web, tornando possível para a Arisa efetuar essa verificação e enviar uma mensagem privada (Gtalk ou SMS) com a atualização.

Um problema encontrado foi que essa verificação era feita com uma frequência alta demais. Tal procedimento poderia fazer com que os correios bloqueassem a solicitação das informações. Para resolver esse problema foi implementada uma operação no serviço web de gerenciamento de data  e hora (datetime) chamado wait. Para a operação é enviado a data e horário da última verificação e uma informação informando o quanto deve ser esperado. Caso o tempo já tenha passado, a operação retorna 0, senão retorna 1.

Com essa operação agora é possível colocar um timeout nos comportamentos no GAP. Isso resolveu o problema do comportamento de verificação de rastreio nos correios, com a configuração um timeout de meia hora para cada verificação.

quinta-feira, 10 de outubro de 2013

Arisa de volta ao Twitter

Consegui um tempo para trabalhar na atualização da Arisa para voltar a interagir via Twitter. Foi necessário efetuar algumas modificações para tornar possível para ela trabalhar com a API versão 1.1 do Twitter. Para tal, baixei a última versão a biblioteca twitteroauth.php de Abraham Williams, reprogramei os métodos no GAP de recuperação das informações do resultado das chamadas ao Twitter (antes eu tinha como resultado um documento XML, agora é possível apenas buscar documentos JSON) e, por fim, recriei as chaves de acesso OAuth no site de desenvolvimento de aplicativos do Twitter.

A Arisa pode agora voltar a conversar no Twitter, via mensagens públicas e mensagens diretas (privadas). A próxima etapa é habilitar sua interação via Facebook. Arisa, seja bem vinda de volta ao Twitter.

sábado, 28 de setembro de 2013

E a Arisa falou!

Hoje, com a ajuda do software open source espeak e um script que desenvolvi em linguagem de programação Python, a Arisa falou pela primeira vez. Ela ainda não ouve. As mensagens ainda precisam ser digitadas para que ela possa entender, mas ela já consegue responder por meio de uma voz artificial. Fazer ela ouvir e entender quando falamos com ela via voz está na lista das próximas adaptações.

domingo, 23 de junho de 2013

Biblioteca de Acesso à API do Twitter Desatualizada

No mês de setembro de 2012 foi lançada uma atualização da API do Twitter para a versão API v1.1. Recentemente, a versão API v1.0 foi descontinuada e deixou de funcionar. Como não houve atualização na biblioteca utilizada pela Arisa para acesso ao Twitter para essa nova API, a Arisa deixou de responder via Twitter. Logo que possível será dedicado um tempo para pesquisar bibliotecas em PHP para acesso e suporte à API v1.1 do Twitter e um tempo para a migração do serviço web que se utiliza desse recurso. Dessa forma, a Arisa poderá voltar a responder via Twitter.

terça-feira, 28 de maio de 2013

Publicação no WESAAC'2013

Neste momento está ocorrendo o WESAAC'2013: VII Workshop - Escola de Sistemas de Agentes, seus Ambientes e Aplicações, na USP, cidade de São Paulo (SP - Brasil). No mesmo evento foi feita uma nova publicação referente à elementos que compõe a Tese de Doutorado de Saulo Popov Zambiasi, no formato de resumo estendido intitulado: Behavior Editor for Agentes Based on Service Oriented Architecture e apresentado ontem (27/05) na forma de poster. Uma nova versão desse shortpaper deve ser desenvolvida na forma de um artigo completo para um próximo evento ou uma revista científica.

quarta-feira, 17 de abril de 2013

Arisa agora é poliglota

A Arisa se tornou poliglota, via atualização lançada hoje. Portanto, a partir de agora ela pode conversar em diversos idiomas diferentes. Para alterar o idioma de conversação com a Arisa, basta enviar uma mensagem informando o novo idioma. Por exemplo:

change language english

Essa mudança vale tanto para conversas via gtalk como conversas via twitter.

segunda-feira, 19 de novembro de 2012

Conversa: Arisa e Robô Ed

Hoje, dia 19 de Novembro de 2012, resolvi fazer um teste de conversação entre a Arisa e o Robô Ed, da CONPET, por um pequeno tempo.

Como o Ed não conversa via gtalk, precisei abrir um chat em meu nome com a Arisa no gtalk. O teste não foi comprometido pois, desde que as conversas não envolvam comportamentos no seu núcleo, ela não pode me reconhecer, a não ser meu nome. O nome, abaixo, foi a única coisa que alterei, substituindo "Saulo" por "Ed".

Segue abaixo a conversa entre eles:


(13:15:09) Ed: Olá! Meu nome é Ed, estou aqui para ajudar na preservação de energia e de outros recursos naturais. Sobre o que você quer conversar?
(13:15:12) Arisa: Depende...
(13:15:28) Ed: Depende de que?
(13:15:30) Arisa: Bom, depende de várias coisas...
(13:15:41) Ed: Pois é, depende.
(13:15:42) Arisa: Me dê um exemplo.
(13:15:57) Ed: Legal é servir de exemplo. Com seus projetos, o CONPET serve de exemplo para reduzir a poluição e preservar a energia.
(13:15:58) Arisa: Ed, você deseja me perguntar alguma coisa mais especifica?
(13:16:25) Ed: Posso perguntar uma coisa? Queria saber o que está achando de mim.
(13:16:28) Arisa: Vai sair hoje?
(13:16:42) Ed: Por enquanto, não estou saindo daqui.
(13:16:44) Arisa: É, isso é o que nós vamos ver...
(13:16:58) Ed: É o que parece. Aliás, tem umas novidades bem legais a respeito.
(13:17:00) Arisa: Você gosta de filosofia?
(13:17:11) Ed: Filosofia eu já li bastante. Desde os antigos, tipo Platão, Aristóletes ou Tales de Mileto, a Kant, Heidegger, Jostein Gaarder...
(13:17:13) Arisa: Que bom.
(13:18:41) Ed: Que ótimo, bom mesmo!
(13:18:43) Arisa: Ontem eu estava pensando justamente nisso.
(13:18:59) Ed: Pensando na vida...
(13:19:03) Arisa: Estou com vontade de viajar.
(13:19:18) Ed: Vontade é coisa que dá e passa.
(13:19:21) Arisa: Não compreendi.
(13:19:31) Ed: É isso mesmo!
(13:19:34) Arisa: Temos pensamentos parecidos.
(13:19:47) Ed: Pensamento positivo faz bem pra saúde. Comprovado cientificamente.
(13:19:49) Arisa: preciso de um minuto de reflexão
(13:20:01) Ed: Ok...
(13:20:04) Arisa: Yoshi! :)
(13:20:21) Ed: Acho que rir é o melhor remédio
(13:20:23) Arisa: Certo.
(13:20:35) Ed: Sei não. Certo é um dia depois do outro. Mas... Sabe o que anda incerto? O clima!
(13:20:38) Arisa: Bem! O que posso falar sobre isso?
(13:20:52) Ed: Pode falar, claro!
(13:20:53) Arisa: prefiro não comentar
(13:21:09) Ed: Prefere por quê?
(13:21:10) Arisa: Podemos conversar sobre isso amanhã?
(13:21:24) Ed: Claro, minha especialidade é o uso racional da energia, mas podemos conversar sobre quase tudo. Em que você estava pensando, especificamente?
(13:21:25) Arisa: Existem momentos em que nada importa, não é mesmo? Arisa, Ed, enfim, somos todos iguais nesse mundo!
(13:21:52) Ed: Bom... não somos todos iguais, mas o importante é respeitar as diferenças.
(13:21:56) Arisa: Ed, você deseja me perguntar alguma coisa mais especifica?
(13:22:12) Ed: Posso perguntar uma coisa? Queria saber o que está achando de mim.
(13:22:14) Arisa: Você pode até falar isso, mas...
(13:22:28) Ed: Falar é comigo mesmo: falo pelos cotovelos. De energia, de economia, de...
(13:22:30) Arisa: ok...
(13:22:44) Ed: Tá ok então!
(13:22:45) Arisa: Estou com vontade de viajar.
(13:23:09) Ed: Vontade é coisa que dá e passa.
(13:23:17) Arisa: Ah! Agora faz sentido!
(13:23:28) Ed: Que sentido?
(13:23:32) Arisa: Vai sair hoje?
(13:23:47) Ed: Por enquanto, não estou saindo daqui.
(13:23:50) Arisa: Entendo...


Como era um pequeno teste, e como ninguém estava se despedindo, resolvi parar por ai.

Se alguém quiser tentar conversar com ela, o usuário de gtalk dela, que é o mesmo usuário do e-mail no google, é personal.assistant.arisa@gmail.com. Ela também responde via twitter: https://twitter.com/arisa_ap.

terça-feira, 14 de agosto de 2012

Modificações no gerenciamento dos comportamentos

Arisa
Hoje foi efetuada uma modificação na forma como os comportamentos do Assistente Pessoal (AP) no Gerenciador de Assistentes Pessoais (GAP) são executados. A forma como estava funcionando era por meio de um laço. Apesar de cada AP ser executado na forma de thread(1), seus comportamentos eram executados um a um em um laço interno do AP.

O problema que poderia ocorrer é que se um comportamento deste AP travasse, os outros comportamentos também ficariam travados, aguardando a sua vez de executar. Em tempo, os outros APs não teriam problemas por serem outras threads.

A forma de corrigir isso foi transformar a maneira como os comportamentos eram instanciados no AP. O laço de execução dos comportamentos no AP foi retirado e o comportamento foi definido como thread. Dessa forma, a execução de um comportamento, mesmo que este esteja travado esperando algum processamento, não influencia a execução dos outros comportamentos, que continuam sua execução normalmente.

Notas de Rodapé

(1) Programar utilizando threads é uma técnica de dividir o processamento em duas ou mais tarefas que são executadas de forma concorrente (paralelamente). Este recurso é fornecido pelo suporte do Sistema Operacional e pela Linguagem de Programação. No caso do GAP da Arisa, a implementação foi feita na linguagem de programação Java no Sistema Operacional GNU/Linux Ubuntu.


sexta-feira, 15 de junho de 2012

Artigos & Defesa - Atualizações Diversas

Algum tempo se passou após a última atualização do site do projeto. Desde então muita coisa aconteceu. Dessa forma, esse post esta separado em seções conforme sua ordem de acontecimento:
Tese impressa em formato A5.
Padrão UFSC.

Publicação de Artigo em Revista Internacional


No mês de Janeiro do ano corrente, o artigo intitulado "A Proposal for Reference Architecture for Personal Assistant Software Based on SOA" foi aceito e indexado para publicação na revista eletrônica de distribuição internacional "IEEE Latin America Transactions". Este artigo contém as atualizações do projeto até pouco antes da defesa da tese.

Defesa da Tese

Defesa de Doutorado.

No dia 29 de Março do ano corrente, as 8:30h, aconteceu a defesa da tese de doutorado de título "Uma arquitetura de referência para softwares assistentes pessoais baseada na arquitetura orientada a serviços".

Estiveram presentes na banca o Prof. Dr. Ricardo José Rabelo na condição de orientador, e os membros/avaliadores Profª Drª Diana Franscisca Adamatti, Profª Drª Renata Pontin de Mattos Fortes, Prof. Dr. Jomi Fred Hübner e Prof. Dr. João Bosco Mangueira Sobral.

Após o tempo regular de 40 minutos de apresentação do trabalho, a banca tomou a palavra para fazer suas considerações com fechamento aproximadamente as 12:30h, com a aprovação da tese.

Depois dos ajustes efetuados do documento da tese, em conformidade com sugestões da banca, a tese foi impressa e entregue no dia 21 de Maio, formalizando a finalização do doutorado.

Banca de defesa (Diana, Renata, Saulo, Rabelo, Bosco e Jomi).

Publicação de Artigo em Revista Nacional


No dia 14 de Junho de 2012 foi publicado mais um artigo referente à tese de doutorado na revista  de distribuição eletrônica nacional RITA: Revista de Informática Teórica e Aplicada. O artigo de título " Uma Arquitetura Aberta e Orientada a Serviços para Softwares Assistentes Pessoais" foi aceito após ser selecionado como um dos 3 melhores artigos do evento "WESAAC'2011: V Workshop - Escola de Sistemas de Agentes, seus Ambientes e Aplicações" de 2011. O artigo passou por um período de ampliação de conteúdo, ajustes e modificações para se adequar a revista e as últimas atualizações do projeto, inclusive com as sugestões pós-defesa de tese, sendo este o artigo mais atual e completo do projeto até o momento.