From b08cf51123fc9364f7fafdb7f7035b979a4f10bc Mon Sep 17 00:00:00 2001
From: Mohammad Akhlaghi <mohammad@akhlaghi.org>
Date: Thu, 18 Jun 2020 03:05:02 +0100
Subject: Better step-by-step implementation of the data-lineage figure

Until now, the data-lineage figure's step-by-step feature (using the macros
defined at the top) didn't correspond to the new format! It was still based
on the purely-hypothetical format, while the boxes and their contents had
changed.

With this commit, they macros and corresponding parts that they create have
been updated to represent the step-by-step data lineage of this paper.

Also, in the "tools-per-year" plot, the green line was brought ontop of the
histogram to be more clear (especially when transparency isn't implemented
properly in the conversion).
---
 tex/src/figure-data-lineage.tex   | 161 +++++++++++++++++---------------------
 tex/src/figure-tools-per-year.tex |  30 +++----
 2 files changed, 87 insertions(+), 104 deletions(-)

diff --git a/tex/src/figure-data-lineage.tex b/tex/src/figure-data-lineage.tex
index f5aa77c..31f4380 100644
--- a/tex/src/figure-data-lineage.tex
+++ b/tex/src/figure-data-lineage.tex
@@ -4,27 +4,21 @@
 \newcommand{\projecttex}{}            %  4
 \newcommand{\verifytex}{}             %  5
 \newcommand{\initializetex}{}         %  6
-\newcommand{\downloadtex}{}           %  7
-\newcommand{\inputtwo}{}              %  8
-\newcommand{\inputsconf}{}            %  9
-\newcommand{\analysisonetex}{}        % 10
-\newcommand{\outoneb}{}               % 11
-\newcommand{\outonebdep}{}            % 12
-\newcommand{\inputone}{}              % 13
-\newcommand{\inputonedep}{}           % 14
-\newcommand{\analysistwotex}{}        % 15
-\newcommand{\outtwob}{}               % 16
-\newcommand{\outtwobdep}{}            % 17
-\newcommand{\analysisthreetex}{}      % 18
-\newcommand{\analysisthreeouts}{}     % 19
-\newcommand{\outtwoa}{}               % 20
-\newcommand{\outtwoadep}{}            % 21
-\newcommand{\outthreeadep}{}          % 22
+\newcommand{\demoplottex}{}           %  7
+\newcommand{\toolsperyear}{}          %  8
+\newcommand{\tablethree}{}            %  9
+\newcommand{\menkexlsx}{}             % 10
+\newcommand{\inputsconf}{}            % 11
+\newcommand{\downloadtex}{}           % 12
+\newcommand{\formattex}{}             % 13
+\newcommand{\demoyearconf}{}          % 14
+\newcommand{\expandingproject}{}      % 15
 
 
 
 
 
+%% Start the TiKZ picture environment.
 \begin{tikzpicture}[
   line width=1.5pt,
   black!50,
@@ -63,8 +57,6 @@
     label={[shift={(0,-5mm)}]\texttt{format.mk}}] {};
   \node (analysis2mk)  [node-makefile, at={(2.67cm,-1.3cm)},
     label={[shift={(0,-5mm)}]\texttt{demo-plot.mk}}] {};
