diff --git a/Comparison.tex b/Comparison.tex index 2393ae02228fe847cd8673dd47fd5ef5a9985086..dd78ee3cae456b03a0f5d3a7c67025e2d7b220c9 100644 --- a/Comparison.tex +++ b/Comparison.tex @@ -1,9 +1,14 @@ -\section{A Joint Perspective and Generalization of Jupyther and Active +\section{A Joint Perspective and Generalization of Jupyter and Active Documents}\label{sec:comparison} -We will now highlight the features of the ADP and Jupyther notebooks with a view towards a +We will now highlight the features of the ADP and Jupyter notebooks with a view towards a possible unification of the systems. +\begin{figure}[ht] + \input{ActDocRepresentation} + \caption{Active Documents}\label{fig:graph2} +\end{figure} + \emph{Active Documents} need a Player process (e.g. the Planetary system) that makes them executable, gives access to provenance and copyright/licensing information, and supports various forms of validation. Figure~\ref{fig:graph2} shows the situation in analogy to @@ -13,18 +18,15 @@ interactive because they have been bound to semantic services, which are execute player system -- in the middle -- that interprets the represented content structures -- the mathematical knowledge; here depicted by a theory graph on the right. -\begin{figure}[ht] - \input{ActDocRepresentation} - \caption{Active Documents}\label{fig:graph2} -\end{figure} In \emph{Juypther the situation is similar}, the user interacts with a dynamic web page -- -the Jupyther notebook -- in a browser that is a mathematical text interspersed with areas -of interactivity: the computation cells. These can generate mathematical content and righ -media output into the notebook upon user request. We see the notebook on the left of -Figure~\ref{fig:graph3}. Again, we have a ``player process'': the Jupyther kernel that -runs the code for that notebook. This is depicted as the ``machine'' on the right, which -relies on the mathematical knowledge enoded as mathematical program code. +the Jupyter notebook interface -- in a browser that is a mathematical text interspersed +with areas of interactivity: the computation cells. These can generate mathematical +content and righ media output into the notebook upon user request. We see the notebook +interface on the left of Figure~\ref{fig:graph3}. Again, we have a ``player process'' the +Jupyter system and displays the text from the notebook and the computational kernel that +runs the code for the notebook. Note that the notebook (source) is also a representation +of mathematical knowledge; we see it on the right of Figure~\ref{fig:graph3}. \begin{figure}[ht] \input{JupyterRepresentation} @@ -32,10 +34,34 @@ relies on the mathematical knowledge enoded as mathematical program code. \end{figure} This already hints at a synthesis of the two systems; we make this explicit in -Figure~\ref{fig:graph4}: We +Figure~\ref{fig:graph4}: We build a combined player system that combines the complementary +features of both systems. +On the \emph{user interface} side this combined player +\begin{compactenum} +\item allows free-form mathematical documents with interactivity regions like in active + documents, but also +\item provides computational cells with read-eval-print style interaction with dedicated + computational machines. +\end{compactenum} +We have tried to indicate this in the mixed user interface in Figure~\ref{fig:graph3}. +On \emph{the computational side}, it combines +\begin{compactenum} +\item the generic semantic services of the MMT Tool based with +\item dedicated computational machines running code in separate kernel processes. +\end{compactenum} +Note that all of these need to share a notion of ``mathematical state'' so that the user +interface can present a consistent view to the user. +The new player process relies on the availability of three ``declarative compondens'' that +also need to be in a consistent representation. +\begin{compactenum} +\item mathematical document text +\item theory-graph shaped content representations, and +\item engine-specific code +\end{compactenum} +These tri-partite representations \begin{figure}[ht] \input{Syntesis} @@ -43,6 +69,7 @@ Figure~\ref{fig:graph4}: We \end{figure} + %%% Local Variables: %%% mode: latex %%% TeX-master: "report" diff --git a/JupyterRepresentation.tex b/JupyterRepresentation.tex index 43ee88b8a5aab24afb2cc9f5352bab57a76b144c..53bb8687126c478dbb817778cf4c192ea70849bc 100644 --- a/JupyterRepresentation.tex +++ b/JupyterRepresentation.tex @@ -35,8 +35,8 @@ (-6.25, 4) -- (-2.75, 4) -- (-3.25, 3.5) -- -(-2.5, 3.5) -- -(-2.5, -3.5) -- +(-3, 3.5) -- +(-3, -3.5) -- cycle; \node at (-4.5, 3) {\Huge J}; diff --git a/Syntesis.tex b/Syntesis.tex index 17b040d23a7b10919d34d872e4692be4c2612ea3..a4b02fdf9f4c5678140ccae5226a971bca2f9720 100644 --- a/Syntesis.tex +++ b/Syntesis.tex @@ -2,10 +2,7 @@ \usepackage[landscape]{geometry} \usepackage{tikz} -\usetikzlibrary{mindmap} -\usepackage{metalogo} -%\usepackage{dtklogos} -\usetikzlibrary{shapes, snakes} +\usetikzlibrary{shapes,snakes} \begin{document} \begin{tikzpicture} @@ -38,36 +35,32 @@ % First machine \path[draw, fill=blue!10] -(-6.5, -3.5) -- -(-6.5, 1.5) -- +(-7, -3.5) -- (-7, 1.5) -- -(-6.5, 1.75) -- -(-6.5, 3.5) -- -(-6.25, 3.5) -- -(-6.75, 4) -- -(-3.25, 4) -- -(-3.75, 3.5) -- -(-3, 3.5) -- -(-3, -3.5) -- +(-7.5, 1.5) -- +(-7, 1.75) -- +(-7, 3.5) -- +(-6.75, 3.5) -- +(-7.25, 4) -- +(-3.75, 4) -- +(-4.25, 3.5) -- +(-4, 3.5) -- +(-4, -3.5) -- cycle; -%% Jupyther Program +%% Jupyter Program -\node[circle,fill=cyan] (a) at (-2, 1) { }; -\node[circle,fill=cyan] (b) at (0, 1) { }; -\node[circle,fill=cyan] (c) at (0, 3) { }; -\node[circle,fill=cyan] (d) at (-2, 3) { }; -\node[circle,fill=cyan] (e) at (-1, 2) { }; +\node[align=center, text width=4cm] at (-1,3.5) {\textbf{\begin{tabular}{c}\Large OpenDreamKit\\\LARGE Notebook\end{tabular}}}; + +\node[circle,fill=cyan] (a) at (-2, 0) { }; +\node[circle,fill=cyan] (b) at (0, 0) { }; +\node[circle,fill=cyan] (c) at (0, 2) { }; +\node[circle,fill=cyan] (d) at (-2,2) { }; +\node[circle,fill=cyan] (e) at (-1, 1) { }; \foreach \from/\to in {a/b, b/c, c/d, a/d, a/e, e/b, c/e, d/e} \draw [-] (\from) -- (\to); -\node[align=center, text width=4cm] at (-1,3.5) {\huge Notebook}; - -%\draw [<->] (-8.5,0) -- (-7,0) node[pos=.5,sloped,above] {}; - -\node[align=center, text width=4cm] at (-1,-.3) {\huge Knowledge}; - \node[draw, fill=cyan!30, thick] (a) at (-2, -3) {Thy}; \node[draw, fill=cyan!30, thick] (b) at (0, -3) {Thy}; \node[draw, fill=cyan!30, thick] (c) at (0, -1) {Thy}; diff --git a/jupyther.tex b/jupyter.tex similarity index 100% rename from jupyther.tex rename to jupyter.tex diff --git a/report.tex b/report.tex index fb92b3cc62fe8055b639f88bd4f3755b0e850213..d713f18e4bb326473de394940528e1f7f6da56c3 100644 --- a/report.tex +++ b/report.tex @@ -35,7 +35,7 @@ \newpage\tableofcontents\newpage \input{intro}\newpage -\input{jupyther}\newpage +\input{jupyter}\newpage \input{ActiveDocumentsOverview}\newpage \input{Comparison}\newpage \input{conclusion}\newpage diff --git a/report.toc b/report.toc index 9fc71fdfd50d5e6a41eab44ef454600430bebcc8..d55d30ffb2ebb20925ceb482cd4de22564484ed6 100644 --- a/report.toc +++ b/report.toc @@ -52,7 +52,7 @@ \defcounter {refsection}{0}\relax \contentsline {section}{\tocsection {}{4}{A Joint Perspective and Generalization of Jupyther and Active Documents}}{16}{section.4} \defcounter {refsection}{0}\relax -\contentsline {section}{\tocsection {}{5}{Conclusion}}{17}{section.5} +\contentsline {section}{\tocsection {}{5}{Conclusion}}{18}{section.5} \defcounter {refsection}{0}\relax \contentsline {subsection}{\tocsubsection {}{}{Acknowledgements}}{18}{section*.2} \defcounter {refsection}{0}\relax