ProvSQL C/C++ API
Adding support for provenance and uncertainty management to PostgreSQL databases
Loading...
Searching...
No Matches
UCQJointCompiler::AnswerRoot Struct Reference

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.

Detailed Description

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.

Parameters
encThe joint encoding (data-graph / TID-BID or correlated).
ucqThe UCQ; the head variables must occur in every disjunct.
head_varsQuery-variable indices of the head.

Definition at line 161 of file UCQJointCompiler.h.

Member Data Documentation

◆ head

std::vector<unsigned long> UCQJointCompiler::AnswerRoot::head

Bound element value per head variable.

Definition at line 162 of file UCQJointCompiler.h.

◆ root

gate_t UCQJointCompiler::AnswerRoot::root

This answer's d-D root in dd.

Definition at line 163 of file UCQJointCompiler.h.


The documentation for this struct was generated from the following file: