April 26, 2019
Think of the relation as a function from potential facts to their truth value.
R | A | B | |
---|---|---|---|
1 | 1 | 2 | → T |
2 | 1 | 3 | → T |
3 | 2 | 3 | → T |
4 | 2 | 4 | → T |
5 | 1 | 1 | → F |
6 | ... | → F |
Every row not explicitly listed is mapped to False
Q(A):− R(A,B),S(B,C)
Q(1):− R(1,B),S(B,C)
Q(1)≡R(1,1)∧S(1,1)
∨ R(1,2)∧S(2,1)
∨ R(1,3)∧S(3,1)
...
∨ R(1,1)∧S(1,2)
∨ R(1,2)∧S(2,2)
∨ R(1,3)∧S(3,2)
...
R | A | B |
---|---|---|
1 | 1 | 2 |
2 | 1 | 3 |
3 | 2 | 3 |
4 | 2 | 4 |
S | B | C |
---|---|---|
1 | 2 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
Q(1)≡R(1,1)∧S(1,1)
∨ R(1,2)∧S(2,1)
∨ R(1,3)∧S(3,1)
...
∨ R(1,1)∧S(1,2)
∨ R(1,2)∧S(2,2)
∨ R(1,3)∧S(3,2)
...
R | A | B |
---|---|---|
1 | 1 | 2 |
2 | 1 | 3 |
3 | 2 | 3 |
4 | 2 | 4 |
S | B | C |
---|---|---|
1 | 2 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
Q(1)≡R(1,1)∧S(1,1)
∨ T ∧S(2,1)
∨ T ∧S(3,1)
...
∨ R(1,1)∧S(1,2)
∨ T ∧S(2,2)
∨ T ∧S(3,2)
...
R | A | B |
---|---|---|
1 | 1 | 2 |
2 | 1 | 3 |
3 | 2 | 3 |
4 | 2 | 4 |
S | B | C |
---|---|---|
1 | 2 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
Q(1)≡ F ∧S(1,1)
∨ T ∧S(2,1)
∨ T ∧S(3,1)
...
∨ F ∧S(1,2)
∨ T ∧S(2,2)
∨ T ∧S(3,2)
...
R | A | B |
---|---|---|
1 | 1 | 2 |
2 | 1 | 3 |
3 | 2 | 3 |
4 | 2 | 4 |
S | B | C |
---|---|---|
1 | 2 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
Q(1)≡ F ∧ F
∨ T ∧ T
∨ T ∧ F
...
∨ F ∧ F
∨ T ∧ T
∨ T ∧ F
...
R | A | B |
---|---|---|
1 | 1 | 2 |
2 | 1 | 3 |
3 | 2 | 3 |
4 | 2 | 4 |
S | B | C |
---|---|---|
1 | 2 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
Q(1)≡ F ∧ F
∨ T ∧ T
∨ T ∧ F
...
∨ F ∧ F
∨ T ∧ T
∨ T ∧ F
...
R | A | B |
---|---|---|
1 | 1 | 2 |
2 | 1 | 3 |
3 | 2 | 3 |
4 | 2 | 4 |
S | B | C |
---|---|---|
1 | 2 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
Q(1)≡ R(1,1)∧S(1,1)
∨ R(1,2)∧S(2,1)
∨ R(1,3)∧S(3,1)
...
∨ R(1,1)∧S(1,2)
∨ R(1,2)∧S(2,2)
∨ R(1,3)∧S(3,2)
...
R | A | B |
---|---|---|
1 | 1 | 2 |
2 | 1 | 2 |
3 | 1 | 2 |
4 | 1 | 3 |
5 | 2 | 3 |
6 | 2 | 3 |
7 | 2 | 4 |
R | A | B | |
---|---|---|---|
1 | 1 | 2 | → 3 |
2 | 1 | 3 | → 1 |
3 | 2 | 3 | → 2 |
4 | 2 | 4 | → 1 |
|
|
Q(1)= ?
|
|
Q(1)=3×1+3×2+1×3=12
Q(1)≡R(1,1)∧S(1,1)
∨ R(1,2)∧S(2,1)
∨ R(1,3)∧S(3,1)
...
∨ R(1,1)∧S(1,2)
∨ R(1,2)∧S(2,2)
∨ R(1,3)∧S(3,2)
...
R | A | B | |
---|---|---|---|
1 | 1 | 2 | → 3 |
2 | 1 | 3 | → 1 |
3 | 2 | 3 | → 2 |
4 | 2 | 4 | → 1 |
S | B | C | |
---|---|---|---|
1 | 2 | 1 | → 1 |
2 | 2 | 2 | → 2 |
3 | 3 | 3 | → 3 |
Q(1)≡R(1,1)×S(1,1)
+ R(1,2)×S(2,1)
+ R(1,3)×S(3,1)
...
+ R(1,1)×S(1,2)
+ R(1,2)×S(2,2)
+ R(1,3)×S(3,2)
...
R | A | B | |
---|---|---|---|
1 | 1 | 2 | → 3 |
2 | 1 | 3 | → 1 |
3 | 2 | 3 | → 2 |
4 | 2 | 4 | → 1 |
S | B | C | |
---|---|---|---|
1 | 2 | 1 | → 1 |
2 | 2 | 2 | → 2 |
3 | 3 | 3 | → 3 |
Q(1)≡0×0
+ 3×1
+ 1×0
...
+ 0×0
+ 3×2
+ 1×0
...
R | A | B | |
---|---|---|---|
1 | 1 | 2 | → 3 |
2 | 1 | 3 | → 1 |
3 | 2 | 3 | → 2 |
4 | 2 | 4 | → 1 |
S | B | C | |
---|---|---|---|
1 | 2 | 1 | → 1 |
2 | 2 | 2 | → 2 |
3 | 3 | 3 | → 3 |
Q(1)≡ 0×0
+ 3×1
+ 1×0
...
+ 3×0
+ 3×2
+ 1×0
...
|
|
|
|
R | A | B | |
---|---|---|---|
1 | 1 | 2 | → a |
2 | 1 | 3 | → b |
3 | 2 | 3 | → c |
4 | 2 | 4 | → d |
5 | ... | → 0 |
S | B | C | |
---|---|---|---|
1 | 2 | 1 | → e |
2 | 2 | 2 | → f |
3 | 3 | 3 | → g |
4 | ... | → 0 |
Q(1)≡R(1,1)⊗S(1,1)
⊕ R(1,2)⊗S(2,1)
⊕ R(1,3)⊗S(3,1)
...
⊕ R(1,1)⊗S(1,2)
⊕ R(1,2)⊗S(2,2)
⊕ R(1,3)⊗S(3,2)
...
R | A | B | |
---|---|---|---|
1 | 1 | 2 | → a |
2 | 1 | 3 | → b |
3 | 2 | 3 | → c |
4 | 2 | 4 | → d |
5 | ... | → 0 |
S | B | C | |
---|---|---|---|
1 | 2 | 1 | → e |
2 | 2 | 2 | → f |
3 | 3 | 3 | → g |
4 | ... | → 0 |
Q(1)≡0⊗0
⊕ a⊗e
⊕ b⊗0
...
⊕ 0⊗0
⊕ a⊗f
⊕ b⊗0
...
(a⊗e)⊕(a⊗f)⊕(b⊗g)⊕0⊕…
(T∧T)∨(T∧T)∨(T∧T)∨F∨…
(3×1)+(3×1)+(1×3)+0+…
... and more
Any pair of operators (along with their domain) that follows these rules is called a commutative semiring
If a Table is a function, so is a query result!
Sum over all projected-away variables
Truncate filtered rows to 0.
Sum annotations through union.
Multiply annotations through cross product.
Domain of Tuple IDs: T
A Set of Tuple IDs: 2T
A Set of Sets of Tuple IDs: 22T
e.g., {{t1,t5},{t1,t6},{t2,t7}}
|
|
Polynomials are also a semiring
|
|
ae+af+bg
Plug in boolean annotations: T
Plug in multiplicities: 12
Plug in tuple IDs:
{{t1,t5},{t1,t6},{t2,t7}}
ae+af+bg