diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 0000000..d0c3cbf
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line, and also
+# from the environment for the first two.
+SPHINXOPTS ?=
+SPHINXBUILD ?= sphinx-build
+SOURCEDIR = source
+BUILDDIR = build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/docs/make.bat b/docs/make.bat
new file mode 100644
index 0000000..747ffb7
--- /dev/null
+++ b/docs/make.bat
@@ -0,0 +1,35 @@
+@ECHO OFF
+
+pushd %~dp0
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+ set SPHINXBUILD=sphinx-build
+)
+set SOURCEDIR=source
+set BUILDDIR=build
+
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
+ echo.
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+ echo.installed, then set the SPHINXBUILD environment variable to point
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
+ echo.may add the Sphinx directory to PATH.
+ echo.
+ echo.If you don't have Sphinx installed, grab it from
+ echo.https://www.sphinx-doc.org/
+ exit /b 1
+)
+
+if "%1" == "" goto help
+
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+goto end
+
+:help
+%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+
+:end
+popd
diff --git a/docs/poster/.latexmkrc b/docs/poster/.latexmkrc
new file mode 100644
index 0000000..4d832f7
--- /dev/null
+++ b/docs/poster/.latexmkrc
@@ -0,0 +1,2 @@
+$bibtex_use = 2;
+$clean_ext = "nav snm";
diff --git a/docs/poster/Implementing_FAIR_Data_Exchange_in_ACTRIS_Switzerland___An_Expert_Driven_Approach.pdf b/docs/poster/Implementing_FAIR_Data_Exchange_in_ACTRIS_Switzerland___An_Expert_Driven_Approach.pdf
new file mode 100644
index 0000000..a44b44f
Binary files /dev/null and b/docs/poster/Implementing_FAIR_Data_Exchange_in_ACTRIS_Switzerland___An_Expert_Driven_Approach.pdf differ
diff --git a/docs/poster/LICENSE.md b/docs/poster/LICENSE.md
new file mode 100644
index 0000000..d4582d2
--- /dev/null
+++ b/docs/poster/LICENSE.md
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+=====================
+
+**Copyright (c) 2018-2022 Anish Athalye (me@anishathalye.com)**
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/docs/poster/README.md b/docs/poster/README.md
new file mode 100644
index 0000000..2c9ceb7
--- /dev/null
+++ b/docs/poster/README.md
@@ -0,0 +1,92 @@
+# Gemini [](https://github.com/anishathalye/gemini/actions?query=workflow%3ACI)
+
+Gemini is a modern LaTeX [beamerposter] theme.
+
+
+
+
+
+
+
+If you're looking for a beamer presentation theme, take a look at [Auriga].
+
+## Dependencies
+
+* A TeX installation that includes [LuaTeX]
+ * You also need `latexmk` if you want to use the provided `Makefile`
+* LaTeX package dependencies including beamerposter (these usually come with
+ your TeX installation, but if not, you can get them from [CTAN])
+* [Raleway] and [Lato], which are both available under Open Font License
+
+## Usage
+
+1. Copy the files in this repository (or clone the repository)
+
+1. In `poster.tex`, set up your paper size, column layout, and scale the
+ content as necessary
+
+1. Make a copy of `beamercolorthemegemini.sty`, update the `\usecolortheme`
+ line in `poster.tex`, and theme the poster to your liking (optional, but
+ highly recommended)
+
+1. Run `make` to build your poster
+
+## FAQ
+
+See the [FAQ] in the Wiki for answers to frequently asked questions such as how
+to add an institution logo to the poster.
+
+## Themes
+
+Gemini currently includes three color themes:
+
+* `gemini` (default)
+* `mit`
+* `labsix`
+
+The alternative themes are intended to be inspiration for you to make your own
+color theme. You're highly recommended to make your own color theme (it's
+really easy!) or use the default Gemini theme.
+
+### MIT theme
+
+
+
+
+
+
+
+### LabSix theme
+
+
+
+
+
+
+
+## Design goals
+
+* **Minimal**: clean and easy to read, so that the emphasis is on the content
+* **Batteries included**: works and looks good out of the box
+* **Easy theming**: easy to create and use a new color theme
+
+## Contributing
+
+Contributions to Gemini such as bug reports, new themes, and new poster
+components are greatly appreciated! Given the subjective nature of design,
+you're encouraged to open an issue or pull request early to get feedback before
+investing a lot of time in implementing a new feature.
+
+## License
+
+Copyright (c) 2018-2022 Anish Athalye. Released under the MIT License. See
+[LICENSE.md][license] for details.
+
+[beamerposter]: https://github.com/deselaers/latex-beamerposter
+[Auriga]: https://github.com/anishathalye/auriga
+[LuaTeX]: http://www.luatex.org/
+[CTAN]: https://ctan.org/
+[Raleway]: https://www.fontsquirrel.com/fonts/raleway
+[Lato]: https://www.fontsquirrel.com/fonts/lato
+[license]: LICENSE.md
+[FAQ]: https://github.com/anishathalye/gemini/wiki/FAQ
diff --git a/docs/poster/beamercolorthemegemini.sty b/docs/poster/beamercolorthemegemini.sty
new file mode 100644
index 0000000..d196945
--- /dev/null
+++ b/docs/poster/beamercolorthemegemini.sty
@@ -0,0 +1,58 @@
+% Gemini theme
+% https://github.com/anishathalye/gemini
+
+% ====================
+% Definitions
+% ====================
+
+\definecolor{lightgray}{RGB}{245, 246, 250}
+\definecolor{blue}{RGB}{64, 115, 158}
+\definecolor{darkblue}{RGB}{39, 60, 117}
+\definecolor{lightblue}{RGB}{232, 244, 255}
+
+% ====================
+% Theme
+% ====================
+
+% Basic colors
+\setbeamercolor{palette primary}{fg=black,bg=white}
+\setbeamercolor{palette secondary}{fg=black,bg=white}
+\setbeamercolor{palette tertiary}{bg=black,fg=white}
+\setbeamercolor{palette quaternary}{fg=black,bg=white}
+\setbeamercolor{structure}{fg=darkblue}
+
+% Headline
+\setbeamercolor{headline}{fg=lightgray,bg=blue}
+\setbeamercolor{headline rule}{bg=darkblue}
+
+% Block
+\setbeamercolor{block title}{fg=blue,bg=white}
+\setbeamercolor{block separator}{bg=black}
+\setbeamercolor{block body}{fg=black,bg=white}
+
+% Alert Block
+\setbeamercolor{block alerted title}{fg=blue,bg=lightblue}
+\setbeamercolor{block alerted separator}{bg=black}
+\setbeamercolor{block alerted body}{fg=black,bg=lightblue}
+
+% Example Block
+\setbeamercolor{block example title}{fg=blue,bg=lightgray}
+\setbeamercolor{block example separator}{bg=black}
+\setbeamercolor{block example body}{fg=black,bg=lightgray}
+
+% Heading
+\setbeamercolor{heading}{fg=black}
+
+% Itemize
+\setbeamercolor{item}{fg=darkblue}
+
+% Bibliography
+\setbeamercolor{bibliography item}{fg=black}
+\setbeamercolor{bibliography entry author}{fg=black}
+\setbeamercolor{bibliography entry title}{fg=black}
+\setbeamercolor{bibliography entry location}{fg=black}
+\setbeamercolor{bibliography entry note}{fg=black}
+\setbeamertemplate{bibliography entry article}{}
+\setbeamertemplate{bibliography entry title}{}
+\setbeamertemplate{bibliography entry location}{}
+\setbeamertemplate{bibliography entry note}{}
diff --git a/docs/poster/beamercolorthememsu.sty b/docs/poster/beamercolorthememsu.sty
new file mode 100644
index 0000000..ed5dd8e
--- /dev/null
+++ b/docs/poster/beamercolorthememsu.sty
@@ -0,0 +1,65 @@
+% Gemini theme
+% https://github.com/anishathalye/gemini
+
+% UTA colors added
+% primiary HEX: #0064B1
+
+% ====================
+% Definitions
+% ====================
+
+%\definecolor{camblue}{RGB}{0, 62, 114}
+% \definecolor{lightnyupurple}{RGB}{159, 120, 184}
+% \definecolor{msugreen}{HTML}{18453B}
+% \definecolor{umichblue}{HTML}{00274C}
+% \definecolor{yaleblue}{HTML}{00356B}
+% \definecolor{ualbertagreen}{HTML}{1F4D2A}
+% \definecolor{ualbertagold}{HTML}{EDC40A}
+% \definecolor{utaBluePrimary}{HTML}{003C77}
+% \definecolor{ulethgold}{HTML}{FFCF01}
+\definecolor{utaBluePrimary}{HTML}{0064B1}
+% Extra colors
+\definecolor{lightgray}{RGB}{240, 240, 240}
+\definecolor{lightorange}{RGB}{255, 245, 242}
+
+% ====================
+% Theme
+% ====================
+
+% Basic colors
+\setbeamercolor{palette primary}{fg=black,bg=white}
+\setbeamercolor{palette secondary}{fg=black,bg=white}
+\setbeamercolor{palette tertiary}{bg=black,fg=white}
+\setbeamercolor{palette quaternary}{fg=black,bg=white}
+\setbeamercolor{structure}{fg=utaBluePrimary}
+
+% Headline
+\setbeamercolor{headline}{fg=white,bg=utaBluePrimary}
+
+% Block
+\setbeamercolor{block title}{fg=utaBluePrimary,bg=white}
+\setbeamercolor{block separator}{bg=black}
+\setbeamercolor{block body}{fg=black,bg=white}
+
+% Alert Block
+\setbeamercolor{block alerted title}{fg=utaBluePrimary,bg=lightorange}
+\setbeamercolor{block alerted separator}{bg=black}
+\setbeamercolor{block alerted body}{fg=black,bg=lightorange}
+
+% Example Block
+\setbeamercolor{block example title}{fg=utaBluePrimary,bg=lightgray}
+\setbeamercolor{block example separator}{bg=black}
+\setbeamercolor{block example body}{fg=black,bg=lightgray}
+
+% Heading
+\setbeamercolor{heading}{fg=black}
+
+% Itemize
+\setbeamercolor{item}{fg=utaBluePrimary}
+
+% Bibliography
+\setbeamercolor{bibliography item}{fg=black}
+\setbeamercolor{bibliography entry author}{fg=black}
+\setbeamercolor{bibliography entry title}{fg=black}
+\setbeamercolor{bibliography entry location}{fg=black}
+\setbeamercolor{bibliography entry note}{fg=black}
diff --git a/docs/poster/beamerthemegemini.sty b/docs/poster/beamerthemegemini.sty
new file mode 100644
index 0000000..a8d1952
--- /dev/null
+++ b/docs/poster/beamerthemegemini.sty
@@ -0,0 +1,257 @@
+% Gemini theme
+% https://github.com/anishathalye/gemini
+
+% ====================
+% Dependencies
+% ====================
+
+\RequirePackage{exscale}
+\RequirePackage{ragged2e}
+\RequirePackage{changepage}
+\RequirePackage{fontspec}
+\RequirePackage{calc}
+
+% ====================
+% Fonts
+% ====================
+
+\newfontfamily\Raleway[Ligatures=TeX]{Raleway}
+\newfontfamily\Lato[Ligatures=TeX]{Lato}
+
+\usefonttheme{professionalfonts}
+
+\setsansfont{Lato}[
+ UprightFont=*-Light,
+ ItalicFont=*-LightItalic,
+ BoldFont=*-Regular,
+ BoldItalicFont=*-Italic
+]
+
+\setbeamerfont{headline}{family=\Raleway}
+\setbeamerfont{headline title}{size=\Huge,series=\bfseries}
+\setbeamerfont{headline author}{size=\Large}
+\setbeamerfont{headline institute}{size=\normalsize}
+\setbeamerfont{block title}{family=\Raleway,size=\large,series=\bfseries}
+\setbeamerfont{heading}{family=\Lato,series=\bfseries}
+\setbeamerfont{caption}{size=\small}
+\setbeamerfont{footline}{family=\Raleway,size=\normalsize}
+
+% ====================
+% Macros
+% ====================
+
+\newcommand{\samelineand}{\qquad}
+
+% ====================
+% Elements
+% ====================
+
+% List
+\def\@listi{\leftmargin\leftmarginii
+\topsep 1ex % spacing before
+\parsep 0\p@ \@plus\p@
+\itemsep 0.5ex} % spacing between
+
+% Itemize
+
+\setbeamertemplate{itemize item}{\raise0.5ex \hbox{\vrule width 0.5ex height 0.5ex}}
+\setbeamertemplate{itemize subitem}{\raise0.3ex \hbox{\vrule width 0.5ex height 0.5ex}}
+\setbeamertemplate{itemize subsubitem}{\raise0.2ex \hbox{\vrule width 0.5ex height 0.5ex}}
+
+% Enumerate
+
+\setbeamertemplate{enumerate item}{\insertenumlabel.}
+\setbeamertemplate{enumerate subitem}{\insertsubenumlabel.}
+\setbeamertemplate{enumerate subsubitem}{\insertsubsubenumlabel.}
+
+% Equation
+\setlength\belowdisplayshortskip{2ex}
+
+% Caption
+\setbeamertemplate{caption}[numbered]
+\setbeamertemplate{caption label separator}[period]
+\setlength{\abovecaptionskip}{2ex}
+\setlength{\belowcaptionskip}{1ex}
+
+% Bibliography
+\setbeamertemplate{bibliography item}[text]
+
+% Navigation
+\beamertemplatenavigationsymbolsempty
+
+% ====================
+% Components
+% ====================
+
+% Heading
+\newcommand\heading[1]
+{%
+ \par\bigskip
+ {\usebeamerfont{heading}\usebeamercolor[fg]{heading}#1}\par\smallskip
+}
+
+% logo
+\newlength{\logoleftwidth}
+\setlength{\logoleftwidth}{0cm}
+\newlength{\logorightwidth}
+\setlength{\logorightwidth}{0cm}
+\newlength{\maxlogowidth} % space on both sides set to maxlogowidth to keep title centered
+\setlength{\maxlogowidth}{0cm}
+
+\newcommand{\logoright}[1]{
+ \newcommand{\insertlogoright}{#1}
+ \settowidth{\logorightwidth}{\insertlogoright}
+ \addtolength{\logorightwidth}{10ex}
+ \setlength{\maxlogowidth}{\maxof{\logoleftwidth}{\logorightwidth}}
+}
+\newcommand{\logoleft}[1]{
+ \newcommand{\insertlogoleft}{#1}
+ \settowidth{\logoleftwidth}{\insertlogoleft}
+ \addtolength{\logoleftwidth}{10ex}
+ \setlength{\maxlogowidth}{\maxof{\logoleftwidth}{\logorightwidth}}
+}
+
+% Headline
+\setbeamertemplate{headline}
+{
+ \begin{beamercolorbox}{headline}
+ \begin{columns}
+ \begin{column}{\maxlogowidth}
+ \vskip5ex
+ \ifdefined\insertlogoleft
+ \vspace*{\fill}
+ \hspace{10ex}
+ \raggedright
+ \insertlogoleft
+ \vspace*{\fill}
+ \else\fi
+ \end{column}
+ \begin{column}{\dimexpr\paperwidth-\maxlogowidth-\maxlogowidth}
+ \usebeamerfont{headline}
+ \vskip3ex
+ \centering
+ \ifx \inserttitle \empty \else
+ {\usebeamerfont{headline title}\usebeamercolor[fg]{headline title}\inserttitle\\[0.5ex]}
+ \fi
+ \ifx \beamer@shortauthor \empty \else
+ {\usebeamerfont{headline author}\usebeamercolor[fg]{headline author}\insertauthor\\[1ex]}
+ \fi
+ \ifx \insertinstitute \empty \else
+ {\usebeamerfont{headline institute}\usebeamercolor[fg]{headline institute}\insertinstitute\\[1ex]}
+ \fi
+ \end{column}
+ \begin{column}{\maxlogowidth}
+ \vskip5ex
+ \ifdefined\insertlogoright
+ \vspace*{\fill}
+ \raggedleft
+ \insertlogoright
+ \hspace{10ex}
+ \vspace*{\fill}
+ \else\fi
+ \end{column}
+ \end{columns}
+ \vspace{5ex}
+ \ifbeamercolorempty[bg]{headline rule}{}{
+ \begin{beamercolorbox}[wd=\paperwidth,colsep=0.5ex]{headline rule}\end{beamercolorbox}
+ }
+ \end{beamercolorbox}
+}
+
+% Block
+\setbeamertemplate{block begin}
+{
+ \begin{beamercolorbox}[colsep*=0ex,dp=2ex,center]{block title}
+ \vskip0pt
+ \usebeamerfont{block title}\insertblocktitle
+ \vskip-1.25ex
+ \begin{beamercolorbox}[colsep=0.025ex]{block separator}\end{beamercolorbox}
+ \end{beamercolorbox}
+ {\parskip0pt\par}
+ \usebeamerfont{block body}
+ \vskip-0.5ex
+ \begin{beamercolorbox}[colsep*=0ex]{block body}
+ \justifying
+ \setlength{\parskip}{1ex}
+ \vskip-2ex
+}
+\setbeamertemplate{block end}
+{
+ \end{beamercolorbox}
+ \vskip0pt
+ \vspace*{2ex}
+}
+
+% Alert Block
+\setbeamertemplate{block alerted begin}
+{
+ \begin{beamercolorbox}[colsep*=0ex,dp=2ex,center]{block alerted title}
+ \vskip0pt
+ \usebeamerfont{block title}\insertblocktitle
+ \vskip-1.25ex
+ \begin{beamercolorbox}[colsep=0.025ex]{block alerted separator}\end{beamercolorbox}
+ \end{beamercolorbox}
+ {\parskip0pt\par}
+ \usebeamerfont{block body}
+ \vskip-0.5ex
+ \begin{beamercolorbox}[colsep*=0ex]{block alerted body}
+ \justifying
+ \begin{adjustwidth}{1ex}{1ex}
+ \setlength{\parskip}{1ex}
+ \vskip-2ex
+}
+\setbeamertemplate{block alerted end}
+{
+ \end{adjustwidth}
+ \vskip1ex
+ \end{beamercolorbox}
+ \vskip0pt
+ \vspace*{2ex}
+}
+
+% Example Block
+\setbeamertemplate{block example begin}
+{
+ \begin{beamercolorbox}[colsep*=0ex,dp=2ex,center]{block example title}
+ \vskip0pt
+ \usebeamerfont{block title}\insertblocktitle
+ \vskip-1.25ex
+ \begin{beamercolorbox}[colsep=0.025ex]{block example separator}\end{beamercolorbox}
+ \end{beamercolorbox}
+ {\parskip0pt\par}
+ \usebeamerfont{block body}
+ \vskip-0.5ex
+ \begin{beamercolorbox}[colsep*=0ex]{block example body}
+ \justifying
+ \begin{adjustwidth}{1ex}{1ex}
+ \setlength{\parskip}{1ex}
+ \vskip-2ex
+}
+\setbeamertemplate{block example end}
+{
+ \end{adjustwidth}
+ \vskip1ex
+ \end{beamercolorbox}
+ \vskip0pt
+ \vspace*{2ex}
+}
+
+% Footer
+\newcommand{\footercontent}[1]{\newcommand{\insertfootercontent}{#1}}
+
+\setbeamertemplate{footline}{
+ \ifdefined\insertfootercontent
+ \begin{beamercolorbox}[vmode]{headline}
+ \ifbeamercolorempty[bg]{headline rule}{}{
+ \begin{beamercolorbox}[wd=\paperwidth,colsep=0.25ex]{headline rule}\end{beamercolorbox}
+ }
+ \vspace{1.5ex}
+ \hspace{\sepwidth}
+ \usebeamerfont{footline}
+ \centering
+ \insertfootercontent
+ \hspace{\sepwidth}
+ \vspace{1.5ex}
+ \end{beamercolorbox}
+ \else\fi
+}
diff --git a/docs/poster/figures/data_integration_step.pdf b/docs/poster/figures/data_integration_step.pdf
new file mode 100644
index 0000000..e43d89c
Binary files /dev/null and b/docs/poster/figures/data_integration_step.pdf differ
diff --git a/docs/poster/figures/extended_data_flow_dag.pdf b/docs/poster/figures/extended_data_flow_dag.pdf
new file mode 100644
index 0000000..2052161
Binary files /dev/null and b/docs/poster/figures/extended_data_flow_dag.pdf differ
diff --git a/docs/poster/figures/extended_data_flow_dag_with_actris.pdf b/docs/poster/figures/extended_data_flow_dag_with_actris.pdf
new file mode 100644
index 0000000..ce5ff3f
Binary files /dev/null and b/docs/poster/figures/extended_data_flow_dag_with_actris.pdf differ
diff --git a/docs/poster/figures/hdf5_before_after.pdf b/docs/poster/figures/hdf5_before_after.pdf
new file mode 100644
index 0000000..53e78c3
Binary files /dev/null and b/docs/poster/figures/hdf5_before_after.pdf differ
diff --git a/docs/poster/figures/hdf5_before_after.svg b/docs/poster/figures/hdf5_before_after.svg
new file mode 100644
index 0000000..15796be
--- /dev/null
+++ b/docs/poster/figures/hdf5_before_after.svg
@@ -0,0 +1,2054 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+ Before FAIR data exchange
+ After FAIR data exchange
+
+
+ Visualizations of the same HDF5 File
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/poster/figures/layered_stack.pdf b/docs/poster/figures/layered_stack.pdf
new file mode 100644
index 0000000..144ee4b
Binary files /dev/null and b/docs/poster/figures/layered_stack.pdf differ
diff --git a/docs/poster/figures/quality_control_workflow.pdf b/docs/poster/figures/quality_control_workflow.pdf
new file mode 100644
index 0000000..be02599
Binary files /dev/null and b/docs/poster/figures/quality_control_workflow.pdf differ
diff --git a/docs/poster/figures/styled_typical_exchange.pdf b/docs/poster/figures/styled_typical_exchange.pdf
new file mode 100644
index 0000000..7b69796
Binary files /dev/null and b/docs/poster/figures/styled_typical_exchange.pdf differ
diff --git a/docs/poster/figures/workflow_acsm_data_JFJ_2024.pdf b/docs/poster/figures/workflow_acsm_data_JFJ_2024.pdf
new file mode 100644
index 0000000..033c91f
Binary files /dev/null and b/docs/poster/figures/workflow_acsm_data_JFJ_2024.pdf differ
diff --git a/docs/poster/figures/workflow_acsm_data_JFJ_2024.svg b/docs/poster/figures/workflow_acsm_data_JFJ_2024.svg
new file mode 100644
index 0000000..4763f6d
--- /dev/null
+++ b/docs/poster/figures/workflow_acsm_data_JFJ_2024.svg
@@ -0,0 +1,459 @@
+
+
+
+
+
+
+
+
+
+apply_calibration_factors
+
+apply_calibration_factors
+
+
+
+data/.../2024/ACSM_JFJ_2024_timeseries_calibrated.csv
+
+
+data/.../2024/
+ACSM_JFJ_2024_timeseries_calibrated.csv
+
+
+
+
+
+apply_calibration_factors->data/.../2024/ACSM_JFJ_2024_timeseries_calibrated.csv
+
+
+
+
+
+data/.../2024/ACSM_JFJ_2024_timeseries_calibrated_err.csv
+
+
+data/.../2024/
+ACSM_JFJ_2024_timeseries_calibrated_err.csv
+
+
+
+
+
+apply_calibration_factors->data/.../2024/ACSM_JFJ_2024_timeseries_calibrated_err.csv
+
+
+
+
+
+data/.../2024/ACSM_JFJ_2024_timeseries_calibration_factors.csv
+
+
+data/.../2024/
+ACSM_JFJ_2024_timeseries_calibration_factors.csv
+
+
+
+
+
+apply_calibration_factors->data/.../2024/ACSM_JFJ_2024_timeseries_calibration_factors.csv
+
+
+
+
+
+pipelines/steps/apply_calibration_factors.py
+
+
+pipelines/steps/
+apply_calibration_factors.py
+
+
+
+
+
+pipelines/steps/apply_calibration_factors.py->apply_calibration_factors
+
+
+
+
+
+data/collection_JFJ_2024_2025-06-10_2025-06-10.h5
+
+
+data/
+collection_JFJ_2024_2025-06-10_2025-06-10.h5
+
+
+
+
+
+data/collection_JFJ_2024_2025-06-10_2025-06-10.h5->apply_calibration_factors
+
+
+
+
+
+generate_flags_diagnostics
+
+generate_flags_diagnostics
+
+
+
+data/collection_JFJ_2024_2025-06-10_2025-06-10.h5->generate_flags_diagnostics
+
+
+
+
+
+generate_flags_cpc
+
+generate_flags_cpc
+
+
+
+data/collection_JFJ_2024_2025-06-10_2025-06-10.h5->generate_flags_cpc
+
+
+
+
+
+generate_flags_species
+
+generate_flags_species
+
+
+
+data/collection_JFJ_2024_2025-06-10_2025-06-10.h5->generate_flags_species
+
+
+
+
+
+pipelines/params/calibration_factors.yaml
+
+
+pipelines/params/
+calibration_factors.yaml
+
+
+
+
+
+pipelines/params/calibration_factors.yaml->apply_calibration_factors
+
+
+
+
+
+campaignDescriptor.yaml
+
+
+campaignDescriptor.yaml
+
+
+
+
+
+campaignDescriptor.yaml->apply_calibration_factors
+
+
+
+
+
+prepare_ebas_submission
+
+prepare_ebas_submission
+
+
+
+data/.../2024/ACSM_JFJ_2024_timeseries_calibrated.csv->prepare_ebas_submission
+
+
+
+
+
+data/.../2024/ACSM_JFJ_2024_timeseries_calibrated_err.csv->prepare_ebas_submission
+
+
+
+
+
+data/.../2024/ACSM_JFJ_2024_timeseries_calibration_factors.csv->prepare_ebas_submission
+
+
+
+
+
+data/.../2024/ACSM_JFJ_2024_meta_flags.csv
+
+
+data/.../2024/
+ACSM_JFJ_2024_meta_flags.csv
+
+
+
+
+
+generate_flags_diagnostics->data/.../2024/ACSM_JFJ_2024_meta_flags.csv
+
+
+
+
+
+pipelines/steps/generate_flags.py
+
+
+pipelines/steps/
+generate_flags.py
+
+
+
+
+
+pipelines/steps/generate_flags.py->generate_flags_diagnostics
+
+
+
+
+
+pipelines/steps/generate_flags.py->generate_flags_cpc
+
+
+
+
+
+pipelines/steps/generate_flags.py->generate_flags_species
+
+
+
+
+
+pipelines/params/validity_thresholds.yaml
+
+
+pipelines/params/
+validity_thresholds.yaml
+
+
+
+
+
+pipelines/params/validity_thresholds.yaml->generate_flags_diagnostics
+
+
+
+
+
+data/.../2024/ACSM_JFJ_2024_meta_flags.csv->generate_flags_species
+
+
+
+
+
+data/.../2024/CPC.lev1_flags.csv
+
+
+data/.../2024/
+CPC.lev1_flags.csv
+
+
+
+
+
+generate_flags_cpc->data/.../2024/CPC.lev1_flags.csv
+
+
+
+
+
+data/.../2024/CPC.lev1_flags.csv->generate_flags_species
+
+
+
+
+
+data/.../2024/ACSM_JFJ_2024_timeseries_flags.csv
+
+
+data/.../2024/
+ACSM_JFJ_2024_timeseries_flags.csv
+
+
+
+
+
+generate_flags_species->data/.../2024/ACSM_JFJ_2024_timeseries_flags.csv
+
+
+
+
+
+pipelines/params/calibration_params.yaml
+
+
+pipelines/params/
+calibration_params.yaml
+
+
+
+
+
+pipelines/params/calibration_params.yaml->generate_flags_species
+
+
+
+
+
+data/.../2024/flag_10_Org_11000.json
+
+
+data/.../2024/
+flag_10_Org_11000.json
+
+
+
+
+
+data/.../2024/flag_10_Org_11000.json->generate_flags_species
+
+
+
+
+
+data/.../2024/flag_11_NH4_11000.json
+
+
+data/.../2024/
+flag_11_NH4_11000.json
+
+
+
+
+
+data/.../2024/flag_11_NH4_11000.json->generate_flags_species
+
+
+
+
+
+data/.../2024/flag_12_NH4_11000.json
+
+
+data/.../2024/
+flag_12_NH4_11000.json
+
+
+
+
+
+data/.../2024/flag_12_NH4_11000.json->generate_flags_species
+
+
+
+
+
+data/.../2024/flag_14_Org_11000.json
+
+
+data/.../2024/
+flag_14_Org_11000.json
+
+
+
+
+
+data/.../2024/flag_14_Org_11000.json->generate_flags_species
+
+
+
+
+
+data/.../2024/ACSM_JFJ_2024_timeseries_flags.csv->prepare_ebas_submission
+
+
+
+
+
+data/JFJ_ACSM-017_2024.txt
+
+
+data/
+JFJ_ACSM-017_2024.txt
+
+
+
+
+
+prepare_ebas_submission->data/JFJ_ACSM-017_2024.txt
+
+
+
+
+
+data/JFJ_ACSM-017_FLAGS_2024.txt
+
+
+data/
+JFJ_ACSM-017_FLAGS_2024.txt
+
+
+
+
+
+prepare_ebas_submission->data/JFJ_ACSM-017_FLAGS_2024.txt
+
+
+
+
+
+pipelines/steps/prepare_ebas_submission.py
+
+
+pipelines/steps/
+prepare_ebas_submission.py
+
+
+
+
+
+pipelines/steps/prepare_ebas_submission.py->prepare_ebas_submission
+
+
+
+
+
+pipelines/params/"limits_of_detection.yaml
+
+
+pipelines/params/
+"limits_of_detection.yaml
+
+
+
+
+
+pipelines/params/"limits_of_detection.yaml->prepare_ebas_submission
+
+
+
+
+
+pipelines/params/"station_params.yaml
+
+
+pipelines/params/
+"station_params.yaml
+
+
+
+
+
+pipelines/params/"station_params.yaml->prepare_ebas_submission
+
+
+
+
+
diff --git a/docs/poster/poster.bib b/docs/poster/poster.bib
new file mode 100644
index 0000000..30d9da9
--- /dev/null
+++ b/docs/poster/poster.bib
@@ -0,0 +1,38 @@
+@book{chacon2014pro,
+ title={Pro git},
+ author={Chacon, Scott and Straub, Ben},
+ year={2014},
+ publisher={Springer Nature}
+}
+
+@article{wilkinson2016fair,
+ title={The FAIR Guiding Principles for scientific data management and stewardship},
+ author={Wilkinson, Mark D and Dumontier, Michel and Aalbersberg, IJsbrand Jan and Appleton, Gabrielle and Axton, Myles and Baak, Arie and Blomberg, Niklas and Boiten, Jan-Willem and da Silva Santos, Luiz Bonino and Bourne, Philip E and others},
+ journal={Scientific data},
+ volume={3},
+ number={1},
+ pages={1--9},
+ year={2016},
+ publisher={Nature Publishing Group}
+}
+
+@article{konnecke2015nexus,
+ title={The NeXus data format},
+ author={K{\"o}nnecke, Mark and Akeroyd, Frederick A and Bernstein, Herbert J and Brewster, Aaron S and Campbell, Stuart I and Clausen, Bj{\"o}rn and Cottrell, Stephen and Hoffmann, Jens Uwe and Jemian, Pete R and M{\"a}nnicke, David and others},
+ journal={Journal of applied crystallography},
+ volume={48},
+ number={1},
+ pages={301--305},
+ year={2015},
+ publisher={International Union of Crystallography}
+}
+
+@article{bartels2023time,
+ title={It is Time to Introduce the Next Generation of Chemists to FAIR and Open Science: Chemical Education},
+ author={Bartels-Rausch, Thorsten and Ammann, Markus},
+ journal={Chimia},
+ volume={77},
+ number={10},
+ pages={694--696},
+ year={2023}
+}
\ No newline at end of file
diff --git a/docs/poster/poster.tex b/docs/poster/poster.tex
new file mode 100644
index 0000000..2510e8f
--- /dev/null
+++ b/docs/poster/poster.tex
@@ -0,0 +1,313 @@
+% Unofficial University of Texas at Arlington Math Poster template:
+
+% A fork of the unofficial University of Lethbridge Poster template: https://www.overleaf.com/latex/templates/university-of-lethbridge-unofficial-poster-template/nddfzgvqvfwf
+% which is a fork of unofficial University of Alberta Poster template:
+% which is a fork of Yale template: https://www.overleaf.com/latex/templates/yale-poster-template/rjpgqfgvsjcv
+% which is a fork of the UMich template https://www.overleaf.com/latex/templates/university-of-michigan-umich-poster-template/xpnqzzxwbjzc
+% which is fork of the MSU template https://www.overleaf.com/latex/templates/an-unofficial-poster-template-for-michigan-state-university/wnymbgpxnnwd
+% which is a fork of https://www.overleaf.com/latex/templates/an-unofficial-poster-template-for-new-york-university/krgqtqmzdqhg
+% which is a fork of https://github.com/anishathalye/gemini
+% also refer to https://github.com/k4rtik/uchicago-poster
+
+
+\documentclass[final]{beamer}
+
+% ====================
+% Packages
+% ====================
+
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{luainputenc}
+\usepackage{lmodern}
+%\usepackage[size=custom, width=122,height=91, scale=1.2]{beamerposter}
+\usepackage[orientation=portrait, size=a0, scale=1.25]{beamerposter}
+\usetheme{gemini}
+\usecolortheme{msu}
+\usepackage{graphicx}
+\usepackage{booktabs}
+\usepackage{tikz}
+\usepackage{pgfplots}
+\pgfplotsset{compat=1.14}
+\usepackage{anyfontsize}
+\usepackage{multirow}
+\usepackage{listings}
+\usepackage[dvipsnames]{xcolor}
+% ====================
+% Lengths
+% ====================
+
+% If you have N columns, choose \sepwidth and \colwidth such that
+% (N+1)*\sepwidth + N*\colwidth = \paperwidth
+\newlength{\sepwidth}
+\newlength{\colwidth}
+\setlength{\sepwidth}{0.025\paperwidth}
+\setlength{\colwidth}{0.3\paperwidth}
+
+\newcommand{\separatorcolumn}{\begin{column}{\sepwidth}\end{column}}
+
+% ====================
+% Title
+% ====================
+
+\title{Implementing FAIR Data Exchange in ACTRIS Switzerland : An Expert-Driven Approach}
+%\setbeamerfont{title}{size=\huge}
+
+\author{Juan F. Fl\'orez-Ospina, Leïla H. Simon, Nora K. Nowak, Benjamin T. Brem, \\ Martin Gysel-Beer, and Robin L. Modini}
+
+%\author{Juan F. Florez-Ospina$^{1}$, Natasha M. Garner$^{1}$, Lucia Iezzi$^{1}$, David Bell$^{1}$,\\ Imad El Haddad$^{1}$, Julia Schmale$^{2}$, and Thorsten Bartels-Rausch$^{1}$}
+% add following line if you have co-author(s)
+% Coauthor One$^{2}$, Coauthor Two$^{3}$
+
+\institute[shortinst]{PSI Center for Energy and Environmental Sciences, 5232 Villigen PSI, Switzerland}
+
+% ====================
+% Footer (optional)
+% ====================
+\footercontent{\hfill
+ \href{mailto:juan.florez-ospina@psi.ch}{juan.florez-ospina@psi.ch, juanflo16@gmail.com,} \href{robin.modini@psi.ch}{robin.modini@psi.ch}}
+% (can be left out to remove footer)
+%\footercontent{22-Nov-2023, Swiss Data Science Conference, Bern \hfill
+% \href{mailto:juan.florez-ospina@psi.ch}{juan.florez-ospina@psi.ch} \href{thorsten.bartels-rausch@psi.ch}{thorsten.bartels-rausch@psi.ch}}
+% (can be left out to remove footer)
+
+% ====================
+% Logo
+%\logoleft{\includegraphics[height=5.5cm]{logos/psi_01_sn.png}}
+% ====================
+
+% use this to include logos on the left and/or right side of the header:
+% Left: institution
+% \logoright{\includegraphics[height=5cm]{logos/logo-wordmark-variations.png}}
+% Right: funding agencies and other affilations
+%\logoright{\includegraphics[height=7cm]{logos/NSF.eps}}
+
+% ====================
+% Body
+% ====================
+
+
+\begin{document}
+
+\begin{frame}[t]
+
+\begin{columns}[t]
+\separatorcolumn
+
+
+\begin{column}{1.5\colwidth}
+
+\begin{block}{Motivation}
+
+%Given an \textit{allocated time frame},
+
+\textbf{Problem.} Scientific datasets in atmospheric science are often large, complex and highly specialized, making them hard to reuse across users, tools, and time.
+\textcolor{white}{insert line here :)}
+
+Adhering to the FAIR data principles promises to resolve long term reuse of data by machines and humans.
+\textcolor{white}{insert line here :)}
+
+\textbf{Yet in practice,} implementations often have the following configuration,
+\vspace{1em} % Add some space before next block
+
+\begin{figure}
+\centering
+\includegraphics[width=0.75\textwidth]{figures/styled_typical_exchange.pdf}
+\caption{Diagram of tightly coupled system for integration, processing and ingestion of scientific data into ORD repositories.}
+\end{figure}
+which in turn exhibits the following
+\vspace{1em}
+\begin{exampleblock}{System drawbacks:}
+\begin{itemize}
+ \item
+ Task-specific outputs, limiting adaptability to new needs or use cases.
+ \item
+ Monolithic design, making the system hard to maintain, reuse or understand internally.
+ \item
+ Embedded domain knowledge in hard-coded parameters, reducing transparency and flexibility.
+
+\end{itemize}
+
+\end{exampleblock}
+
+
+
+
+
+%\begin{itemize}
+% \item
+
+% Convey the idea about fragmented heterogeneous data (highly collaborative, plenty of coordination, planning)
+%\item
+% Data analysis, also heterogeneous (but highly independent)
+%\end{itemize}
+
+
+\begin{block}{Expert-driven FAIR data exchange systems}
+
+\textbf{Therefore.} \textit{We aim to explore and prototype an expert-driven data exchange system, as conceptualized below.}
+
+\begin{figure}[H]
+ \centering
+ \includegraphics[width=\textwidth]{figures/extended_data_flow_dag_with_actris.pdf}
+ \caption{Diagram of the expert-driven FAIR data exchange system.}
+\end{figure}
+
+
+This system, unlike the above implementation, exhibits the following:
+
+\end{block}
+
+\vspace{1em} % Add some space before next block
+
+
+\begin{exampleblock}{System characteristics:}
+\begin{enumerate}
+ \item
+ Adaptable to new needs, making it interoperable across users and systems.
+ \item
+ Modular, allowing components to be reused, replaced, or maintained independently.
+ \item
+ Configurable with domain knowledge supplied externally, supporting expert feedback loops.
+ \item
+ Transparent, enabling monitoring of data flows and tracking of data provenance through a clear, structured design.
+\end{enumerate}
+\end{exampleblock}
+
+\textbf{Practical implementation (Technical stack)}
+
+\begin{figure}[H]
+ \centering
+ \includegraphics[width=0.5\textwidth]{figures/layered_stack.pdf}
+ %\caption{Diagram of the expert-driven FAIR data exchange system.}
+\end{figure}
+
+\vspace{0.5em}
+\colorbox{lightgray}{
+ \parbox{0.95\linewidth}{
+ \textbf{Code Repository:} \url{https://gitea.psi.ch/APOG_public/acsmnode.git}
+ }
+}
+\vspace{0.5em}
+
+\end{block}
+
+\end{column}
+
+%\end{columns}
+
+%\begin{columns}[t]
+
+\separatorcolumn
+
+\begin{column}{1.5\colwidth}
+
+\begin{block}{FAIR data chains in ACTRIS Switzerland---Use case}
+
+
+\textbf{Challenge: }Standardized annual submission of aerosol composition observations from field stations (\textbf{Payerne} and \textbf{Jungfraujoch}) to the \textbf{EBAS database}.
+
+\textcolor{white}{ }
+We consider raw data described in the Table below.
+\textcolor{white}{white}
+\begin{table}[!ht]
+\resizebox{0.75\textwidth}{!}{%
+\centering
+\begin{tabular}{|c|c|c|}
+\hline
+\textbf{Data Source} & \textbf{File Formats} & \textbf{Submission Date} \\
+\hline
+ Aerodyne & TXT, CSV & \multirow{3}{*}{May 31, 2025} \\
+Aerosol Chemical Speciation Monitor & NAS & \\
+(ACSM) & YAML & \\
+%PTR-TOF MS & NetCDF \\
+\hline
+\end{tabular}
+}
+\end{table}
+
+ \end{block}
+%\begin{comment}
+%\begin{exampleblock}{General data chain properties:}
+%\begin{itemize}
+% \item
+% Standards Compliance: CF convention metadata + EBAS database rules for quality control (flagging)
+% \item
+% \textbf{Docker} ensures consistent processing across stations and %time periods
+%\end{itemize}
+%\end{exampleblock}
+%\end{comment}
+%\textcolor{white}{white}
+\begin{block}{Configurable Data Integration using YAML files}
+
+\textbf{Goal:} Search, Retrieve, and Integrate Raw Data in HDF5 format
+
+\begin{figure}
+\centering
+%\includegraphics[width=0.65\textwidth]{figures/EarthObservation_HSI.pdf}
+\includegraphics[width=0.7\textwidth]{figures/data_integration_step.pdf}
+\end{figure}
+\colorbox{lightgray}{
+ \parbox{0.95\linewidth}{
+ \textbf{Code Repository:} \url{https://gitea.psi.ch/5505-public/dima.git}
+ }
+}
+\end{block}
+
+
+
+\begin{block}{Interactive Data Annotation for Quality Control} % Quality Control Workflow}
+
+\textbf{Goal:} Apply time-dependent correction factors to observations and generate quality control flags with expert validation, complying with EBAS database.
+
+ \begin{figure}
+\includegraphics[width=0.6\textwidth]{figures/quality_control_workflow.pdf}
+\end{figure}
+Enables reconciliation of \textbf{Automatic Diagnostic Flags}, \textbf{Station-specific Flags}, and \textbf{Manual Review Flags}.
+%%\textbf{Features:} Enable reconciliation
+%\begin{itemize}
+% \item \textbf{Automatic Diagnostic Flags}: threshold-based detection of instrument malfunctions.
+% \item
+% \textbf{Expert Knowledge Flags:} Station operator insights on local conditions and maintenance events and calibration periods.
+% \item
+% \textbf{Manual Review Flags:} Visual inspection of time series anomalies.
+%\end{itemize}
+
+\end{block}
+
+\begin{block}{Accessible Data Products for Domain-Agnostic Reuse}
+
+\textbf{Primary Product:} EBAS-ready files conforming to ACTRIS Level 2 quality standards.
+
+\textbf{Secondary Product:} A comprehensive, self-describing file that integrates:
+\begin{itemize}
+ \item Original and intermediate data products with rich contextual and provenance metadata, as shown below.
+
+ \begin{figure}
+ \includegraphics[width=0.9\textwidth]{figures/hdf5_before_after.pdf}
+ %\caption{Initial integrated file (left) and enhanced HDF5 file (right)}
+\end{figure}
+ \item An auto-generated prospective provenance graph in Renku workflow format, visualized as below
+
+\begin{figure}
+ \includegraphics[width=\textwidth]{figures/workflow_acsm_data_JFJ_2024.pdf}
+
+\end{figure}
+\end{itemize}
+\end{block}
+
+
+
+ %\begin{block}{References}
+
+ % \nocite{*}
+ % \footnotesize{\bibliographystyle{ieeetr}\bibliography{poster}}
+
+ %\end{block}
+
+\end{column}
+
+\separatorcolumn
+\end{columns}
+\end{frame}
+
+\end{document}
diff --git a/docs/source/conf.py b/docs/source/conf.py
new file mode 100644
index 0000000..18ec217
--- /dev/null
+++ b/docs/source/conf.py
@@ -0,0 +1,28 @@
+# Configuration file for the Sphinx documentation builder.
+#
+# For the full list of built-in configuration values, see the documentation:
+# https://www.sphinx-doc.org/en/master/usage/configuration.html
+
+# -- Project information -----------------------------------------------------
+# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
+
+project = 'ACSM FAIRifier Tool'
+copyright = '2025, Juan F. Flórez-Ospina, Leïla H. Simon, Nora K. Nowak, Benjamin T. Brem, Martin Gysel-Beer, and Robin L. Modini'
+author = 'Juan F. Flórez-Ospina, Leïla H. Simon, Nora K. Nowak, Benjamin T. Brem, Martin Gysel-Beer, and Robin L. Modini'
+release = '0.0.1'
+
+# -- General configuration ---------------------------------------------------
+# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
+
+extensions = []
+
+templates_path = ['_templates']
+exclude_patterns = []
+
+
+
+# -- Options for HTML output -------------------------------------------------
+# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
+
+html_theme = 'alabaster'
+html_static_path = ['_static']
diff --git a/docs/source/index.rst b/docs/source/index.rst
new file mode 100644
index 0000000..3218f71
--- /dev/null
+++ b/docs/source/index.rst
@@ -0,0 +1,20 @@
+.. ACSM FAIRifier Tool documentation master file, created by
+ sphinx-quickstart on Tue Jun 17 16:17:43 2025.
+ You can adapt this file completely to your liking, but it should at least
+ contain the root `toctree` directive.
+
+Welcome to ACSM FAIRifier Tool's documentation!
+===============================================
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Contents:
+
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`