Você está na página 1de 6

TPref-SQL, uma linguagem de consultas para bancos de dados

com suporte a preferências temporais


Autor: Marcos Roberto Ribeiro1 ,
Orientadora: Sandra Aparecida de Amo1
1
Programa de Pós-Graduação em Ciência da Computação
Universidade Federal do Uberlândia (UFU)
Uberlândia – MG – Brasil
mribeiro@pos.facom.ufu.br, deamo@ufu.br

Nı́vel: Mestrado
Ano de ingresso no programa: 2006
Época esperada de conclusão: Julho / 2008
Etapa concluı́da: Defesa da proposta de dissertação

Resumo. Em virtude do grande crescimento do volume de informação com a qual


os usuários são confrontados na Internet, diversas pesquisas envolvendo formalismos
permitindo especificar e deduzir preferências e linguagens de consultas para bancos
de dados com suporte a preferências têm sido realizadas com o intuito de fornecer
mecanismos para obter os melhores objetos (ou tuplas) atendendo certas preferências
ou estabelecer uma relação de ordem de preferência sobre um conjunto de objetos.
Porém tais pesquisas tratam apenas de preferências sobre objetos individuais ou con-
junto de objetos sem qualquer estrutura. Nesse trabalho, propomos um formalismo
para tratar preferências temporais que lidam com seqüências de objetos, bem como
algoritmos de otimização permitindo obter as seqüências preferidas do usuário, a par-
tir de um conjunto de seqüências dado e de um conjunto de regras especificando as
preferências do usuário. Também é objetivo deste trabalho o desenvolvimento da lin-
guagem de consultas de bancos de dados TPref-SQL com suporte a preferências tem-
porais. Será desenvolvida uma extensão da álgebra relacional incluindo operadores
que permitam a especificação de condições envolvendo preferências temporais. Os
algoritmos de otimização mencionados anteriormente serão a base destes novos o-
peradores. Por fim, será implementado um protótipo da linguagem TPref-SQL.

Palavras-Chave. Linguagem de consultas, Extensão de SQL, Linguagem de Pre-


ferências, Preferências Temporais, Personalização de consultas
1. Introdução e Motivação

