Independence Atom Backend
The composition layer operates (exclusively) on primitives exposed by the
data_processing layer, with
data_management logically detached (accessed
only thourgh the data_processing layer).
It uses only the following composed independence-atom backend:
- class IProvideIndependenceAtoms
Interface specifying how to expose (custom) implementations of independence-atom providing backends. Provide (as opposed to test) here means that
data_managementanddata_processingfunctionality are bundled.- marked_independence(ci: CI_Identifier) Result
Provide a marked-independence statement.
See also
Provides functionality described by
TestMarkedCI.marked_independencebut with actual data made opaque.- Parameters:
ci (CI_Identifier) – conditional independence to test
- Returns:
marked CIT result
- Return type:
- regime_implication(lhs: list[CI_Identifier], rhs: CI_Identifier) bool
Provide a regime-implication statement.
See also
Provides functionality described by
ITestIndicatorImplications.is_implied_regimebut with actual data made opaque.- Parameters:
lhs (list[CI_Identifier]) – lhs of the implication
rhs (CI_Identifier) – rhs of the implication
- Returns:
test-result for truth-value of the implication
- Return type:
bool
- found_globally_independent_for_some_Z(undirected_link: tuple) bool
Provide information about wheter among the test-results provided so far, there was a CIT on the specified
undirected_linkfor any conditioning set Z which was reported globally independent.- Parameters:
undirected_link (tuple) – the undirected link on which to check for independent CIT-results
- Returns:
Truth-value about wheter any globally independent outcome was encountered on this link.
- Return type:
bool
For PCMCI-familiy algortihms, the independence-atom backend further is notified of transitions between PC1 and MCI phase through the callbacks of the following interface:
- class IHandleExplicitTransitionToMCI
Interface specifying how to expose (custom) implementations of independence-atom providing backends for PCMCI-familiy [RNK+19] algorithms. These backends typically handle PC1 and MCI tests differently, and through this interface are notified by the HCCD-controller about transitions between these phases.
- enter_pc1() None
Callback for notification that the underlying cd-algorithm has (re)entered (what is considered by the controller) to be part of the PC1-phase.
- enter_mci() None
Callback for notification that the underlying cd-algorithm has (re)entered (what is considered by the controller) to be part of the MCI-phase.