Vous êtes sur la page 1sur 7

Suporte a argumentos de consulta vagos atravs da XPath

Alvaristo Padilha , Carina F. Dorneles , Carlos A. Heuser


1 UFRGS-

Instituto de Informtica Porto Alegre, RS

{dorneles, abernardes, heuser}@inf.ufrgs.br

Resumo. Abordagens clssicas de linguagens de consultas para bancos de dados no so adequadas para uso direto em aplicaes que acessam dados cujo contedo no completamente conhecido pelo usurio. Filtros de consultas com operadores booleanos podem retornar resultados vazios, forando o usurio a refazer suas consultas at que os argumentos usados estejam de acordo com os dados armazenados no banco. Como soluo, uma alternativa o uso de funes de similaridade que substituam operadores booleanos, a m de se obter resultados aproximados consulta especicada. Este artigo apresenta uma extenso da XPath, a SimXPath, que faz uso de novas funes para suporte a argumentos de consultas vagos, bem como um conjunto de experimentos.

1. Introduo
As linguagens clssicas para manipulao de dados foram desenvolvidas para suporte a consultas com argumentos de busca que utilizem operadores booleanos. Na forma como tais linguagens sodenidas atualmente, o usurio deve especicar consultas cujo valor usado nas condies de busca corresponda exatamente ao valor armazenado no banco. Isto gera um desao s aplicaes que precisam forncecer suporte a consultas em que o usurio no tem conhecimento suciente do contedo da base de dados. Os resultados fornecidos por tais aplicaes podem ser vazios, forando o usurio a refazer suas consultas at que os argumentos usados estejam de acordo com os dados armazenados no banco de dados. Como exemplo de aplicao pode-se considerar uma vdeo locadora onde um cliente queira encontrar um determinado lme fornecendo alguns valores vagos como argumentos de consulta, como o nome do ator principal (possivelmente com erros de digitao), datas de produo e estria aproximadas. Um outro exemplo, envolvendo a Web, so aplicaes de integrao de dados de diferentes fontes. Neste caso, so encontradas diferentes representaes do mesmo objeto do mundo real. Por exemplo, em um sistema de integrao de citaes bibliogrcas, como o Citeseer, variaes de nome para a mesma conferncia so bastante comuns ("Simpsio Brasileiro de Banco de Dados" ou "SBBD"). Este tipo de aplicao deveria recuperar como resultado todas as representaes de um determinado objeto, independente do argumento de consulta utilizado. A adoo de funo de similaridade em substituio aos operadores booleanos pode ser considerada uma soluo para o problema. Usando esta abordagem possvel que as linguagens forneam suporte a argumentos de consultas cujos valores so aproximados quilo que o usurio de fato deseja. Com o uso de funes de similaridade, o sistema pode gerar um escore de semelhana entre cada objeto na base e o argumento de consulta e retornar ao usurio um ranking com as respostas com os escores mais altos. Algumas propostas estendem linguagens XML, tais como XQL[Fuhr and Grossjohann, 2000] e XML-QL [Florescu et al., 2000], para consultar documentos XML atravs de uma mquina de busca por palavra-chave usando um processador de consultas de uma linguagem XML. Outros, se propem a investigar tambm a similaridade estrutural