Com o aumento enorme de informação tanto na Internet quanto em bancos de dados privados,
ao se realizar uma pesquisa qualquer, um usuário pode se deparar com uma quantidade muito
grande de resultados. Sendo que, muitas vezes, tais resultados encontram-se sem qualquer
tipo de organização. Para solucionar esse problema, pesquisas recentes têm se preocupado em
atender às preferências do usuário da melhor forma possı́vel. Dessa maneira, os resultados
retornados por uma busca podem ser filtrados e organizados para atender interesses especı́ficos
dos usuários.
O tratamento de preferências pode ser feito de forma quantitativa ou outras maneiras,
porém trabalhos mais recentes vêm buscando tratar preferências de forma qualitativa. Por e-
xemplo, dada uma certa coleção de músicas, para se conhecer aquelas que são preferidas por
um usuário de forma quantitativa, pode-se solicitar ao mesmo que dê uma nota a cada música
e então seleciona-se aquelas músicas com maiores notas. No entanto, esse método pode ser
inviável para uma coleção de músicas muito grande. De forma qualitativa, pode-se obter do
usuário informações sobre quais atributos afetam sua preferência. Por exemplo, se o usuário
diz que músicas Country são melhores do que músicas de Rock, já se consegue obter uma
classe de músicas preferidas sem que o usuário avalie cada música individualmente.
A comparação de objetos de forma qualitativa leva em consideração a semântica ceteris
paribus, ou seja, pode-se comparar dois objetos que se distinguem em apenas um atributo. No
exemplo em que um usuário diz que “músicas Country são melhores que músicas de Rock”,
a comparação de duas músicas apenas é possı́vel se elas diferem no gênero, mas possuem a
mesma duração, ritmo, intérprete, etc.
É possı́vel também, no tratamento de preferências de forma qualitativa, fazer uso de
dependência preferencial e importância absoluta ou relativa. Dependência preferencial é quando
o valor de um atributo influencia na preferência de outro atributo. Por exemplo, um usuário
pode especificar que sua preferência em relação a duração das músicas depende do gênero das
mesmas. Para músicas Country prefere-se durações longas a durações breves e para músicas de
Rock prefere-se durações breves a durações longas. A importância absoluta ou relativa permite
especificar quando um atributo é mais importantes do que outro no momento de decidir entre
dois objetos. Por exemplo, um usuário pode especificar que o gênero de uma música é mais
importante do que o ritmo.
Outra importante tarefa no tratamento de preferências de forma qualitativa é a obtenção
de um subconjunto ótimo de objetos. Por exemplo, dada uma coleção de músicas de diversos
ritmos, deseja-se selecionar um conjunto de músicas para uma festa cujo público é jovem. As
caracterı́sticas desse conjunto são: o ritmo das músicas deve ser agitado e com grande variedade
de intérpretes. Uma solução para esse problema é associar a cada conjunto possı́vel um objeto
e, a partir daı́, proceder com o tratamento de preferências sobre objetos.
Apesar da existência de muitas pesquisas sobre o tratamento de preferências de forma
qualitativa, diversos tipos de aplicações exigem a necessidade de tratar preferências sobre estru-
turas mais complexas, como seqüências de objetos. Um exemplo do uso de preferências sobre
seqüências pode ser considerado a criação de uma lista de música, onde cada música é um ob-
jeto com atributos próprios, e a disposição das músicas na lista pode torná-la mais ou menos
preferida. O exemplo a seguir exibe algumas condições temporais e instruções de preferências
que devem ser tratadas nesse trabalho.
Exemplo 1 Supõe-se que seja necessário montar uma lista de músicas ótima dado um
repositório com músicas de diversos gêneros e durações. E o usuário imponha as seguintes
condições relativas a suas preferências pessoais: 1) Para músicas Country uma duração longa é
melhor do que uma duração breve, mas para músicas de Rock uma duração breve é melhor do
que uma duração longa. 2) É melhor que a lista de música inicie com uma música Country. 3)
Se a música anterior foi de Rock é melhor que a próxima seja Country, mas se a música anterior
foi Country de duração breve é melhor que a próxima seja Country novamente
Outros trabalhos têm abordado um aspecto muito importante, no sentido de acrescentar
instruções de preferências em consultas SQL para banco de dados, permitindo assim, que diver-
sas aplicações possam tratar melhor o interesse de uma busca realizada por seus usuários. As
instruções de preferências em consultas permitem restrições mais suaves do que as instruções
SQL padrões, ou seja, os resultados da consulta são construı́dos para se aproximar ao máximo
da preferência do usuário.
O principal objetivo desse trabalho será modelar um formalismo para tratar preferências
temporais, isto é, preferências sobre seqüências de objetos. Desenvolver algoritmos de
otimização que considerem tais preferências. Especificar uma extensão para a linguagem SQL
padrão a fim de que as preferências temporais possam ser expressadas em uma consulta. E
implementar um protótipo que processe um consulta com preferências temporais e obtenha os
resultados em um banco de dados de seqüências através dos algoritmos de otimização.
Este artigo encontra-se organizado da seguinte maneira. Na Seção 2 é apresentada uma
breve relação de trabalhos tratando formalismos sobre preferências e linguagens de consultas
para bancos de dados que suportam instruções de preferências. A Seção 3 descreve os principais
objetivos desse trabalho e expõe as soluções que serão desenvolvidas para o problema proposto.
Posteriormente, na Seção 4 encontra-se a metodologia que está sendo utilizada na pesquisa,
bem como o cronograma do andamento das atividades e a previsão de término para as atividades
pendentes.

