• Nenhum resultado encontrado

Outras Estratégias de Reescrita de Consultas

Em ambientes de pesquisa em banco de dados cresceu o interesse em desenvolver métodos eficientes que realizam ajustes sobre uma consulta submetida. A reescrita busca gerar uma nova consulta que terá um tempo de execução menor. Por outro lado, alguns pesquisadores tentam realizar no banco de dados a incorporação de sensibilidade ao contexto, usando operadores especializados em personalização. A ideia é que o acesso a bancos de dados não ocorra em um único contexto e, consequentemente, a expectativa do usuário ao consultar dados varie.

3.4.1 Cpref-SQL

AMO E PEREIRA (2010) desenvolveram uma extensão da linguagem SQL denominada CPref-SQL. A linguagem de consulta CPref-SQL é uma extensão do padrão SQL que fornece duas operações: Select-Best (seleciona o conjunto de tuplas mais preferidas); SelectK-Best (retorna as k primeiras tuplas preferidas). Estas permitem classificar as respostas de acordo com as preferências (regras) e o contexto. As consultas criadas em CPref-SQL têm vantagem sobre as consultas do padrão SQL. Ou seja, no SQL, com as restrições rígidas do usuário, as respostas só são entregues se obedecerem a todas as restrições, no entanto, as consultas com CPref-SQL têm a incorporação de restrições leves, sob a forma de preferências, permitindo respostas personalizadas. A seguir, a sintaxe de uma consulta CPref-SQL é mostrada [adaptado de Amo e Pereira 2010]:

SELECT <lista de atributos> FROM <tabelas>

ACCORDING TO PREFERENCES [K]

<list-of-preference-cprules> (% condições leves) GROUP BY <lista de atributos>

ORDER BY <lista de atributos>

Para realizar consultas, a linguagem exige que o usuário informe previamente suas preferências por meio de um comando (CREATE Preferências). Assim, são criadas preferências (regras) do tipo "if <contexto> then <preferencia>", onde <preferencia> da regra indica a vontade do usuário em uma situação que satisfaz o <contexto>.

O processamento da consulta ocorre da seguinte forma: (I) O módulo Query Engine recebe um arquivo XML contendo as regras mais apropriadas, juntamente com o SQL enviado pelo usuário; (II) o Query Rewriting Module transforma o conteúdo em uma lista de regras e cria uma nova consulta CPrefSQL; (III) Posteriormente a consulta é enviada ao CPrefSQL Query Processor para ser executada, conforme mostra a Figura 11.

O módulo de Preference Selector realiza as seguintes funções: (1) Caso o usuário informe explicitamente suas preferências, o seletor consulta o repositório, tentando localizar um contexto, caso exista, uma operação insert é invocada, e as regras de preferências atuais com o contexto serão armazenadas. (2) Se o usuário não informar explicitamente as suas preferências, o módulo selector invoca a operação de recuperação, a fim de extrair as regras de preferência que melhor estejam de acordo com o contexto atual.

Figura 11 - Arquitetura e Módulos Principais [extraído de AMO E PEREIRA; 2010]. Para exemplificar, o seguinte caso é apresentado: “um estudante está se preparando para uma prova que ocorrerá dentro de poucas horas, neste momento ele está na lanchonete da universidade usando seu tablet com acesso à internet”. Para o exemplo, considere os elementos contextuais L (local) e R (Razão). Na situação apresentada identificam-se os atributos ligados à matéria de estudo para prova como: T (título), Di (Disciplina), D (Dificuldade), I (Importância) e Du (duração). As regras criadas pelo usuário foram extraídas

dos textos presentes no Tabela 3. Estas são as preferências do usuário, as quais deverão ser cadastradas no banco de dados de preferências.

Tabela 3 - Regras de Preferências [adaptado de AMO E PEREIRA; 2010].

Regra 1

“O estudante deseja uma rápida revisão para relembrar os conceitos

principais e mais comuns”, então a dificuldade do assunto retornado deve ser entre (D < 3 e a I > 4),

Logo:(1) IF contexto = (universidade, revisão rápida) THEN (I > 4) ≻ (I < 3) [T; Di]

