Universidade Federal do Espírito Santo Inteligência Artificial Agenda Semântica Grupo: Francisco Rodrigues Júnior Guilherme Daher Ferreira Luana Vieira Morellato Renan Rigo Vitória 2007/02
Agenda Semântica Relatório Final apresentado como requisito para a conclusão da Disciplina Inteligência Artificial, ministrada aos alunos dos cursos de Ciência e Engenharia da Computação e do Mestrado em Informática da UFES, por Prof. Dr. Giancarlo Guizzardi e Prof a. Dra. Renata Silva Souza Guizzardi. Sistemas Multiagentes Análise e Projeto usando ARKnowD
1 Descrição do Problema 1.1 A web de hoje A World Wide Web (WWW) foi projetada para ser um espaço de informação, de maneira que ela tem mudado a forma como as pessoas se comunicam hoje e como os negócios são conduzidos. Ela faz parte de uma revolução que está transformando o mundo rumo à sociedade da informação. Um dos objetivos da Web é permitir a comunicação entre humanos e também entre máquinas. Acontece que a maioria do conteúdo que foi e é criado na Web hoje é entendido somente pelas pessoas e não pelas máquinas, tornando inviável a troca de informação entre estas. Tanto que, a linguagem HTML que é a geralmente usada para criar conteúdos, tem limitações para classificar blocos de textos nas páginas, exceto para o papel que eles desempenham na organização e no layout visual desejado dos documentos. 1.2 A Web Semântica A Web Semântica (WS) é uma extensão da Web atual na qual as informações recebem significados bem definidos, melhorando a capacidade das pessoas e computadores trabalharem em cooperação. Essa extensão parte de uma rede que consiste de vários documentos legíveis para as pessoas, para uma rede que inclui dados e informações para os computadores manipularem. A WS é uma Web de informação processável por máquina. Com a WS, os usuários, através dos agentes de softwares, poderão não apenas pesquisar documentos que contêm dados, mas também pesquisar os dados propriamente ditos através de técnicas de localização e identificação semântica. Esta nova Web dará suporte para os agentes entender os dados. Os computadores poderão então desempenhar tarefas importantes, de forma automática e instantânea, tarefas essas que hoje são feitas manualmente pelos próprios usuários. O conceito de dados ou documentos entendíveis por máquina não implica em alguma inteligência artificial mágica que permitem as máquinas compreenderem expressões humanas. Isso apenas indica a habilidade das máquinas resolverem um problema bem definido, realizando operações bem definidas sobre os existentes dados bem definidos. 1.3 A Agenda Semântica Encontramos hoje na web disponíveis, alguns serviços de agenda, com os quais podemos agendar diversos tipos de compromissos e sermos avisados quando se aproximam suas datas de ocorrência, por exemplo: Podemos inserir um evento, Aniversário da Isabela, numa agenda web comum e atribuímos
também uma data de ocorrência desse evento. Ao se aproximar o evento, um dia ou 1 hora antes dependendo da escolha do usuário, a agenda manda um aviso para esse usuário, através de email avisando dá proximidade da data do evento. Isso é basicamente tudo que pode ser feito usando agendas web comuns, elas não são capazes de distinguir os tipos de compromissos, para ela não há diferença entre o aniversário da minha mãe ou entregar o livro de Banco de Dados na biblioteca. A Agenda Semântica entra nesse contexto com o objetivo de facilitar mais a vida de seus usuários: organizando da melhor forma seus compromissos, baseando-se em compromissos já marcados ou em suas prioridades; dando sugestões de presentes, em caso de datas especiais; sugestões de lazer, caso perceba que há tempo livre para o usuário; enfim, uma série de funcionalidades pode ser adicionada à agenda fazendo com que o usuário não se preocupe com certos detalhes e assim poupe seu tempo. Para isso essa agenda deveria ser capaz de interagir com outras agendas de pessoas, de pontos de comércio, centros de lazer, consultórios médicos, a fim de obter informações que sejam do interesse do usuário daquela agenda e também fornecer informações para amigos acerca de suas preferências diversas. É pra isso que se propõe as Agendas Semânticas, auxiliarem pessoas na organização de compromissos e execução de algumas tarefas a fim de que poupem tempo. 2 Requisitos Iniciais Por meio da análise inicial buscou-se compreender o contexto organizacional no qual a agenda semântica será implementada. Obteve-se assim os diagramas de dependência e razão estratégica onde tem-se a definição do Usuário que utiliza de uma Agenda de Compromissos e uma Agenda de Eventos Sociais. A agenda de compromissos é uma agenda física onde é possível anotar e buscar um compromisso e na agenda de eventos por meio de celular ou da agenda digital anota-se os fatos importantes como aniversários, festas, podendo receber alertas por email. O usuário pode obter e marcar eventos além de fazer o gerenciamento de compromissos. Características como a não sobreposição de compromissos e o em eventos importantes comprar presente e não esquecer são descritos através de soft goals vistas no diagrama de Razão Estratégica na Figura 2. Os objetos celular, agenda e email são utilizados para guardar os eventos e para informar e alertar sobre as datas dos compromissos agendados.
Figura 1 - Early Requeriments - Diagrama de Dependência Estratégica Figura 2 - Early Requirements - Diagrama de Razão Estratégica 3 Requisitos Finais A partir da modelagem da situação atual partiu-se para relacionar os atores com sistema a ser desenvolvido. Para tal, foram estabelecidos 5 (cinco) atores, o ator Usuário é responsável por fornecer informações ao Perfil, ou seja, cabe ao Usuário determinar o banco de dados que será armazenado no Perfil. Observe que o Perfil é responsável pelo armazenamento dos dados que serão fornecidos aos demais atores, cabendo ao ator Interesses, a responsabilidade do préprocessamento das informações contidas no Perfil a fim de estabelecer os
interesses de cada usuário. O Perfil não tem a capacidade de relacionamento e comparação dos dados nele contidos a fim de se determinar os interesses do usuário, cabe ao perfil esta responsabilidade. A Agenda de Eventos Sociais e a Agenda de Compromissos possuem funções bem específicas. A primeira delas possui a responsabilidade de localizar os eventos disponíveis na web e fornecer detalhes destes, ao perfil, quando solicitado. Ela também possui a capacidade de interação com outros agentes como um Agente Comprador de Passagens Aéreas ou Agente de Reserva de Diárias Hoteleiras, por exemplo. Entretanto, estes agentes não foram definidos neste projeto pois não estava no escopo inicial do mesmo. A segunda, possui como principal capacidade a obtenção dos compromissos do perfil, ou seja, ela é capaz de determinar compromissos do perfil e alertá-lo quando um evento deste estiver prestes a ocorrer. Assim como a outra agenda, ela também possui a capacidade de iteração com outros agentes, entretanto, estes agentes não foram definidos, pois não estavam contidos no escopo inicial do projeto. Figura 3 - Late Requeriments - Diagrama de Dependência Estratégica
Figura 4 - Late Requeriments - Diagrama de Razão Estratégica 4 Projeto Arquitetural Após levantamento dos requisitos iniciais e finais decidiu no modelo arquitetural pela implementação dos agentes de Perfil, Interesses e as agendas. O agente Perfil será a interface que se comunicará e servirá de ponte entre a Agenda de Eventos e Compromissos e o usuário do recurso. O agente Interesse implementará toda a análise de interesses do perfil e poderá ser usado pelas agendas e por outros perfis. A agendas podem se comunicar com outros agentes para fazer uma eventual marcação de compromisso ou adicionar um evento.
Figura 5 - Resumo do Projeto Arquitetural 5 Projeto Detalhado O objetivo agora é detalhar o projeto através do uso de AORML. O primeiro passo para a transformação do modelo do Tropos para AORML é identificar no modelo os agentes e objetos como temos na Figura 6.
Figura 6 - Identificação de Agentes e Objetos Partindo daí buscamos definir a comunicação entre os agentes e o uso dos objetos. Temos, por exemplo, que o agente Perfil se comunica com a Agenda de Compromissos para Gerenciar Compromissos. Além de disso ele recebe da agenda objetos do tipo SMS, Email que são parte do objetivo que eles tem em comum. Figura 7 - Diagrama de Interação entre agentes Parte-se então para a transformação do diagrama de razão estratégica do Tropos para o Diagrama de Sequencia (ISD) do AORML. Como exemplo no sistema escolheu-se dois planos e mostramos a seguir o seus ISD's. A Figura 8 mostra o plano Alerta sobre eventos sociais, onde os agentes Interesses, Agenda Eventos Sociais e Perfil se comunicam e o perfil é avisado sobre eventos, assim
como é sugerido opções de acordo com os interesses dos perfis relacionados. A Figura 9 apresenta o ISD Marcar compromisso onde um perfil insere um compromisso, como por exemplo, uma consulta ao dentista, na agenda de compromissos. Figura 8 - ISD - Caso 1 Figura 9 - ISD - Caso 2 Com o digrama de sequência temos uma idéia de como o sistema irá interagir, com o Interaction Frame Diagram (IFD), generaliza-se as iterações entre os agentes. A Figura 10 e 11 mostram os IFD s dos ISD s apresentados acima.
Figura 10 - IFD - Caso 1 Figura 11 - IFD - Caso 2 Os IFD s modelam a interface de comunicação dos agentes e os IPDs define o comportamento interno do agente. Na Figura 12 tem-se o comportamento do agente Agenda de Compromisso ao se comunicar com o agente Perfil receber o evento Marcar Compromisso, tratando o caso de dispor de data disponível e assim enviar mensagem para o agente Perfil.
6 Avaliação da Experiência Figura 12 - Um exemplo de IPD 6.1.Uso da Metodologia ARKnowD (Tropos+AORML) Foi uma experiência interessante trabalhar com uma metodologia orientada a agentes, seus conceitos facilitam o desenvolvimento dos sistemas e nos ajudam a ter uma compreensão mais geral do funcionamento dos mesmos. Tivemos uma certa dificuldade no início do desenvolvimento por estarmos habituados á programação estruturada, por isso gastamos algum tempo por conta dessa adaptação, além das dificuldades por falta de uma ferramenta especializada para trabalhar com essa metodologia. 6.2.Uso das Ferramentas de Modelagem A) TAOM4E A ferramenta TAOM4E é um ambiente de modelagem orientado a agentes, em especial, usando a metodologia Tropos. TAOM4E é uma ferramenta que ainda
precisa de algumas melhorias e alguns esforços para correção de alguns bugs, por exemplo, não permitir que dois objetos sejam expressos com o mesmo nome e não retornar quando um hard goal é excluído da expressão. Por esses motivos tivemos certa dificuldade em trabalhar com a ferramenta e acreditamos que, com melhoras nas áreas citadas facilitaria bastante seu uso. B) MS Visio com Template AORML O Microsoft Visio é um aplicativo que visa auxiliar os programadores na modelagem de programas e banco de dados, porém deixa muito muito a desejar quando é usado para criar modelos AORML. Sentimos muito a falta de uma ferramenta para integração fácil dos elementos léxicos e verificação da sintaxe e sem essas vantagens há uma grande perda de tempo na produção e torna-se muito dificil a modelagem de projetos mais complexos. A criação de uma ferramenta especialista para esse fim poderia trazer muitas vantagens para os desenvolvedores, facilitando o desenvolvimento e consequentemente reduzindo o seu tempo.