Utilizando Ontologias para Expansão Semântica de Consultas Danusa Ribeiro B. da Cunha Universidade Federal do Ceará (UFC) [email protected] Bernadette Farias Lóscio Universidade Federal do Ceará (UFC) [email protected] Resumo expansão de consultas utiliza algoritmos que buscam palavras com significados semelhantes aos termos da consulta submetida e acrescentam tais palavras à consulta original com o objetivo de melhorar o contexto da mesma. Assim, a expansão de consultas visa modificar a consulta com o intuito de torná-la mais eficaz e abrangente. Uma abordagem clássica para expansão de consultas baseia-se na co-ocorrência estatística de palavras-chave em documentos do domínio considerado, adicionando à consulta termos que freqüentemente ocorrem em conjunto com os termos da consulta original, porém os sistemas que seguem essa abordagem não consideram a semântica entre os termos durante a verificação das ocorrências. Diversos trabalhos têm utilizado ontologias como fonte de informação semântica de domínio para expandir consultas e obter resultado mais eficaz. Ontologias são especificações dos conceitos de um determinado domínio e suas relações. As ontologias têm sido usadas para tratar as estruturas de organização da informação a partir de seus relacionamentos e seus conceitos. Os atuais mecanismos de busca da informação carecem de flexibilidade, transparência e precisão, apesar de terem boa cobertura. Com o uso de ontologias, além das características inerentes dos mecanismos de busca, eles terão maior flexibilidade na recuperação da informação. Neste artigo, apresentamos uma visão geral sobre os Sistemas de Recuperação de Informação e seus métodos de recuperação de dados. Introduzimos conceitos sobre ontologias e, além disso, mostramos algumas ferramentas que utilizam ontologias no processo de expansão de consultas. Este artigo está organizado como se segue. Na seção 2, discutimos conceitos relacionados a sistemas de Recuperação de Informação e as técnicas utilizadas na construção desses sistemas. Na seção 3, ilustramos o uso de ontologias através de um exemplo e mostramos alguns formalismos para representação de ontologias. Na seção 4, discutimos o problema de expansão semântica de consultas e alguns sistemas que utilizam ontologias nesse processo. Na seção 5, apresentamos nossas conclusões. O crescimento rápido e contínuo do volume de dados disponível na Web torna cada vez mais difícil o acesso às informações. As máquinas de busca existentes retornam listas de recursos recuperados, oferecendo pouca ou nenhuma informação sobre as relações semânticas existentes entre elas. Sendo assim, cabe ao usuário acessar tais listas para descobrir quais se encaixam no contexto do seu problema. As ontologias contribuem na recuperação da informação, pois permitem a busca de dados ou dos recursos desejados através de pesquisas em bases de informações estruturadas, tornando o resultado da recuperação mais preciso e baseado em estruturas semânticas. Nesse artigo, são apresentados conceitos sobre sistemas de recuperação de informações e expansão semântica de consultas utilizando ontologias. 1. Introdução No final da década de 80, surgiu a World Wide Web ou Web, criada por Tim Berners-Lee. Desde então, uma grande quantidade de dados tem sido disponibilizada na Internet, incluindo textos, áudio, imagem e vídeo. Por causa dessa grande quantidade de informação, a Web é considerada como o maior repositório de dados existente [7]. Contudo, esses dados são disseminados de forma autônoma e heterogênea. Sendo assim, as consultas realizadas na Web podem se tornar bastante imprecisas. Diante disso, surge a necessidade de desenvolver ferramentas e mecanismos que recuperem e extraiam informações de forma mais precisa. Um dos principais problemas encontrados por projetistas de sistemas de recuperação de informação é o fato das consultas submetidas pelos usuários serem compostas de poucos termos, os quais passam pouca informação sobre o que o usuário procura. Uma das maneiras para contornar esse problema, consiste em utilizar métodos para expandir automaticamente as consultas submetidas pelo usuário. A 2. Sistemas de Recuperação de Informação Recuperação de informação é uma área da Ciência da Computação que estuda o armazenamento automático e recuperação automática de documentos. As ferramentas para recuperação de informação provenientes da Web podem ser classificadas em quatro categorias [7]: • • • • Pesquisas em diretórios: pesquisam a informação por assunto através de uma pesquisa hierárquica, que começa a partir de um tópico genérico, ramificando em sub-tópicos específicos. Enciclopédia Britânica1, Yahoo!2 são bons exemplos de ferramentas nessa categoria; Máquinas de busca: pesquisam a informação pelo uso de palavras chave, fornecendo uma lista de referências ou marcações como resultado. Utilizam bancos de dados constituídos de recursos provindos de diversos autores ou através de informações oriundas de robôs (Web Crawlers) que podem enviar títulos ou URLs de cada página visitada, marcações HTML e textos inteiros referentes a cada página. Alta Vista3, Google4, dentre outros, são exemplos de ferramentas nessa categoria; Diretórios com máquinas de busca: utilizam tanto a pesquisa por palavras-chaves quanto por título de assunto. Na parte referente à pesquisa em diretório, a pesquisa segue um percurso hierárquico que vai de assuntos genéricos aos mais específicos. Em cada parada ao longo do caminho, uma opção de máquina de busca é provida para permitir que o usuário efetue uma pesquisa por palavra-chave. Yahoo! faz parte dessa categoria. Múltiplos mecanismos de busca (MetaSearchers): adotam os recursos de várias máquinas de busca em paralelo. A pesquisa é conduzida através de palavras-chaves. Uma lista de informações é obtida de acordo com cada mecanismo de busca envolvido ou de forma integrada. Bibliotecas digitais são geralmente construídas a partir dessas ferramentas. Dentre os sistemas de busca mencionados anteriormente, que utilizam uma dessas quatro categorias, 1 http://www.britannica.com http://www.yahoo.com 3 http://br.altavista.com 4 http://www.google.com 2 não levam em consideração a semântica contida nos dados pesquisados. O processo de recuperação consiste na geração de uma lista de documentos recuperados para responder à consulta formulada pelo usuário. Os índices construídos para uma coleção de documentos são usados para acelerar esta tarefa. Além disso, a lista de documentos recuperados é classificada em ordem decrescente de um grau de similaridade entre o documento e a consulta. 2.1. Modelos utilizados para Recuperação de Informação Muitas são as técnicas utilizadas na construção de um sistema de recuperação de informação que devem levar em consideração: um esquema de representação dos documentos, a formulação da consulta e a construção de uma função de ranking (que indica a relevância dos documentos em relação à consulta). Dentre estas técnicas, destacamos os modelos booleano, vetorial e probabilístico, os quais serão explicados a seguir. 2.1.1. Modelo Booleano O modelo mais comum e mais simples, e largamente utilizado nos sistemas atuais é o booleano. Esse modelo se utiliza de álgebra booleana para realizar a busca sobre a base de informação onde as consultas são especificadas com o auxílio dos operadores lógicos AND, OR e NOT. Esse modelo pode ser utilizado em buscas sobre arquivotexto ou ainda em bancos de dados relacionais. No caso dos bancos de dados, a consulta é realizada através de uma linguagem própria (SQL). 2.1.2. Modelo Vetorial O modelo vetorial representa documentos e consultas como vetores de termos. Termos são ocorrências únicas nos documentos. Os documentos devolvidos como resultados para uma consulta são representados similarmente, ou seja, o vetor resultado para uma consulta é montado através de um cálculo de similaridade. Aos termos das consultas e documentos são atribuídos pesos que especificam o tamanho e a direção de seu vetor de representação. Ao ângulo formado por estes vetores dá-se o nome de q. O cosseno de q determina a proximidade da ocorrência. O cálculo da similaridade é baseado neste ângulo entre os vetores que representam o documento e a consulta. 2.1.3 Modelo Probabilístico O modelo probabilístico descreve documentos considerando pesos binários que representam à presença ou ausência de termos. O vetor resultado gerado pelo modelo tem como base o cálculo da probabilidade de que um documento seja relevante para uma consulta. O modelo probabilístico considera um processo iterativo de estimativas da probabilidade de relevância. Esses e outros modelos têm se mostrado bastante eficazes na recuperação de informações. Entretanto, um problema fundamental na recuperação de informação é que há diferenças entre as palavras usadas pelos autores e as usadas pelos usuários para descrever determinados assuntos. Em muitas aplicações, as consultas podem possuir uma pequena quantidade de termos. Essa dificuldade tende a diminuir quando acrescentamos uma quantidade razoável de termos à consulta. Tratando-se de Web, as palavras submetidas em uma consulta geralmente são constituídas por quantidades pequenas de palavras. A expansão de consultas é o caminho para solucionar esse problema. Para expandir uma consulta é preciso buscar palavras com significados semelhantes aos termos da consulta submetida e acrescentar tais palavras à consulta original com o objetivo de melhorar o contexto da mesma. Assim a expansão de consultas visa modificar a consulta do usuário (consulta original) seja pela alteração de suas condições ou pela adição de termos relacionados com o intuito de torná-las mais eficazes e abrangentes. Algumas abordagens têm utilizado ontologias para lidar com o problema da heteregoneidade semântica, ou seja, quando diferentes significados são atribuídos a conceitos semelhantes. Os mecanismos de inferência sobre ontologias auxiliam o processo de expansão, pois derivam informações que podem ser utilizadas para recuperar respostas semanticamente relevante. 3. Ontologias Na Filosofia, o termo ontologia refere-se a uma teoria sobre a existência da natureza, sobre os conceitos existentes ou o que se dizer sobre o mundo. Para os pesquisadores da área da Ciência da Computação, ontologia é o que “existe”, ou seja, tudo aquilo que existe e pode ser representado formalmente. Uma das definições mais difundidas para ontologia foi dada por Gruber [4]: “Uma ontologia é uma especificação explícita e formal de uma conceitualização compartilhada”. Os autores Uschold e Grüninger [8] explicam melhor tal definição e o significado de seus termos: • Conceitualização: refere-se a um modelo abstrato de dados de como as pessoas pensam sobre coisas no mundo; • Especificação explícita: significa que definição e nomes explícitos devem ser atribuídos aos conceitos e relacionamentos do modelo abstrato; • Formal: indica que a especificação da conceitualização é codificada em uma linguagem cujas propriedades são bem compreendidas. A formalização é importante para remover ambigüidades; • Compartilhada: refere-se à utilização e à reutilização em diferentes aplicações e comunidades. A maioria das ontologias é constituída por: i) Conceitos ou classes: representam “coisas” que fazem parte de um domínio, organizados em classes e subclasses, ii) Atributos: descrevem características dos conceitos, iii) Relacionamentos: expressam como os conceitos estão interligados, iv) Axiomas: são restrições sobre conceitos propriedades e v) Instâncias: representam o conjunto de indivíduos ou objetos do mundo real que estão de acordo com a conceitualização modelada pela ontologia. 3.1. Representação de Ontologias Em geral, ontologias são fundamentadas em teorias formais a fim de que humanos e máquinas sejam capazes de interpretar os conhecimentos de um domínio sem ambigüidades. Dentre os formalismos de representação existentes na literatura, as lógicas de descrição são consideradas uma das famílias mais importantes de representação formal do conhecimento e constituem a base para linguagens de representação de ontologias como a Web Ontology Language (OWL). A OWL é uma das linguagens mais difundidas por ser uma recomendação oficial do consórcio World Wide Web Consortium (W3C) para a criação de ontologias na Web Semântica. A OWL divide-se em três sublinguagens que diferem entre si quanto à expressividade e complexidade: • OWL Lite: provê os elementos básicos para a representação de conceitos, relacionamentos e restrições simples de propriedades, sendo a menos expressiva e complexa; • • OWL DL: é usada por usuários que queiram o máximo de expressividade, com completude (todas as conclusões são garantidas para serem computáveis) e decidibilidade (todas as computações terminarão em um tempo finito) computacional. Ela inclui todas as construções da linguagem OWL, mas estas construções somente podem ser usadas sob certas restrições. É uma das mais utilizadas para a criação de ontologias na Web Semântica; OWL Full: provê expressividade máxima sem garantias computacionais. As linguagens baseadas em lógicas de descrição são adequadas para representar ontologias de forma expressiva. Além de oferecerem suporte ao raciocínio lógico através de máquinas de inferência, possibilitam a verificação de consistência, a classificação correta das instâncias e a obtenção de novas informações a partir das especificações presentes nas ontologias. As ontologias constituem uma ferramenta poderosa para suportar a especificação e a implementação de sistemas computacionais de qualquer complexidade. Umas das principais aplicações das ontologias consistem em prover semântica à Web visto que esta possui uma grande quantidade de dados disponibilizados de forma autônoma e heterogênea. Recentemente, Tim Berners-Lee [1] vislumbrou o desenvolvimento da Web Semântica que, a partir do uso intensivo de metadados visa prover acesso automatizado às informações através de agentes de software. Neste contexto, metadados referem-se à estrutura descritiva da informação sobre outro dado, o qual é usado para ajudar na identificação, descrição, localização e gerenciamento de recursos da Web. Um dos principais objetivos da introdução de semântica na Web é tornar a informação mais “compreensível” para o computador. No âmbito da Web, a utilização de ontologias permite que agentes de software compreendam a semântica embutida nas definições e vocabulário especificados com respeito a um domínio, sem ambigüidades, viabilizando o intercâmbio de informações através de consultas. Tabela produto Id nome preco tipo 001 desktop 2050 eletronico 002 hard disk 225 componente Tabela composto idtodo idparte 001 002 Tabela 1. Esquema do banco de dados. Na Figura 2 [3], é apresentada uma visão da ontologia correspondente ao banco de dados representado na Figura 1. A ontologia apresenta uma hierarquia de classes que é formada a partir da classe produto e de suas subclasses eletroeletrônico e alimentício. Além disso, também são representados os relacionamentos partOf, similarTo e hasPart. Os relacionamentos hasPart e partOf, por exemplo, correspondem a tabela composto que através de seus atributos constituem chaves estrangeiras para a tabela Produto. Figura 2. Exemplo de Ontologia. 3.2. Exemplo de Ontologia 4. Expansão Semântica de Consultas usando Ontologias Para exemplificar o que foi apresentado, suponha um esquema de um banco de dados relacional simples sobre produtos de supermercados. O banco de dados contém informações usuais sobre produtos, como nome, preço e tipo (categoria do produto). Alguns produtos podem ser compostos por outros produtos, fato representado pela tabela de relacionamento Composto. A expansão de consultas, como vimos, visa adicionar termos ou modificar a consulta original com o objetivo de torná-la mais eficaz e abrangente. Para lidar com problemas relacionados a conflitos semânticos como termos sinônimos e homônimos, alguns sistemas têm adotado ontologias de domínio durante o processo de expansão de consultas. Para exemplificar como alguns sistemas expandem consultas semanticamente vamos analisar como o sistema FOQuE (Fuzzy Ontology-based Query Expansion) [3] expande as consultas tratando de termos homônimos. O primeiro passo é associar uma ontologia ao esquema do banco de dados que se deseja consultar. Isso pode ser feito de duas maneiras: i) extraindo uma ontologia que se assemelha à estrutura do banco e contém definições que estendem a semântica dos dados ou ii) reusando uma ontologia que se assemelha com as características do banco de dados utilizado. O segundo passo é fazer o mapeamento, ou seja, descrever associações entre os elementos da ontologia e do banco de dados para possibilitar a reformulação de consultas contendo os conceitos expandidos. Considere, por exemplo, o banco de dados descrito na seção 3.2, para fazer uma consulta SQL pelo produto ventilador teríamos: da regra de mapeamento (produto.tipo=‘componente’→ventilador_componente) como mostrado a seguir: SELECT produto.preco FROM produto WHERE ((produto. nome = ´ventilador´) AND (produto.tipo = ´componente´)); Depois da expansão de homônimos, o FOQuE verifica as demais expansões possíveis de acordo com o contexto apropriado. SELECT produto.preco FROM produto WHERE produto.nome = ´ventilador´; Depois da consulta ser submetida ao sistema, este analisará a ontologia e o conjunto de mapeamentos para verificar quais expansões semânticas podem ser aplicadas ao termo ventilador. A Figura 3 mostra que após a verificação foram encontrados, na ontologia, dois conceitos referentes ao termo ventilador: ventilador como eletrodoméstico e ventilador como componente de informática. Para tratar dessa ambigüidade, utiliza-se algum atributo do banco que remova a ambigüidade dos dados como, no exemplo, o atributo tipo da tabela produto. Por exemplo, para o tipo eletrônico existe um mapeamento entre o banco de dados e a ontologia referindo-se ao produto ventilador como eletrodoméstico (tipo = eletrodoméstico), de forma análoga para ventilador como componente (tipo = componente). Os contextos identificados são exibidos ao usuário, que decide qual deles é mais adequado para sua consulta. Por exemplo, caso o usuário queira recuperar dados de ventiladores que sejam eletrodomésticos, a condição da consulta original deve ser alterada em função da regra de mapeamento como mostrado a seguir. A nova consulta a ser submetida ao banco de dados seria: SELECT produto.preco FROM produto WHERE ((produto. nome = ´ventilador´) AND (produto.tipo = ´eletrodomestico´)); Suponha agora que o usuário deseje consultar pelo produto ventilador como componente de informática. A condição da consulta original deve ser alterada em função Figura 3. Contextos diferentes para o termo ventilador. Uma das vantagens dessa abordagem consiste em remover ambigüidades, obtendo dados mais precisos, além disso, o próprio usuário pode decidir quais dados são mais relevantes para a sua consulta. 5. Sistemas para Expandir Baseados em Ontologias Consultas A expansão semântica de consultas baseada em ontologias analisa conceitos e relacionamentos de um domínio específico para adicionar termos à consulta original ou alterar suas condições. Assim, a consulta é modificada com base nos conceitos da ontologia que estejam semanticamente associados aos termos especificados pelo usuário. Alguns sistemas têm utilizado ontologias para realizar a expansão de consultas, com o objetivo de obter resultados mais eficazes. Dentre tais sistemas podemos destacar: • ROSA+ [2]: é capaz de obter resultados abrangentes para as consultas do usuário, pois se baseia em mecanismos de inferência sobre axiomas da ontologia (transitividade, simetria, inversão e igualdade) e relacionamentos específicos de domínio. • Khan [5]: esta abordagem permite a expansão de consultas com base em sinônimos e especializações de conceitos da ontologia. Quanto maior a semelhança entre as palavras-chave e mais curto o caminho entre os conceitos da ontologia, maior a proximidade semântica entre os conceitos. Além desses sistemas, há alguns que incorporaram conceitos da Lógica Fuzzy [9] para expandir consultas como é o caso de: • • MIEL [2]: é um sistema que utiliza taxonomias difusas e similaridade entre conceitos que representam o domínio dos atributos do banco de dados, além de graus de pertinência que expressam quanto um conceito é mais generalizado que outro. O MIEL pode usar ontologias para expandir consultas e para recuperar os dados correspondentes mais próximos da seleção de critérios definidos pelo usuário. Ao final do processo, o conjunto difuso de preferências contém, além dos elementos especificados pelo usuário, os conceitos generalizados e respectivos graus de pertinência inferidos pelo próprio MIEL FOQuE (Fuzzy Ontology-based Query Expansion) [3]: utiliza ontologias difusas para expandir consultas não somente por especialização de conceitos e similaridade, mas também por proximidade todo-parte e transitividade difusa, além de tratar consultas que contenham termos homônimos. O objetivo do sistema FOQuE é obter resultados aproximados que sejam semanticamente relacionados aos termos especificados pelo usuário, através da expansão de consultas com base na análise de conceitos e relacionamentos difusos em ontologias. 6. Conclusão Neste artigo, foi apresentada uma visão geral sobre sistemas de recuperação de informação, onde foram descritos três modelos clássicos utilizado por tais sistemas. Os modelos descritos têm se mostrado eficazes para recuperar informações requeridas pelos usuários e apresentam vantagens como simplicidade e facilidade de implementação. Contudo, tais modelos apresentam algumas desvantagens, por exemplo, no modelo booleano as respostas podem ser nulas ou muito grandes. No modelo probabilístico, há a dependência da precisão das estimativas de probabilidade, um cálculo não muito fácil de realizar, além disso, o método não explora a freqüência do termo no documento. Então, há a necessidade de realizar pesquisas para desenvolver métodos mais eficazes para recuperar informações. Um desses métodos é a expansão semântica de consultas utilizando ontologias, pois o uso de ontologias possibilita analisar conceitos e relacionamentos de um domínio específico para adicionar termos à consulta original ou alterar suas condições. Dessa forma, a consulta é modificada com base nos conceitos da ontologia que estejam semanticamente associados aos termos especificados pelo usuário. Observamos, neste artigo, que alguns sistemas já utilizam ontologias para expandir semanticamente consultas. Em trabalhos futuros, temos por objetivo projetar um sistema para expandir semanticamente consultas no contexto de dados biológicos. Referências [1] BERNERS-LEE, T.; HENDLER, J.; LASSILA, O. The Semantic Web. Scientific American, v. 284, n. 5, p. 34-43, 2001. [2] BUCHE, P. et al. Fuzzy querying of incomplete, imprecise, and heterogeneously structured data in the relational model using ontologies and rules. IEEE Transactions on Fuzzy Systems, v. 13, n. 3, p. 373-383, 2005. [3] Cristiane A. Yaguinuma, Mauro Biajiz, Marilde Terezinha Prado Santos: Sistema FOQuE para Expansão Semântica de Consultas Baseada em Ontologias Difusas. SBBD 2007: 208222 [4] GRUBER, T. R. A Translation Approach to Portable Ontology Specifications. Knowledge Acquisition, v. 5, n. 2, p. 199-220, 1993. [5] KHAN, L.; MCLEOD, D.; HOVY, E. Retrieval effectiveness of an ontology-based model for information selection. The VLDB Journal, v. 13, n. 1, p. 71-85, 2004. [6] MATTOS, D.; MOURA, A. M. D. C.; CAVALCANTI, M. C. ROSA+: Um Repositório de Objetos de Aprendizagem com Suporte a Inferência e Regras. In: SIMPÓSIO BRASILEIRO DE BANCO DE DADOS, 2006, Florianópolis, SC. Anais... Florianópolis: UFSC, 2006. p.295-309. [7] MOURA, A. M. C., A Web Semântica: Fundamentos e Tecnologias. [2001].Disponível por WWW em http://www.udabol.edu.bo/biblioteca/congresos/cicc/cicc2001/d atos/Tutoriales/Tutorial4/T4.pdf (julho 2003). Cybernetics Society, 2004a. p. 582-587. [8] USCHOLD, M.; GRÜNINGER, M. Ontologies and Semantics for Seamless Connectivity. SIGMOD Record, v. 33, n. 4, p. 58-64, 2004. [9] ZADEH, L. A. Fuzzy Sets. In: Yager, R. R. et al. Fuzzy sets and applications: Selected Papers by L.A. Zadeh. New York: Wiley-Interscience, 1987a. p. 29-44