Conjunctive Queries
Conjunctive Queries
Conjunctive Queries
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Q2: p(A,B) r(A,C) , g(C,D) , r(D,B)<br />
Q2: p(A,B) r(A,C) , g(C,D) , r(D,B)<br />
Q1: p(X,Y) r(X,Z) , g(Z,Z) , r(Z,Y)<br />
Q1: p(X,Y) r(X,Z) , g(Z,Z) , r(Z,Y)<br />
f<br />
f 1 f f 1 f f 1<br />
f f 1<br />
f<br />
f 1 f f 1 f f 1<br />
{r(X,Z) , g(Z,Z) , r(Z,Y)}= Can Q1 :<br />
A=p(X,Z) {r(X,Z) , g(Z,Z) , r(Z,Y)}= Can Q1 :<br />
Sincefmapsbody(Q)intoCan Q1’<br />
AnewfactA=f(head(Q1)) isgenerated<br />
A=f(head(Q1))Q1(Can Q1 ).<br />
SinceQ1 Q2,A Q2(Can Q1 ).<br />
Therefore hHom(Q2,Can Q1 {A}).<br />
29<br />
30<br />
Q2: p(A,B) r(A,C) , g(C,D) , r(D,B)<br />
h<br />
h h h<br />
Q1: p(X,Y) r(X,Z) , g(Z,Z) , r(Z,Y)<br />
f f 1 f f 1 f f 1 f f 1<br />
AnotherExample<br />
Q1: p(X,Y) r(X,Y) , g(Y,Z)<br />
Q2: p(A,B) r(A,B) , r(A,C)<br />
A=p(X,Z) {r(X,Z) , g(Z,Z) , r(Z,Y)}= Can Q1 :<br />
Q1looksfor:<br />
X<br />
Y<br />
Z<br />
A=f(head(Q1))Q1(Can Q1 ).<br />
Q2looksfor:<br />
SinceQ1 Q2,A Q2(Can Q1 ).<br />
Therefore hHom(Q2,Can Q1 {A}).<br />
A<br />
B<br />
Thenf 1 h HOM(Q2,Q1)isthedesiredhomomorphism.<br />
C<br />
QED<br />
31<br />
32