Regra 2

Por não ter tanto tempo para revisar, “o aluno deseja aulas ou materiais pequenos, não maiores que 30 min.” (Du < 30),

Logo:(2) IF contexto = (universidade, revisão rápida) THEN (Du ≤ 30) [T; Di]

Analisando as regras geradas, algumas observações são necessárias:

 O ≻ símbolo indica que o valor presente à esquerda “é mais preferido” do que o valor a direita;

 Os valores entre colchetes indicam que os atributos são completamente irrelevantes na comparação;

 A ordem de preferência é obtida através da união da transitividade de cada regra individualmente.

3.5 Análise Comparativa

Pesquisas que envolvem a reescrita de consultas usando contexto e o problema de como retornar respostas mais adequadas a cada usuário têm ganhado destaque nos últimos anos.

Alguns trabalhos que envolvem a reescrita de consulta têm sido propostos na literatura. Os que têm forte relação e que foram citados nesta dissertação estão resumidos na Tabela 4 utilizando alguns critérios de comparação. Foi analisado o método de reescrita adotado, qual o conhecimento utilizado no processo de reescrita e a que modelo de dados a reescrita é aplicada; analisou-se ainda se o processo de reescrita leva em consideração o contexto e se o trabalho usa inferência a fim de identificar novos conhecimentos que podem ser úteis na reescrita.

Abordagem Reescrita Conhecimento usado Modelo de dados empregado

Usa informações

contextuais? Usa Inferência?

Ines e Habib 2012 Com Expansão Ontologia Relacional Não Sim

Asfari et al. 2010 Com Expansão Ontologias, WordNet

Recuperação da informação em documentos na Web

Sim Não

Vilar 2009 Com Expansão Ontologia Relacional Não Sim

Koudas et al. 2006 Com Relaxamento Informações inferidas

por Lógica Fuzzy Relacional Não Sim

Stefanidis et al. 2007 Com Relaxamento Preferências Relacional Sim Não

Hachani e Ounelli

2006 Com Relaxamento

Informações inferidas

por Lógica Fuzzy Relacional Não Sim

Mishra e Koudas 2009 Com Relaxamento e Expansão Hierarquias definidas no esquema do banco de dados.

Relacional Não Não

Amo e Pereira 2012 Expansão Regras com

3.6 Considerações

Neste trabalho estivemos interessados na reescrita de consultas com base em informações contextuais e, para isso, investigamos técnicas de expansão e relaxamento.

Este capítulo apresentou alguns trabalhos relacionados à temática de reescrita de consultas. Os trabalhos mencionados explanaram sobre abordagens com expansão, relaxamento, personalização e uso de contexto em diversos ambientes e com diferentes objetivos. Ao final do capítulo, foi apresentado um quadro comparativo onde foi possível observar as diferenças e similaridades entre trabalhos.

No próximo capítulo será apresentada a abordagem CORE que objetiva reescrever uma consulta original submetida em uma aplicação de consulta a dados com base no contexto adquirido.

CAPÍTULO 4

CORE - UMA ABORDAGEM PARA REESCRITA DE CONSULTAS BASEADA NO CONTEXTO

Este capítulo apresenta a abordagem CORE - Context-based Rules for rEwriting queries, a qual define uma estratégia para reescrita de consultas formuladas em linguagem SQL utilizando informações obtidas a partir do processamento de regras baseadas em um contexto adquirido.

Inicialmente, serão discutidos conceitos da arquitetura do sistema Texere que é a base para o desenvolvimento deste trabalho [MACIEL E MENDONÇA; 2013]. Em seguida, as definições que norteiam a abordagem, o processo de reescrita e um exemplo de utilização serão apresentados. Dessa forma, o capítulo está organizado como segue: a Seção 4.1 apresenta uma visão geral do problema da reescrita; a Seção 4.2 introduz o sistema Texere; a Seção 4.3 apresenta a abordagem CORE; a Seção 4.4 mostra um exemplo ilustrando o processo de reescrita e, por fim, a Seção 4.5 traz uma comparação dos trabalhos relacionados com a abordagem CORE.

Documentos relacionados