de documentos XML [Ciaccia and Penzo, 2002, Schlieder, 2002]. Em [Ciaccia and Penzo, 2002] ou autores levam em conta o nome dos nodos bem como a sua localizao dentro da estrutura. Em [Theobald and Weikum, 2001] uma linguagem de consulta, baseada em XML-QL, criada e estendida com um operador binrio, que possibilita a comparao, tanto dos nomes dos nodos de uma estrutura, quanto dos valores que eles possuem. Em [Al-Khalifa et al., 2003] os autores propem uma lgebra para XML, TIX (querying Text In XML), na qual operadores conhecidos como Selection, Projection e Join so denidos sobre rvores com escores e novos operadores so denidos para atender a busca por similaridade. O modelo de dados XML [W3C, 1998] largamente utilizado por aplicaes, principalmente em ambiente web, para troca de dados semi-estruturados. A linguagem de consulta XPath [W3C, 1999] utiliza expresses de caminhos, muito similares as utilizadas em sistemas de arquivos, para identicar os nodos em um documento XML. Neste artigo proposta uma extenso da linguagem XPath, a SimXPath (Similaridade em XPath), que permite o uso de funes de similaridade em expresses de caminho. Tais funes so denidas com base em algumas das mtricas de similaridade para elementos XML previamente denidas em [Dorneles et al., 2004]. Considerando que documentos XML podem possuir elementos com valores atmicos (elementos que contm seqncia de caracteres como strings, datas, nmeros, etc), ou com valores complexos (elementos que contm outros elementos como valores) dois tipos de mtricas de similaridade foram denidas: MAV (Metric for Atomic Values), para elementos atmicos e MCV (Metric for Complex Values) para elementos complexos. As mtricas usadas para elementos atmicos dependem do domnio da aplicao dos valores. As mtricas para elementos complexos so dependentes da estrutura do elemento. A inteno da proposta aqui descrita no modicar a sintaxe da XPath, pois deseja-se utilizar o processador j existente. Desta forma, a proposta consta da extenso do conjunto de funes j disponveis na linguagem. O presente trabalho apresenta, de forma geral, trs contribuies: i) suporte a consultas com condies de busca aproximada atravs da adio de novas funes para uma linguagem; ii) denio de uma extenso, sem alterao da sintaxe, para uma linguagem padro j adotada pela comunidade; e iii) conjunto de experimentos preliminares que demonstram a utilidade de funes de similaridade. O artigo organizado como segue. Na Seo 2, so apresentadas as funes adicionadas XPath, usando para isso exemplos com expresses SimXPath. A Seo 3 descreve os experimentos preliminares de algumas consultas SimXPath executadas sobre duas bases de dados de diferentes domnios. A Seo 4 conclui e aponta os trabalhos futuros.

2. SimXPath
As funes foram denidas com valor de retorno do tipo numrico, signicando o escore de similaridade entre o argumento de busca passado na consulta e os elementos XML da base. Esse valor est contido no intervalo [0,1] (0=menos similar, 1=mais similar). Na detalhao das funes especcas da SimXPath, usa-se a mesma conveno adotada na XPath para tipos de argumento (string, number, boolean e node-set). Para que um elemento seja selecionado, o valor de retorno da funo deve ser comparado (<, >, <=, >=) com um outro valor (threshold) que indicar o quo similar se deseja os elementos que faro parte da resposta. Quanto mais prximo de 1 este valor, menor ser a quantidade de elementos. 2.1. Elementos Atmicos Todas as funes para elementos atmicos possuem dois parmetros de entrada: i) a expresso de caminho que indica a localizao do elemento a ser comparado, representado por node-set; e ii)

o argumento de comparao usado pela funo, representado pelo seu tipo string ou number. A expresso de caminho passada como argumento em uma funo (o node-set) deve ser relativa ao elemento contexto que est fora do critrio de seleo. As funes para elementos atmicos seguem a mesma classicao usada para as MAVs, string, data e nmero. Utilizando as MAVs de mesmo nome, as seguintes funes so denidas:
String
number number editSim(node-set, sigSim(node-set, string) string)

Data
number dateSim(node-set, string) number daySim(node-set, number) number monthSim(node-set, number) number yearSim(node-set, number)

Nmero
number sameNumSim(node-set, number) number difNumSim(node-set, number)

number ngramsSim(node-set, string)

A funo ngramsSim calcula a similaridade entre duas strings que podem possuir rearranjo de palavras, enquanto a sigSim avalia um escore de similaridade entre duas strings em que uma delas pode ser uma sigla da outra. A funo editSim calcula a similaridade entre duas strings que possuam apenas erros tipogrcos. Example 1 Localizar as citaes bibliogrcas cujo ttulo tenha um nome parecido com "Database Sistems Concets" e tenham sido editados por volta de 1999.
/References/Ref[editSim(Title,"Database Sistems Concets")>0.7 and yearSim(Date/Year, 1999)>0.7]

No exemplo 1, existem dois valores imprecisos, o nome do ttulo e o ano de edio do livro. Utilizando as mtricas de comparao, um escore de similaridade retornado e s so selecionados os elementos Ref cujos escores de similaridade dos lhos, Title e Date/Year forem maiores do que os denidos na consulta.
Filmes
<movies> <film> <title>Anger Management</title> <genre><type>Comedy</type></genre> <crew> <direction><name>Peter Segal</name></direction> <writer><name>David Dorfman</name></writer> </crew> <cast> <name>Adam Sandler</name> <name>Jack Nicholson</name> </cast> <production><year>2003</year></production> </film> ... </movies>

