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
TCP-NETS
Fórmulas de Preferência Condicional
CP-NETS
Fórmulas de Preferência Condicional
R (Y1,…,Yn,….,X,…)
 Conditional Preference Rules (cp-rules)
φ : Y1 = a1 ˄ … ˄ Yn = an
Conditions over Attributes Y1,…,Yn
X = x > X = x’
[Z]
Preference over Attribute X
 Conditional Preference Theory = a finite set of cp-rules
Atributos que são excluídos da exigência Ceteris Paribus
Exemplo
φ : D = Hitchcock
G = thriller > G = drama
ρ : Year = 1960
D = Hitchcock > D = D.Lynch [ Actor ]
[ Actor ]
Toda CP-Net é uma teoria de
preferência condicional
G
D
c>d
t >c
d: b > w
d: w > h
t: h > w
t: w > b
c: w > b
c: b > h
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
[ø]
[ø]
[ø]
[ø]
[ø]
[ø]
Ordem de Preferência induzida por
uma Teoria de Pref. Condicional
 Cada cp-rule φ induz uma ordem de preferência >φ
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)
φ : Category = comedy
Director = F. Capra >Director = Hitchcock [Year]
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
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 podese ordenar diretamente utilizando a regra φ
 Considera-se todos os pares de tuplas que podese 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
R(A,B,C)
Tuplas ordenadas diretamente
pela regra φ
abc
Tuplas ordenadas diretamente
pela regra ρ
ab’c
ab’c’
a’b’c
a’bc
a’b’c’
abc’
Primeira iteração da transitividade
Segunda iteração da transitividade
a’bc’
Exemplo
Teoria Ψ = { φ , ρ }
φ : Dir = Hitchcock
ρ : Year = 1960
Cat. = thriller > Cat. = drama
[ Actor ]
Dir. = Hitchcock > Dir. = D.Lynch [ 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
O1 >Ψ O3
O2 > ρ O3
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
Exemplo
φ1 : Dir = Lynch
[Y]
[C]
φ3 : Year = 1954
Cat. = thriller > Cat. = drama
Dir. = Hitchcock > Dir. = D.Lynch
Dir. = D.Lynch > Dir. = Hitchcock
φ4 : Cat = drama
Dir = D.Lynch > Dir = Hitchcock
[Y]
φ2 : Year = 1960
D
Y
C
Ordens Locais

ordem sobre o domínio dos atributos:
 Sejam A1,…,An
= atributos que aparecem na
parte esquerda das regras
 Sejam 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
Exemplo
φ1 : Dir = Lynch
Cat = thriller > Cat = drama
[Y]
φ2 : Year = 1960
[C]
φ3 : Year = 1954
Dir = Hitchcock > Dir = D.Lynch
Dir = D.Lynch > Dir = Hitchcock
φ4 : G = drama
Dir = D.Lynch > Dir = Hitchcock
[Y]
D
Attributes = Y, D, C
Y
C
Database:
O1 = (1960, Lynch, thriller)
O2 = (1960, Hitch, drama)
O3 = (1954, Lynch, drama)
O2 > O1 > O3 > O2
Dom(Y) = {1960, 1954}
Dom(D) = {Hitch, Lynch}
Dom(C) = {t, d}
O1: hitch>lynch
dom(D)
thriller>drama
dom(C)
O2: hitch >lynch
dom(D)
O3: lynch > hitch
dom(D)
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
φ2 : Year = 1960
Cat. = thriller > Cat. = drama
Dir. = Hitchcock > Dir. = D.Lynch
φ3 : Year = 1954
Dir. = D.Lynch > Dir. = Hitchcock
φ3 : Year = 1954
Cat = drama > Cat = comedy
D
Y>D>C
Y
C
Melhor valor para Y : qualquer um
Y = 1960
Best D = Hitch
D = Hitch
Best C = thriller
O = (1960, Hitch, thriller) é uma tupla
preferida.
Y = 1954
Best D = Lynch
D = Lynch
Best C = drama
O = (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 Ribeiro
Federal University of Uberlandia- Brazil
Motivação
Movies(Title, Director, Genre, Year)
My preferences:
(1)
(2)
(3)
For Woody Allen’s films: I prefer comedies better than
thrillers.
For Robert Altman’s films: I prefer thrillers to comedies.
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
Hard Constraint
WHERE Year > 1975
ACCORDING TO PREFERENCES MyPrefs
A Conditional
Preference Theory
(cp-theory) =
Set of Preference
Rules
Soft Constraint
CPref-SQL

SQL + SelectBest F(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 }
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
SELECT ------: OPERADOR DE PROJEÇÃO
SelectBest (PREFERENCES) ---:
NOVO OPERADOR BEST
WHERE (hard constraints) ----: OPERADOR DE SELEÇÃO
FROM ----: OPERADOR DE JUNÇÃO
R1
…
Rn
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
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]
(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);
CPrefSQL não é mais expressiva que SQL !!
CPrefSQL pode ser convertida em SQL
WITH RECURSIVE Recursion
( tit, gen, yea, dir, act, title, genre, years, director, actor ) AS (
SELECT *
FROM movies
WHERE genre <> ‘romance’
ACCORDING TO PREFERENCES
mypref
( 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’
EXCEPT
SELECT R.title, R.genre, R.years, R.director, R.actor
FROM Recursion R;
Download

Slides - Sandra de Amo