Module com.darkcollective.relix.provenance
This module defines a single pluggable extension point —
Semiring — and the cheap,
fixed-size built-in semirings that instantiate it: existence
(BooleanSemiring), multiplicity /
path-count (CountingSemiring),
cheapest-derivation / shortest-path
(TropicalSemiring), and
trust / access-control
(SecurityLattice).
Provenance (Green, Karvounarakis & Tannen, PODS 2007) annotates each
tuple with a semiring element and threads ⊕/⊗ through every
positive-algebra operator, so one mechanism yields set semantics, bag
multiplicity, why-provenance lineage, trust levels, and semiring-weighted
closure by swapping the semiring. This module is the algebra only; the
annotated-relation model and the operator threading live in relix-processor.
The module deliberately has no relix dependencies, so it can sit at the bottom of the module graph and be required by the processor without introducing a cycle, while the plain evaluation path stays free of any provenance code.
-
Packages
ExportsPackageDescriptionThe pluggable provenance-semiring algebra (K-relations).