formalismo lógico modelagem de preferências aula 9 ppg107 - 2012 sistemas de banco de dados –...
TRANSCRIPT
Formalismo Lógico Modelagem de Preferências
AULA 9 PPG107 - 2012
SISTEMAS DE BANCO DE DADOS –Pós-graduação em CC - UFU
Fórmulas de Preferência Condicional
CP-NETS
TCP-NETS
Fórmulas de Preferência Condicional
Fórmulas de Preferência Condicional
Conditional Preference Rules (cp-rules)
φ : Y1 = a1 ˄ … ˄ Yn = an X = x > X = x’
Conditions over Attributes Y1,…,Yn Preference over Attribute X
[ Z ]
Conditional Preference Theory = a finite set of cp-rules
R (Y1,…,Yn,….,X,…)
Atributos que são excluídos da exigência Ceteris Paribus
Exemplo
G = thriller > G = drama [ Actor ]φ : D = Hitchcock
D = Hitchcock > D = D.Lynch [ Actor ]ρ : Year = 1960
Toda CP-Net é uma teoria de preferência condicional
G
D
c > dt > c
G= c > G = d [ ø ]G = t > G = c [ ø ]
G = d D=b > D=w [ ø ]G = d D=w > D=h [ ø ]G = t D=h > D=w [ ø ]G = t D=w > D=b [ ø ]G = c D=w > D=b [ ø ]G = c D=b > D=h [ ø ]
d: b > wd: w > h t: h > wt: w > bc: w > bc: b > h
Ordem de Preferência induzida por uma Teoria de Pref. Condicional
Usa a semântica ceteris paribus para os atributos que não estão em
Z U Y e que são diferentes de X
Exemplo: BD(Category, Director, Year, Actor)
Director = F. Capra >Director = Hitchcock [Year]φ : Category = comedy
O1 = (Cat=comedy, Dir = F.Capra, Year = 1960, Actor = J.Stewart)O2 = (Cat=comedy, Dir = Hitchcock,Year = 1954, Actor = J.Stewart)
O1 >φ O2 Ceteris paribus
Cada cp-rule φ induz uma ordem de preferência >φ
Ordem de Preferência
Uma cp-theoria Ψ induz uma ordem de preferência >Ψ
Para cada fórmula φ de Ψ considera-se a ordem induzida > φ
Considera-se a união de todas estas ordens U>φ, para φ em Ψ
A ordem de preferência induzida pela teoria = fecho transitivo de U>φ, para φ em Ψ
>Ψ = fecho transitivo de U>φ, para φ em Ψ
Ordem de Preferência
Teoria Ψ = { φ , ρ } Considera-se todos os pares de tuplas que pode-
se ordenar diretamente utilizando a regra φ Considera-se todos os pares de tuplas que pode-
se ordenar diretamente utilizando a regra ρ Considera-se a união destes dois conjuntos de
pares de tuplas. Inclui-se neste conjunto todos os pares de tuplas
obtidos por transitividade.
Ordem de Preferência
abc
ab’c
ab’c’ a’b’c
a’b’c’
a’bc
a’bc’abc’
R(A,B,C)
Tuplas ordenadas diretamentepela regra φ
Tuplas ordenadas diretamentepela regra ρ
Primeira iteração da transitividade
Segunda iteração da transitividade
Exemplo
Cat. = thriller > Cat. = drama [ Actor ]
O1 = (Cat=thriller, Dir = Hitchcock, Year = 1960, Actor = J.Stewart)O2 = (Cat=drama, Dir = Hitchcock, Year = 1960, Actor = P. Newman)O3 = (Cat=drama, Dir = D.Lynch, Year = 1960, Actor = A. Hopkins)
O1 >φ O2
O2 >ρ O3
Dir. = Hitchcock > Dir. = D.Lynch [ Actor ]ρ : Year = 1960
O1 >Ψ O3
Teoria Ψ = { φ , ρ }
O2 = (Cat=drama, Dir = Hitchcock, Year = 1960, Actor = P. Newman)
φ : Dir = Hitchcock
Grafo de Dependência
Grafo associado a uma teoria Ψ
Vértices: atributos que aparecem em Ψ Arcos:
a) (Y,X) onde Y aparece do lado esquerdo da regra e X do lado direito da regra na parte da ordenação.
(Y,X) onde Y aparece do lado direito da regra na parte de ordenação e X aparece dentro de colchetes do lado direito da regra
ExemploCat. = thriller > Cat. = drama [Y] φ1 : Dir = Lynch
Dir. = Hitchcock > Dir. = D.Lynch [C]φ2 : Year = 1960
YD
C
Dir. = D.Lynch > Dir. = Hitchcockφ3 : Year = 1954
Dir = D.Lynch > Dir = Hitchcock [Y]φ4 : Cat = drama
Ordens Locais
ordem sobre o domínio dos atributos: Sejam A1,…,An = atributos que aparecem na
parte esquerda das regrasSejam B1, …, Bk = atributos que aparecem na
parte direita das regras (parte da ordenação)Cada tupla t sobre os atributos (A1,…,An)
determina uma ordem local sobre o domínio do atributo Bj, ( 1 ≤ j ≤ k )
Consistência Local
Uma teoria é localmente consistente se as ordens locais produzidas em cada atributo do lado direito são irreflexivas.
Teoria Consistente A cp-theoria Ψ é consistente se >Ψ é irreflexiva
Não se pode deduzir o1 >Ψ o2 e o2 >Ψ o1
Teste de Consistência (Wilson 2004)
Ψ é consistente se
seu grafo de dependência é acíclio e
Ψ é localmente consistente
ExemploCat = thriller > Cat = drama [Y] φ1 : Dir = Lynch
Dir = Hitchcock > Dir = D.Lynch [C]φ2 : Year = 1960
YD
C
Attributes = Y, D, C
Dom(Y) = {1960, 1954}Dom(D) = {Hitch, Lynch}Dom(C) = {t, d}
Dir = D.Lynch > Dir = Hitchcockφ3 : Year = 1954
Database:O1 = (1960, Lynch, thriller)O2 = (1960, Hitch, drama)O3 = (1954, Lynch, drama)
O1: hitch>lynch dom(D) thriller>drama dom(C)O2: hitch >lynch dom(D)O3: lynch > hitch dom(D)
Dir = D.Lynch > Dir = Hitchcock [Y]φ4 : G = drama
O2 > O1 > O3 > O2 Ordem local sobre dom(D) não é irreflexiva !
Tuplas Preferidas Lista os atributos (X1,…,Xn) na ordem
compatível com o grafo de dependência graph(Ψ)
Pega o melhor valor x1 de dom(X1) Pega o melhor valor x2 de dom(X2) conditionado
a x1
…Observação:
como a ordem não é total, pode haver diversas tuplas preferidas
Exemploφ1 : Dir = Hitchcock
Dir. = Hitchcock > Dir. = D.Lynchφ2 : Year = 1960
Dir. = D.Lynch > Dir. = Hitchcockφ3 : Year = 1954
Cat. = thriller > Cat. = drama
YD
C
Cat = drama > Cat = comedyφ3 : Year = 1954
Y > D > C
Melhor valor para Y : qualquer umY = 1960 Best D = Hitch D = Hitch Best C = thrillerO = (1960, Hitch, thriller) é uma tupla preferida.
Y = 1954Best D = LynchD = Lynch Best C = dramaO = (1954, Lynch, drama) é outra tupla preferida
Exercício
Considere a relação R(A,B,C,D) e as seguintes regras de preferências:
A = a B=b1 > B = b2 [D]B = b1 C=c1 > C=c2 [D]A = a C = c2 > C=c3 [D]C = c1 D = d1 > D=d2 [A]
a) Esta cp-teoria é consistente ?
a) Dê o grafo BTG associado a esta cp-teoria, sabendo que dom(A) = {a,a1}, dom(B) = {b1,b2}, dom(C) = {c1,c2,c3}, dom(D) = {d1,d2}
CPref-SQL: A query language supporting
conditional preferences
Fabiola Pereira Sandra de Amo – [email protected]
Marcos Roberto RibeiroFederal University of Uberlandia- Brazil
MotivaçãoMovies(Title, Director, Genre, Year)
My preferences:(1) For Woody Allen’s films: I prefer comedies better than
thrillers.(2) For Robert Altman’s films: I prefer thrillers to comedies.(3) For comedies: I prefer the more recent ones, produced after
1990.
Query: Give the titles of the films which most fulfill my wishes among those stored in the database, produced after 1975.
CPref-SQL Query
CREATE PREFERENCES MyPrefs AS
If D = wa then (G=c) > (G=t) AND
If D = ra then (G=t) > (G=c) AND
If G = c then (Y ≥ 1990) > (Y < 1990)
SELECT MOVIES.Titles
FROM MOVIES
WHERE Year > 1975
ACCORDING TO PREFERENCES MyPrefs
Hard Constraint
Soft Constraint
A Conditional Preference Theory (cp-theory) = Set of Preference Rules
CPref-SQL
SQL + SelectBest (R)
F = cp-teoria sobre a relação R
Semântica( “Best Match Only” semantics)
SelectBest (R) = { t ε R | não existe t’ ε R, t’ > t }
F
Bloco básico de CPref-SQL
SELECT <attribute-list> FROM <tables>
WHERE <hard conditions>
ACCORDING TO PREFERENCES
<cp-rules (soft conditions)>
GROUP BY <attribute-list>
ORDER BY <attribute-list>
Plano de Execução básico
R1 Rn…
WHERE (hard constraints) ----: OPERADOR DE SELEÇÃO
SelectBest (PREFERENCES) ---: NOVO OPERADOR BEST
SELECT ------: OPERADOR DE PROJEÇÃO
FROM ----: OPERADOR DE JUNÇÃO
CPrefSQL não é mais expressiva que SQL !! CPrefSQL pode ser convertida em SQL
CREATE OR REPLACE VIEW Rules (title,genre,years,director,actor,tit,gen,yea,dir,act) AS
(SELECT * FROM movies M, movies M1 WHERE M.genre = ‘drama' AND M1.genre = ‘musical'
AND M.director = M1.director AND M.years = M1.years)
UNION (SELECT * FROM movies M, movies M1 WHERE M.years = 90 AND M1.years = 80 and M.genre
= M1.genre) UNION (SELECT * FROM movies M, movies M1 WHERE M.years = 80 and M1.years = 80 and M.genre =
‘drama’ and M1.genre = ‘comedy’ and M.director = M1.director and M.actor = M1.actor);
CREATE PREFERENCES mypref
FROM movies AS
genre = ‘drama > genre = ‘musical’ [1,5]
AND
years = 90 > years = 80 [1,4,5]
AND
IF years = 80 THEN genre = ‘drama’ > genre = ‘comedy’ [1]
WITH RECURSIVE Recursion ( tit, gen, yea, dir, act, title, genre, years, director, actor ) AS (
( SELECT * FROM Rules )UNION
( SELECT M.title, M.genre, M.years, M.director, M.actor, R.title, R.genre, R.years, R.director, R.actor
FROM Rules M, Recursion R WHERE M.tit = R.tit AND
M.gen = R.gen AND M.yea = R.yea M.dir = R.dir AND M.act = R.act ) )
SELECT *
FROM movies
WHERE genre <> ‘romance’
ACCORDING TO PREFERENCES
mypref
SELECT *
FROM movies
WHERE genre <> ‘romance’
EXCEPT
SELECT R.title, R.genre, R.years, R.director, R.actor
FROM Recursion R;
CPrefSQL não é mais expressiva que SQL !! CPrefSQL pode ser convertida em SQL