Skip to main content

Query Planner

For query planning, the sender role is conducted by the key holder for the relevant resources. The receiver role is conducted by the clique(s) (cluster(s)) responsible for the hypergraph. Again, these algorithms are produced from the source literature:

Create SPARQL Query Graph:
  1. Given a query match pattern Qp ∈ QR.
  2. V ← ∅, E ← ∅
  3. ∀Qpi|1 ≤ i
    1. if i == 1, V ← V ∪ (var ∈ Qpi.S ∪ var ∈ Qpi.O), E ← (var ∈ Qpi.S, var ∈ Qpi.O)
    2. if i ≥ 2, if (var ∈ Qpi.S == var ∈ Qpi+1.S) ∧ (var ∈ Qpi.O == var ∈ Qpi+1.S) then V ← V ∪ var ∈ Qpi.S, E ← (var ∈ Qpi, var ∈ Qpi+1) else V ← V ∪ var ∈ Qpi+1.O, E ← (var ∈ Qpi, var ∈ Qpi+1)
    3. else, if (var ∈ Qpi.S == var ∈ Qpi+1.O) ∧ (var ∈ Qpi.O == var ∈ Qpi+1.O) then if ∃var ∈ Qpi+1.S ∈ V, V ← V ∪ var ∈ Qpi.S, E ← (var ∈ Qpi, var ∈ Qpi+1). MIN(size(hi)) then I(G) = I(G) ∪ δ ↓ Pi, ∀j|i + 1 ≤ j ≤ n, if (hi(G) ⊑ hj(G)) ∧ (size(Pi) == size(Pj)) then I(G) = I(G) ∪ Pi ↔ Pj else I(G) = I(G) ∪ Pi → Pj.
    4. if not (var ∈ Qpi.S == var ∈ Qpi+1.O) ∧ (var ∈ Qpi.O == var ∈ Qpi+1.O), then V ← V ∪ var ∈ Qpi+1.S, E ← (var ∈ Qpi, var ∈ Qpi+1).
  4. QG = (V, E)
Create Query Path:
  1. Given a set of predicates P ∈ QG, QG and I(G).
  2. Start from δ.
  3. Qpath ← δ → min(size(Pi)) ∈ I(G)
  4. ∀Qi|1 ≤ i ≤ n − 1, i + 1 ≤ j ≤ n, if ∃var ∈ Qpi ∈ QG == var ∈ Qpj ∈ QG, then Qpath ← Qpath ∪ (Pi → Pj) ∈ I(G).