![]() |
ProvSQL C/C++ API
Adding support for provenance and uncertainty management to PostgreSQL databases
|
Abstract semiring interface for provenance evaluation. More...


Go to the source code of this file.
Classes | |
| class | semiring::SemiringException |
| Exception thrown when a semiring operation is not supported. More... | |
| class | semiring::Semiring< V > |
| Abstract base class for (m-)semirings. More... | |
Namespaces | |
| namespace | semiring |
Abstract semiring interface for provenance evaluation.
ProvSQL evaluates provenance circuits over arbitrary (m-)semirings. This header defines the abstract base class semiring::Semiring<V> that every concrete semiring must implement.
A semiring \((S, \oplus, \otimes, \mathbb{0}, \mathbb{1})\) consists of:
value_type).An m-semiring additionally provides:
Optional operations (comparison, semimodule scalar multiplication, aggregation, and value literals) are provided by subclasses that support them; the base class throws SemiringException for all of these.
Concrete implementations live in the same semiring/ directory: Boolean.h, Counting.h, Formula.h, Why.h, BoolExpr.h.
Definition in file Semiring.h.