Skip to content
Snippets Groups Projects
Commit c2a19bb0 authored by Johannes Mey's avatar Johannes Mey
Browse files

cleanup of trainbenchmark sources

parent fe0ea34c
Branches
No related tags found
No related merge requests found
Showing
with 0 additions and 1181 deletions
# Train Benchmark # Train Benchmark
[![Build Status](https://travis-ci.org/FTSRG/trainbenchmark.svg?branch=master)](https://travis-ci.org/FTSRG/trainbenchmark)
:steam_locomotive: **Summary.** The Train Benchmark is a framework for measuring the performance of continuous model transformations, with a particular emphasis on the performance of incremental query reevaluation. The benchmark is actively developed since 2011. :steam_locomotive: **Summary.** The Train Benchmark is a framework for measuring the performance of continuous model transformations, with a particular emphasis on the performance of incremental query reevaluation. The benchmark is actively developed since 2011.
:computer: **Technologies.** The framework is implemented in Java 8 (for the main components) and [Groovy](http://www.groovy-lang.org/) (for the scripts). The visualization is handled by [R scripts](https://www.r-project.org/). Both the build and the benchmark process in governed by [Gradle](https://gradle.org/). :computer: **Technologies.** The framework is implemented in Java 8 (for the main components) and [Groovy](http://www.groovy-lang.org/) (for the scripts). The visualization is handled by [R scripts](https://www.r-project.org/). Both the build and the benchmark process in governed by [Gradle](https://gradle.org/).
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.buildship.core.launch.runconfiguration">
<listAttribute key="arguments"/>
<stringAttribute key="gradle_distribution" value="GRADLE_DISTRIBUTION(WRAPPER)"/>
<listAttribute key="jvm_arguments"/>
<booleanAttribute key="show_console_view" value="true"/>
<booleanAttribute key="show_execution_view" value="true"/>
<listAttribute key="tasks">
<listEntry value="benchmark"/>
</listAttribute>
<stringAttribute key="working_dir" value="${workspace_loc:/trainbenchmark-scripts}"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.buildship.core.launch.runconfiguration">
<listAttribute key="arguments"/>
<stringAttribute key="gradle_distribution" value="GRADLE_DISTRIBUTION(WRAPPER)"/>
<listAttribute key="jvm_arguments"/>
<booleanAttribute key="show_console_view" value="true"/>
<booleanAttribute key="show_execution_view" value="true"/>
<listAttribute key="tasks">
<listEntry value="generator"/>
</listAttribute>
<stringAttribute key="working_dir" value="${workspace_loc:/trainbenchmark-scripts}"/>
</launchConfiguration>
*.png
*.pdf
visualization.html
body.html
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
## Intermediate documents:
*.dvi
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bcf
*.blg
*-blx.aux
*-blx.bib
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
# amsthm
*.thm
# beamer
*.nav
*.snm
*.vrb
# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
# hyperref
*.brf
# listings
*.lol
# makeidx
*.idx
*.ilg
*.ind
*.ist
# minitoc
*.maf
*.mtc
*.mtc0
# minted
*.pyg
# nomencl
*.nlo
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# todonotes
*.tdo
# xindy
*.xdy
/tmp
*.soc
/out
\documentclass[varwidth=100cm,convert={density=120}]{standalone}
\usepackage[active,tightpage]{preview}
\input{../../../ingraph/visualization/inputs/relalg-packages}
\input{../../../ingraph/visualization/inputs/relalg-commands}
\begin{document}
\begin{preview}
\begin{forest} for tree={align=center}
[
{$\antijoin$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw, sensor} \rangle$
}
[
{$\expandout{sw}{sensor}{Sensor}{\_e2}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw, sensor} \rangle$
}
[
{$\expandout{swP}{sw}{Switch}{\_e1}{target}$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw} \rangle$
}
[
{$\expandout{route}{swP}{SwitchPosition}{\_e3}{follows}$
\\
\footnotesize
$\color{gray} \langle \var{route, swP} \rangle$
}
[
{$\getvertices{route}{Route}$
\\
\footnotesize
$\color{gray} \langle \var{route} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
]
[
{$\expandout{route}{sensor}{Sensor}{\_e4}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route, sensor} \rangle$
}
[
{$\getvertices{route}{Route}$
\\
\footnotesize
$\color{gray} \langle \var{route} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
;
\end{forest}
\end{preview}
\end{document}
\begin{forest} for tree={align=center}
[
{$\antijoin$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw, sensor} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw, sensor} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw} \rangle$
}
[
{$\getedgesi{route}{Route}{swP}{SwitchPosition}$\\$\getedgesii{\_e3}{follows}$
\\
\footnotesize
$\color{gray} \langle \var{route, swP} \rangle$
},tier=input,for tree={blue,densely dashed}
]
[
{$\getedgesi{swP}{SwitchPosition}{sw}{Switch}$\\$\getedgesii{\_e1}{target}$
\\
\footnotesize
$\color{gray} \langle \var{swP, sw} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\getedgesi{sw}{Switch}{sensor}{Sensor}$\\$\getedgesii{\_e2}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{sw, sensor} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\getedgesi{route}{Route}{sensor}{Sensor}$\\$\getedgesii{\_e4}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route, sensor} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
;
\end{forest}
\documentclass[varwidth=100cm,convert={density=120}]{standalone}
\usepackage[active,tightpage]{preview}
\input{../../../ingraph/visualization/inputs/relalg-packages}
\input{../../../ingraph/visualization/inputs/relalg-commands}
\begin{document}
\begin{preview}
\begin{forest} for tree={align=center}
[
{$\antijoin$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw, sensor} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw, sensor} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw} \rangle$
}
[
{$\getedgesi{route}{Route}{swP}{SwitchPosition}$\\$\getedgesii{\_e3}{follows}$
\\
\footnotesize
$\color{gray} \langle \var{route, swP} \rangle$
},tier=input,for tree={blue,densely dashed}
]
[
{$\getedgesi{swP}{SwitchPosition}{sw}{Switch}$\\$\getedgesii{\_e1}{target}$
\\
\footnotesize
$\color{gray} \langle \var{swP, sw} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\getedgesi{sw}{Switch}{sensor}{Sensor}$\\$\getedgesii{\_e2}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{sw, sensor} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\getedgesi{route}{Route}{sensor}{Sensor}$\\$\getedgesii{\_e4}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route, sensor} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
;
\end{forest}
\end{preview}
\end{document}
\getedges{route}{Route}{swP}{SwitchPosition}{\_e3}{follows} \join \getedges{swP}{SwitchPosition}{sw}{Switch}{\_e1}{target} \join \getedges{sw}{Switch}{sensor}{Sensor}{\_e2}{monitoredBy} \antijoin \getedges{route}{Route}{sensor}{Sensor}{\_e4}{requires}
\documentclass[varwidth=100cm,convert={density=120}]{standalone}
\usepackage[active,tightpage]{preview}
\input{../../../ingraph/visualization/inputs/relalg-packages}
\input{../../../ingraph/visualization/inputs/relalg-commands}
\begin{document}
\begin{preview}
\begin{forest} for tree={align=center}
[
{$\antijoin$
\\
\footnotesize
$\color{gray} \langle \var{swP, sw, sensor, route} \rangle$
}
[
{$\expandin{swP}{route}{Route}{\_e3}{follows}$
\\
\footnotesize
$\color{gray} \langle \var{swP, sw, sensor, route} \rangle$
}
[
{$\expandout{sw}{sensor}{Sensor}{\_e2}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{swP, sw, sensor} \rangle$
}
[
{$\expandout{swP}{sw}{Switch}{\_e1}{target}$
\\
\footnotesize
$\color{gray} \langle \var{swP, sw} \rangle$
}
[
{$\getvertices{swP}{SwitchPosition}$
\\
\footnotesize
$\color{gray} \langle \var{swP} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
]
[
{$\expandout{route}{sensor}{Sensor}{\_e4}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route, sensor} \rangle$
}
[
{$\getvertices{route}{Route}$
\\
\footnotesize
$\color{gray} \langle \var{route} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
;
\end{forest}
\end{preview}
\end{document}
\documentclass[varwidth=100cm,convert={density=120}]{standalone}
\usepackage[active,tightpage]{preview}
\input{../../../ingraph/visualization/inputs/relalg-packages}
\input{../../../ingraph/visualization/inputs/relalg-commands}
\begin{document}
\begin{preview}
\begin{forest} for tree={align=center}
[
{$\antijoin$
\\
\footnotesize
$\color{gray} \langle \var{swP, sw, sensor, route} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{swP, sw, sensor, route} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{swP, sw, sensor} \rangle$
}
[
{$\getedgesi{swP}{SwitchPosition}{sw}{Switch}$\\$\getedgesii{\_e1}{target}$
\\
\footnotesize
$\color{gray} \langle \var{swP, sw} \rangle$
},tier=input,for tree={blue,densely dashed}
]
[
{$\getedgesi{sw}{Switch}{sensor}{Sensor}$\\$\getedgesii{\_e2}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{sw, sensor} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\getedgesi{route}{Route}{swP}{SwitchPosition}$\\$\getedgesii{\_e3}{follows}$
\\
\footnotesize
$\color{gray} \langle \var{route, swP} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\getedgesi{route}{Route}{sensor}{Sensor}$\\$\getedgesii{\_e4}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route, sensor} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
;
\end{forest}
\end{preview}
\end{document}
\getedges{swP}{SwitchPosition}{sw}{Switch}{\_e1}{target} \join \getedges{sw}{Switch}{sensor}{Sensor}{\_e2}{monitoredBy} \join \getedges{route}{Route}{swP}{SwitchPosition}{\_e3}{follows} \antijoin \getedges{route}{Route}{sensor}{Sensor}{\_e4}{requires}
\documentclass[varwidth=100cm,convert={density=120}]{standalone}
\usepackage[active,tightpage]{preview}
\input{../../../ingraph/visualization/inputs/relalg-packages}
\input{../../../ingraph/visualization/inputs/relalg-commands}
\begin{document}
\begin{preview}
\begin{forest} for tree={align=center}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw, sensor} \rangle$
}
[
{$\antijoin$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw, sensor} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw, sensor} \rangle$
}
[
{$\expandout{route}{swP}{SwitchPosition}{\_e3}{follows}$
\\
\footnotesize
$\color{gray} \langle \var{route, swP} \rangle$
}
[
{$\getvertices{route}{Route}$
\\
\footnotesize
$\color{gray} \langle \var{route} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\expandout{sw}{sensor}{Sensor}{\_e2}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{sw, sensor} \rangle$
}
[
{$\getvertices{sw}{Switch}$
\\
\footnotesize
$\color{gray} \langle \var{sw} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
[
{$\expandout{route}{sensor}{Sensor}{\_e4}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route, sensor} \rangle$
}
[
{$\getvertices{route}{Route}$
\\
\footnotesize
$\color{gray} \langle \var{route} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
[
{$\expandout{swP}{sw}{Switch}{\_e1}{target}$
\\
\footnotesize
$\color{gray} \langle \var{swP, sw} \rangle$
}
[
{$\getvertices{swP}{SwitchPosition}$
\\
\footnotesize
$\color{gray} \langle \var{swP} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
;
\end{forest}
\end{preview}
\end{document}
\documentclass[varwidth=100cm,convert={density=120}]{standalone}
\usepackage[active,tightpage]{preview}
\input{../../../ingraph/visualization/inputs/relalg-packages}
\input{../../../ingraph/visualization/inputs/relalg-commands}
\begin{document}
\begin{preview}
\begin{forest} for tree={align=center}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw, sensor} \rangle$
}
[
{$\antijoin$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw, sensor} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{route, swP, sw, sensor} \rangle$
}
[
{$\getedgesi{route}{Route}{swP}{SwitchPosition}$\\$\getedgesii{\_e3}{follows}$
\\
\footnotesize
$\color{gray} \langle \var{route, swP} \rangle$
},tier=input,for tree={blue,densely dashed}
]
[
{$\getedgesi{sw}{Switch}{sensor}{Sensor}$\\$\getedgesii{\_e2}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{sw, sensor} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\getedgesi{route}{Route}{sensor}{Sensor}$\\$\getedgesii{\_e4}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route, sensor} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\getedgesi{swP}{SwitchPosition}{sw}{Switch}$\\$\getedgesii{\_e1}{target}$
\\
\footnotesize
$\color{gray} \langle \var{swP, sw} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
;
\end{forest}
\end{preview}
\end{document}
\getedges{route}{Route}{swP}{SwitchPosition}{\_e3}{follows} \join \getedges{sw}{Switch}{sensor}{Sensor}{\_e2}{monitoredBy} \antijoin \getedges{route}{Route}{sensor}{Sensor}{\_e4}{requires} \join \getedges{swP}{SwitchPosition}{sw}{Switch}{\_e1}{target}
\documentclass[varwidth=100cm,convert={density=120}]{standalone}
\usepackage[active,tightpage]{preview}
\input{../../../ingraph/visualization/inputs/relalg-packages}
\input{../../../ingraph/visualization/inputs/relalg-commands}
\begin{document}
\begin{preview}
\begin{forest} for tree={align=center}
[
{$\antijoin$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2, route1, semaphore, route2} \rangle$
}
[
{$\selection{\var{route1} \neq \var{route2}}$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2, route1, semaphore, route2} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2, route1, semaphore, route2} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2, route1, semaphore} \rangle$
}
[
{$\expandout{te2}{sensor2}{Sensor}{mb2}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2} \rangle$
}
[
{$\expandout{te1}{sensor1}{Sensor}{mb1}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1} \rangle$
}
[
{$\expandout{te1}{te2}{TrackElement}{ct}{connectsTo}$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2} \rangle$
}
[
{$\getvertices{te1}{TrackElement}$
\\
\footnotesize
$\color{gray} \langle \var{te1} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
]
[
{$\expandout{route1}{sensor1}{Sensor}{g1}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route1, semaphore, sensor1} \rangle$
}
[
{$\expandout{route1}{semaphore}{Semaphore}{exit}{exit}$
\\
\footnotesize
$\color{gray} \langle \var{route1, semaphore} \rangle$
}
[
{$\getvertices{route1}{Route}$
\\
\footnotesize
$\color{gray} \langle \var{route1} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
]
[
{$\expandout{route2}{sensor2}{Sensor}{g2}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route2, sensor2} \rangle$
}
[
{$\getvertices{route2}{Route}$
\\
\footnotesize
$\color{gray} \langle \var{route2} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
]
[
{$\expandout{route2}{semaphore}{Semaphore}{entry}{entry}$
\\
\footnotesize
$\color{gray} \langle \var{route2, semaphore} \rangle$
}
[
{$\getvertices{route2}{Route}$
\\
\footnotesize
$\color{gray} \langle \var{route2} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
;
\end{forest}
\end{preview}
\end{document}
\begin{forest} for tree={align=center}
[
{$\antijoin$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2, route1, semaphore, route2} \rangle$
}
[
{$\selection{\var{route1} \neq \var{route2}}$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2, route1, semaphore, route2} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2, route1, semaphore, route2} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2, route1, semaphore} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1} \rangle$
}
[
{$\getedgesi{te1}{TrackElement}{te2}{TrackElement}$\\$\getedgesii{ct}{connectsTo}$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2} \rangle$
},tier=input,for tree={blue,densely dashed}
]
[
{$\getedgesi{te1}{TrackElement}{sensor1}{Sensor}$\\$\getedgesii{mb1}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{te1, sensor1} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\getedgesi{te2}{TrackElement}{sensor2}{Sensor}$\\$\getedgesii{mb2}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{te2, sensor2} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{route1, semaphore, sensor1} \rangle$
}
[
{$\getedgesi{route1}{Route}{semaphore}{Semaphore}$\\$\getedgesii{exit}{exit}$
\\
\footnotesize
$\color{gray} \langle \var{route1, semaphore} \rangle$
},tier=input,for tree={blue,densely dashed}
]
[
{$\getedgesi{route1}{Route}{sensor1}{Sensor}$\\$\getedgesii{g1}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route1, sensor1} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
[
{$\getedgesi{route2}{Route}{sensor2}{Sensor}$\\$\getedgesii{g2}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route2, sensor2} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
[
{$\getedgesi{route2}{Route}{semaphore}{Semaphore}$\\$\getedgesii{entry}{entry}$
\\
\footnotesize
$\color{gray} \langle \var{route2, semaphore} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
;
\end{forest}
\documentclass[varwidth=100cm,convert={density=120}]{standalone}
\usepackage[active,tightpage]{preview}
\input{../../../ingraph/visualization/inputs/relalg-packages}
\input{../../../ingraph/visualization/inputs/relalg-commands}
\begin{document}
\begin{preview}
\begin{forest} for tree={align=center}
[
{$\antijoin$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2, route1, semaphore, route2} \rangle$
}
[
{$\selection{\var{route1} \neq \var{route2}}$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2, route1, semaphore, route2} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2, route1, semaphore, route2} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2, route1, semaphore} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, sensor2} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1} \rangle$
}
[
{$\getedgesi{te1}{TrackElement}{te2}{TrackElement}$\\$\getedgesii{ct}{connectsTo}$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2} \rangle$
},tier=input,for tree={blue,densely dashed}
]
[
{$\getedgesi{te1}{TrackElement}{sensor1}{Sensor}$\\$\getedgesii{mb1}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{te1, sensor1} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\getedgesi{te2}{TrackElement}{sensor2}{Sensor}$\\$\getedgesii{mb2}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{te2, sensor2} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{route1, semaphore, sensor1} \rangle$
}
[
{$\getedgesi{route1}{Route}{semaphore}{Semaphore}$\\$\getedgesii{exit}{exit}$
\\
\footnotesize
$\color{gray} \langle \var{route1, semaphore} \rangle$
},tier=input,for tree={blue,densely dashed}
]
[
{$\getedgesi{route1}{Route}{sensor1}{Sensor}$\\$\getedgesii{g1}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route1, sensor1} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
[
{$\getedgesi{route2}{Route}{sensor2}{Sensor}$\\$\getedgesii{g2}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route2, sensor2} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
[
{$\getedgesi{route2}{Route}{semaphore}{Semaphore}$\\$\getedgesii{entry}{entry}$
\\
\footnotesize
$\color{gray} \langle \var{route2, semaphore} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
;
\end{forest}
\end{preview}
\end{document}
\selection{\var{route1} \neq \var{route2}} \Big(\getedges{te1}{TrackElement}{te2}{TrackElement}{ct}{connectsTo} \join \getedges{te1}{TrackElement}{sensor1}{Sensor}{mb1}{monitoredBy} \join \getedges{te2}{TrackElement}{sensor2}{Sensor}{mb2}{monitoredBy} \join \getedges{route1}{Route}{semaphore}{Semaphore}{exit}{exit} \join \getedges{route1}{Route}{sensor1}{Sensor}{g1}{requires} \join \getedges{route2}{Route}{sensor2}{Sensor}{g2}{requires}\Big) \antijoin \getedges{route2}{Route}{semaphore}{Semaphore}{entry}{entry}
\documentclass[varwidth=100cm,convert={density=120}]{standalone}
\usepackage[active,tightpage]{preview}
\input{../../../ingraph/visualization/inputs/relalg-packages}
\input{../../../ingraph/visualization/inputs/relalg-commands}
\begin{document}
\begin{preview}
\begin{forest} for tree={align=center}
[
{$\antijoin$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, route1, sensor2, route2, semaphore} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, route1, sensor2, route2, semaphore} \rangle$
}
[
{$\selection{\var{route1} \neq \var{route2}}$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, route1, sensor2, route2} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, route1, sensor2, route2} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, route1} \rangle$
}
[
{$\expandout{te1}{te2}{TrackElement}{ct}{connectsTo}$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2} \rangle$
}
[
{$\getvertices{te1}{TrackElement}$
\\
\footnotesize
$\color{gray} \langle \var{te1} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, sensor1, route1} \rangle$
}
[
{$\expandout{te1}{sensor1}{Sensor}{mb1}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{te1, sensor1} \rangle$
}
[
{$\getvertices{te1}{TrackElement}$
\\
\footnotesize
$\color{gray} \langle \var{te1} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\expandout{route1}{sensor1}{Sensor}{g1}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route1, sensor1} \rangle$
}
[
{$\getvertices{route1}{Route}$
\\
\footnotesize
$\color{gray} \langle \var{route1} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
]
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te2, sensor2, route2} \rangle$
}
[
{$\expandout{te2}{sensor2}{Sensor}{mb2}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{te2, sensor2} \rangle$
}
[
{$\getvertices{te2}{TrackElement}$
\\
\footnotesize
$\color{gray} \langle \var{te2} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\expandout{route2}{sensor2}{Sensor}{g2}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route2, sensor2} \rangle$
}
[
{$\getvertices{route2}{Route}$
\\
\footnotesize
$\color{gray} \langle \var{route2} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
]
]
[
{$\expandout{route1}{semaphore}{Semaphore}{exit}{exit}$
\\
\footnotesize
$\color{gray} \langle \var{route1, semaphore} \rangle$
}
[
{$\getvertices{route1}{Route}$
\\
\footnotesize
$\color{gray} \langle \var{route1} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
[
{$\expandout{route2}{semaphore}{Semaphore}{entry}{entry}$
\\
\footnotesize
$\color{gray} \langle \var{route2, semaphore} \rangle$
}
[
{$\getvertices{route2}{Route}$
\\
\footnotesize
$\color{gray} \langle \var{route2} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
;
\end{forest}
\end{preview}
\end{document}
\documentclass[varwidth=100cm,convert={density=120}]{standalone}
\usepackage[active,tightpage]{preview}
\input{../../../ingraph/visualization/inputs/relalg-packages}
\input{../../../ingraph/visualization/inputs/relalg-commands}
\begin{document}
\begin{preview}
\begin{forest} for tree={align=center}
[
{$\antijoin$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, route1, sensor2, route2, semaphore} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, route1, sensor2, route2, semaphore} \rangle$
}
[
{$\selection{\var{route1} \neq \var{route2}}$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, route1, sensor2, route2} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, route1, sensor2, route2} \rangle$
}
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2, sensor1, route1} \rangle$
}
[
{$\getedgesi{te1}{TrackElement}{te2}{TrackElement}$\\$\getedgesii{ct}{connectsTo}$
\\
\footnotesize
$\color{gray} \langle \var{te1, te2} \rangle$
},tier=input,for tree={blue,densely dashed}
]
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te1, sensor1, route1} \rangle$
}
[
{$\getedgesi{te1}{TrackElement}{sensor1}{Sensor}$\\$\getedgesii{mb1}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{te1, sensor1} \rangle$
},tier=input,for tree={blue,densely dashed}
]
[
{$\getedgesi{route1}{Route}{sensor1}{Sensor}$\\$\getedgesii{g1}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route1, sensor1} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
[
{$\join$
\\
\footnotesize
$\color{gray} \langle \var{te2, sensor2, route2} \rangle$
}
[
{$\getedgesi{te2}{TrackElement}{sensor2}{Sensor}$\\$\getedgesii{mb2}{monitoredBy}$
\\
\footnotesize
$\color{gray} \langle \var{te2, sensor2} \rangle$
},tier=input,for tree={blue,densely dashed}
]
[
{$\getedgesi{route2}{Route}{sensor2}{Sensor}$\\$\getedgesii{g2}{requires}$
\\
\footnotesize
$\color{gray} \langle \var{route2, sensor2} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
]
]
[
{$\getedgesi{route1}{Route}{semaphore}{Semaphore}$\\$\getedgesii{exit}{exit}$
\\
\footnotesize
$\color{gray} \langle \var{route1, semaphore} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
[
{$\getedgesi{route2}{Route}{semaphore}{Semaphore}$\\$\getedgesii{entry}{entry}$
\\
\footnotesize
$\color{gray} \langle \var{route2, semaphore} \rangle$
},tier=input,for tree={blue,densely dashed}
]
]
;
\end{forest}
\end{preview}
\end{document}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment