32
Banco de Dados Dedutivos Eduardo J Marcondes Marcelo Brischke

Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Embed Size (px)

Citation preview

Page 1: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Banco de Dados DedutivosEduardo J Marcondes

Marcelo Brischke

Page 2: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Banco de Dados Dedutivos • Área de intersecção entre banco de dados,

lógica e inteligência artificial.• Capacidade de definir (deduzir) regras a

partir de fatos armazenados em sua base de dados.

Page 3: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

BD Dedutivo X BD inteligente• Inteligentes

– Geralmente assumem que os dados requeridos estão na memória principal.

– Os dados geralmente são extraídos por aplicações inteligentes.

• Dedutivos– Preparados para trabalhar com memória

secundária.– Conhecimento é inerente aos dados.

Page 4: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

BDs Dedutivos• Linguagem Declarativa;• Mecanismo de inferência;• Regras e fatos;• Prolog e Datalog;• DOOD´s (Dedutive Oriented Object Database).

Page 5: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Notação Prolog / Datalog• Baseada em predicados com argumentos;

– Ex.: supervise(franklin,john)

Page 6: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Exemplo• Facts• supervise(franklin,john).• supervise(franklin,ramesh).• supervise(franklin,joyce).• supervise(franklin,alicia). • supervise(jennifer,ahmad).• supervise(jennifer,franklin).• supervise(jennifer,jennifer).• ... • Rules• superior(X,Y):-supervise(X,Y).• superior(X,Y):-supervise(X,Y),superior(Z,Y).• subordinate(X,Y):-superior(Y,X).• Queries• superior(james,Y)?• superior(james,joyce)?

james

franklin jennifer

john ramesh joyce alicia ahmad

Page 7: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Regra• superior(X,Y):-supervise(X,Z),superior(Z,Y)

Page 8: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Notação Datalog• atomic formulas;• literais da forma p(a1,a2,a3,...,an);• Aridade;• Predicados embutidos:

– Predicados de comparação binária: • <(less), <=(less_or_equal), >(greater), >=

(greater_or_equal) ;– Predicados de comparação:

• =(equal), /=(not_equal).

Page 9: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Interpretação de Regras• Prova - teórica;• Modelo-teórico;• Implementações um modelo intermediário.

Page 10: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Prova - teórica1. superior(x,y):- supervise(x,y) (regra 1)

2. superior(x,y):- supervise(x,z),superior(z,y) (regra 2)

3. supervise (Jennifer,ahmad) (axioma fundamental)

4. supervise(james,jennifer) (axioma fundamental)

5. superior(jennifer,ahmad) (aplicando a regra 1 em 3)

6. superior(james,ahmad) (aplicando a regra 2 em 4 e 5)

Page 11: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Modelo - teórico• Regras:

– Superior(x,y):-supervise(x,y)– Superior(x,y):-supervise(x,z),superior(z,y)

• Interpretação:• Fatos Conhecidos:

– Supervise(franklin,john) é verdadeiro– Supervise(franklin,ramesh) é verdadeiro– Supervise(franklin,joyce) é verdadeiro– Supervise(jennifer,alicia) é verdadeiro– Supervise(jennifer,ahmad) é verdadeiro– Supervise(james,franklin) é verdadeiro– Supervise(james,jennifer) é verdadeiro– Supervise(x,y) é falso para todas as outras possíveis combinações (x,y)

• Fatos Derivados:– Superior(franklin,john) é verdadeiro– Superior(franklin,ramesh) é verdadeiro– Superior(franklin,joyce) é verdadeiro– Superior(jennifer,alicia) é verdadeiro– Superior(jennifer,ahmad) é verdadeiro– Superior(james,franklin) é verdadeiro– Superior(james,jennifer) é verdadeiro– Superior(james,john) é verdadeiro– Superior(james,ramesh) é verdadeiro– Superior(james,joyce) é verdadeiro– Superior(james,alicia) é verdadeiro– Superior(james,ahmad) é verdadeiro– Superior(x,y) é falso para todas as outras possíveis combinações (x,y)

Page 12: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Mecanismos de Inferência Básicos para programas lógicos

• Button – up (forward chaining)– O motor de inferência inicia com os fatos e

aplica as regras para gerar novos fatos.• Top – Down (backward chaining)

– Inicia com o objetivo do predicado da query e busca os fatos coincidentes com as variáveis no banco de dados.

Page 13: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Programas Datalog e suas avaliações

• Fato-definidos (ou relações);• Regras-definidas (ou visões).

Page 14: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Segurança dos programas• Um programa ou uma regra é seguro se gerar

um grupo finito de fatos.

• Big_salary(Y) :- Y>60000

• Big_salary(Y) :- employee(X), salary(X,Y), Y>60000

• Big_salary(Y) :- Y>60000, employee(X), salary(X,Y)

Page 15: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Uso das Operações Relacionais• Baseado no modelo relacional;• Assume que os predicados( relações de

fatos e resultados de query) especificam grupos de tuplas;

• O poder adicional está nas queries recursivas e visões baseadas em queries recursivas.

Page 16: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Avaliação de Queries Não-Recursivas Datalog

• É realizada uma tradução da consulta Query para uma expressão relacional.

• Algoritmo de avaliação.

Page 17: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Conceitos de Queries Recursivas em Datalog

• Técnica da avaliação pura: Criando um plano de avaliação de query para produzir a resposta para a query.

• Técnica da regra reescrita: Otimiza o plano para uma estratégia mais eficiente.

Page 18: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Conceitos de Queries Recursivas em Datalog