-  \node [opacity=0.6] (analysis3mk)  [node-makefile, at={(5.47cm,-1.3cm)},
-    label={[shift={(0,-5mm)}, opacity=0.6]\texttt{next-step.mk}}] {};
 
   %% verify.mk
   \node [at={(-5.3cm,-2.8cm)},
@@ -130,97 +122,88 @@
   \node [anchor=west, at={(-7.05cm,0.40cm)}] {(for \texttt{*.mk} files).};
   \fi
 
-  %% download.tex
-  \ifdefined\downloadtex
-  \node (downloadtex) [node-terminal, at={(-2.93cm,-0.8cm)}] {download.tex};
-  \draw [rounded corners, -] (downloadtex) |- (initialize-south);
+  %% demo-plot.tex
+  \ifdefined\demoplottex
+  \node (dptex) [node-terminal, at={(2.67cm,-0.8cm)}] {demo-plot.tex};
+  \draw [rounded corners, -] (dptex) |- (initialize-south);
   \fi
 
-  %% input-2.dat
-  \ifdefined\inputtwo
-  \node (input2) [node-terminal, at={(-2.93cm,1.9cm)}] {menke20.xlsx};
+  %% tools-per-year.txt
+  \ifdefined\toolsperyear
+  \node (tpyear) [node-terminal, at={(2.67cm,0.3cm)}] {tools-per-\\year.txt};
+  \draw [->] (tpyear) -- (dptex);
   \fi
 
-  %% INPUTS.conf
-  \ifdefined\inputsconf
-  \node (INPUTS) [node-nonterminal, at={(-2.93cm,4.6cm)}] {INPUTS.conf};
-  \node (input2-west) [node-point, at={(-4.33cm,1.9cm)}] {};
-  \node (downloadtex-west) [node-point, at={(-4.33cm,-0.8cm)}] {};
-  \draw [->,rounded corners] (INPUTS.west) -| (input2-west) |- (input2);
-  \draw [->,rounded corners] (INPUTS.west) -| (downloadtex-west)
-                                           |- (downloadtex);
+  %% table-3.txt
+  \ifdefined\tablethree
+  \node (tabthree) [node-terminal, at={(-0.13cm,1.1cm)}] {table-3.txt};
+  \draw [rounded corners, ->] (tabthree) |- (tpyear);
   \fi
 
-  %% analysis1.tex
-  \ifdefined\analysisonetex
-  \node (a1tex) [node-terminal, at={(-0.13cm,-0.8cm)}] {format.tex};
-  \draw [rounded corners, -] (a1tex) |- (initialize-south);
+  %% menkexlsx
+  \ifdefined\menkexlsx
+  \node (xlsx) [node-terminal, at={(-2.93cm,1.9cm)}] {menke20.xlsx};
+  \draw [->, rounded corners] (xlsx) |- (tabthree);
   \fi
 
-  %% out1b.dat
-  \ifdefined\outoneb
-  \node (out1b) [node-terminal, at={(-0.13cm,1.1cm)}] {table-3.txt};
-  \draw [->] (out1b) -- (a1tex);
+  %% INPUTS.conf
+  \ifdefined\inputsconf
+  \node (INPUTS) [node-nonterminal, at={(-2.93cm,4.6cm)}] {INPUTS.conf};
+  \node (xlsx-west) [node-point, at={(-4.33cm,1.9cm)}] {};
+  \draw [->,rounded corners] (INPUTS.west) -| (xlsx-west) |- (xlsx);
   \fi
 
-  %% outonebdep
-  \ifdefined\outonebdep
-  \node (out1b-west) [node-point, at={(-1.53cm,1.1cm)}] {};
-  \draw [->, rounded corners] (input2) |- (out1b);
+  %% download.tex
+  \ifdefined\downloadtex
+  \node (downloadtex) [node-terminal, at={(-2.93cm,-0.8cm)}] {download.tex};
+  \node (downloadtex-west) [node-point, at={(-4.33cm,-0.8cm)}] {};
+  \draw [->,rounded corners] (INPUTS.west) -| (downloadtex-west)
+                             |- (downloadtex);
+  \draw [rounded corners, -] (downloadtex) |- (initialize-south);
   \fi
 
-  %% analysis2.tex
-  \ifdefined\analysistwotex
-  \node (a2tex) [node-terminal, at={(2.67cm,-0.8cm)}] {demo-plot.tex};
-  \draw [rounded corners, -] (a2tex) |- (initialize-south);
+  %% format.tex
+  \ifdefined\formattex
+  \node (fmttex) [node-terminal, at={(-0.13cm,-0.8cm)}] {format.tex};
+  \draw [->] (tabthree) -- (fmttex);
+  \draw [rounded corners, -] (fmttex) |- (initialize-south);
   \fi
 
-  %% out-2b.dat
-  \ifdefined\outtwob
-  \node (menkedemoyear) [node-nonterminal, at={(2.67cm,4.6cm)}] {demo-year.conf};
-  \node (a2tex-west) [node-point, at={(1.27cm,-0.8cm)}] {};
-  \node (out2b) [node-terminal, at={(2.67cm,0.3cm)}] {tools-per-\\year.txt};
-  \draw [->] (out2b) -- (a2tex);
-  \draw [->,rounded corners] (menkedemoyear.west) -| (a2tex-west) |- (a2tex);
+  %% demo-year.conf
+  \ifdefined\demoyearconf
+  \node (dyearconf) [node-nonterminal, at={(2.67cm,4.6cm)}] {demo-year.conf};
+  \node (dptex-west) [node-point, at={(1.27cm,-0.8cm)}] {};
+  \draw [->,rounded corners] (dyearconf.west) -| (dptex-west) |- (dptex);
   \fi
 
-  %% out-2b dependencies
-  \ifdefined\outtwobdep
-  \draw [->,rounded corners,] (out1b.south) |- (out2b);
-  \fi
+  %% Expanding project
+  \ifdefined\expandingproject
 
-  %% analysis3.tex
-  \ifdefined\analysisthreetex
-  \node [opacity=0.6] (a3tex) [node-terminal, at={(5.47cm,-0.8cm)}] {next-step.tex};
-  \draw [opacity=0.6, rounded corners, -, dashed] (a3tex) |- (initialize-south);
-  \fi
+    %% The Makefile.
+    \node [opacity=0.7, dashed] (analysis3mk)  [node-makefile, at={(5.47cm,-1.3cm)},
+      label={[shift={(0,-5mm)}, opacity=0.7]\texttt{next-step.mk}}] {};
 
-  %% Outputs of analysis3
-  \ifdefined\analysisthreeouts
-  \node [opacity=0.6] (out3a) [node-terminal, at={(5.47cm,2.7cm)}] {out-3a.dat};
-  \node [opacity=0.6] (out3b) [node-terminal, at={(5.47cm,1.1cm)}] {out-3b.dat};
-  \node (a3tex-east) [node-point, at={(6.87cm,-0.8cm)}] {};
-  \draw [opacity=0.6, ->,rounded corners, dashed] (out3a.east) -| (a3tex-east) |- (a3tex);
-  \draw [opacity=0.6, ->, dashed] (out3b) -- (a3tex);
-  \fi
+    %% next-step.tex
+    \node [opacity=0.7, dashed] (a3tex) [node-terminal, at={(5.47cm,-0.8cm)}] {next-step.tex};
+    \draw [opacity=0.7, rounded corners, -, dashed] (a3tex) |- (initialize-south);
 
-  %% out-2a.dat
-  \ifdefined\outtwoa
-  \node [opacity=0.6] (out2a) [node-terminal, at={(2.67cm,1.9cm)}] {demo-out.dat};
-  \draw [opacity=0.6, ->, rounded corners, dashed] (out2a.south) |- (out3b);
-  \fi
+    % out-3a.dat and out-3b.dat
+    \node [opacity=0.7, dashed] (out3a) [node-terminal, at={(5.47cm,2.7cm)}] {out-a.dat};
+    \node [opacity=0.7, dashed] (out3b) [node-terminal, at={(5.47cm,1.1cm)}] {out-b.dat};
+    \node (a3tex-east) [node-point, at={(6.87cm,-0.8cm)}] {};
+    \draw [opacity=0.7, ->,rounded corners, dashed] (out3a.east) -| (a3tex-east) |- (a3tex);
+    \draw [opacity=0.7, ->, dashed] (out3b) -- (a3tex);
 
-  %% Dependencies of out-2a
-  \ifdefined\outtwoadep
-  \node (out2a-west) [node-point, at={(1.27cm,1.9cm)}] {};
-  \draw [opacity=0.6, ->, dashed] (input2) -- (out2a);
-  \fi
+    %% demo-out.dat
+    \node [opacity=0.7, dashed] (dout) [node-terminal, at={(2.67cm,1.9cm)}] {demo-out.dat};
+    \draw [opacity=0.7, ->, rounded corners, dashed] (dout.south) |- (out3b);
 
-  %% Dependencies of out-3a
-  \ifdefined\outthreeadep
-  \node [opacity=0.6] (out3a-west) [node-point, at={(4.07cm,2.7cm)}] {};
-  \draw [opacity=0.6, ->,rounded corners, dashed] (input2) |- (out3a);
-  \node [opacity=0.6] (a3conf1) [node-nonterminal, at={(5.47cm,4.6cm)}]  {param.conf};
-  \draw [opacity=0.6, rounded corners, dashed] (a3conf1.west) -| (out3a-west) |- (out3a);
+    %% links
+    \node (dout-west) [node-point, at={(1.27cm,1.9cm)}] {};
+    \draw [opacity=0.7, ->, dashed] (xlsx) -- (dout);
+    \node [opacity=0.7] (out3a-west) [node-point, at={(4.07cm,2.7cm)}] {};
+    \draw [opacity=0.7, ->,rounded corners, dashed] (xlsx) |- (out3a);
+    \node [opacity=0.7, dashed] (a3conf1) [node-nonterminal, at={(5.47cm,4.6cm)}]  {param.conf};
+    \draw [opacity=0.7, rounded corners, dashed] (a3conf1.west) -| (out3a-west) |- (out3a);
   \fi
 \end{tikzpicture}
diff --git a/tex/src/figure-tools-per-year.tex b/tex/src/figure-tools-per-year.tex
index e235424..f6dc239 100644
--- a/tex/src/figure-tools-per-year.tex
+++ b/tex/src/figure-tools-per-year.tex
@@ -1,4 +1,19 @@
 \begin{tikzpicture}[scale=0.9]
+  %% Add the right-side Y axis.
+  \begin{axis}[
+      ymode=log,
+      width=\linewidth,
+      height=0.3\linewidth,
+      axis x line=none,
+      axis y line*=right,
+      enlarge x limits = false,
+      ylabel=Num. papers (log-scale),
+      max space between ticks=20,
+    ]
+    \addplot+ [ybar, mark=none, fill=red!50!white, red, opacity=0.25]
+    table [x index=0, y index=2] {tex/build/to-publish/tools-per-year.txt};
+  \end{axis}
+
   \begin{axis}[
       ymin=0,
       ymax=100,
@@ -16,19 +31,4 @@
     \addplot+ [mark=none, very thick, green!60!black]
     table {tex/build/to-publish/tools-per-year.txt};
   \end{axis}
-
-  %% Add the right-side Y axis.
-  \begin{axis}[
-      ymode=log,
-      width=\linewidth,
-      height=0.3\linewidth,
-      axis x line=none,
-      axis y line*=right,
-      enlarge x limits = false,
-      ylabel=Num. papers (log-scale),
-      max space between ticks=20,
-    ]
-    \addplot+ [ybar, mark=none, fill=red!50!white, red, opacity=0.25]
-    table [x index=0, y index=2] {tex/build/to-publish/tools-per-year.txt};
-    \end{axis}
 \end{tikzpicture}
-- 
cgit v1.2.1