2. Trabalhos Relacionados
Há diversas pesquisas que tratam da especificação, representação e raciocı́nio com preferências.
Em [Doyle and Wellman 1994], é introduzida uma representação de preferências através de
instruções ceteris paribus.
Nos trabalhos de [Boutilier et al. 2004a, Boutilier et al. 1999] foi proposta uma ferra-
menta para representar preferências de forma qualitativa sobre objetos com o uso de grafos,
chamada CP-net. O formalismo por trás dessa ferramenta mantém a semântica ceteris paribus
e acrescenta o conceito de dependência preferencial. Ainda nesses trabalhos, são propostos
algoritmos e técnicas para comparação e otimização de objetos. Em [Boutilier et al. 2004b]
foi apresentado um algoritmo para obter um conjunto de objetos ótimo dado um conjunto
de restrições. Já em [Brafman et al. 2006a] é descrita a criação de uma extensão de CP-net,
chamada de TCP-net que leva em consideração a importância absoluta ou relativa. O exemplo
2 exibe uma TCP-net e sua especificação correspondente.
Exemplo 2 Suponha as seguintes preferências especificadas por um usuário sobre atributos
músicais: 1) Genêro (G) Country (c) é melhor do que gênero Rock (r). 2) Ritmo (R) agitado
(a) é melhor do que ritmo tranqüilo (t). 3) Para músicas Country agitadas ou músicas de rock
tranqüilas uma duração (D) longa (l) é melhor do que uma duração breve (b), caso contrário
uma duração breve é melhor do que uma duração longa. 4) O gênero é mais importante do que
o ritmo. A Figura 1(a) exibe uma TCP-net para as preferências especificadas, onde os nós são
as variáveis, as arestas simples são as relações de dependência preferencial, a aresta de G para R
indica a relação de importância relativa e as tabelas especificam as preferêncas sobre a variável.
Uma forma de trabalhar com preferências entre conjuntos de objetos foi desenvolvida
por [Brafman et al. 2006b], onde se relata como reduzir uma especificação de preferências so-
bre conjuntos de objetos para uma especificação de preferências sobre objetos simples e um
algoritmo para otimização de subconjuntos de objetos. No exemplo 3 é mostrado como é feita
essa redução.
Country agitada Country tranqüila
Country agitada Rock tranqüila
Country agitada Pop tranqüila
(b) (c)

(a)
Figura 1 - TCP-net e conjuntos de objetos

Exemplo 3 Suponha os dois conjuntos de músicas exibidos na Figura 1(b) e na Figura 1(c). E
que um usuário especifique que os conjuntos melhores possuem ritmo agitado e maior diversi-
dade de gênero, e também que o ritmo é mais importante do que a diversidade de gênero.
Para o primeiro conjunto pode-se associar o vetor (1, a) e para o segundo conjunto
pode-se associar o vetor (3, t). O primeiro elemento do vetor é o número de gêneros e o se-
gundo elemento informa se o conjunto de músicas é agitado (a) ou tranqüilo (t). O primeiro
vetor é melhor do que o segundo considerando o ritmo e o segundo vetor é melhor do que o
primeiro considerando a diversidade de gêneros. Como o usuário especificou que o ritmo é mais
importante do que a diversidade de gêneros pode-se deduzir que o primeiro vetor é o melhor e,
conseqüentemente, o primeiro conjunto de músicas é o melhor.
Em [Kießling and Köstler 2002] foi desenvolvida a linguagem Preference SQL, que é
uma extensão da linguagem SQL que suporta instruções de preferências. E, posteriormente, em
[Endres and Kießling 2006] é tratado o problema de como transformar o formalismo lógico das
TCP-nets em consultas de Preference SQL.

3. Descrição do Trabalho
Os principais objetivos desse trabalho são: 1) Especificar uma linguagem para tratar pre-
ferências temporais. 2) Desenvolver algoritmos de otimização baseados em preferências tempo-
rais. 3) Especificar uma linguagem de consulta para bancos de dados com suporte a preferências
temporais. 4) Implementar um protótipo capaz de processar uma consulta com preferências
temporais e obter os resultados através dos algoritmos de otimização. 5) Realizar testes com o
protótipo em grandes volumes de dados para analisar seu desempenho. Nas subseções que se
seguem serão apresentados maiores detalhes sobre cada um desses objetivos

3.1. Especificação da Linguagem de Preferências Temporais


