This preview shows page 1. Sign up to view the full content.
Unformatted text preview: Searching for Solutions
Careful Analysis of Expansions
The Bucket Algorithm 1 Solutions and Expansions
x For every subgoal p(X,Y) of a query, each solution must have a subgoal (view) whose expansion allows a containment mapping to p(X,Y).
x “Bucket” for a subgoal = set of views that “cover” the subgoal.
x A solution must include > 1 view from each bucket.
2 But …
x There’s much more to the story.
x A careful examination of how variables from the view definitions, query, solution, and expansion relate will eventually reveal additional constraints on the structure of the solutions. 3 (Non)Distinguished Variables
x A variable that appears in the head of a CQ is said to be distinguished ; otherwise nondistinguished.
p(X,Y) : q(X,Z) & r(Z,Y)
Distinguished Nondistinguished 4 Local Variables of Expansions
x When we expand a view subgoal of a solution, the nondistinguished variables of the view definition become local.
A local variable may not appear anywhere else in the expansion. x Variables of the solution substitute for the distinguished variables of a view definition.
5 Picture Correspond to dist
inguished of the view v(X,Y) : p(X,Z) & q(Z,Y)
sol(U,V) :… & v(U,W) & …
exp(U,V) : … & p(U,Z1) & q(Z1,W) …
Distinguished in
solution; may
appear elsewhere Local from view;
may not appear
except as shown
Exposed variables Nondistinguished
in solution; may
appear elsewhere
6 Exposed Variables
x Variables of the expansion that have substituted for distinguished variables of a view.
x These are the only variables that may appear in subgoals belonging to the expansion of two different solution subgoals.
7 The Variables of the Query
x A query variable is shared if it appears more than once; otherwise it is unique.
x A distinguished query variable can only map to the corresponding distinguished variable of the expansion/solution.
x A nondistinguished, unique variable of the query maps to any variable of the expansion.
8 Mapping Shared Variables
x There are two options for shared variables: 1. Map to a local variable of one expansion.
2. Map to an exposed variable. x Only in case (2) can the query subgoals with a shared variable map to expansion subgoals that come from more than one solution subgoal.
9 Picture Map to Exposed
v(X,Y) : p(X,Z) & q(Z,Y)
sol(U,V) : … v(U,W) … W duplicated so
D can be handled u(W,V) … exp(U,V) : p(U,Z1) & q(Z1,W) … r(W,T) …
que(A,B) : … q(C,D) … r(D,E) … Shared variable D maps to exposed variable W.
We can map another occurrence of D to a copy
of W that comes from another view.
10 Picture
v(X,Y) : p(X,Z) & q(Z,Y)
sol(U,V) :… & v(U,W) & …
exp(U,V) : … & p(U,Z1) & q(Z1,W) …
que(U,V) : … p(U,A) & q(A,D) …
All occurrences of shared variable
A map to local variable Z1. 11 Buckets
x To help search for solutions, we create buckets:
1. One bucket for each subgoal of the query.
2. One bucket for each shared variable in the query. 12 Buckets for Subgoals
x Members of the bucket for a subgoal p(A,B) are pairs consisting of:
1. A view v.
2. A particular p subgoal in the body of v. x There are conditions on p(A,B) and the target subgoal p(X,Y) described on the next slide.
13 Buckets for Subgoals (2)
1. p(A,B) must be mappable to p(X,Y). That is, if A=B, then X=Y.
2. If (say) A is a distinguished variable of the query, then X is distinguished in the view.
3. If (say) A is a shared variable, then X is distinguished in the view.
x Obvious extension to > 2 arguments.
14 Buckets for Shared Variables
x Members of the bucket for a shared variable A consist of: 1. A view v, and
2. A set of subgoals S of v such that there is a CM from all the query subgoals containing A to S. x In this mapping, distinguished variables of the query map to distinguished variables of the view.
15 Example
v(X,Y) : p(X,Z) & p(Z,Y)
w(U,V) : p(U,S) & p(S,T) & p(T,V)
q(A,B) : p(A,C) & p(C,D) & p(D,E)
& p(E,F) & p(F,G) & p(G,B)
x v = “grandparent”; w = “greatgrandparent”; query q = “sixthgeneration ancestors.” 16 Example p(A,C)
v(X,Y) : p(X,Z) & p(Z,Y)
w(U,V) : p(U,S) & p(S,T) & p(T,V)
q(A,B) : p(A,C) & p(C,D) & p(D,E)
& p(E,F) & p(F,G) & p(G,B)
x The bucket for p(A,C) is empty.
A is distinguished; C is shared.
No view subgoal has distinguished variables in both positions.
17 Example p(C,D)
v(X,Y) : p(X,Z) & p(Z,Y)
w(U,V) : p(U,S) & p(S,T) & p(T,V)
q(A,B) : p(A,C) & p(C,D) & p(D,E)
& p(E,F) & p(F,G) & p(G,B)
x The bucket for p(C,D) is empty.
Both C and D are shared.
No view subgoal has distinguished variables in both positions. x Likewise, all subgoals of q have empty buckets.
18 Example Shared Variable C
v(X,Y) : p(X,Z) & p(Z,Y)
w(U,V) : p(U,S) & p(S,T) & p(T,V)
q(A,B) : p(A,C) & p(C,D) & p(D,E)
& p(E,F) & p(F,G) & p(G,B)
x The bucket for C :
1. {p(X,Z), p(Z,Y)} from v. x Important: X is distinguished (since A maps to X ). 1. {p(U,S), p(S,T)} from w. x Important: U is distinguished (since A maps to U ).
19 Shared Variable C Continued
v(X,Y) : p(X,Z) & p(Z,Y)
w(U,V) : p(U,S) & p(S,T) & p(T,V)
q(A,B) : p(A,C) & p(C,D) & p(D,E)
& p(E,F) & p(F,G) & p(G,B)
x The bucket for C does not contain {p(S,T), p(T,V)} from w.
Because distinguished variable A of the query would have to map to S, which is local in the view definition.
20 Example Shared Variable D v(X,Y) : p(X,Z) & p(Z,Y)
w(U,V) : p(U,S) & p(S,T) & p(T,V)
q(A,B) : p(A,C) & p(C,D) & p(D,E)
& p(E,F) & p(F,G) & p(G,B)
x The bucket for D :
1. {p(X,Z), p(Z,Y)} from v.
2. {p(U,S), p(S,T)} and {p(S,T), p(T,V)} from w.
x Either is OK, since neither C nor E is distinguished. x E, F like D ; G like A. 21 Example Continued
x Each of the six query subgoals must be covered by at least one member of a bucket.
x Since the subgoals themselves have empty buckets, we must group them according to their shared variables and cover them, in groups, from the buckets for the variables.
22 Example Continued
x One possibility: use the members from v in the buckets for C, E, and G.
x Since shared variables D and F map to distinguished variables of the view definition, we can use v three times in the solution, and equate the corresponding variables.
23 First Solution
v(X,Y):w(U,V):q(A,B):&
s(A,B):e(A,B):& p(X,Z) & p(Z,Y)
p(U,S) & p(S,T) & p(T,V)
p(A,C) & p(C,D) & p(D,E)
p(E,F) & p(F,G) & p(G,B)
v(A,J) & v(J,K) & v(K,B)
p(A,Z1) & p(Z1,J) & p(J,Z2)
p(Z2,K) & p(K,Z3) & p(Z3,B)
24 Example Continued
x Another possibility is to use one copy of w to cover the first three query subgoals and another copy of w to cover the last three.
x The first copy covers shared variables C and D ; the second covers F and G.
x Shared variable E maps to distinguished variables of w.
25 Second Solution
v(X,Y) : p(X,Z) & p(Z,Y)
w(U,V) : p(U,S) & p(S,T) & p(T,V)
q(A,B) : p(A,C) & p(C,D) & p(D,E)&
p(E,F) & p(F,G) & p(G,B)
s(A,B) : w(A,J) & w(J,B)
e(A,B) : p(A,S1) & p(S1,T1) & p(T1,J) &
p(J,S2) & p(S2,T2) & p(T2,B)
26 Why There Are No More Solutions
x For instance, we cannot use one v subgoal v(A,J) in the solution to cover shared variable C and another v(K,L) to cover D.
x v(A,J) expands to p(A,Z1) & p(Z1,J), forcing D to map to J.
x But v(K,L) expands to p(K,Z2) & p(Z2,L), forcing D to map to Z2.
27 ...
View
Full
Document
This document was uploaded on 01/06/2012.
 Spring '09

Click to edit the document details