-
Notifications
You must be signed in to change notification settings - Fork 75
Reporting provenance using Graphviz
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.
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.
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 /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
This material is based upon work supported by the National Science Foundation under Grants OCI-0722068, IIS-1116414, and ACI-1547467. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.
- Setting up SPADE
- Storing provenance
-
Collecting provenance
- Across the operating system
- Limiting collection to a part of the filesystem
- From an external application
- With compile-time instrumentation
- Using the reporting API
- Of transactions in the Bitcoin blockchain
- Filtering provenance
- Viewing provenance
-
Querying SPADE
- Illustrative example
- Transforming query responses
- Protecting query responses
- Miscellaneous