![]() |
ProvSQL C/C++ API
Adding support for provenance and uncertainty management to PostgreSQL databases
|
Symbolic formula semiring producing readable provenance expressions. More...
#include <numeric>#include <vector>#include <string>#include <sstream>#include <iterator>#include "Semiring.h"

Go to the source code of this file.
Classes | |
| class | semiring::Formula |
Symbolic provenance formula semiring over std::string. More... | |
Namespaces | |
| namespace | semiring |
Functions | |
| template<typename Range , typename Value = typename Range::value_type> | |
| static std::string | join (Range const &elements, const char *const delimiter) |
| Concatenate elements of a range with a delimiter. | |
Symbolic formula semiring producing readable provenance expressions.
The Formula semiring (std::string, \(\oplus\), \(\otimes\), "ð", "ð") represents provenance as a human-readable symbolic expression using Unicode semiring symbols. It is primarily used for debugging and testing.
Each gate evaluates to a string:
zero() â "ð"one() â "ð"plus() â "(a â b â âŠ)" or just "a" for singletonstimes() â "(a â b â âŠ)" or just "a" for singletonsmonus() â "(a â b)"delta() â "ÎŽ(a)" or "ÎŽa" if a starts with (cmp() â "[s1 op s2]"semimod()â "x*s"agg() â operator-specific notation (e.g., "min(a,b)")value() â the literal string itself Definition in file Formula.h.
|
static |
Concatenate elements of a range with a delimiter.
Used internally by Formula::plus(), Formula::times(), and Formula::agg() to build operator-separated strings.
| Range | Any range type with a value_type typedef. |
| Value | Element type (defaults to Range::value_type). |
| elements | The range to join. |
| delimiter | String to insert between adjacent elements. |
delimiter between them. Definition at line 46 of file Formula.h.