Antes de iniciar a especificação da linguagem de preferências temporais, algumas definições
básicas são necessárias. Seja V = {X1 , ..., Xn } um conjunto de atributos, dom(X) é o domı́nio
de X, tal que X ∈ V , O é o conjunto de objetos dom(X1 ) × ... × dom(Xn ) e o[X] refere-se
ao atributo X do objeto o. Uma seqüência de objetos em O é denotada por σ = ho1 , o2 , ..., ok i,
onde oi deve preceder oi+1 . Denota-se Seq(O) como todas as seqüências de objetos em O.
Sendo que um objeto pode ser considerado uma tupla e um atributo pode ser considerado um
campo no que diz respeito para bancos de dados.
Exemplo 4 Considerando o exemplo 1. Tem-se os atributos Gênero e Duração, denotados por
G e D respectivamente. Sejam dom(G) = { Country (c), Rock (r)} e dom(D) = { Longa (l),
Breve (b)}. Um objeto pode ser denotado como o = (c, l) e uma seqüência pode ser denotada
como σ = h(c, l), (c, b), (r, b)i.
Para a especificação da linguagem TPref considera-se que as preferências temporais são
descritas através de um conjunto de expressões que possuem o seguinte formato se condições
temporais então preferências sobre objeto.
As condições temporais são fórmulas que além dos operadores comuns a Lógica Tem-
poral Proposicional (LTP) como ∧, ∨ e ¬ possuem os seguintes operadores: 1) P REV F , o
objeto na posição anterior satisfaz a fórmula F . 2) F , todos os objetos das posições anteri-
ores satisfazem a fórmula F . 3) F , existe um objeto em uma posição anterior que satisfaz a
fórmula F .
Uma fórmula F pode ser true, f alse, (X = x) ou uma combinação usando os ope-
radores acima. Uma fórmula (X = x) significa que o valor do atributo X é igual a x.
As preferências sobre objeto possuem o formato (X = x) > (X = x′ ) e informam a
ordem de preferência para os valores de um atributo. Onde (X = x) > (X = x′ ) significa que
o valor de x é preferido ao valor de x′ para o atributo X. Portanto a linguagem TPref é um
conjunto de fórmulas F → (X = x) > (X = x′ ) onde F é uma condição temporal.
Exemplo 5 Para o exemplo da lista de músicas, as preferências temporais podem ser represen-
tadas pelo conjunto de fórmulas na linguagem TPref: ϕ1 : (G = c) → (D = l) > (D = b),
ϕ2 : (G = r) → (D = b) > (D = l), ϕ3 : P REV f alse → (G = c) > (G = c),
ϕ4 : P REV (G = r) → (G = c) > (G = r), ϕ5 : P REV (G = c) ∨ (D = b) → (G = c) >
(G = r). Pode-se notar que a fórmula P REV f alse equivale à preferência sobre o primeiro
objeto da seqüência.
Um conjunto de fórmulas da linguagem TPref atribui implicitamente uma ordem parcial
estrita ao conjunto de seqüências Seq(O). Dessa forma, um usuário não necessita especificar
explicitamente sua preferência sobre todas as seqüências, mesmo porque, se o número de obje-
tos for grande isso pode ser praticamente impossı́vel.

3.2. Algoritmos de Otimização


Uma das tarefas mais importantes no tratamento de preferências temporais é a obtenção de uma
seqüência ótima de objetos ou de um conjunto de seqüências ótimas de objetos. Serão desen-
volvidos dois algoritmos que executarão essas tarefas sobre um banco de dados de seqüências.
Esses algoritmos são: BestSeq e KBestSeq.
O algoritmo BestSeq busca uma seqüência de objetos que melhor atenda um dado con-
junto de preferências temporais. O algoritmo KBestSeq busca um conjunto com um número
K de seqüências que melhor atenda as preferências temporais dadas. No algoritmo KBestSeq
uma seqüência do conjunto retornado não deve ser dominada por nenhuma outra seqüência que
pertença a esse conjunto. Uma seqüência σ é dita não dominada com respeito a um conjunto
quando não existe nenhuma seqüência nesse conjunto que seja preferida a σ.

3.3. Incorporação de Preferências Temporais a Consultas de Bancos de Dados


