Ontologias e sua aplicação em linguagens de Comunicação Rafael de Moura Speroni Disciplina de Modelagem de Sistemas Multiagentes - 2006/2 Prof. Ricardo Silveira – PPGCC - UFSC Comunicação entre agentes Pessoas, organizações e sistemas de software devem ser capazes de se comunicar. A existência de conjuntos de palavras específicas para cada contexto ou assunto de uma área permite observar discrepâncias, justaposições e/ou conceitos mal compreendidos, em estruturas e métodos. Como conseqüência, surge a falta de um entendimento comum. Comunicação entre agentes A falta de um entendimento comum conduz a: Uma comunicação pobre, dentro e entre estas pessoas e/ou organizações. Dificuldades na identificação de requisitos e deste modo na definição da especificação do sistema. Restringem a interoperabilidade; Restringem o potencial para reutilizar e compartilhar material. Comunicação entre agentes Comunicação entre agentes é a troca intencional de informações causada pela produção e percepção de sinais por parte dos agentes. A comunicação permite que os agentes em um ambiente multiagente troquem informações que servirão de base para coordenar suas ações e realizar cooperação. Comunicação entre agentes Para que estes atos de comunicação e a cooperação entre agentes sejam possíveis, precisa-se de uma Linguagem de Comunicação entre Agentes (Agent Communication Language, ou ACL). Linguagens para comunicação entre agentes prometem ter o mesmo papel que as linguagens naturais exercem para as pessoas. Linguagens de Comunicação entre agentes Em uma ACL, é importante a forma como as mensagens são comunicadas, isto é, se as mensagens expressam adequadamente seu propósito sob um ponto de vista semântico. A comunicação entre dois agentes quaisquer é possível quando: Tem capacidade de se comunicar Compartilham um conteúdo de conhecimento básico Compartilham uma maneira de representar conhecimento Especificações de uma ACL A especificação preocupa-se com a descrição da estrutura da mensagem, seu modelo semântico e os protocolos de: O formato da mensagem define os atos de comunicação primitivos e os parâmetros da mensagem (como sender, receiver, etc.). O conteúdo da mensagem descreve fatos, ações, ou objetos em uma linguagem de conteúdo (KIF, Prolog, etc). Outros parâmetros podem cuidar do significado da mensagem e sua entrega. Especificações de uma ACL O modelo semântico de uma ACL estabelece os fundamentos para obter um significado conciso e não ambíguo das mensagens do agente e dos protocolos de interação. Os protocolos de interação são conjuntos de padrões bem definidos projetados para facilitar a comunicação entre agentes. Definição de Ontologias Uma ontologia é uma especificação explícita de objetos e relações em um mundo ou domínio alvo com intenção de compartilhar estas informações com uma comunidade de usuários e usada para construir modelos de representação dos objetos desse domínio. Ontologia No contexto de compartilhamento de conhecimento, o termo Ontologia é utilizado com o significado de uma especificação de uma conceitualização. Uma ontologia necessariamente vincula ou inclui algum tipo de “visão geral” referente a um domínio determinado. Esta “visão geral” é freqüentemente concebida como um conjunto de conceitos (i. e. entidades, atributos, processos), suas definições e suas inter-relações. Razões para a Utilização de Ontologias Algumas das razões que levam à utilização de ontologias: O compartilhamento da compreensão da estrutura da informação através das pessoas e agentes de software é um dos objetivos mais comuns no desenvolvimento de ontologias; Proporcionar reutilização de conhecimento do domínio; Separar o conhecimento a respeito do domínio do conhecimento operacional; Analisar o conhecimento do domínio é possível, uma vez que esteja disponível uma especificação declarativa dos termos. A análise formal dos termos é extremamente valiosa para reutilizar e estender ontologias existentes; Ontologias Normalmente a ontologia de um domínio não é um objetivo final. O desenvolvimento de uma ontologia está, portanto, relacionado à definição de um conjunto de conceitos e sua estrutura para utilização por outras aplicações. Knowledge Query Manipulation Language (KQML) A efetivação da troca de conhecimentos entre agentes, independente de formalismos de representação de conhecimento na qual o conhecimento está expresso, foi materializada pela linguagem de comunicação KQML. Ela compreende um conjunto extensível de performativas, que define as possíveis operações de comunicação em nível de conhecimento entre agentes. KQML É parte do ARPA Knowledge Sharing Effort Os agentes podem trocar conhecimento, enviando sentenças lógicas, fatos e metas, com o intuito de cooperarem e/ou negociarem. Os atos de fala implementados são os atos assertivos (informar), diretivos (pedir ou perguntar), proibitivos e declarativos (causar eventos ao comunicador). KQML (ask-all :sender CFP-Agent :receiver PPR-Agent :in-reply-to id0 :reply-with id1 :language JessTab :ontology Science :content (object (is-a Link) (URL ?u) (anchor ?a&: (occurs [call-for-papers] ?a)))) (tell :sender PPR-Agent :receiver CFP-Agent :in-reply-to id1 :reply-with id2 :language JessTab :ontology Science :content (object (is-a Link) (URL “http://lcn2002.cs.bonn.edu”) (anchor “ IEEE Conference on Local Computer Networks (LCN 2002)”))) FIPA ACL FIPA ACL é uma linguagem que permite a comunicação dos agentes através de mensagens. É parte das especificações da FIPA (Foundation for Intelligent Physical Agents) Para que os agentes sejam compatíveis com a FIPA ACL 1. 2. 3. 4. 5. Ter capacidade de enviar e entender mensagens. As mensagens ACL devem ser corretamente implementadas segundo a definição semântica. Os atos de comunicação devem ser corretamente implementados segundo suas definições. Novos atos de comunicação podem não significar o mesmo que os atos padrão pré-definidos. Capacidade de gerar corretamente uma mensagem sintaticamente bem-formada na forma de transporte que corresponda a mensagem que desejam enviar. Estrutura da Mensagem (inform :sender agent1 :receiver hpl-auction-server :content (price (bid good02) 150) :in-reply-to round04 :reply-with bid04 :language sl :ontology hpl-auction) Relação entre KQML e FIPA KQML e ACL são linguagens de inter-língua, com o objetivo de prover uma base lingüística comum para agentes independentes comunicarem-se. Ambas são baseadas na teoria dos atos de fala, na qual as comunicações de um indivíduo podem ser reduzidas a um pequeno número de primitivas (communicative acts). Sintaxe similar baseada em LISP. Relação entre KQML e FIPA Na KQML, inicialmente, a semântica das performativas era descrita informalmente em linguagem natural. Pesquisas posteriores indicaram a necessidade por uma semântica mais precisa, mas não ficou claro que tenha sido universalmente adotada. ACL foi projetada desde o início com uma semântica bem definida formalmente. A Linguagem UCL Para a Comunicação Envolvendo Agentes - Carlos A. Estombelo Montesco, Dilvan de Abreu Moreira Baseada na UNL (Universal Network Language), um projeto da UNU para o desenvolvimento de ferramentas de software para vencer a barreira da língua para a comunicação entre os povos. Integração comunicativa em um ambiente de processamento automático de linguagem natural (PALN), permitindo que usuários de qualquer parte do mundo possam se comunicar sem que tenham que aprender uma linguagem especial de comunicação. Universal Communication Language (UCL) UNL não é um padrão aberto; UCL - baseada nos conceitos da UNL, mas implementada em XML; Universal Communication Language (UCL) A UCL representa a informação em sentenças contendo a estrutura sintática, e um conjunto de conceitos, relações e de atributos: UW (Univeral Word): representa o significado de uma palavra ou conceito. Rótulo de relação: representa a relação entre UWs. Rótulo de atributo: contém informação adicional ou definição que se acrescenta à UW e que está presente na mensagem. Universal Communication Language (UCL) Representação semântica da mensagem é feita através de uma ontologia que define formalmente o domínio de conhecimento. Representação conceitual da mensagem está representada pela ontologia ThoughtTreasure (ferramenta PALN). Cada UW é limitada na abrangência de seu significado por meio de rótulos de relação, evitando que dois conceitos se sobreponham. Os conceitos que pertencem à mensagem são relacionados utilizando os rótulos de relação. Editores de Ontologias Ontolíngua KAON (framework para desenvolvimento de aplicações em Web Semântica) Protégé Protégé Protégé é um editor de ontologias baseado em conhecimento, livre e de código aberto. As ontologias do Protégé podem ser exportadas em vários formatos, incluíndo RDF(S), OWL, e XML Schema. http://compsem.inf.ufsc.br/~public/gau thier/disciplina.owl Considerações Finais A comunicação entre agentes só é possível através do entendimento que estes tenham sobre as mensagens, seu significado. Necessidade de formalização semântica, visando obter um entendimento comum. Ontologias são utilizadas para a formalização de conhecimentos, definindo significado a conceitos e suas inter-relações. Referências FREITAS, F. . Ontologias e a Web Semântica. In: Renata Vieira; Fernando Osório. (Org.). Anais do XXIII Congresso da SBC. Volume 8: Jornada de Mini-Cursos em Inteligência Artificial. Campinas: SBC, 2003, v. 8, p. 1-52. MONTESCO, Carlos Alberto Estombelo ; MOREIRA, D. A. . UCL: uma linguagem de comunicação para agentes de software baseada em ontologias. In: 1 Workshop em Tecnologia da Informação e da Linguagem Humana, 2003, São Carlos v. 1. p. 1-4. Carvalho, Felipe G. Comportamento em Grupo de Personagens do Tipo Black&White. Dissertação de Mestrado PUC-Rio Rio de Janeiro, 2004. Ferreira Filho, Raymundo. Ontological Engineering and ITS Research. Baseado no trabalho do prof. Riichiro Mizoguchi. Disponível em http://iate.ufrgs.br/lms/courses/PPECT_EO01/ Acessado em 10/08/2006. GRUBER, Tom. R. Toward principles for the design of ontologies used for knowledge sharing. International Workshop on Formal Ontology, Padova, Italy. 1993. Available as technical report KSL-93-04, Knowledge Systems Laboratory, Stanford University. NOY, Natalya F.; MCGUINNESS, Deborah. Ontology Development 101: A Guide to Creating Your First Ontology. Stanford Knowledge Systems Laboratory Technical Report KSL-01-05 and Stanford Medical Informatics Technical Report SMI2001-0880, March 2001. PROTÉGÉ - The Protégé Ontology Editor and Knowloedge Acquisition System. (2006) http://protege.stanford.edu/. Acessado em 10/08/2006 KAON – The Karlsruhe Ontology and Semantic Web tool suite. (2006) http://kaon.semanticweb.org/ (Acessado em 10/08/2006) Ontolingua (2006) http://www.ksl.stanford.edu/software/ontolingua/. Acessado em 10/08/2006.