Skip to content

Reporting provenance using Graphviz

Hassaan edited this page Jul 18, 2020 · 6 revisions

The Graphviz project at AT&T Research created the DOT language for graph visualization. SPADE's Graphviz reporter ingests provenance that is emitted by SPADE's Graphviz storage, and is described by the fragment of DOT below.


Supported fragment of DOT

graph digraph [ ID ] '{' statement_list '}'
statement_list [ statement [ ';' ] [ statement_list ] ]
statement node_statement | edge_statement | attribute_statement
attribute_statement ( graph | node | edge ) attribute_list
attribute_list '[' [ a_list ] ']' [ attribute_list ]
a_list ID '=' ID [ ( ';' | ',' ) ] [ a_list ]
edge_statement node_id '->' node_id [ attribute_list ]
node_statement node_id [ attribute_list ]
node_id ID

"Terminals are shown in bold font and nonterminals in italics. Literal characters are given in single quotes. Parentheses ( and ) indicate grouping. Square brackets [ and ] enclose optional items. Vertical bars separate alternatives." An ID can be an alphanumeric string or a numeral.


Configuring Graphviz reporting

The Graphviz reporter takes a single argument, which is the location in the filesystem where the Graphviz file is located. Note that this must be done in the SPADE controller (after the SPADE server has been started):

-> add reporter Graphviz input=/tmp/provenance.dot
Adding reporter Graphviz... done

The reporter can be deactivated using the following command in the SPADE controller:

-> remove reporter Graphviz
Shutting down reporter Graphviz... done
Clone this wiki locally