From b94c363566d3f7a348ed7d8598b2ae97a90c1eb8 Mon Sep 17 00:00:00 2001 From: John Hawkins Date: Mon, 19 Jun 2023 19:33:31 +1000 Subject: [PATCH] Paper updates --- docs/paper/Projit_decoupled_process.drawio | 64 +++++++++++++ .../paper/Projit_decoupled_process.drawio.png | Bin 0 -> 39309 bytes docs/paper/paper.tex | 89 ++++++++++-------- docs/source/projit.rst | 16 ++++ 4 files changed, 129 insertions(+), 40 deletions(-) create mode 100644 docs/paper/Projit_decoupled_process.drawio create mode 100644 docs/paper/Projit_decoupled_process.drawio.png diff --git a/docs/paper/Projit_decoupled_process.drawio b/docs/paper/Projit_decoupled_process.drawio new file mode 100644 index 0000000..183841b --- /dev/null +++ b/docs/paper/Projit_decoupled_process.drawio @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/paper/Projit_decoupled_process.drawio.png b/docs/paper/Projit_decoupled_process.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..313ebd4e8df6da8a74b891fe51f0c984c615a0e1 GIT binary patch literal 39309 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

yje#!s*IOi(+T?jhib$VDX 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�Yx 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 Dga%R_ literal 0 HcmV?d00001 diff --git a/docs/paper/paper.tex b/docs/paper/paper.tex index 7cbb83f..f2f60f1 100644 --- a/docs/paper/paper.tex +++ b/docs/paper/paper.tex @@ -97,7 +97,7 @@ %% %% The "title" command has an optional parameter, %% allowing the author to define a "short title" to be used in page headers. -\title{Decoupled Data Science - Tools for flexible, reproducible eScience} +\title{Projit: An Open Source tool for Decoupled Data Science} %% %% The "author" command and its associated commands are used to define @@ -118,35 +118,17 @@ \renewcommand{\shortauthors}{Hawkins} -\begin{abstract} +\begin{abstract} +Scientific practice has expanded to become increasingly dependent of digitial technologies, +large scale data processing and advanced analytical methods. These shifts have demanded new +methods of implementing and recording the details of scientific projects. Monolothic applications +have the advantage of a single and consistent design, however they impede the ability of users to +innovate and incrementally improve processes. We discuss the qualities of an ideal eScience framework +for building multi-stage collaboration scinetific workflows and present an open source implementation +for managing scientific processes in a decoupled fashion that permits both flexible implementation of +any stage of processing, and greater ease of meta-data analysis. \end{abstract} -%% The code below is generated by the tool at http://dl.acm.org/ccs.cfm. -%% Please copy and paste the code instead of the example below. - -\begin{CCSXML} - - -10002951.10003260.10003261 -Information systems~Web searching and information discovery -500 - - -10002951.10003260.10003277.10003280 -Information systems~Web log analysis -500 - - -10010147.10010257 -Computing methodologies~Machine learning -500 - - -\end{CCSXML} - -\ccsdesc[500]{Information systems~Web searching and information discovery} -\ccsdesc[500]{Information systems~Web log analysis} -\ccsdesc[500]{Computing methodologies~Machine learning} \keywords{Data Science, Experiment Tracking, Reproducible Science, Metadata Tracking} @@ -178,7 +160,7 @@ \section{Introduction} \section{Methodology} We begin by discussing all desirable elements required of an open science framework. These are drawn -from observations of both how collabroative science works and the successful components of distributed +from observations of both how collaborative science works and the successful components of distributed scientific endeavours. These requirements are drawn from both sciences that are typically dependent on computational frameworks (computer science, bioinformatics, physics) and those that generally are not (social science, psychology). @@ -186,21 +168,48 @@ \section{Methodology} The key elements are as follows: \begin{itemize} - \item Provenance of Data Sources - \item Record of Data Processing - \item Reuse of Datasets - \item Tracking of Experiments and Results - \item Comparison of Methods and Results - \item Generation of Documentation - \item Reproducibility of Projects - \item Facilitation of Meta-Analysis + \item Sources: Provenance of Data Sources + \item Processing: Record of Data Processing + \item Reuse: Facilitating Reuse of Datasets + \item Tracking: Tracking of Experiments and outputs + \item Results: Comparison of Methods and Results + \item Documentation: Generation of Documentation + \item Reproduction: Reproducibility of Projects + \item Meta-Analysis: Facilitation of Meta-Analysis \end{itemize} -\subsection{Data} +The elements in this list are organised in an approximately sequential manner. However, as we discuss +them below it should be apparent that there are many ways in which these elements support each other. +Firstly, and foremost, aata driven projects +require a method of accessing the required \textbf{source} data and will need to maintain records +of this data provenance. There will typically be \textbf{processing} applied to these datasets to +render them applicable to experimentation and analysis. An ideal tool will track the sequential +nature of this processing as well as store information about the location of each resulting dataset. +The data processed in this way is then available for \textbf{reuse} across experiments and analysis, +making \textbf{results} comparable and facilitating \textbf{meta-analysis}. -\subsection{Features} -\subsection{Feature Importance} + +\subsection{Projit Process} + +The central design principle of \textit{projit} is that the decoupling of data science +should be achieved through utilisation of a simple metadata store. Each aspect of +data science work can be allowed to proceed without awareness of the structure of +any other element as long as it can access the information it requires through this +metadata store. + +\begin{figure*} +\includegraphics[scale=0.6]{./Projit_decoupled_process.drawio.png} +\caption{Projit Process for Decoupled Data Science} +\label{fig:projit} +\end{figure*} + +In Figure \ref{fig:projit} we see that the core steps of data preparation, experimentation +and analysis of results all happen independently. Each of them accesses the projit store for +the information they need, storing information + +\subsection{Application} + \section{Results} diff --git a/docs/source/projit.rst b/docs/source/projit.rst index 469fce2..1264f31 100644 --- a/docs/source/projit.rst +++ b/docs/source/projit.rst @@ -4,6 +4,14 @@ projit package Submodules ---------- +projit.ascii\_plot module +------------------------- + +.. automodule:: projit.ascii_plot + :members: + :undoc-members: + :show-inheritance: + projit.cli module ----------------- @@ -20,6 +28,14 @@ projit.config module :undoc-members: :show-inheritance: +projit.pdf module +----------------- + +.. automodule:: projit.pdf + :members: + :undoc-members: + :show-inheritance: + projit.projit module --------------------