Citaes Bibliogrcas
<References> <Ref> <Type>BOOK</Type> <Authors>Abraham Silberschatz</Author> <Author>Henry Korth</Author> <Author>Sudarshan/Author> </Authors> <Date> <Year>1997</Year> </Date> <Title>Database System Concepts</Title> </Ref> ... </References>

Figura 1: Coleo de instncias das bases lmes (lm) e citaes bibliogrcas (Ref)

2.2. Elementos Complexos As funes de similaridade para elementos complexos foram elaboradas para auxiliar o usurio a localizar elementos, no somente pelos valores atmicos, mas tambm atravs das estruturas que os contm. A comparao feita com as estruturas dos elementos fornecidos na condio de busca com as estruturas dos elementos da base, comparando os valores atmicos de seus sub-elementos atravs das funes de similaridade atmicas. a) Tupla A funo utilizada para elementos complexos que so considerados tuplas possui como parmetro de entrada valores numricos, representados por (number, number*). Cada number corresponde ao retorno de uma funo que foi previamente aplicada a cada componente da tupla. O valor de number dever estar contido no intervalo [0,1], correspondendo aos escores de similaridade dos componentes. A nomenclatura para tupla ca da seguinte forma: Funo: number tupleSim(number, number*).

Example 2 (CB1:) Localizar os lmes cujo tipo seja "Comedia", possua o ator "J. Nicholson" produzido prximo ao ano 2000.
/movies/film[tupleSim(editSim(type, "Comedia"), sigSim(cast/name, "J. Nicholson"), yearSim(production/year, 2000))>0.7]

Para a consulta do Exemplo 2 o processador aplica cada funo de elemento atmico para cada elemento especicado nas funes, retornando o respectivo escore de similaridade. Cada escore equivale a um parmetro number da funo tupleSim. Com os escores retornados, a funo tupleSim aplica a mtrica tupleSim utilizando estes escores. Nesta consulta importante notar que os valores passados atravs do argumento node-set das funes para atmicos so relativos ao elemento film. S so selecionados pelo processador os elementos film do documento XML que possurem como lhos exatamente os trs elementos solicitados na consulta, type, cast/name e production/year, e cuja mdia dos escores de similaridade for maior do que "0.7". b) Colees: Em SimXPath, nas funes criadas para colees (listas e conjuntos), os argumentos denidos como parmetros de entrada so: i) o caminho relativo que contm o elemento que se refere coleo, representado por node-set e; ii) os valores dos componentes da coleo, representados por (string, string*). Para cada uma das funes atmicas haver uma funo de conjunto cujo nome ser formado pelo nome da funo atmica, o nome do tipo de coleo (no caso Set) e o suxo Sim: Funo: number editSetSim(node-set, string, string*). Da mesma forma teria-se as funes ngramsSetSim, dateSetSim, etc. As funes para conjunto comparam cada argumento string com todos os elementos na instncia XML que se encontram no node-set fornecido e, para cada comparao, retorna o maior escore de similaridade. Com todos os escores obtidos, a mtrica para conjuntos aplicada. Example 3 (CB2:) Localizar as citaes bibliogrcas que tenham sido escritas pelos autores "Silberschatz, Abraham", "Sudarshan"e "Korth, Henry".
/References/Ref[ngramsSetSim(Authors/Author, "Korth, Henry", "Sudarshan", "Silberschatz, Abraham")>0,7]

No Exemplo 3 a funo ngramsSetSim compara cada string, com todos os elementos na instncia XML equivalentes ao caminho Authors/Author fornecido. Para cada comparao, retorna o maior escore de similaridade aplicando a mtrica para conjunto sobre eles. O argumento node-set indica que Authors/Author um conjunto de elementos atmicos Author. As funes para lista so bastante similares s funes para conjuntos com duas diferenas bsicas: i) na composio do nome da funo, Set substituido por List (sigListSim, numListSim, etc) e; ii) cada argumento string deve ser fornecido na ordem em que se encontra na instncia. Pode-se efetuar uma consulta com apenas parte dos elementos contidos em uma estrutura. Para isso, foram denidas funes que trabalham com sub-estruturas de elementos complexos. Para as funes que utilizam tuplas, listas e conjuntos, basta substituir o tipo da estrutura (Tuple, Set ou List) por sua sub-estrutura (SubTuple, SubSet ou SubList). A diferena bsica que os argumentos utilizados na comparao, no precisam estar em mesmo nmero que os elementos que fazem parte da coleo que est na base para se obter um escore de similaridade alto. Deste modo, foram criadas funes como subTupleSim, editSubSetSim, sigSubListSim, etc, que comparam os argumentos da consulta com partes dos elementos complexos encontrados na base.

3. Experimentos
Nesta seo so apresentados resultados preliminares de alguns experimentos efetuados a m de demonstrar a utilidade do uso de funes de similaridade em uma linguagem de consulta. Os dados

utilizados nos experimentos so originados de fontes de dados reais: citaes de arquivos BIBTEX e descrio de lmes. Para o primeiro caso, os dados totalizam 16.519 entradas de citaes bibliogrcas, e para o segundo 295 instncias. Uma maneira clssica [Salton and McGill, 1983] de avaliar este tipo de aplicao atravs da chamada curva de preciso/revocao, onde a preciso avaliada em relao revocao no ranking dos resultados de um conjunto de consultas. Como expresses XPath possibilitam apenas a navegao e seleo de elementos em um documento XML, no possvel gerar ranking dos resultados, pois no possui quanticadores existenciais nem comandos de ordenao. Isto torna sem sentido a criao de uma curva de preciso/revocao. Desta forma, as mtricas de revocao e preciso foram aplicadas individualmente para cada consulta testada, sem relacionar uma com a outra. Como uma mdia entre as duas mtricas de avaliao, usou-se o f-value. 3.1. Resultados Os resultados das expresses SimXPath foram limitadas por um valor de threshold (t), ou seja, um determinado conjunto de nodos selecionado se estiver acima de um determinado ponto de corte. As Tabelas 1 e 2 apresentam o resultado de trs consultas efetuadas sobre cada base de dados de citaes bibliogrcas e de lmes, utilizando as mtricas preciso (P), revocao (R) e F-Value (F-v). Em cada fonte, os pares de consulta (CB1, CF1), (CB2, CF2) e (CB3, CF3) equivalem a sub-tupla, sub-conjunto e sub-lista respectivamente. As consultas CB1, CB2 e CB3 so basicamente as mesmas apresentadas como exemplo na Seo 2, com a diferena que foram usadas funes para tratamento de sub-estruturas e para CB2, apenas os trs primeiros valores dos elementos atmico author foram utilizados. As consultas CF1, CF2 e CF3 so as seguintes:
CF1:/movie/film[subtupleSim(editSim(genre/type, "Action"), editSim(crew/direction/name, "Michael Bay"))>=0.7] CF2:/movie/film[ngramsSubSetSim(cast/name,"Rene Zellweger", "Catherine Zeta Jones", "Richard Gere")>=0.7] CF3:/movie/film[ngramsSubListSim(crew/writer/name, "George Gallo", "Michael Barrie")>=0.7]

A escolha de funes com suporte a sub-estruturas como condies de busca para os experimentos parece mais intuitivo do ponto de vista de uma consulta. Geralmente um usurio constri uma consulta com o intuito de recuperar objetos que tenham "apenas tais caractersticas". Na Tabela 1 so apresentados os resultados relativos s trs consultas efetuadas sobre a base de citaes bibliogrcas. Observa-se um valor de preciso baixo para a busca usando uma sub-tupla (CB1) com t=0.7, porque muitas instncias no relevantes da base apresentam valores bastante similares nos elementos Year, Type, e Title. Desta forma, muitas das instncias retornadas como corretas possuem valores muito similares para estes elementos. A preciso melhora quando o valor de threshold aumenta (t = 0.8). Quando um sub-conjunto de autores (elemento Authors) fornecido como entrada (CB2), a preciso cai em ambos os casos, t=0.7 e t=0.8. Isso se explica pelo fato de haverem muitos artigos em que os autores "Abraham Silberschatz", "Henry Korth" e "Sharad Mehrotra" aparecem juntos, e com eles outros autores quaisquer. A preciso melhora quando a coleo de autores fornecida juntamente com a ordem (CB3), principalmente com t=0.8. Sub-Tupla R P
100% 100% 50% 100%

t 0,7 0,8

C
CB1 CB1

F-v
66,6% 100%

C
CB2 CB2

Sub-Conjunto R P F-v
100% 100% 48,6% 70.2% 64,8% 82,6%

