Implementação de uma Linguagem de Consulta com Suporte a Preferências Condicionais Fabíola S. Fernandes, Sandra de Amo UNIVERSIDADE FEDERAL DE UBERLÂNDIA PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
MOTIVAÇÃO Viagens ( Destino, Temporada, Roteiro, Transporte, Categoria ) Minhas preferências: (1) Em geral, prefiro viajar para praia do que para um centro urbano; (2) Para viagens de carnaval a centros urbanos, prefiro que o transporte seja rodoviário; (3) Para roteiros a centros urbanos, prefiro viajar nas férias do que no carnaval. Page 2
MOTIVAÇÃO Viagens ( Destino, Temporada, Roteiro, Transporte, Categoria ) Consultas: Quero os destinos que mais se adequam às minhas preferências, desde que não sejam viagens na temporada de Páscoa. Retorne as 4 viagens, dentre aquelas armazenados no BD, que mais se adequam às minhas preferências. Page 3
OUTLINE A Linguagem CPref-SQL Trabalhos Correlatos e Contribuições Avaliação de Consultas com Preferências (consultas-pc) Experimentos Aplicação: Consultas por Similaridade com Preferências Considerações Finais Page 4
A LINGUAGEM CPref-SQL Extensão do SQL capaz de expressar consultas com preferências condicionais Consultas incorporam restrições hard (WHERE) e também restrições soft (regras de preferências) Objetivos: Expressar preferências sobre uma base de dados Filtrar a resposta a consultas de acordo com as preferências do usuário Page 5
A LINGUAGEM CPref-SQL Expressar preferências num banco de dados da seguinte maneira: CREATE PREFERENCES MyPrefs FROM Viagens AS R= praia > R= urbano [D,Tr,C] AND IF T= carnaval and R= urbano THEN Tr= rod > Tr= aereo [D,C] AND IF R= urbano THEN T= ferias > T= carnaval [D] Page 6
A LINGUAGEM CPref-SQL Filtrar a resposta das consultas de acordo com as preferências do usuário SELECT destino FROM viagens WHERE temporada <> pascoa ACCORDING TO PREFERENCES (4, MyPrefs) Page 7
OUTLINE A Linguagem CPref-SQL Trabalhos Correlatos e Contribuições Avaliação de Consultas com Preferências (consultas-pc) Experimentos Aplicação: Consultas por Similaridade com Preferências Considerações Finais Page 8
TRABALHOS CORRELATOS E CONTRIBUIÇÕES TEMA Modelagem e Raciocínio com Preferências Extensões do SQL Operadores Algoritmos para avalição de consultas com preferências Consultas top-k Implementação ESTADO DA ARTE CP-Net TCP-Net Fórmulas de Preferência Condicional Preference SQL CPref-SQL Skyline Winnow SelectBest BNL consultas skyline SFS BNL+, BNL++ BNL*, Top N, Top K ranking Top K dominantes On-top, Centrist, Built-in Page 9
TRABALHOS CORRELATOS E CONTRIBUIÇÕES TEMA Modelagem e Raciocínio com Preferências Extensões do SQL Operadores Algoritmos para avalição de consultas com preferências Consultas top-k Implementação ESTADO DA ARTE CP-Net TCP-Net Fórmulas de Preferência Condicional Preference SQL CPref-SQL Skyline Winnow SelectBest BNL consultas skyline SFS BNL+, BNL++ BNL*, Top N, Top K ranking Top K dominantes On-top, Centrist, Built-in PROPOSTA Fórmulas de Preferência Condicional CPref-SQL SelectK-Best BNL** e R-BNL** Top-K cp-queries Built-in Page 10
OUTLINE A Linguagem CPref-SQL Trabalhos Correlatos e Contribuições Avaliação de Consultas com Preferências (consultas-pc) Experimentos Aplicação: Consultas por Similaridade com Preferências Considerações Finais Page 11
OPERADORES DA ÁLGEBRA CPref-SQL R Select-Best Tuplas que não têm nenhuma outra tupla acima delas na hieraquia de preferência t1 t2 t4 t5 t3 Page 12
OPERADORES DA ÁLGEBRA CPref-SQL K R SelectK-Best K tuplas que têm o menor nº tuplas acima delas na hieraquia de preferência t1 0 0 t5 1 t2 0 t4 t3 2 Page 13
OPERADORES DA ÁLGEBRA CPref-SQL π SELECT < attribute-list > FROM < tables > WHERE < where-conditions (hard conditions) > ACCORDING TO PREFERENCES < preference (soft conditions) > SelectBest / SelectK-Best σ X R 1... R n Page 14
ALGORITMOS BNL** E R-BNL** SelectBest SelectK-Best BNL** R-BNL** Seguem as linhas do algoritmo de laço aninhado - BNL (BORZSONYI et al. ICDE 2001) Utilizam a resolução SLD do Datalog para comparar tuplas Page 15
ALGORITMOS BNL** E R-BNL** Teste de Dominância Input: tuplas t1, t2 Output: t1 > t2 ou t2 > t1 ou t1 ~ t2 (incomparáveis) Método 1. Projeção 2. Método: CP-Teoria = Programa Datalog Testar t1 > t2 : datalog goal Page 16
ALGORITMOS BNL** E R-BNL** Teste de Dominância: t1 > t2? t2 > t1? t1 ~ t2? CP-Teoria 1. A = a1 -> C = c1 > C = c2 2. B = b1 -> C = c2 > C = c3 Programa Datalog 1. pref(x1, y1, z1, x2, y2, z2 ) <- x1 = a1, x2 = a1, y1 = y2, z1 = c1, z2 = c2 2. pref(x1, y1, z1, x2, y2, z2 ) <- x1 = x2, y1 = b1, y2, = b1, z1 = c2, z2 = c3 3. dom( x1, y1, z1, x2, y2, z2 ) <- pref( x1, y1, z1, x2, y2, z2 ) 4. dom( x1, y1, z1, x2, y2, z2 ) <- pref( x1, y1, z1, x3, y3, z3 ), dom( x3, y3, z3, x2, y2, z2 ) Page 17
ALGORITMOS BNL** E R-BNL** Teste de Dominância: t1 > t2? t2 > t1? t1 ~ t2? 2. CP-teoria = Programa Datalog Teste (a1, b1, c1) > (a1, b1, c2) Goal dom( a1, b1, c1, a1, b1, c2 ) Page 18
OUTLINE A Linguagem CPref-SQL Trabalhos Correlatos e Contribuições Avaliação de Consultas com Preferências (consultas-pc) Experimentos Aplicação: Consultas por Similaridade com Preferências Considerações Finais Page 19
EXPERIMENTOS Benchmark TPC-H (http://www.tpc.org/tpch/) Base de dados sintéticos Suite com 22 consultas SQL Adaptação nas consultas: inserção das cláusulas de preferência remoção das funções de agregação (group by, having, ) mudanças de termos das cláusulas WHERE Avaliação da performance e escalabilidade entre consultas CPref-SQL e as traduções em SQL Toda consulta CPref-SQL pode ser traduzida em SQL com Page 20 recursão.
EXPERIMENTOS: PERFORMANCE E ESCALABILIDADE Page 21
OUTLINE A Linguagem CPref-SQL Trabalhos Correlatos e Contribuições Avaliação de Consultas com Preferências (consultas-pc) Experimentos Aplicação: Consultas por Similaridade com Preferências Considerações Finais Page 22
CONSULTAS POR SIMILARIDADE E PREFERÊNCIAS Consulta Híbrida Imagem (dados complexos) + Preferências (dados texto) SIREN SImilarity Retrieval ENgine SGBDR Postgres com suporte a CPref-SQL Page 23 K imagens mais similares e preferidas
CONSULTAS POR SIMILARIDADE E PREFERÊNCIAS Dentre as 10 imagens mais similares a este raio-x de pulmão que contém a palavra Consolidação no laudo médico, o radiologista prefere as imagens tiradas durante as estações mais secas do ano. Page 24
OUTLINE A Linguagem CPref-SQL Trabalhos Correlatos e Contribuições Avaliação de Consultas com Preferências (consultas-pc) Consultas-pc top-k no SGBD Experimentos Aplicação: Consultas por Similaridade com Preferências Considerações Finais Page 25
CONSIDERAÇÕES FINAIS O que já foi feito: Proposta das consultas-pc top-k Implementação da linguagem CPref-SQL Experimentos Estudo de caso com operadores de similaridade do SIREN O que falta fazer: Integrar preferências ao módulo de mineração de dados do SIREN Escrita de artigos (periódicos e conferências) Finalização da redação da dissertação Previsão de Defesa: Fevereiro/2011 Page 26
Implementação de uma Linguagem de Consulta com Suporte a Preferências Condicionais Fabíola S. Fernandes, Sandra de Amo fabfernandes@comp.ufu.br, deamo@ufu.br!! FIM!! UNIVERSIDADE FEDERAL DE UBERLÂNDIA PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
CONTRIBUIÇÕES Consultas-pc top-k Novo operador SelectK-Best Implementação da linguagem CPref-SQL Algoritmos BNL** e R-BNL** que implementam os operadores Select-Best e SelectK-Best Codificação no core do SGBD PostgreSQL Experimentos comparando a abordagem built-in com a tradução em SQL padrão Integração entre operadores de preferência e de similaridade Page 28
MODELO DE PREFERÊNCIA R1: (R = praia) > (R = urbano) [{D,Tr,C}], R2: (T = carnaval) ^ (R = urbano) (Tr = rod) > (Tr = aereo) [{D,C}], R3: (R = urbano) (T = ferias) > (T = carnaval) [{D}]. Destino Temporada Roteiro Transporte Categoria t1 João Pessoa ferias praia aereo nacional t2 Nova York ferias urbano aereo internacional t3 Buenos Aires carnaval urbano aereo internacional t4 Rio de Janeiro carnaval urbano rodoviario nacional t5 Parati natal histórico rodoviario nacional R1 t1 t2 R3 t4 t3 R2 t5 Page 29
ALGORITMOS BNL** E R-BNL** Teste de Dominância: t1 > t2? t2 > t1? t1 ~ t2? 1. Projeção R (A, B, C, D) dom(a) = {a1, a2, a3} dom(b) = {b1, b2} dom(c) = {c1, c2, c3} dom(d) = {d1, d2} CP-teoria 1. A = a1 -> C = c1 > C = c2 2. B = b1 -> C = c2 > C = c3 t1, t2 São comparáveis? (a1,b1,c1,d1) and (a1,b1,c1,d2) (a2,b1,c1,d1) and (a1,b1,c3,d1) (a2,b2,c2,d1) and (a2,b2,c3,d1) (a1,b1,c2,d1) and (a1,b1,c3,d1) No No Yes Yes Projeções (a2,b2,c2) and (a2,b2,c3) (a1,b1,c2) and (a1,b1,c3) Page 30
ALGORITMOS BNL** E R-BNL** Teste de Dominância: t1 > t2? t2 > t1? t1 ~ t2? 2. CP-teoria = Programa Datalog Converte as regras de preferência num programa Datalog P Cada teste de dominância de 2 tuplas comparáveis é um goal para P Encontra a solução (goal) utilizando o método da resolução SLD Page 31
EXPERIMENTOS Escalabilidade Page 32
OUTLINE A Linguagem CPref-SQL Trabalhos Correlatos e Contribuições Avaliação de Consultas com Preferências (consultas-pc) Consultas-pc top-k no SGBD Experimentos Aplicação: Consultas por Similaridade com Preferências Considerações Finais Page 33
TOP-K CP-QUERIES NO SGBD Extensão para o SGBD PostgreSQL 8.4 Sistema Operacional Linux Linguagem C Diretamente implementado no backend do PostgreSQL: abordagem built-in Page 34
TOP-K CP-QUERIES NO SGBD CREATE PREFERENCES Postgres back-end Page 35
TOP-K CP-QUERIES NO SGBD ACCORDING TO PREFERENCES Postgres back-end Page 36
Page 37
UNIVERSIDADE FEDERAL DE UBERLÂNDIA PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO!! FIM!! Implementação de uma Linguagem de Consulta com Suporte a Preferências Condicionais Fabíola S. Fernandes, Sandra de Amo