![]() |
ProvSQL C/C++ API
Adding support for provenance and uncertainty management to PostgreSQL databases
|
Per-answer evaluation by a single top-down DP (data-graph regime). More...
#include "UCQJointCompiler.h"
Public Attributes | |
| std::vector< unsigned long > | head |
| Bound element value per head variable. | |
| gate_t | root |
This answer's d-D root in dd. | |
Per-answer evaluation by a single top-down DP (data-graph regime).
The full multi-output construction (Amarilli, tel-01345836, ยง4.2.9): ONE bottom-up sweep emits one circuit root per answer, rather than k head-pinned compile() sweeps. The head variables become a state-level key – they are never existentially projected (a forgotten head element is recorded as a fixed value), completed answers are tracked per head-tuple in the state, and an answer is emitted as its own d-DNNF root when its head elements leave the tree decomposition. All answer roots share one circuit, so a single probability pass (with the gate cache) values them all. The candidate answers are discovered by the sweep – no candidate list is needed. Equivalent answers and probabilities to k head-pinned compile() calls, in one pass instead of k.
The compiler's job ends at the circuit: it returns the shared d-D and one root gate per answer (the materialisation / probability / Shapley is the caller's, on the returned roots), keeping a single evaluation pipeline.
| enc | The joint encoding (data-graph / TID-BID or correlated). |
| ucq | The UCQ; the head variables must occur in every disjunct. |
| head_vars | Query-variable indices of the head. |
Definition at line 161 of file UCQJointCompiler.h.
| std::vector<unsigned long> UCQJointCompiler::AnswerRoot::head |
Bound element value per head variable.
Definition at line 162 of file UCQJointCompiler.h.
| gate_t UCQJointCompiler::AnswerRoot::root |
This answer's d-D root in dd.
Definition at line 163 of file UCQJointCompiler.h.