• linearmente recursiva;– Sg(X,Y) :-parent(X,XP), parent(Y,YP), sg(XP,YP)

• linearmente recursiva à direita.• linearmente recursiva à esquerda.

– Direita: ancestor(X,Y):- parent(Z,Y), ancestor(X,Z)– Esquerda: ancestor(X,Y):- ancestor(X,Z),parent(Z,Y)

Page 19: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Conceitos de Queries Recursivas em Datalog

• Estratégia ingênua– É um método iterativo, onde para cada iteração

todas as regras são aplicadas para todo o grupo de tuplas, gerando assim todas as implícitas tuplas.

• Estratégia Semi-Ingênua– Em cada iteração ao invés de gerar todas as

possíveis tuplas, são geradas apenas as que ainda não existem.

Page 20: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Estratégia Maravilhosa• Não usa a relação inteira correspondente ao

predicado intencional mas sim um pequeno grupo desta relação.

• Ex.:– sg(X,Y) :- flat(X,Y).– sg(X,Y) :- up(X,U), sg(U,V), down(V,Y).

Query: sg(jonh, Z)

Page 21: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Estratégia Maravilhosa• top-down

– Não pesquisa caminhos irrelevantes.– Difícil de implementar (looping infinito)

• bottom-up– Pesquisa caminhos irrelevantes.

• A estratégia maravilhosa une o melhor dos dois métodos.

Page 22: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Técnica Maravilhosa• A técnica foca o objetivo inerente ao método top-down sem

os problemas de looping infinito, fácil término do teste e avaliação eficiente do bottom-up.

Sg(X,Y) :- magic - sg(X,Y), flat(X,Y).Sg(X,Y) :- magic- sg(X,Y), up(X,Y), sg(X,Y), down(X,Y).Magic-sg(U) :- magic-sg(X), up(X,U).Magic-sg(john).

Page 23: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Negação Estratificada • modelo mínimo• Ex.:

– p(a) :- not p(b)– tem dois mínimos modelos: {p(a)} e {p(b)}

• Um programa é estratificado se não houver recursão junto com a negação.

Page 24: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Negação Estratificadar1 : ancestor(X,Y) :- parent(X,Y).r2 : ancestor(X,Y) :- parente(X,Z), ancestor(Z,Y).r3 : nocyc(X,Y) :- ancestor(X,Y), not (ancestor(Y,X)).

Page 25: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Negação Estratificada• Negação localmente estratificada:

– Um programa P é localmente estratificado se para um determinado banco de dados, quando forem substituídas suas variáveis em todos os possíveis caminhos, o resultado não contenha recursão junto com negação.

Page 26: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Sistemas de Banco de Dados Dedutivos

• Sistema LDL• NAIL!• Coral

Page 27: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

O Sistema LDL• Logic Data Language (LDL) é um projeto da

Microelectronics and Computer Technolology Corporation (MCC)

• Objetivos:– Desenvolver um sistema que estende o modelo

relacional mas explora algumas características do RDBMS;

– Aumentar a funcionalidade de um DBMS para que além de sua funcionalidade dedutiva ele suporte também aplicações de propósito gerais.

• Tenta combinar a capacidade do Prolog com a funcionalidade dos DBMS de uso geral.

Page 28: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

NAIL!• NAIL! (Not Another Implementation of Logic!) é um projeto

iniciado pela Universidade de Stanford em 1985 ;• Objetivo inicial era o estudo de otimizações da lógica usada

em sistemas orientados a banco de dados, para suportar otimizações de execução do Datalog sobre RDBMS;

• Em colaboração com o grupo MCC foi responsável por:– Grupos maravilhosos;– Primeiro trabalho em recursão regular;– Lida com negação e agregação em regras lógicas;– Negação bem fundamentadas e negações estratificadas modulares.

Page 29: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Coral• Desenvolvido pela Universidade de Wisconsin at Madison;• Baseado no LDL;• Pode ser visto como uma linguagem de programação para

banco de dados que combina importantes características de SQL e Prolog;

• Coral implementa um grande número de otimizações:– Templates maravilhosos para queries recursivas;– Ativações de projeções;– Ativações especiais para programas lineares;– Boa interface com C++;– Extremamente extensível.

• Uma característica interessante é o pacote de extensão, que permite ao usuário examinar graficamente como um fato é gerado.

Page 30: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Aplicações de Banco de Dados Dedutivos Comerciais

• Alguns exemplos de domínios de aplicações comerciais / industriais baseadas no banco de dados dedutivo LDL:– Modelagem empresarial: sistema que modela estrutura, processos e

restrições organizacionais que gera como resultado um modelo ER. Utilizado para o Design de novas aplicações.

– Teste de hipóteses e mineração de dados: este domínio envolve a formulação de hipóteses traduzidas em regras LDL. Esse sistema foi aplicado na análise de dados do genoma.

– Reuso de software: Obtém dados de códigos de módulos em C usados em sistemas e utiliza regras que podem exportar e importar funções para reaproveitamento de software.

Page 31: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

Referências Bibliográficas• ELMASR, Ramez; NAVATHE, Shamkant B.;

1996. Fundamentals of Database Systems. 3. Ed. Reading : Addison Wesley.

• MELO, Rubens Nascimento; 1988. Bancos de Dados não convencionais: a tecnologia de BD e suas novas áreas de aplicação. Campinas - SP : UNICAMP, IMEC.

Page 32: Banco de Dados Dedutivos - Computação Unioesteolguin/4463-semin/g8-apresentacao.pdf · Aplicações de Banco de Dados Dedutivos Comerciais • Alguns exemplos de domínios de aplicações

FIM!