Para se trabalhar com um grande volume de objetos a utilização de bancos de dados é crucial.
De posse do formalismo para expressar preferências temporais e dos algoritmos de otimização
será modelada a linguagem TPref-SQL que será uma linguagem de consultas para bancos de
dados que suporte instruções de preferências temporais.
Será desenvolvido um protótipo para a linguagem TPref-SQL que utilizará os algo-
ritmos de otimização. Assim, em uma consulta com instruções de preferências temporais, o
protótipo fará uso dos algoritmos de otimização para obter os resultados solicitados pela con-
sulta em um banco de dados de seqüências. Essa consulta poderá ser inserida por um usuário
ou gerada por uma interface para facilitar o trabalho do usuário.
Exemplo 6 Voltando ao exemplo da lista de música, as preferências especificadas podem ser
expressadas pela seguinte consulta com o objetivo de obter a seqüência de músicas ótima:
SELECT BEST * FROM SEQ MUSICAS
PREFER MUSICAS ((IF GENERO = ’country’ THEN DURACAO = ’longa’ > DURACAO = ’breve’) AND
(IF GENERO = ’rock’ THEN DURACAO = ’breve’ > DURACAO = ’longa’) AND
(IF PREV false THEN GENERO = ’country’ > GENERO = ’rock’) AND
(IF PREV GENERO = ’rock’ THEN GENERO = ’country’ > GENERO = ’rock’) AND
(IF (PREV GENERO = ’country’ AND DURACAO=’breve’) THEN GENERO = ’country’ > GENERO = ’rock’))
Onde a tabela SEQ MUSICAS possui as seqüências de músicas e a tabela MUSICAS contém
as músicas que aparecem nas seqüências.

4. Metodologia e Estado da Pesquisa


Este projeto será conduzido em etapas que podem ser descritas de forma geral como se segue:
1. Pesquisa bibliográfica sobre trabalhos relacionados a especificação, representação e
raciocı́nio com preferências, linguagens de consulta para bancos de dados e métodos
para incorporar instruções de preferências em linguagens de consulta para bancos de
dados.
2. Seminários para entendimento do cenário do problema a ser tratado.
3. Formalização do problema de especificação de preferências temporais.
4. Desenvolvimento dos algoritmos de otimização para preferências temporais.
5. Modelagem da linguagem de consulta estendida para suportar preferências temporais.
6. Implementação de protótipo que utilize os algoritmos de otimização para processar con-
sultas com preferências temporais.
7. Testes de consultas em bancos de dados para análise de desempenho.
8. Redação da dissertação e conclusão do trabalho.
4.1. Cronograma do Trabalho até a Defesa
A tabela 1 exibe o cronograma com o semestre previsto para a realização de cada etapa. No
momento, a etapa 3 foi concluı́da e a etapa 4 está sendo executada.
Etapas 2/2006 1/2007 2/2007 1/2008 Etapas 2/2006 1/2007 2/2007 1/2008
Etapa 1 X Etapa 5 X
Etapa 2 X Etapa 6 X
Etapa 3 X Etapa 7 X
Etapa 4 X Etapa 8 X
Tabela 1 - Cronograma semestral com as etapas do projeto
References
Boutilier, C., Brafman, R. I., Domshlak, C., Hoos, H. H., and Poole, D. (2004a). Cp-nets: A tool for repre-
senting and reasoning with conditional ceteris paribus preference statements. Journal of Artificial Intelligence
Reasearch (JAIR), 21:135–191.

Boutilier, C., Brafman, R. I., Domshlak, C., Hoos, H. H., and Poole, D. (2004b). Preference-based constrained
optimization with cp-nets. Computational Intelligence, 20(2):137–157.

Boutilier, C., Brafman, R. I., Hoos, H. H., and Poole, D. (1999). Reasoning with conditional ceteris paribus
preference statements. In Proceedings of the 15th Annual Conference on Uncertainty in Artificial Intelligence
(UAI), pages 71–80. Morgan Kaufmann Publishers.

Brafman, R. I., Domshlak, C., and Shimony, S. E. (2006a). On graphical modeling of preference and importance.
Journal of Artificial Intelligence Research (JAIR), 25:389–424.

Brafman, R. I., Domshlak, C., Shimony, S. E., and Silver, Y. (2006b). Preferences over sets. In Proceedings of the
21st National Conference on Artificial Intelligence (AAAI). AAAI Press.

Doyle, J. and Wellman, M. P. (1994). Representing preferences as ceteris paribus comparatives. In Proceedings of
the AAAI Spring Symposium on Decision-Theoretic Planning, pages 69–75.

Endres, M. and Kießling, W. (2006). Transformation of tcp-net queries into preference database queries. In
Proceedings of the Multidisciplinary Workshop on Advances in Preference Handling, pages 23–30.

Kießling, W. and Köstler, G. (2002). Preference sql - design, implementation, experiences. In Proceedings of 28th
International Conference on Very Large Data Bases (VLDB), pages 990–1001.