C
CB3 CB3

Sub-Lista R P
100% 100% 79,2% 100%

F-v
88,5% 100%

Tabela 1: Descrio dos resultados das consultas sobre a fonte de citaes bibliogrcas

A Tabela 2 apresenta os resultados relativos s trs consultas efetuadas sobre a base de lmes. A baixa preciso da consulta CF1 se deve ao mesmo motivo apresentado para a consulta CB1, ou seja, muitas instncias da base apresentam valores bastante similares nos elementos fornecidos como consulta genre/type e cast/name. A preciso melhora com o aumento do valor de threshold. A consulta CF2 possui altos graus de revocao e preciso pois todas as instncias da base apresentam no mnimo os trs atores solicitados. A consulta CF3 apresentou uma revocao baixa pelo fato de no haver, na base, o conceito de ordem para o elemento solicitado crew/writer/name. Ambos os resultados, com t=0.7 e t=0.8, foram os mesmos pois das trs instncias consideradas como relevantes, uma no foi encontrada em nenhum dos casos por apresentar um escore de similaridade bastante baixo. Nesta instncia, a ordem dos escritores do lme se encontrava invertida. Este caso pode ser resolvido com o uso da funo subSetSim. Sub-Tupla R P
100% 100% 81,8% 100%

t 0,7 0,8

C
CF1 CF1

F-v
89,9% 100%

C
CF2 CF2

Sub-Conjunto R P F-v
100% 100% 100% 100% 100% 100%

C
CF3 CF3

Sub-Lista R P
63,3% 63,3% 100% 100%

F-v
77,6% 77,6%

Tabela 2: Descrio dos resultados das consultas sobre a fonte de Filmes

Evidentemente que o uso incorreto das funes de similaridade, tanto as MAVs quanto as MVCs, no fornecem um bom resultado, a exemplo da consulta CF3 que por no haver o conceito de ordem na base, o retorno no foi satisfatrio.

4. Concluses e Trabalhos Futuros


Neste artigo, foi proposta uma extenso para a XPath, a SimXPath, a qual possibilita que o usurio utilize funes de similaridade, ao invs de operadores booleanos para acesso a dados cujo contedo no conhecido. A principal contribuio do trabalho o suporte a consultas com condies de busca aproximada atravs da simples adio de novas funes linguagem. A abordagem proposta perfeitamente aplicvel sem qualquer alterao da sintaxe da XPath. Por esta razo pode ser implementada de forma simplicada em processadores XPath existentes. As funes e a sintaxe propostas aqui podem ser perfeitamente adaptadas a um processador de consulta da XQuery sem alteraes. O retorno das funes foi denido como numrico para que elas possam ser aplicadas a XQuery sem alterao. Com retorno numrico a gerao de um ranking de resultados como resposta de uma consulta XQuery bastante fcil de ser gerada.

Referncias
Al-Khalifa, S., Yu, C., and Jagadish, H. V. (2003). Querying structured text in an XML database. In Proc. ACM SIGMOD, pages 415. ACM Press. Ciaccia, P. and Penzo, W. (2002). Adding exibility to structure similarity queries on XML data. In Proc. Intl. Conf. on Flexible Query Answering Systems (FQAS), Copenhagen, Denmark. Dorneles, C. F., Heuser, C. A., Lima, A. E. N., da Silva, A. S., and de Moura, E. S. (2004). Measuring similarity between collection of values. In WIDM 04: Proceedings of the 6th annual ACM international workshop on Web information and data management, pages 5663. ACM Press. Florescu, D., Kossmann, D., and Manolescu, I. (2000). Integrating keyword search into XML query processing. In WWW Conf. on Computer networks. Fuhr and Grossjohann (2000). XIRQL: an extension of XQL for information retrieval. In ACM SIGIR Workshop On XML and Information Retrieval. Salton, G. and McGill, M. J. (1983). Introduction to Modern Information Retrieval. McGraw Hill. Schlieder, T. (2002). Schema-driven evaluation of approximate tree-pattern queries. In Extending Database Technology, pages 514532.

Theobald, A. and Weikum, G. (2001). Adding relevance to XML. Lecture Notes in Computer Science, 1997. W3C (1998). Extensible markup language - XML. http://www.w3.org/XML. W3C (1999). XML Path Language (XPath) 1.0. http://www.w3.org/TR/xpath.