waysν to colorT such thatQ0 holds onν(T) Fortechnical reasonsit will be simpler to:
•
Write the choice for variablesas colors on the tree•
Replace the non-Boolean queryQby a Boolean queryQ0•
Enumerate theways to color the tree 13/35Uncertain trees
Now: Boolean query on a tree where the color of nodes isuncertain 1
5
6 7 2
4 3
Avaluationof a tree decides whether to keep(1) ordiscard(0) node labels Valuation: {2,3,77→1, ∗ 7→0}
A:“Is there both a pink and a blue node?”
→ Theresultsthat we want to enumerate are allvaluationsofT that makeAaccept
Uncertain trees
Now: Boolean query on a tree where the color of nodes isuncertain 1
5
6 7 2
4 3
Avaluationof a tree decides whether to keep(1) ordiscard(0) node labels
Valuation: {2,3,77→1, ∗ 7→0}
A:“Is there both a pink and a blue node?”
→ Theresultsthat we want to enumerate are allvaluationsofT that makeAaccept
14/35
Uncertain trees
Now: Boolean query on a tree where the color of nodes isuncertain 1
5
6 7 2
4 3
Avaluationof a tree decides whether to keep(1) ordiscard(0) node labels Valuation: {2,3,77→1, ∗ 7→0}
A:“Is there both a pink and a blue node?”
→ Theresultsthat we want to enumerate are allvaluationsofT that makeAaccept
Uncertain trees
Now: Boolean query on a tree where the color of nodes isuncertain 1
5
6 7 2
4 3
Avaluationof a tree decides whether to keep(1) ordiscard(0) node labels Valuation: {27→1, ∗ 7→0}
A:“Is there both a pink and a blue node?”
→ Theresultsthat we want to enumerate are allvaluationsofT that makeAaccept
14/35
Uncertain trees
Now: Boolean query on a tree where the color of nodes isuncertain 1
5
6 7 2
4 3
Avaluationof a tree decides whether to keep(1) ordiscard(0) node labels Valuation: {2,77→1, ∗ 7→0}
A:“Is there both a pink and a blue node?”
→ Theresultsthat we want to enumerate are allvaluationsofT that makeAaccept
Uncertain trees
Now: Boolean query on a tree where the color of nodes isuncertain 1
5
6 7 2
4 3
Avaluationof a tree decides whether to keep(1) ordiscard(0) node labels Valuation: {2,77→1, ∗ 7→0}
A:“Is there both a pink and a blue node?”
→ Theresultsthat we want to enumerate are allvaluationsofT that makeAaccept
14/35
Uncertain trees
Now: Boolean query on a tree where the color of nodes isuncertain 1
5
6 7 2
4 3
Avaluationof a tree decides whether to keep(1) ordiscard(0) node labels Valuation: {2,3,77→1, ∗ 7→0}
A:“Is there both a pink and a blue node?”
The tree automatonAaccepts
→ Theresultsthat we want to enumerate are allvaluationsofT that makeAaccept
Uncertain trees
Now: Boolean query on a tree where the color of nodes isuncertain 1
5
6 7 2
4 3
Avaluationof a tree decides whether to keep(1) ordiscard(0) node labels Valuation: {27→1, ∗ 7→0}
A:“Is there both a pink and a blue node?”
The tree automatonArejects
→ Theresultsthat we want to enumerate are allvaluationsofT that makeAaccept
14/35
Uncertain trees
Now: Boolean query on a tree where the color of nodes isuncertain 1
5
6 7 2
4 3
Avaluationof a tree decides whether to keep(1) ordiscard(0) node labels Valuation: {2,77→1, ∗ 7→0}
A:“Is there both a pink and a blue node?”
The tree automatonAaccepts
Set circuits
We want to represent these results as aset circuit:
∪
×
x
>
×
y
•
Directed acyclic graph ofgates•
Outputgate:•
Variablegates: x•
Constantgates: > ⊥•
Internalgates: × ∪15/35
Set circuits
We want to represent these results as aset circuit:
∪
×
x
>
×
y
•
Directed acyclic graph ofgates•
Outputgate:•
Variablegates: x•
Constantgates: > ⊥•
Internalgates: × ∪Set circuits
We want to represent these results as aset circuit:
∪
×
x
>
×
y
•
Directed acyclic graph ofgates•
Outputgate:•
Variablegates: x•
Constantgates: > ⊥•
Internalgates: × ∪15/35
Set circuits
We want to represent these results as aset circuit:
∪
×
x
>
×
y
•
Directed acyclic graph ofgates•
Outputgate:•
Variablegates: x•
Constantgates: > ⊥•
Internalgates: × ∪Set circuits
We want to represent these results as aset circuit:
∪
×
x
>
×
y
•
Directed acyclic graph ofgates•
Outputgate:•
Variablegates: x•
Constantgates: > ⊥•
Internalgates: × ∪15/35
Semantics of set circuits
Every gategcapturesa setS(g)
•
Variablegate with labelx:S(g) :={{x}}Semantics of set circuits
Every gategcapturesa setS(g)
•
Variablegate with labelx:S(g) :={{x}}Semantics of set circuits
Every gategcapturesa setS(g)
•
Variablegate with labelx:S(g) :={{x}}Semantics of set circuits
Every gategcapturesa setS(g)
•
Variablegate with labelx:S(g) :={{x}}Semantics of set circuits
Every gategcapturesa setS(g)
•
Variablegate with labelx:S(g) :={{x}}Semantics of set circuits
Every gategcapturesa setS(g)
•
Variablegate with labelx:S(g) :={{x}}Set circuit for a query on a tree
Set circuitfor automatonAon uncertain treeT:
•
Variable gates: nodes ofT•
Condition:Letνbe a valuation ofT, thenA acceptsν(T)iff the setS(g0)of the output gateg0 contains{n∈T |ν(n) =1}.Query:Is there both a pink and a blue node?
×
Set circuit for a query on a tree
Set circuitfor automatonAon uncertain treeT:
•
Variable gates: nodes ofT•
Condition:Letνbe a valuation ofT, thenA acceptsν(T)iff the setS(g0)of the output gateg0 contains{n∈T |ν(n) =1}.Query:Is there both a pink and a blue node?
×
Set circuit for a query on a tree
Set circuitfor automatonAon uncertain treeT:
•
Variable gates: nodes ofT•
Condition:Letνbe a valuation ofT, thenA acceptsν(T)iff the setS(g0)of the output gateg0 contains{n∈T |ν(n) =1}.Query:Is there both a pink and a blue node?
×
Set circuit for a query on a tree
Set circuitfor automatonAon uncertain treeT:
•
Variable gates: nodes ofT•
Condition:Letνbe a valuation ofT, thenA acceptsν(T)iff the setS(g0)of the output gateg0 contains{n∈T |ν(n) =1}.Query:Is there both a pink and a blue node?
×
Set circuit for a query on a tree
Set circuitfor automatonAon uncertain treeT:
•
Variable gates: nodes ofT•
Condition:Letνbe a valuation ofT, thenA acceptsν(T)iff the setS(g0)of the output gateg0 contains{n∈T |ν(n) =1}.Query:Is there both a pink and a blue node?
×
Building set circuits
Theorem
For any bottom-uptree automatonAand inputtreeT, we can build a set circuitofAonTinO(|A| × |T|)
•
Alphabet:•
Automaton:“Is there both a pink and a blue node?”Building set circuits
Theorem
For any bottom-uptree automatonAand inputtreeT, we can build a set circuitofAonTinO(|A| × |T|)
•
Alphabet:•
Automaton:“Is there both a pink and a blue node?”Building set circuits
Theorem
For any bottom-uptree automatonAand inputtreeT, we can build a set circuitofAonTinO(|A| × |T|)
•
Alphabet:•
Automaton:“Is there both a pink and a blue node?”Building set circuits
Theorem
For any bottom-uptree automatonAand inputtreeT, we can build a set circuitofAonTinO(|A| × |T|)
•
Alphabet:•
Automaton:“Is there both a pink and a blue node?”Building set circuits
Theorem
For any bottom-uptree automatonAand inputtreeT, we can build a set circuitofAonTinO(|A| × |T|)
•
Alphabet:•
Automaton:“Is there both a pink and a blue node?”Building set circuits
Theorem
For any bottom-uptree automatonAand inputtreeT, we can build a set circuitofAonTinO(|A| × |T|)
•
Alphabet:•
Automaton:“Is there both a pink and a blue node?”Building set circuits
Theorem
For any bottom-uptree automatonAand inputtreeT, we can build a set circuitofAonTinO(|A| × |T|)
•
Alphabet:•
Automaton:“Is there both a pink and a blue node?”Building set circuits
Theorem
For any bottom-uptree automatonAand inputtreeT, we can build a set circuitofAonTinO(|A| × |T|)
•
Alphabet:•
Automaton:“Is there both a pink and a blue node?”Set circuit restrictions
To haveefficient enumeration, we needrestrictionson the set circuit:
d-DNNF set circuit:
•
∪ are alldeterministic: The inputs aredisjoint(= no set is captured by two inputs)
•
× are alldecomposable: The inputs areindependent (= no variablexhas a path to twoSet circuit restrictions
To haveefficient enumeration, we needrestrictionson the set circuit:
d-DNNF set circuit:
•
∪ are alldeterministic: The inputs aredisjoint(= no set is captured by two inputs)
•
× are alldecomposable: The inputs areindependent∪
×
> x
×
y {{x}} {{x,y}}
{{x},{x,y}}
Building d-DNNF set circuits
Theorem
For any bottom-uptree automatonAand inputtreeT, we can build ad-DNNFset circuitofAonT inO(|A| × |T|)
•
Alphabet:•
Automaton:“Is there both a pink and a blue node?”Meaning of the set circuit
→ Theset circuitofQis now afactorized representation which describes all the tuples that makeQtrue
Example query:
Q(X1,X2) :P (x)∧P (y) Data:
1
2 3
Results: X1 X2
1 2
1 3
Set circuit:
× X1(1) ∪
X2(2) X2(3)
{X2(2),X2(3)}
{(X1(1),X2(2)),(X1(1),X2(3))}
Meaning of the set circuit
→ Theset circuitofQis now afactorized representation which describes all the tuples that makeQtrue Example query:
Meaning of the set circuit
→ Theset circuitofQis now afactorized representation which describes all the tuples that makeQtrue Example query:
Q(X1,X2) :P (x)∧P (y) Data:
1
2 3
Results: X1 X2
1 2
1 3
Set circuit:
× X1(1) ∪
X2(2) X2(3)
{X2(2),X2(3)}
{(X1(1),X2(2)),(X1(1),X2(3))}
Meaning of the set circuit
→ Theset circuitofQis now afactorized representation which describes all the tuples that makeQtrue Example query:
Meaning of the set circuit
→ Theset circuitofQis now afactorized representation which describes all the tuples that makeQtrue Example query:
Q(X1,X2) :P (x)∧P (y) Data:
1
2 3
Results:
X1 X2
1 2
1 3
Set circuit:
× X1(1) ∪
X2(2) X2(3)
{X2(2),X2(3)}
{(X1(1),X2(2)),(X1(1),X2(3))}
Meaning of the set circuit
→ Theset circuitofQis now afactorized representation which describes all the tuples that makeQtrue Example query:
Meaning of the set circuit
→ Theset circuitofQis now afactorized representation which describes all the tuples that makeQtrue Example query:
Q(X1,X2) :P (x)∧P (y) Data:
1
2 3
Results:
X1 X2
1 2
1 3
Set circuit:
× X1(1) ∪
X2(2) X2(3)
{X2(2),X2(3)}
{(X1(1),X2(2)),(X1(1),X2(3))}