Web Semântica e Matching de Ontologias: Uma Visão Geral Hélio Rodrigues de Oliveira Departamento de Computação Universidade Federal do Ceará [email protected] Resumo A Web Semântica pode ser vista como uma evolução da Web atual, onde os dados disponibilizados serão enriquecidos semanticamente com o objetivo de facilitar o processamento da informação. Neste contexto, a organização dos dados na Web é importante para que as informações tornem­se legíveis para as máquinas. Uma das propostas para oferecer maior semântica aos dados consiste na definição e no uso de ontologias. Porém, devido à grande heterogeneidade de informações disponíveis na rede, dificilmente será possível estabelecer uma única ontologia para cada domínio de conhecimento. Para permitir a interoperabilidade entre as aplicações na Web, torna­se necessário que sejam identificadas correspondências entre diferentes ontologias, as quais podem ser obtidas através do matching de ontologias. Neste artigo apresentamos um estudo sobre matching de ontologias, destacando os principais conceitos e algumas ferramentas. 1. Introdução Desde a criação da Web, na década de 80, a informação disponibilizada na Internet tem sido usada de forma bastante ativa. Apesar de já ter passado por grandes transformações, ainda hoje a Web requer que consultas sejam realizadas de maneira exaustiva pelo ser humano. Com o intuito de auxiliar os usuários na busca de informações, além de oferecer uma solução para ordenar o “caos informacional” existente na Web, foi proposta a Web Semântica [2, 3] Bernadette Farias Lóscio Departamento de Computação Universidade Federal do Ceará [email protected] A Web Semântica é uma extensão da Web atual, que permitirá aos computadores e aos humanos trabalharem em cooperação [3]. O objetivo principal da Web Semântica consiste em prover tecnologias que tornem a informação legível para as máquinas. As aplicações mais imediatas para a Web Semântica visam categorizar a informação e melhorar a qualidade dos resultados das ferramentas de busca através de resolução de ambigüidades e contextualização da informação. Isto envolve conceitos da Inteligência Artificial, como regras de inferência e lógicas formais, que serão utilizados por softwares, chamados de agentes, que se encarregarão de executar a consulta e retornar a melhor resposta para o usuário. A Web Semântica está baseada principalmente no uso de ontologias, as quais têm como objetivo prover vocabulários comuns para diferentes domínios de conhecimento. As ontologias têm sido incorporadas ao estudo da Web Semântica, pois viabilizam a comunicação entre pessoas e computadores automaticamente e de forma inteligente. Devido à grande diversidade e ao grande volume de dados disponível na Web, ontologias de um mesmo domínio poderão ser criadas de maneiras diferentes. Dessa forma, para permitir que as aplicações possam comunicar­se no contexto da Web Semântica, torna­se necessário definir técnicas para identificar a correspondência de conceitos semelhantes em diferentes ontologias. Uma das soluções propostas para este problema é o matching de ontologias[1]. Este trabalho tem por objetivo apresentar os conceitos básicos sobre ontologias, como elas podem ser utilizadas no contexto da Web Semântica, bem como o uso de técnicas de matching para identificar correspondências entre ontologias. Na seção 2 dissertamos sobre os conceitos associados à Web Semântica, ontologias e suas aplicações. Na seção 3 definimos matching de ontologias, discutindo as principais dificuldades encontradas nesse processo. Na seção 4 concluímos o trabalho. 2. Web Semântica e Ontologias Nesta seção introduzimos os principais conceitos da Web Semântica e suas aplicações, bem como conceitos associados à ontologias. 2.1. Web Semântica A World Wide Web, que significa “rede de alcance mundial”, também conhecida como Web e WWW, é um sistema de documentos em hipermídia que são interligados e executados na Internet. Os documentos podem estar na forma de vídeos, sons, hipertextos e figuras. A Web armazena grandes quantidades de informação, contudo, na maioria das vezes, são disponibilizadas sem critério de organização. Dessa forma, as consultas realizadas na Web podem ser bastante imprecisas, sendo necessário que o usuário faça uma seleção dos dados que lhe são retornados, podendo levar um tempo bastante excessivo. Com o uso da Web Semântica, esse trabalho manual poderá ser feito por agentes, que irão decidir qual a melhor resposta para uma dada consulta, baseando­se nas preferências do usuário, em regras de inferência e utilizando a lógica formal. A Web Semântica sugere que as máquinas raciocinem e resolvam problemas de ambigüidades de tal forma que possam auxiliar o usuário em suas consultas na Web. As aplicações mais imediatas para a Web Semântica visam categorizar a informação e aumentar a qualidade do resultado das ferramentas de busca através de resolução de ambigüidades e contextualização da informação. Podemos citar alguns exemplos como: 1 Gerenciamento de conhecimento: consiste em adquirir, acessar, organizar e manter o conhecimento. Na perspectiva do gerenciamento de conhecimento, limitações como buscas, extrações, manutenções e a própria visualização dos dados, são superadas; 2 E­Commerce: atualmente, é muito comum a realização de compras pela internet. Com a Web Semântica, será possível não só melhorar as buscas que ocorrem durante as transações de compra e venda na Web, mas também integrar serviços diversos envolvidos nas aplicações de e­commerce; 3 Agentes: a Web Semântica oferece agentes (softwares especialistas) que serão capazes de processar e entender o real significado dos dados disponíveis na Web, intermediando as necessidades de cada usuário e as fontes de dados disponíveis. Desta forma, economizando tempo e retornando respostas semanticamente corretas. Os princípios da Web Semântica são implementados em camadas de tecnologias e padrões Web, como mostra a Figura 1. As camadas Unicode e URI estabelecem um conjunto de caracteres internacionais e fornecem meios para a identificação de objetos na Web Semântica. Atualmente, as páginas disponíveis na rede estão no formato HTML, o qual possui várias limitações no que diz respeito a associação de significado semântico aos dados. Com o intuito de sobrepor essas limitações, foi proposta a utilização do XML (eXtensible Markup Language) como linguagem padrão para representação e troca de dados na Web. A idéia da camada XML é que esta descreva a estrutura do documento, deixando para as que estão acima dela a definição de seu conteúdo e semântica. Figura 1. Camadas da Web Semântica A camada RDF (Resource Description Framework) adiciona mais semântica a um documento. RDF descreve os recursos da Web e RDF Schema define vocabulários para domínios específicos. A camada de Ontologias também suporta a definição de vocabulários com uma expressividade maior. A camada de Assinatura Digital detecta as alterações em documentos. A camada de lógica permite a especificação de regras que atuam sobre instâncias e recursos, a camada de prova executa essas regras e a validação garante a corretude ou não dessas regras. 2.2 Ontologias Ontologia é a parte da Filosofia que trata da natureza do ser, da realidade, da existência dos entes e das questões metafísicas em geral. É uma palavra de origem grega que significa ontos+logoi= ”conhecimento do ser”. Nos últimos anos, as ontologias vêm sendo muito utilizadas na área da Computação, tendo uma definição diferente da original. Segundo Grüber [5], uma ontologia é uma especificação explícita e formal de uma conceitualização compartilhada. Entende­se por conceitualização os conceitos, objetos, entidades e relacionamentos de certo domínio. As ontologias têm sido utilizadas como solução para captar a semântica das páginas Web, uma vez que permitem estruturar informações esparsas disponíveis na rede. Em geral, as ontologias descrevem formalmente um domínio. Os elementos básicos para a construção de uma ontologia são as classes (ou conceitos), as instâncias (também chamada de indivíduos) das classes e os relacionamentos (as propriedades) entre essas classes. As classes provêem um mecanismo de abstração para agrupar recursos com características similares, ou seja, uma classe define um grupo de indivíduos que compartilham algumas propriedades. Por exemplo, no domínio de uma universidade temos funcionários, estudantes, cursos e disciplinas como algumas classes importantes. O conjunto de indivíduos (instâncias) que está relacionado a uma classe é chamado de extensão da classe. As propriedades, que são relações binárias, podem ser usadas para estabelecer relacionamentos entre indivíduos ou entre indivíduos e valores de dados. Para ilustrar estes conceitos, suponha uma ontologia que represente o domínio de uma Universidade e imaginemos um fragmento desta ontologia representado pela Figura 2. Pessoa, Professor e Estudante são exemplos de classes. Um Professor pode ser ou Professor Adjunto ou Professor Substituto, ou seja, dizemos que Professor é superclasse de Professor Adjunto e de Professor Substituto. Representamos a hierarquia de classes através de uma seta que aponta da subclasse para a classe. Os relacionamentos são as propriedades entre as classes, por exemplo é_autor_de é uma propriedade que relaciona a classe Pessoa à classe Publicação. Como exemplos de instâncias, temos João e Maria, onde João é uma instância da classe Professor Adjunto, enquanto que Maria é uma instância de Estudante Graduada. Figura 2. Exemplo de ontologia O1 para o domínio universidade Diversas linguagens foram propostas para representar ontologias na Web, das quais destacam­se DAML, OIL e OWL. Foi proposto pelo Web Ontology Working Group of W3C a linguagem OWL (Ontology Web Language) como a linguagem padrão para definição de ontologias para a Web Semântica. As linguagens para representação de ontologias devem possuir: i) uma sintaxe bem definida, a fim de garantir que a informação seja processada; ii) uma semântica formal, para definir o conhecimento de forma precisa, permitindo raciocinar sobre o mesmo; iii) suporte ao raciocínio, permitindo checar a consistência da ontologia, classificar as instâncias; iv) poder de expressividade. 3. Matching de Ontologias As ontologias descrevem o vocabulário de termos de um domínio de interesse. Várias ontologias são criadas para diferentes aplicações, com seus modelos, conceitos, esquemas e axiomas. Assim, em sistemas que envolvem Web Semântica, é normal que diferentes grupos possam adotar diferentes ontologias. Como exemplo, considere duas organizações: um site de vendas de livros e uma biblioteca universitária. As duas possuem um domínio em comum, os livros. Porém, cada uma define o termo livro com conceitos e aspectos diferentes. A loja leva em consideração a editora e tipo de capa. Por outro lado, a biblioteca atenta para os tópicos, tamanho e ano de publicação. O autor seria um conceito em comum entre os dois domínios. Caso as duas organizações queiram interagir entre si, será necessário estabelecer as correspondências entre suas ontologias para encontrar uma relação entre os conceitos de cada uma delas. A fim de garantir a interoperabilidade entre diferentes aplicações de um mesmo domínio torna­se necessário identificar as correspondências entre conceitos de diferentes ontologias. Este processo de identificação é denominado matching de ontologias. O resultado deste processo, ou seja, o conjunto de correspondências entre ontologias é denominado de alinhamento. O alinhamento entre ontologias tem várias aplicações como por exemplo [9]: 1. Merging de ontologias: consiste em obter uma nova ontologia a partir de duas ontologias o e o' que passaram por um processo de matching; 2. Transformação de ontologias: dado um alinhamento A e duas ontologias o e o', consiste em gerar uma ontologia o'' expressa pelas entidades de o com respeito às de o' de acordo com as correspondências de A; 3. Tradução de dados: consiste em traduzir instâncias de entidades de um ontologia o em instâncias de entidades conectadas por um processo de matching com uma ontologia o'. Fazer o matching de duas ontologias é uma tarefa complicada e que dificilmente poderá ser executada de forma completamente automatizada. Diversas soluções de matching têm sido propostas com diferentes pontos de vista, como em Banco de Dados, Sistemas de Informação e Inteligência Artificial, os quais diferem basicamente na forma de como combinar e explorar os resultados obtidos em cada perspectiva. Diversos algoritmos e ferramentas foram propostos para realização do matching entre ontologias, como o SMART[8], QOM[4] e o COMA++[7], todas ferramentas semi­automáticas. É importante ressaltar que muitas pesquisas estão sendo desenvolvidas nessa área no sentido de melhorar os algoritmos e ferramentas existentes. Uma das grandes dificuldades em realizar o matching entre ontologias está relacionada aos diversos conflitos que podem acontecer quando fazemos a comparação entre seus termos, como por exemplo [9]: 1 Conflitos sintáticos: ocorrem quando duas (ou mais) ontologias a serem comparadas não estão sendo expressas numa mesma linguagem de representação de ontologias. Exemplo: quando comparamos um diretório com um modelo conceitual; 2 Conflitos terminológicos: quando há variação de nomes ao nos referirmos à mesma entidade em diferentes ontologias. Exemplo: se utilizarmos sinônimos como carro e automóvel ou variação como telefone e fone; 3 Conflitos semânticos: quando diferentes axiomas ou regras são utilizados para definir o mesmo conceito em ontologias diferentes. Exemplos: se utilizarmos como primitivas da geometria uma esfera e em outro caso utilizarmos o ponto. Isto também acontece quando descrevemos um conceito sobre uma mesma perspectiva, porém com diferentes níveis de detalhes; 3.1 Exemplo Para ilustrar o processo de matching de ontologias, considere as ontologias O1 e O2 apresentadas nas Figuras 2 e 3, que descrevem conceitos relacionados ao domínio de uma universidade. Durante o processo de matching das ontologias O1 e O2, os seguintes conflitos terminológicos poderiam ser identificados. Por exemplo, Publicação em O1 corresponde a Pub em O2, e Estudante em O1 corresponde a Aluno em O2, respectivamente. Figura 3. Ontologia O2 para o domínio de universidade Ao final do processo de matching, será obtido um conjunto de mapeamentos (Figura 4) que especificam as correspondências entre os elementos das ontologias consideradas. Por exemplo, o mapeamento M1 especifica uma relação entre Publicação(O1) e Pub(O2). Assim como, o mapeamento M2 relaciona Estudante Graduado(O1) e Aluno(O2). Essas relações poderão ser utilizadas para traduzir instâncias de O1 em instâncias de O2. Além disso, durante o merging de O1 e O2, os mapeamentos poderão ser utilizados para criar instâncias resultantes da integração de instâncias de O1 e O2. Figura 4. Correspondências entre O1 e O2 4. Conclusão A Web Semântica surge como uma possível solução para a organização dos dados na Web, visando fornecer estrutura e dar significado semântico aos dados disponibilizados na rede. Além disso, propicia a criação de um ambiente em que softwares (agentes) e humanos possam trabalhar de forma cooperativa. Segundo Berners­Lee[3], os agentes necessitam ter acesso aos dados estruturados e regras de inferência que ajudem no processo de dedução automática, de tal forma que seja administrado o raciocínio automatizado que leva a aquisição de novos conhecimentos. Estes dados e regras podem ser especificados através de ontologias, que permitem representar explicitamente a semântica dos dados. Através dessas ontologias é possível elaborar uma rede de conhecimento, complementando o processamento da máquina e melhorando os serviços na Web. Uma das grandes dificuldades no contexto da Web Semântica consiste em manter um padrão entre as ontologias criadas para certo domínio, sendo necessária a realização do matching de ontologias para a identificação das correspondências entre seus conceitos. É muito difícil automatizar este processo, devido a vários conflitos que ocorrem durante a comparação entre as ontologias. Por isso a intervenção humana ainda é necessária. Como trabalho futuro, pretendemos efetuar uma análise comparativa que facilite a identificação das situações em que cada um dos algoritmos de matching será mais adequado, contribuindo para melhorar a eficácia do processo de matching entre as ontologias. Dentre os critérios de avaliação que podem ser levados em consideração temos, por exemplo, o tamanho das ontologias, ou seja, a quantidade de conceitos representados, bem como o grau de similaridade entre elas. Para isso, propomos a criação de uma ferramenta que permita facilitar a realização desse estudo comparativo, oferecendo meios para a realização de experimentos com os diferentes algoritmos de matching e considerando diferentes critérios de avaliação nos estudos de casos. Referências [1] ABITEBOUL, S.; BUNEMAN, P.; SUCIU, D. Data on the Web. 1ª Ed. Morgan Kaufmann Publishers, 2000, 258p. [2] ANTONIOU, G.; HARMELEN, F. V. A Semantic Web Primer. 1ª Ed. MIT Press, 2004, 272p. [3] BERNERS­LEE, T.; HENDLER, J.; LASSILA, O. The Semantic Web. Scientific American,v. 284, n. 5, p. 34­43, 2001. [4] EHRIG, M; STAAB, S. QOM ­ Quick Ontology Mapping. In Proceedings of the Third International Semantic Web. Conference, Springer, p. 356­361, 2004. [5] GRÜBER, T.R. A Translation Approach to Portable Ontology Specification, Knowledge Acquisition v.5, n.2, p. 199­220, 1993. [6] KOIVUNEN, M.; MILLER, E. 2001. W3C Semantic Web Activity. http://www.w3.org/2001/12/semweb­fin/w3csw. [7] MASSMANN, S.; ENGMANN, D.; RAHM, E. COMA++: Results for the Ontology Alignment Contest OAEI 2006. In Proceedings International Workshop on Ontology Matching, p. 107­114, 2006. [8] NOY, N.; MUSEN, M. SMART: Automated Support for Ontology Merging and Alignment. In Proceedings of the 12th Banff Knowledge Acquisition for Knowledge­based Systems Workshop (KAW’99), 1999, 24p. [9] SHVAIKO, P.; EUZENAT, J. Ontology Matching, 1ª Ed. Springer, 2007, 334p.