xref: /aosp_15_r20/external/rappor/doc/data-flow.dot (revision 2abb31345f6c95944768b5222a9a5ed3fc68cc00)
1// Based on http://graphviz.org/content/cluster
2
3// Node types:
4//   Rectangle: process
5//   Oval: data
6//   Diamond: debug/simulation data
7
8digraph G {
9  //rankdir="LR";  // left to right layout
10
11  // http://www.graphviz.org/content/color-names
12  colorscheme=pastel13;
13
14  subgraph cluster_0 {
15    graph [ fontsize=24 ];
16    label = "Reporting";
17    style=filled;
18    color=2;
19
20    node [style=filled, color=white, fontsize=12];
21
22    gen_sim_input -> dist_csv -> rappor_sim;
23
24    rappor_sim -> out;
25    rappor_sim -> params;
26    rappor_sim -> hist;
27    rappor_sim -> true_inputs;
28
29    // Process
30    rappor_sim [label="rappor_sim"];
31
32    // Data
33    dist_csv [shape=box, label="dist.csv"];
34    out [shape=box, label="dist_out.csv"];
35    params [shape=box, label="dist_params.csv"];
36
37    // simulation data
38    hist [shape=box, style=dotted, color=black, label="dist_hist.csv"];
39    true_inputs [shape=box, style=dotted, color=black, label="dist_true_inputs.txt"];
40  }
41
42  subgraph cluster_1 {
43    graph [ fontsize=24 ];
44    label = "Analysis";
45    style = filled;
46    color=3;
47
48    node [style=filled, color=white, fontsize=12];
49
50    sum_bits -> counts;
51
52    // sum_bits needs the params to construct the matrix.  Technically it could
53    // infer it, but this is simple.
54    params -> sum_bits;
55
56    // only in the simulation
57    true_inputs -> demo_sh -> candidates [style=dotted];
58
59    candidates -> hash_candidates -> map;
60    params -> hash_candidates;
61
62    params -> analyze;
63    map -> analyze;
64    counts -> analyze;
65    hist -> analyze [style=dotted];  // only for comparison
66
67    analyze -> plot_png;
68
69    // Processes
70    analyze [label="analyze.R"];
71    demo_sh [label="demo.sh", style=dotted, color=black];
72
73    // Data
74    counts [shape=box, label="dist_count.csv"];
75    candidates [shape=box, label="dist_candidates.txt"];
76    map [shape=box, label="dist_map.csv"];
77
78    plot_png [shape=box, label="dist.png"];
79
80  }
81
82  out -> sum_bits;
83}
84