ProvSQL C/C++ API
Adding support for provenance and uncertainty management to PostgreSQL databases
Loading...
Searching...
No Matches
DotCircuit.h File Reference

Provenance circuit variant that renders to GraphViz DOT format. More...

#include <unordered_map>
#include <unordered_set>
#include <set>
#include <vector>
#include "Circuit.hpp"
Include dependency graph for DotCircuit.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  DotCircuit
 Circuit specialisation for GraphViz DOT rendering. More...
 

Enumerations

enum class  DotGate {
  UNDETERMINED , OTIMES , OPLUS , OMINUS ,
  OMINUSR , OMINUSL , PROJECT , EQ ,
  IN , DELTA
}
 Gate types for a DOT visualisation circuit. More...
 

Detailed Description

Provenance circuit variant that renders to GraphViz DOT format.

DotCircuit is a lightweight circuit specialisation used exclusively for visualisation. It stores a textual description (desc) alongside each gate so that the rendered DOT graph can label nodes with meaningful provenance formula symbols (⊗, ⊕, ⊖, δ, etc.).

The render() method traverses the circuit and produces a complete GraphViz digraph string that can be piped to dot or displayed with graph-easy.

Definition in file DotCircuit.h.

Enumeration Type Documentation

◆ DotGate

enum class DotGate
strong

Gate types for a DOT visualisation circuit.

Each value corresponds to a semiring operator or special gate kind, and is rendered as the appropriate mathematical symbol in the output.

  • UNDETERMINED Placeholder, should not appear in a finished circuit.
  • OTIMES Semiring times (⊗).
  • OPLUS Semiring plus (⊕).
  • OMINUS Semiring monus (⊖), full.
  • OMINUSR Monus, right child only.
  • OMINUSL Monus, left child only.
  • PROJECT Projection gate.
  • EQ Equijoin gate.
  • IN Input (variable) gate.
  • DELTA δ-semiring operator.
Enumerator
UNDETERMINED 

Placeholder gate not yet assigned a type.

OTIMES 

Semiring times (⊗)

OPLUS 

Semiring plus (⊕)

OMINUS 

Semiring monus (⊖), full.

OMINUSR 

Monus, right child only.

OMINUSL 

Monus, left child only.

PROJECT 

Projection gate.

EQ 

Equijoin gate.

IN 

Input (variable) gate.

DELTA 

δ-semiring operator

Definition at line 41 of file DotCircuit.h.