# [rkward-cvs] SF.net SVN: rkward:[3325] branches/jss_dec_10/FINAL_JSS_TEX

sjar at users.sourceforge.net sjar at users.sourceforge.net
Sun Dec 26 17:51:27 UTC 2010

Revision: 3325
http://rkward.svn.sourceforge.net/rkward/?rev=3325&view=rev
Author:   sjar
Date:     2010-12-26 17:51:27 +0000 (Sun, 26 Dec 2010)

Log Message:
-----------
* Merged correctiosn from the last days

Modified Paths:
--------------
branches/jss_dec_10/FINAL_JSS_TEX/GUI_elements.tex
branches/jss_dec_10/FINAL_JSS_TEX/RKWard_paper.tex
branches/jss_dec_10/FINAL_JSS_TEX/background.tex
branches/jss_dec_10/FINAL_JSS_TEX/conclusion_summary_acknowledgments.tex
branches/jss_dec_10/FINAL_JSS_TEX/example_plugin.tex
branches/jss_dec_10/FINAL_JSS_TEX/example_session.tex
branches/jss_dec_10/FINAL_JSS_TEX/installing_starting_RKWard.tex
branches/jss_dec_10/FINAL_JSS_TEX/technical.tex

Modified: branches/jss_dec_10/FINAL_JSS_TEX/GUI_elements.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/GUI_elements.tex	2010-12-26 17:46:00 UTC (rev 3324)
+++ branches/jss_dec_10/FINAL_JSS_TEX/GUI_elements.tex	2010-12-26 17:51:27 UTC (rev 3325)
@@ -1,8 +1,7 @@
-% !TEX root = RKWard_paper.tex
\section{Main elements of the user interface}
\label{sec:user_interface}
This section gives an overview of the main user interface elements and features of RKWard.
-For a use-case oriented example of an RKWard session, see Section~\ref{sec:using_RKWard}.
+For a use-case oriented example of an RKWard session, see section~\ref{sec:using_RKWard}.

The default layout of the main application window is divided into five
parts, as depicted in Figure~\ref{fig:main_window}. While many aspects
@@ -17,14 +16,14 @@
persistent, even if no actions are available for that menu in the
current context. The menu bar of the main window is also the central
access point to most data import, manipulation, analysis, and
-visualization features (see Section~\ref{sec:analyzing_data}) for which RKWard provides a GUI
+visualization features (see section~\ref{sec:analyzing_data}) for which RKWard provides a GUI
interface.

\begin{figure}[htp]
\centering
\includegraphics[width=15.446cm,height=10.949cm]{../figures/main_window.png}
\caption{Default RKWard main window after start up.
-A) Menu bar, B) navigator element, C) editor, output,
+A) Menubar and toolbar, B) navigator element, C) editor, output,
and data management. D) embedded \proglang{R} console.
E) In addition to the menu bar at the top A) toolbar buttons
on the bottom of the main window give quick access to the command log,
@@ -42,45 +41,47 @@

The central area is divided into a document view area
(Figure~\ref{fig:main_window}C) and two panel subwindows
-(Figure~\ref{fig:main_window}: B and D). The panels can be resized or moved to
+(Figure~\ref{fig:main_window}B and D). The panels can be resized or moved to
another edge of the central area independently. All panels can be
toggled by mouse or keyboard shortcuts. When a panel is closed, the
document view area (see below) is automatically re-sized to take up the
free space.

-The left panel (Figure~\ref{fig:main_window}B) contains a file browser (see Section~\ref{sec:further_tool_windows}) and a
-workspace browser (see Section~\ref{sec:workspace_browser_object_viewer}) by default. The
+The left panel (Figure~\ref{fig:main_window}B) contains a file browser (see section~\ref{sec:further_tool_windows}) and a
+workspace browser (see section~\ref{sec:workspace_browser_object_viewer}) by default. The
bottom panel (Figure~\ref{fig:main_window}D) contains the tool windows, namely, Command
-log (Section~\ref{sec:further_tool_windows}), Pending Jobs (Section~\ref{sec:further_tool_windows}), \proglang{R} Console
-(Section~\ref{sec:using_R_console}), and Help Search (Section~\ref{sec:help_system}).
+log (section~\ref{sec:further_tool_windows}), Pending Jobs (section~\ref{sec:further_tool_windows}), \proglang{R} Console
+(section~\ref{sec:using_R_console}), and Help Search (section~\ref{sec:help_system}).

The remainder of the central area (Figure~\ref{fig:main_window}C) is a single row Tab Document
-Interface (TDI) for different documents. Currently, the supported types of
-documents are results output (Section~\ref{sec:results_output}), spreadsheet-like data editors
-(Section~\ref{sec:spreadsheet}), help pages (Section~\ref{sec:help_system}), script editors (Section~\ref{sec:code_editor}),
-object summaries (Section \ref{sec:workspace_browser_object_viewer}), and also
-\proglang{R} onscreen graphics devices (Section~\ref{sec:technical_graphics}). Early uses of TDIs date back to 1988 and are
+Interface (TDI) for different documents. Early uses of TDIs date back to 1988 and are
-KimLutteroth2010}. The order of tabs can be conveniently re-arranged
+KimLutteroth2010}. Currently, the supported types of
+documents are object summaries (section \ref{sec:workspace_browser_object_viewer}),
+script editors (section~\ref{sec:code_editor}), spreadsheet-like data editors
+help pages (section~\ref{sec:help_system}), and also
+\proglang{R} onscreen graphics devices (section~\ref{sec:technical_graphics}).
+The order of tabs can be conveniently re-arranged
using drag \& drop.

-Both document windows and tool views can be detached from the main
-window as independent windows, managed by the window manager, and subsequently
-re-attached. This feature allows to conveniently work with multiple documents
+Both document windows and tool views can be detached and re-attached from the main
+window as independent windows, managed by the window manager. This feature allows to
+conveniently work with multiple documents
at the same time, e.\,g., scripts or data editors. On{}-screen
-graphics device windows are created detached by default, but can
+graphics device windows are created detached by default, but can
be attached to the document view area of the main window.

Windows can be shown (or toggled) using a mouse device with point \&
click, as well as using a series of keyboard shortcuts (defined by
default) for switching between the different tool and document windows.
-Key bindings can be configured from the GUI via Settings$\rightarrow$Configure Shortcuts''.
-However, for technical reasons only the shortcuts of currently active components
+Key bindings can be configured from the GUI via Settings$\rightarrow$Configure Shortcuts''.
+However, for technical reasons only the shortcuts of currently active components
will be listed. Thus, for example, to
configure data editor shortcuts, one has to open a data editor first and
-then to select Settings$\rightarrow$Configure Shortcuts''. Since RKWard relies on the
+then to select Settings$\rightarrow$Configure Shortcuts''. Since RKWard relies on the
\proglang{KDE} SC editor component,
-shortcuts for the script editor (Section~\ref{sec:code_editor}) are managed separately via
+shortcuts for the script editor (section~\ref{sec:code_editor}) are managed separately via
Settings$\rightarrow$Configure Editor$\rightarrow$Shortcuts''. On most systems, it is also
possible to configure shortcuts by right-clicking on the respective
@@ -100,9 +101,9 @@
\proglang{R} search path (typically,
\proglang{R} package environments). Objects are shown
in a hierarchical tree structure. For instance, an object of class
-\code{list} can be expanded to show all contained objects
+\code{list} can be expanded to show all contained objects
by clicking on the $+$ symbol left of the object name.
-The basic type of each object is indicated by different icons. Further
+The basic type of each object is indicated by specific icons. Further
information on each object can be seen by hovering the mouse
pointer over the respective icon. A tooltip window will appear,
including information such as dimensionality or function arguments,
@@ -122,24 +123,25 @@
\proglang{R} help for information on that object, to
open a window with detailed information on the object, to delete, rename or copy the object to a new symbol name, or to
copy it to \code{.GlobalEnv}. Further, the context menu allows to open
-supported types of objects for editing (see Section~\ref{sec:spreadsheet}; currently, only
-\code{data.frame}s can be edited, and only while they exist in \code{.GlobalEnv}).
-Selecting View'' from the
+supported types of objects for editing (see section~\ref{sec:spreadsheet}; currently, only
+\code{data.frame}s can be edited, and only while they exist in \code{.GlobalEnv}).
+Selecting View'' from the
context menu opens a new window in the
-document area, containing basic information on the object as well as
+document area, containing basic information on the object as well as
tabs which show the output of
\code{print()} and \code{summary()} calls.

-An object list similar to the workspace browser (but showing only
+An object list similar to the workspace browser (but showing only
\code{.GlobalEnv} by default) is also used in several places for the
-selection of objects to work with, e.\,g., in an analysis plugin (see Section~\ref{sec:analyzing_data}).
+selection of objects to work with, e.\,g., in an analysis plugin (see section~\ref{sec:analyzing_data}).

+
\subsection{Code editor}
\label{sec:code_editor}

\proglang{R} script editor, based on the
(\url{http://kate-editor.org/}). Features of this
editor include syntax highlighting (both on screen and in printouts; for
\proglang{R} and many other script types), code
@@ -149,11 +151,11 @@
currently edited files at configurable intervals.

For interaction with \proglang{R}, the editor has
-predefined shortcuts (and toolbar icons) for submitting the current line, the current
+predefined shortcuts (and toolbar icons) for submitting the current line, the current
selection, predefined blocks, or the entire document to the
\proglang{R} engine for evaluation. It also
offers object-name completion and function argument hinting (Figure
-\ref{fig:code_hinting}) based on the objects present in
+\ref{fig:code_hinting}A and B) based on the objects present in
the \proglang{R} workspace\footnote{The object-name
completion and function argument hinting features in RKWard predate the
inclusion of similar features into the core
@@ -168,7 +170,7 @@

\begin{figure}[htp]
\centering
- \includegraphics{../figures/code_hinting.png}
+ \includegraphics[width=15.5cm]{../figures/code_hinting.png}
\caption{Code hinting features of the script editor. The script editor is able to hint A) \proglang{R} object names
and B) function arguments.}
\label{fig:code_hinting}
@@ -203,7 +205,7 @@

However, for most purposes RKWard's \proglang{R} console can be used exactly
like \proglang{R} running in a terminal. Adding to that, it provides many of the
-features which are also available in the code editor (see Section~\ref{sec:code_editor}).
+features which are also available in the code editor (see section~\ref{sec:code_editor}).
Most prominently, it supports syntax highlighting, code
folding, function argument hinting, object-name completion, and pasting
vector or matrix data directly from the clipboard.
@@ -212,9 +214,8 @@
\proglang{R} engine from the code-editor or from help
pages, is sent through the \proglang{R} console.
However, it can be configured to the submitted in the background,
-For further technical details, see Section \ref{sec:technical_asynchronous}.
-\marginpar{PK: is it right to refer to 5.1 here?}
+For further technical details, see section \ref{sec:technical}.

@@ -232,11 +233,14 @@

\begin{figure}[htp]
\centering
- \includegraphics{../figures/data_editors.png}
- \caption{RKWard with several \code{data.frame}s in use at the same time. A) One \code{data.frame} is opened for editing in the
- main window. B) A second \code{data.frame} is opened as detached window. C) \proglang{R}'s standard data editing features
-(e.\,g., \code{fix()}, \code{edit()}) are also usable within an RKWard session.
-In this example \code{fix(DNase)} was invoked from the console (depicted by an arrow).}
+ \includegraphics[width=15.5cm]{../figures/data_editors.png}
+ \caption{RKWard with several \code{data.frame}s in use at the same time. A)
+  One \code{data.frame} is opened for editing in the main window. Further
+  two documents (\code{data.frame}s) are opened in the background.
+  B) A second \code{data.frame} is opened as detached window.
+  C) \proglang{R}'s standard data editing features (e.\,g., \code{fix()}, \code{edit()})
+  are also usable within an RKWard session. In this example \code{fix(DNase)}
+  was invoked from the console (arrow).}
\label{fig:data_editors}
\end{figure}

@@ -267,8 +271,8 @@
user can manually convert the storage mode of a column by simply
selecting a different data type in the Type'' row of the meta information.

-The data editor supports insertion and deletion of rows or columns at
-arbitrary positions. Rows (columns) can also be added at the bottom
+The data editor supports insertion and deletion of rows or columns at
+arbitrary positions. Rows (columns) can also be added at the bottom
(right) by simply entering data into the trailing row (column) shown in
gray. Copy \& paste is supported, where the area affected by paste
operations can optionally be constrained to the selected region, or to
@@ -294,14 +298,9 @@
\proglang{R} code according to the settings made in
the GUI, and have the generated code evaluated by the
\proglang{R} engine.
-This general pattern, implemented as plugins, is the %% TODO: MM: i don't think this sentence gets to its point yet. at least i don't get it ;-)
+This general pattern, implemented as plugins, is the
basic recipe for most of the functionality provided by RKWard
-(see Section~\ref{sec:technical_plugins} for details).
-%basic recipe for most of the functionality provided by RKWard, and
-%accordingly, this functionality can be presented in a standardized
-%fashion\footnote{Internally, this functionality is implemented as
-%plugins. See Section~\ref{sec:technical_plugins} for details.}.
+(see section~\ref{sec:technical_plugins} for details).
Note that on purpose, RKWard does not have its
own file format for data import and export. That is, it is possible
to import data from several sources (see below) or to save and load
@@ -311,41 +310,41 @@
elements of data handling functions by example of importing CSV
(comma-separated values) data.

-At the time of this writing, RKWard provides support for importing SPSS,
+At the time of this writing, RKWard provides support for importing SPSS,
Stata, and delimited text'' data. Internally, RKWard
relies on \proglang{R} packages for certain sets of
data which were already described elsewhere
\citep{Murdoch2002}. Of course, further formats can
-also be imported using copy \& paste (see Sections~\ref{sec:code_editor} and \ref{sec:spreadsheet}), or by
+also be imported using copy \& paste (see sections~\ref{sec:code_editor} and \ref{sec:spreadsheet}), or by
manually entering appropriate \proglang{R} commands in
-the \proglang{R} Console (Section~\ref{sec:using_R_console}). To import CSV
+the \proglang{R} console (section~\ref{sec:using_R_console}). To import CSV
data, select File$\rightarrow$Import format$\rightarrow$Import Text$\rightarrow$CSV''
data from the menu. This will open the dialog shown in
-Figure~\ref{fig:import_data}A. The central area of this dialog provides
+Figure~\ref{fig:import_data}A. The central area of this dialog provides
options to control the import. The
File name'' field is highlighted, to indicate that
it is required to specify a file before the dialog can proceed.
Further options are available from the tabbed pages of the central area.

The right-side area is common to all data handling
-dialogs. Here the Submit'' button is used
+dialogs. Here the Submit button'' is used
to start the import action. It is enabled once all required
settings have been made, i.\,e., in this case a file name has been
-selected. The Close''  button will close the
+selected. The Close'' button will close the
dialog without taking any action.

The bottom area optionally shows the \proglang{R}
code corresponding to the current settings, and which will be run
-upon pressing the Submit'' button (see Section~\ref{sec:importing_data} for generated \proglang{R} code).
+upon pressing the Submit button'' (see section~\ref{sec:importing_data} for generated \proglang{R} code).
The code display is hidden by default and can be revealed using
the Code'' button. This
generated code display is updated dynamically as the user changes settings, allowing
-to see the effect of each change instantly.
+to see the effect of each change instantly.

Most data handling functions will produce some output, which is
sent to the output window. From there it is possible to repeat the
-action by clicking on the Run Again'' link
-(see Section~\ref{sec:results_output}).
+action by clicking on the Run again''-link
+(see section~\ref{sec:results_output}).

\subsection{Graphics window and plot previews}
\label{sec:plot_previews}
@@ -354,7 +353,7 @@
\proglang{R}. All \proglang{R}
devices, including on{}-screen devices, can be used in the regular way.
-bar and a toolbar to the device windows (on the Windows platform,
+bar and a toolbar to the device windows (on the MS Windows platform,
including GUI dialogs for exporting the current plot,
@@ -376,7 +375,7 @@

\begin{figure}[htp]
\centering
- \includegraphics[clip=true,trim=0cm 10cm 0cm 0cm, scale=0.75]{../figures/plot_history_cropped.png}
+ \includegraphics{../figures/plot_history_cropped.png}
\caption{On{}-screen graphics device window in RKWard. The plot history is
available as a drop-down list, allowing to jump directly to a previous
plot. In this example, five different plots were performed on the same data
@@ -393,7 +392,7 @@
shows the plot as it would be created with the current settings. The
preview is updated automatically as the user makes changes, allowing to
see the effect of each setting instantly\footnote{The preview is
-updated asynchronously to keep the GUI responsive; see Section~\ref{sec:technical_graphics}.}. For example, the CLT plugins
+updated asynchronously to keep the GUI responsive; see section~\ref{sec:technical_graphics}.}. For example, the CLT plugins
under the Distributions'' menu can be very helpful to dynamically show''
the convergence in distribution while teaching. For the sake of simplicity, such preview plots are not added to
the history.
@@ -405,7 +404,7 @@
capturing and documenting \proglang{R} output can also
be used, RKWard provides a dedicated output file and a output
window for documenting the results. All GUI-driven data handling
-functions (see Section~\ref{sec:analyzing_data}) write their output to this file.
+functions (see section~\ref{sec:analyzing_data}) write their output to this file.
The same applies to error messages, in case a plugin fails to perform its task.
The output is presented in a journal format\footnote{Note: The font size of the output can be adjusted
@@ -423,21 +422,21 @@
identical parameters\footnote{In case not all parameters could be
reused, since, may be, some of the objects in
question are no longer available, the user will be notified.} (see
-figure \ref{fig:results_output}). Thus, the Run
+Figure \ref{fig:results_output}). Thus, the Run
Again'' feature combines the documentation of the result
with an automated way to conduct the same analysis again on new
data, providing benefits similar to, for example, the automated report generation
available from \pkg{RreportGenerator}\footnote{The application generates automatic
reports from routine statistical analysis in bioinformatical
-applications} \citep{RaffelsbergerW2008}.
+applications.} \citep{RaffelsbergerW2008}.

\begin{figure}[htp]
\centering
- %%PK: scaling up reduces the quality; may be increase the font size before screen capture?
- \includegraphics{../figures/results_output_cropped.png}
- \caption{Sample contents of the output window. Standard elements of plugin output include
- a standardized header, and a Run again'' link, which allows to repeat the analysis with
- identical or similar parameters.}
+ \includegraphics[width=15.5cm]{../figures/results_output_cropped.png}
+ \caption{Sample contents of the output window. DNase data of the \pkg{data} package was used.
+  Standard elements of plugin output include  a standardized header, and a
+  Run again''-link, which allows to repeat the analysis with identical or
+  similar parameters.}
\label{fig:results_output}
\end{figure}

@@ -455,7 +454,7 @@
richly formatted text; even images and tables can be easily copied by drag \& drop. In future releases,
it is planned to integrate RKWard
with existing office suites. This
-will possibly also mean changing to a different file format such as ODF (open
+will possibly also mean addition of different file formats such as ODF (open
document format) and technologies such as \pkg{sweave} and \pkg{odfWeave}
\citep{Leisch2002, Kuhn2006}.

@@ -463,7 +462,7 @@
PNG\footnote{\url{http://www.libpng.org/pub/png/}} by
default, but JPEG\footnote{\url{http://www.jpeg.org/index.html}} and
SVG\footnote{\url{http://www.w3.org/Graphics/SVG/}}
-can also be used. Similarly, the size of
+can also be used. Similarly, the size of
images can be configured by the user. It is expected that SVG will
become the default output format eventually, but currently some SVG
files produced by \proglang{R} are not properly
@@ -473,8 +472,8 @@
\subsection{Package management}
\label{sec:package_management}
The number of \proglang{R} packages available from CRAN (the comprehensive \proglang{R} archive
-network), Omegahat\footnote{\url{http://www.omegahat.org/}} and Bioconductor \citep{Gentleman2004} has grown exponentially since \proglang{R}\,1.3
-(2001) to \proglang{R}\,2.7 (2008) \citep{Fox2008, Ligges2003, Visne2009}. RKWard
+network), Omegahat\footnote{\url{http://www.omegahat.org/}} and Bioconductor \citep{Gentleman2004} has grown exponentially since \proglang{R}\, 1.3
+(2001) to \proglang{R}\, 2.7 (2008) \citep{Fox2008, Ligges2003, Visne2009}. RKWard
utilizes functionality from a growing number of these packages, but avoids
making the installation of all supported packages a pre-requirement to using
RKWard at all. Only once a not yet installed package is required to conduct a certain
@@ -486,7 +485,7 @@
\citep{Ligges2003, Ripley2005}.

RKWard supports installing packages to any user writable location. If no current
-library location is user writable, RKWard offers to create a new one.
+library location is user writable, RKWard offers to create a new one.
On UNIX systems, interactively acquiring root privileges for
installation to the system-wide libraries is also supported. If used to
update already installed packages, the user can choose to either
@@ -498,8 +497,6 @@
\subsection{Further tool windows}
\label{sec:further_tool_windows}

-%%TODO: MM: shouldn't the names of the interesting tools
-% in this section be highlighted, maybe at least by name'' ?
The file browser tool window can be
used to open supported file types (e.\,g., \proglang{R}
scripts, \proglang{HTML} files) inside the main RKWard
@@ -511,14 +508,14 @@
produced by these commands. By default, the log shows only commands
which have been entered by the user or directly correspond to user
actions, but it can be configured to include commands which are run for
-\proglang{RKWard}'s internal purposes such as keeping the workspace browser up
+RKWard's internal purposes such as keeping the workspace browser up
to date.

Commands can be submitted while the \proglang{R} engine
has not yet started, or while another lengthy calculation is still
in progress. In these cases commands are placed into a queue first, and
executed as soon as the \proglang{R} engine becomes
-available. The pending jobs window lists current \proglang{R} commands waiting for
+available. The pending jobs'' window lists current \proglang{R} commands waiting for
evaluation by the \proglang{R} engine. While this
window is mostly of interest to application developers for diagnostic
purposes, it can also be used to interrupt selected commands.
@@ -539,16 +536,16 @@
%related RKWard dialogs and the underlying
%\proglang{R} functions.

-\proglang{RKWard} specific help pages seamlessly in a unified framework.
+RKWard specific help pages seamlessly in a unified framework.
The former includes documentation on \proglang{R} functions and packages
and the various R manuals; while the later includes help pages on
-\proglang{RKWard} in general and on specific GUI dialogs\footnote{For technical
-backgound of RKWard GUI help pages please refer to Section~\ref{sec:technical_plugins_defining}}.
+RKWard in general and on specific GUI dialogs\footnote{For technical
+backgound of RKWard GUI help pages please refer to section~\ref{sec:technical_plugins_defining}.}.
All these various types of help pages can be browsed in the same document
window, and are appropriately cross--linked. For example, help pages for
-\proglang{RKWard} GUI dialogs will typically link to documentation for both
-related \proglang{RKWard} dialogs and the underlying \proglang{R} functions.
+RKWard GUI dialogs will typically link to documentation for both
+related RKWard dialogs and the underlying \proglang{R} functions.
It worthwhile to note here that, the TDI interface of the document view area
(c.\,f., Figure \ref{fig:main_window}C) allows to utilize arbitrary number of document
windows for browsing these help pages simultaneously.
@@ -571,16 +568,15 @@
%specified topic.

An easy way to access the help system is the Help'' menu. Help pages on
-\proglang{RKWard} GUI dialogs can be accessed from the dialog itself using the
+RKWard GUI dialogs can be accessed from the dialog itself using the
Help'' button. An useful (reverse'') feature here is that these pages include
a link near the top of the page to start the corresponding GUI dialog directly.
-\marginpar{Does this need a figure?}
Help on \proglang{R} specific functions can be invoked from multiple places,
such as, the context menu of the workspace browser, by pressing F2 (function
reference) while the cursor is on a function name either in the code editor or
in the \proglang{R} console, and of course, by using the \proglang{R} \code{help()}
command. In addition, a tool view window\footnote{Note the Help search''
-tool in Figure \ref{fig:main_window}E} is provided as an interface to the
+tool in Figure \ref{fig:main_window}E.} is provided as an interface to the
\code{help.search()} command in \proglang{R}. This allows to search all installed,
all loaded, and related \proglang{R} packages for a specified topic.

Modified: branches/jss_dec_10/FINAL_JSS_TEX/RKWard_paper.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/RKWard_paper.tex	2010-12-26 17:46:00 UTC (rev 3324)
+++ branches/jss_dec_10/FINAL_JSS_TEX/RKWard_paper.tex	2010-12-26 17:51:27 UTC (rev 3325)
@@ -4,9 +4,8 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage{amssymb}
-
%% almost as usual
-\author{Stefan R\"odiger$^{\ddag,\S}$\\L.U.A.S. \& Charit\'e
+\author{Stefan R\"odiger$^{\ddag,\S}$\\Lausitz University of\\Applied Sciences\\ \& Charit\'e
\And ~	% HACK to avoid over-printing of names
\And Thomas Friedrichsmeier$^{\ddag,\S}$\\Ruhr-University Bochum
\And ~
@@ -27,12 +26,12 @@
language and programming environment. The current status of \proglang{R} is a
command line driven interface with no advanced cross-platform Graphical User
Interface (GUI), but it includes tools for building such. Over the past
-years, proprietary and non-proprietary GUI solutions have emerged,
+years, proprietary and non-proprietary GUI solutions have emerged,
based on internal or external tool kits, with different scopes and technological concepts.
For example, \proglang{Rgui.exe} and \proglang{Rgui.app} have
-become the de facto GUI on the Windows and MacOS X platforms, respectively, for most users.
+become the de facto GUI on the MS Windows and MacOS X platforms, respectively, for most users.
In this paper we discuss RKWard which aims to be both a
-comprehensive cross-platform GUI and an Integrated Development Environment
+comprehensive cross-platform GUI and an Integrated Development Environment
(IDE) for \proglang{R}. RKWard is based on the \proglang{KDE} software libraries. Statistical
procedures and plots are implemented using an extendable plugin
architecture based on \proglang{ECMAScript} (\proglang{JavaScript}), \proglang{R}, and \proglang{XML}. RKWard
@@ -43,7 +42,6 @@
compromising on flexibility and modularity of the \proglang{R} programming
environment itself.

-%%Hi Thomas, this is my suggestion for the authorship, keep in mind you are the boss
\line(1,0){40}
\item$^{\ddag}$Equal contribution, $^{\S}$Corresponding authors
%%
@@ -66,16 +64,15 @@
%% in the following format:
Stefan R\"odiger\\
-  Lausitz University of Applied Sciences (L.U.A.S)\\
+  Lausitz University of Applied Sciences\\
Department of Bio-, Chemistry and Process Engineering\\
AND\\
Center for Cardiovascular Research (CCR)\\
Charit\'e, Germany\\
-  E-mail: \email{stefan\_roediger at gmx.de}\\ % couldn't this better be an university mail adress?
+  E-mail: \email{stefan\_roediger at gmx.de}\\
E-mail: \email{rkward-devel at lists.sourceforge.net}\\
}

-%% NOTE: It appears only the last entered address is actually used. So I guess we should only give Stefan's (the corresponding author).
%  Prasenjit Kapat\\
%  Affiliation\\

Modified: branches/jss_dec_10/FINAL_JSS_TEX/background.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/background.tex	2010-12-26 17:46:00 UTC (rev 3324)
+++ branches/jss_dec_10/FINAL_JSS_TEX/background.tex	2010-12-26 17:51:27 UTC (rev 3325)
@@ -4,51 +4,50 @@
In mid 1993 Ihaka and Gentleman published initial efforts on the computing
language and programming environment \proglang{R} on the \emph{s-news} mailing list. Ambitions for
this project were to develop an \proglang{S}-like language without inheriting memory
-and performance issues. The source code of \proglang{R} was finally released in 1995, and
-since 1997 development has evolved under the umbrella of the \proglang{R}
+and performance issues. The source code of \proglang{R} was finally released in 1995, and
+since 1997 development has evolved under the umbrella of the \proglang{R}
Development Core Team \citep{RDCT2001, RDCT2010, Ihaka_Gentlemen_1993}.
\proglang{R} does not include an advanced cross-platform GUI (graphical user interface) as known from other
statistical software packages. However, \proglang{R} includes tools for building GUIs
mainly based on \proglang{Tlc/Tk} \citep{Dalgaard2001, Dalgaard2002}. Since then a
plethora of \proglang{R} GUIs have emerged (see \url{http://www.sciviews.org/_rgui/} for a
-comprehensive list). In 2005 John Fox released version 1.0 of \proglang{R Commander}, which
+comprehensive list). In 2005 John Fox released version 1.0 of \proglang{R} Commander, which
can be considered a milestone in \proglang{R} GUI development; it was the first GUI
implementation that was able to deliver the experience of statistical tests,
plots and data manipulation easily accessible for \proglang{R} novices as well as advanced
-users. However, John Fox stated that \proglang{R Commander}'s target was to provide
+users. However, John Fox stated that \proglang{R} Commander's target was to provide
functionality for basic-statistical courses; though the features have increased over
time beyond this \citep{Fox2005, Fox2007}. In November 2002 Thomas Friedrichsmeier
started the RKWard open-source software project with the goal to create an
-implementation of an \proglang{R} GUI based on \proglang{KDE} and \proglang{Qt} technologies.
+implementation of an \proglang{R} GUI-based on \proglang{KDE} and \proglang{Qt} technologies.

The scope of RKWard is deliberately broad, targeting both \proglang{R} novices and experts.
For the first group, the aim is to allow any person with knowledge on
-statistical procedures to start using RKWard for their everyday work
+statistical procedures to start using RKWard for their everyday work
without having to learn anything about the \proglang{R} programming language,
at least initially. At the same time, RKWard tries to support users who want to learn and
exploit the full flexibility of the \proglang{R} language for automating or customizing
an analysis. At the other end of the learning curve, RKWard provides advanced IDE (integrated development environment)
features to \proglang{R} experts to assist in writing \proglang{R} scripts. Yet, the idea
is that \proglang{R} experts too will benefit from the availability of task-oriented GUI
-dialogs from time to time, such as when exploring an unfamiliar type of analysis
+dialogs, such as when exploring an unfamiliar type of analysis
or by allowing to implement routinely performed tasks as a GUI element. In
-addition, many features like the integrated data editor and the plot preview
+addition, many features like the integrated data editor and the plot preview
will be useful to \proglang{R} novices and \proglang{R} experts alike in their everyday work
-(see Section \ref{sec:results_output}).
+(see section \ref{sec:user_interface}).

-%% TODO: TF: I have edited this section (and the following) a bit more. Please take a look.
RKWard provides a high level of transparency about the steps that are needed to
perform any supported task in \proglang{R}, in order to make it easy for the user to see
complete codes for all GUI actions\footnote{
-  This distinguishes RKWard from \proglang{R} GUIs such as \proglang{Red-R} (\url{http://www.red-r.org/}), which
-  specifically aims to hide the complexities of the \proglang{R} programming language, following the concept of visual data-flow
+  This distinguishes RKWard from \proglang{R} GUIs such as Red-R (\url{http://www.red-r.org/}), which
+  specifically aims to hide the complexities of the \proglang{R} programming language, following the concept of visual data-flow
programming \citep{Sutherland1966}.
}. In doing so, RKWard deliberately generates\footnote{
RKWard limits itself to generate \proglang{R} code from GUI settings.
} relatively verbose code. It avoids wrapping complex sequences of data
manipulation or analysis into custom high-level \proglang{R} functions. The task of
providing high-level functions is logically independent of the development of the
-GUI frontend, and should best be addressed in dedicated \proglang{R} packages, if neccessary.
+GUI frontend, and should best be addressed in dedicated \proglang{R} packages, if necessary.
This approach allows to make better use of the modular design of \proglang{R}, avoids
locking-in users to a specific GUI application, and provides them with more options for
customizing the generated code patterns.
@@ -61,17 +60,15 @@
artificial limitations on how users can work with the application. For example,
the user is not limited to using only one \code{data.frame} or one model at a
time. RKWard is designed to allow users to even create custom GUI dialogs
-easily (see Sections \ref{sec:technical_plugins} and \ref{sec:example_plugin}).
+easily (see sections \ref{sec:technical_plugins} and \ref{sec:example_plugin}).

-%% TODO: TF: I've removed the reference to Beta''-status. It's just an arbitrary estimate without a real definition, anyway.
or higher. However, due to its dependencies, RKWard binaries are effectively
distributable only under the terms of the GPL Version 2. Parts of the documentation are
GFDL (GNU free documentation license) licensed. While the project remains in constant development, a growing
number of users employs RKWard in productive scenarios. The source code,
selected binaries and documentation is hosted at SourceForge
-(\url{http://rkward.sourceforge.net/}). Some key milestones of the development of RKWard are
+(\url{http://rkward.sourceforge.net/}). Selected key milestones of the development of RKWard are
visualized in Figure~\ref{fig:timeline}.

\begin{figure}[htp]
@@ -82,8 +79,14 @@
\label{fig:timeline}
\end{figure}

-The rest of this paper is organized as follows: Section \ref{sec:user_interface} gives an
-overview of the main GUI elements and features of RKWard, followed by a short example
-of a simple RKWard session in Section \ref{sec:using_RKWard}.
-Next, Section \ref{sec:technical} discusses some technical aspects of the implementation, comparing them briefly to competing GUI solutions, where appropriate. An example for creating a simple plugin extension to RKWard is shown in Section \ref{sec:example_plugin}.
+%The rest of this paper is organized as follows: Section \ref{sec:user_interface} gives an
+%overview of the main GUI elements and features of RKWard, followed by a short example
+%of a simple RKWard session in Section \ref{sec:using_RKWard}.
+%Next, Section \ref{sec:technical} discusses some technical aspects of the implementation, comparing them briefly to competing GUI solutions, where appropriate. An example for creating a simple plugin extension to RKWard is shown in Section \ref{sec:example_plugin}.
+
+In this paper we will first give an overview over the main GUI elements and
+features of RKWard. Next some technical aspects of the implementation will be
+dicussed, followed by a short example of a simple RKWard session, comparing
+them briefly to competing GUI solutions, where appropriate. Additionally,
+we show an example for creating a simple plugin extension to RKWard.

Modified: branches/jss_dec_10/FINAL_JSS_TEX/conclusion_summary_acknowledgments.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/conclusion_summary_acknowledgments.tex	2010-12-26 17:46:00 UTC (rev 3324)
+++ branches/jss_dec_10/FINAL_JSS_TEX/conclusion_summary_acknowledgments.tex	2010-12-26 17:51:27 UTC (rev 3325)
@@ -14,29 +14,6 @@
\item uses standard \proglang{R} formats \citep[cf.][]{RDCT2010c} for data storage, and open standards (\proglang{HTML}, \proglang{PNG}, \proglang{SVG}) for storage of output.
\end{itemize}

-%% TF: I don't think this comparison is entirely fair. Keep in mind that this is is a special issue about R GUIs.
-%% So all those GUIs will base their calculations on R. But some will do it more transparently than others.
-%The RKWard development
-%does not focus on \proglang{R} package development, except those internally
-%required for RKWard, but keeps it at the \proglang{R} community. This design brings the intrinsic
-%benefit of highly accurate results since calculations entirely rely on \proglang{R} code.
-%Comparison of the commonly used spreadsheet applications
-%regarding estimation, random number generation and statistical distributions revealed serious
-%limitations. \proglang{R} in contrast was found to be a reliable and accurate statistical
-%software package \citep{Almiron2009, Almiron2010}.
-%------------------------------------------------------------------------------------------------
-%SR: okay I didn't make my point here. The reference to Almiron2009 and Almiron2010 has just the
-%purpose to support that R is the powerhorse and using RKWard does empower the user ultimately.
-%Maybe it should be put somewehere else. The question is Why should I use RKWard'' and not, let's say MS Office,
-%during my research work. There is scientific proof according to the papers why using R and thus RKWard is wise.
-%Certainly this applies to all R GUIs, but we are the one with the familiar spreadsheet-like interface and so on.
-%Methinks in the background section would be a good place. I seriously think that *some* readers are not aware of this issue and its implications.
-%---------------------
-%TF: Ok, so it would need to be added to the background section, since that is the only place, where we make
-%statements about R itself. I'm reluctant to add too much more to that introductory paragraph, though.
-%Perhaps something like 'has been shown to be more reliable and accurate than many competing statistical
-%software solutions \citep{Almiron2009, Almiron2010}'. If at all.
-
Future versions of RKWard will continue to add value for both groups of users. Planned features include
an enhanced interface for debugging \proglang{R} code, support for editing more types of data, and the
ability to connect the RKWard GUI to a remote \proglang{R} engine. Perhaps most importantly, RKWard will
@@ -52,3 +29,5 @@
thank (in alphabetical order) Adrien d'Hardemare, Daniele Medri, David Sibai, Detlef Steuer, Germ\'an M\'arquez Mej\'ia,
Ilias Soumpasis, Jannis Vajen, Marco Martin, Philippe Grosjean, Pierre Ecochard, Ralf Tautenhahn, Roland Vollgraf, Roy Qu,
Yves Jacolin, and many more people on \url{rkward-devel at lists.sourceforge.net} for their contributions.
+
+

Modified: branches/jss_dec_10/FINAL_JSS_TEX/example_plugin.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/example_plugin.tex	2010-12-26 17:46:00 UTC (rev 3324)
+++ branches/jss_dec_10/FINAL_JSS_TEX/example_plugin.tex	2010-12-26 17:51:27 UTC (rev 3325)
@@ -1,7 +1,7 @@
% !TEX root = RKWard_paper.tex
\section{Extending RKWard - an example of creating a plugin}
\label{sec:example_plugin}
-As discussed in Section~\ref{sec:technical_plugins}, plugins in RKWard are
+As discussed in section~\ref{sec:technical_plugins}, plugins in RKWard are
defined by four separate files (Figure~\ref{fig:plugin_structure}). To give an impression of the technique,
this section shows (portions of) the relevant files for a plugin that provides
a simple dialog for a t-test. For brevity, the help-file is omitted.
@@ -10,14 +10,9 @@
A so called .pluginmap'' file declares each plugin, and, if appropriate, defines where it should
be placed in the menu hierarchy. Usually each .pluginmap-file declares many plugins. In this example
-we only show one, namely,
-%% TF: Well, I don't think this is really a feature to advertize. We don't actually support this,
-%% and any changes would be overwritten by the next update.
-%Since the files are editable with a text editor it is possible for the user to adjust
-the definition entry for a two variable t-test (see Figure~\ref{fig:ttest-gui-example}).
+we only show one, namely, the definition entry for a two variable t-test (see Figure~\ref{fig:ttest-gui-example}).
The pluginmap (\code{<!DOCTYPE rkpluginmap>}) gives a unique identifier (id"), the location of the GUI description (file"), and the window title (label''). The menu
-is defined in a hierarchical structure (see code example below; long lines are broken at $\ldots~\ldots$''). Moreover, the position within the menu can be explicitly defined.
+is defined in a hierarchical structure (see code example below\footnote{Long lines are broken at $\ldots~\ldots$''.}). Moreover, the position within the menu can be explicitly defined.
This might be required if the menu entries are to be ordered non-alphabetically.

\begin{footnotesize}
@@ -46,10 +41,11 @@
\end{Code}
\end{footnotesize}

+
\begin{figure}[htp]
\centering
\includegraphics{../figures/ttest-gui-example.png}
- \caption{Generated menu GUI as defined by the pluginmap.}
+ \caption{Generated menu GUI as defined by the plugin map.}
\label{fig:ttest-gui-example}
\end{figure}

@@ -64,10 +60,9 @@

The \proglang{XML} file defines the t-test plugin (\code{<!DOCTYPE rkplugin>}) to be organized in two tabs (Figure~\ref{fig:t_test}A) asking for the variables
to analyze in the first tab and optionally in the second tab for specific settings like the confidence level (default 0.95). Note that this \proglang{XML} file
-also invokes the \proglang{XML} help file. Two variables can be selected (\code{<varslot .../>}). These are set to be required'', i.e.
+also invokes the \proglang{XML} help file. Two variables can be selected (\code{<varslot .../>}). These are set to be required'', i.\,e.
the Submit'' button will remain disabled until the user has made a valid selection for both.

-
\begin{footnotesize}
\begin{Code}
<!DOCTYPE rkplugin>
@@ -180,7 +175,8 @@
\end{Code}
\end{footnotesize}

-The generated code readable by the user is the following \proglang{R} code. Here, \code{rk.header} and \code{rk.results}
+The generated code readable by the user is the following \proglang{R} code (code below and Figure~\ref{fig:t_test}).
are RKWard functions provided by the package \pkg{rkward}. In case the package is installed the code below
can be run from any \proglang{R} engine.

@@ -207,4 +203,4 @@
})

\end{Code}
-\end{footnotesize}
+\end{footnotesize}
\ No newline at end of file

Modified: branches/jss_dec_10/FINAL_JSS_TEX/example_session.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/example_session.tex	2010-12-26 17:46:00 UTC (rev 3324)
+++ branches/jss_dec_10/FINAL_JSS_TEX/example_session.tex	2010-12-26 17:51:27 UTC (rev 3325)
@@ -1,20 +1,20 @@
% !TEX root = RKWard_paper.tex
-\section{Using RKWard - an example RKWard session}
+\section{Using RKWard -- an example RKWard session}
\label{sec:using_RKWard}
This section describes an example RKWard session, in order to give an idea
of what working with RKWard is like in practice.
The session is organized along the routine tasks of importing,
analyzing, and visualizing data. In this example, it is assumed that an experimental
-treatment was given to 20 test subjects, and the objective is to compare the responses
+treatment was given to 20 test subjects. The objective is to compare the responses
before and after the treatment.

\subsection{Importing data}
\label{sec:importing_data}
-Suppose that the data was saved as or exported to CSV format, for example, from a
+Suppose that the data was saved as or exported to CSV format, for example, from a
spreadsheet application. RKWard's import plugin can
comfortably read it into a new \proglang{R} object.
The import dialog (File$\rightarrow$Import$\rightarrow$Import
-format$\rightarrow$Import Text / CSV data'') assists in reading the
+format$\rightarrow$Import Text/CSV data'') assists in reading the
data by a common point \& click interface (Figure~\ref{fig:import_data}A). In this
example, comma'' and period'' were chosen via Quick mode'' as the field
separator and decimal point characters respectively.
@@ -49,16 +49,16 @@
Pressing the Submit'' button opens the output document tab
showing the results (Figure~\ref{fig:t_test}B).

+
\begin{figure}[htp]
\centering
- \includegraphics[width=15.5cm]{../figures/t-test.png}
- \caption{A) Student's t-test dialog for two variables. B) Test results in tabular \proglang{HTML} format.
+ \includegraphics[width=15.5cm]{../figures/t-test2.png}
+ \caption{A) Student's t-test dialog for two variables. The bottom area shows the \proglang{R} code corresponding to the settings.
+  B) Test results in tabular \proglang{HTML} format.
Besides the result, information such as the date of analysis and the relevant test parameters are also reported.}
\label{fig:t_test}
\end{figure}

-
-
\subsection{Creating a plot}
\label{sec:create_plot}
To visualize the data, Boxplot'' is chosen from the Plots'' menu
@@ -71,12 +71,11 @@
\begin{figure}[htp]
\centering
\includegraphics[width=15.5cm]{../figures/boxplot1.png}
- \caption{Boxplot dialog. The first tab (Variables'') is used to select the variables for analysis. It is possible to
+ \caption{Boxplot dialog. The first tab Variables'' is used to select the variables for analysis. It is possible to
combine any data present in \code{.GlobalEnv}. The second tab Options'' allows further adjustments (e.\,g., the addition of mean and standard deviation) to the plot (not shown).}
\label{fig:boxplot1}
\end{figure}

-
\begin{figure}[htp]
\centering
\includegraphics[width=15.5cm]{../figures/boxplot2.png}

Modified: branches/jss_dec_10/FINAL_JSS_TEX/installing_starting_RKWard.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/installing_starting_RKWard.tex	2010-12-26 17:46:00 UTC (rev 3324)
+++ branches/jss_dec_10/FINAL_JSS_TEX/installing_starting_RKWard.tex	2010-12-26 17:51:27 UTC (rev 3325)
@@ -1,10 +1,10 @@
\section{Installing and starting RKWard}
\label{sec:installing_starting_RKWard}
-RKWard can be downloaded free of charge in source and binary form from
-\url{http://sourceforge.net/}. On the GNU/Linux
-platform, binary packages are available for many major distributions,
-including Debian, Ubuntu, OpenSuse, Gentoo, and Fedora. On the Windows
-platform, RKWard is available in two forms: as a single binary
+RKWard can be downloaded free of charge in source and binary form\footnote{\url{http://rkward.sourceforge.net/}}.
+On the GNU/Linux platform, binary packages are available for many major distributions,
+including Debian, Ubuntu, OpenSuse, Gentoo, and Fedora. On the MS Windows
+platform, RKWard is available in two forms\footnote{For detailed information please refere to the
+RKWard wiki \url{http://sourceforge.net/apps/mediawiki/rkward/index.php?title=Main_Page}.}: as a single binary
installer (requires existing installations of
\proglang{R} and \proglang{KDE}) and
as an installation bundle (including \proglang{R} and
@@ -19,6 +19,6 @@
embedded \proglang{R} engine. To facilitate the first
steps for new users, a dialog offers the choice to load an existing
workspace, to start with an empty workspace, or to create a new
-\code{data.frame} and open that for editing. Also, an overview help-page is
+\code{data.frame} and open that for editing. Also, an overview help page is
shown in the document area of the main window. Both start-up features
can be turned off.
\ No newline at end of file

Modified: branches/jss_dec_10/FINAL_JSS_TEX/technical.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/technical.tex	2010-12-26 17:46:00 UTC (rev 3324)
+++ branches/jss_dec_10/FINAL_JSS_TEX/technical.tex	2010-12-26 17:51:27 UTC (rev 3325)
@@ -2,7 +2,7 @@
\label{sec:technical}
In this section we will give a compact overview over key aspects of RKWards
technical design. We will give slightly more attention to the details of the
-plugin framework (Section~\ref{sec:technical_plugins}) used in RKWard, since this is central to the extensibility of
+plugin framework (section~\ref{sec:technical_plugins}) used in RKWard, since this is central to the extensibility of
RKWard.

\subsection{Asynchronous command execution}
@@ -13,7 +13,7 @@
time-consuming analysis. For instance, while waiting for the estimation of a
complex model to complete, the user should be able to continue to use the GUI to
prepare the next analysis. Asynchronous command execution is also a prerequisite
-for an implementation of the plot-preview feature (see Section~\ref{sec:plot_previews}). Commands
+for an implementation of the plot-preview feature (see section~\ref{sec:plot_previews}). Commands
generated from plugins or user actions are placed in queue and are evaluated in
a separate thread in the order they were submitted\footnote{
It is possible, and in some cases necessary, to enforce a different order of command execution in
@@ -23,11 +23,11 @@
}. The asynchronous design implies that RKWard avoids to rely on the
\proglang{R} engine during interactive use. This is one of several reasons for
the use of \proglang{ECMAScript} in plugins, instead of scripting using
-\proglang{R} (see Sections~\ref{sec:technical_toolkit} and \ref{sec:technical_plugins}).
+\proglang{R} (see sections~\ref{sec:technical_toolkit} and \ref{sec:technical_plugins}).
A further implication is that RKWard avoids querying information about the
existence and properties of objects in \proglang{R} interactively. Rather,
RKWard keeps a representation of \proglang{R} objects and their basic properties
-(e.\,g., class and dimensions), which is used for the workspace browser (Section~\ref{sec:workspace_browser_object_viewer}),
+(e.\,g., class and dimensions), which is used for the workspace browser (section~\ref{sec:workspace_browser_object_viewer}),
object name completion, function argument hinting and
other occasions. The object representation includes objects in all environments
in the search path, and any objects contained within these environments in a
@@ -43,7 +43,7 @@
A further side-effect of the asynchronous threaded design is that there is
inherently a rather clear separation between GUI code and code making direct use
of the \proglang{R} API (see also Figure~\ref{fig:design_sketch}). In the current development version, the evaluation
-of \proglang{R} commands has even been moved into a separate process. Therefore in future releases it could
+of \proglang{R} commands has even been moved into a separate process. Therefore in future releases it could
be possible to run GUI and \proglang{R} engine on different computers.

\begin{figure}[htp]
@@ -66,7 +66,7 @@
workspace browser, object selection lists, and object views. Beyond that,
detecting any changes is particularly important with respect to objects which
are currently opened for editing in the data editor (which provides an illusion
-of in-place editing, see Section~\ref{sec:spreadsheet}). Here, it is necessary to synchronize
+of in-place editing, see section~\ref{sec:spreadsheet}). Here, it is necessary to synchronize
the data between \proglang{R} and the GUI in both directions.

For simplicity and performance, object modification detection is only
@@ -103,7 +103,7 @@
f ()
\end{Code}

-Future versions of RKWard will try to avoid this performance problem.
+Future versions of RKWard will try to avoid this performance problem.
One approach that is currently under consideration is to simply perform
a pointer comparison of the SEXP records of objects in global environment with
their copies in the hidden storage environment. Due to the implicit sharing of
@@ -120,7 +120,7 @@
still known to have portability issues especially on Mac OS, and to some degree
also on the MS Windows platform.

-The major reason for chosing the \proglang{KDE} and \proglang{Qt} libraries was their providing
+The major reason for chosing the \proglang{KDE} and \proglang{Qt} libraries was their providing
of many high level features which have allowed RKWard development to make quick
progress despite limited resources. Most importantly, the \proglang{KDE} libraries provide a
full featured text editor \citep{CullmannND} as a component which can be
@@ -130,14 +130,13 @@
embeddable KPart might prove useful in future versions of RKWard, when better
integration with office-suites will be sought.

-%% NOTE: It's XMLGUI'' in one word, even though it's XML and GUI
Another technology from the \proglang{KDE} libraries that is important to the development
of RKWard is the XMLGUI'' technology
\citep{Faure2000}. This is especially helpful in providing an integrated GUI for
the various components of RKWard.

Plugins in RKWard rely on \proglang{XML} (Extensible Markup Language)\footnote{\url{http://www.w3.org/XML/}}
-and \proglang{ECMAScript}\footnote{\url{http://www.ecmascript.org/}} (see Section~\ref{sec:technical_plugins}). \proglang{XML} is not
+and \proglang{ECMAScript}\footnote{\url{http://www.ecmascript.org/}} (see section~\ref{sec:technical_plugins}). \proglang{XML} is not
only well suited to describe the layout of the GUI of plugins, but simple
functional logic can also be represented \citep{Visne2009}. \proglang{ECMAScript} was
chosen for the generation of \proglang{R} commands within plugins, in particular due to its
@@ -154,7 +153,7 @@
Contrary to the approach used in \pkg{JGR} \citep{HelbigTheus2005}, RKWard does
not technically provide a custom on-screen graphics device. RKWard detects when
new graphics windows are created via calls to \code{X11()} or \code{windows()}. These windows
-are then "captured" in a platform dependent way (based on the XEmbed \citep{Ettrich2002} protocol
+are then captured'' in a platform dependent way (based on the XEmbed \citep{Ettrich2002} protocol
for X11, on reparenting for the MS Windows platform). An RKWard menu bar and a
toolbar is then added to these windows to provide added functionality. While
this approach requires some platform dependent code, any corrections or
@@ -170,7 +169,7 @@
changes to the on-screen canvas and record the existing plot before a new plot
wipes it out. A single global'' history for the recorded plots is maintained
which is used by all the on-screen device windows. This is similar to the
-implementation in \code{Rgui.exe} (MS Windows), but unlike the one in \code{Rgui.app}
+implementation in \code{Rgui.exe} (MS Windows), but unlike the one in \code{Rgui.app}
(MacOS X). Each such device window points to a position in the history
and behaves independently when recording a new plot or deleting an existing
one.
@@ -199,19 +198,19 @@
Plugins are also used in some other contexts within RKWard, for instance the
Kate part supports extensions via plugins and user scripts. At this point we
will focus only on plugins generating \proglang{R} code.
-}. Thus, the plugin framework is basically a toolset used to define
+}. Thus, the plugin framework is basically a tool set used to define
GUIs for the automatic generation of \proglang{R} code.

Much of the functionality in RKWard is currently implemented as plugins. For example, import of different file
formats relying on the \pkg{foreign} package is achieved by this approach. Similarly,
-RKWard provides a modest GUI driven toolset for statistical analysis,
+RKWard provides a modest GUI driven tool set for statistical analysis,
especially for Item Response Theory (IRT), distributions and descriptive
statistical analysis.

\subsubsection{Defining a plugin}
\label{sec:technical_plugins_defining}
Plugins consist of four parts as visualized in Figure~\ref{fig:plugin_structure}
-\citep[see Section~\ref{sec:example_plugin} for an example; for a complete
+\citep[see section~\ref{sec:example_plugin} for an example; for a complete
manual, see][]{Friedrichsmeier2010}:

\begin{figure}[htp]
@@ -224,18 +223,18 @@

\begin{itemize}
\item
-    called a \textbf{plugin map}'', is used to declare one or more plugins, each
+    called a \textbf{plugin map}, is used to declare one or more plugins, each
with a unique identifier. For most plugins, the plugin map also defines the
placement in the menu hierarchy. Plugin maps are meant to represent groups of
plugins. Users can disable/enable such groups of plugins in order to reduce the

\item
-    A second \proglang{XML} file describes the \textbf{plugin GUI layout} itself (Section~\ref{sec:defining_dialog_ui}).
+    A second \proglang{XML} file describes the \textbf{plugin GUI layout} itself (section~\ref{sec:defining_dialog_ui}).
Most importantly this includes
the definition of the GUI-layout and GUI-behavior. High level GUI-elements can
-    be defined with simple \proglang{XML} tags. Layout is based on rows'' and ''columns'',
+    be defined with simple \proglang{XML}-tags. Layout is based on rows'' and ''columns'',
instead of pixel counts. In most cases this allows for a sensible resizing
behavior. RKWard supports single-page dialogs, and multi-page wizards, however,
most plugins define only a single-page UI. GUI behavior can be programmed by
@@ -245,12 +244,12 @@
behavior using \proglang{ECMAScript}.

\item
-    A separate \textbf{\proglang{ECMAScript}-file} (Section~\ref{sec:generating_r_code_from_ui_settings})
+    A separate \textbf{\proglang{ECMAScript} file} (section~\ref{sec:generating_r_code_from_ui_settings})
is used to translate GUI settings into \proglang{R}
code\footnote{
In earlier versions of RKWard, \proglang{PHP} was used
as a scripting engine, and \proglang{PHP} interpreters were run in a separate process.
-        Usage of \proglang{PHP} was abandoned in RKWard version 0.5.3 for performace reasons.
+        Usage of \proglang{PHP} was abandoned in RKWard version 0.5.3 for performance reasons.
}. This \proglang{ECMAScript} file is evaluated asynchronously in a separate thread. RKWard
currently enforces structuring the code into three separate sections for
preprocessing, calculating, and printing results. The generated code is always
@@ -265,7 +264,7 @@
the top, which can be useful after following a link from a related help page.
\end{itemize}

-Changes to the source code of these elements take effect without the requirement to recompile RKWard.
+Changes to the source code of these elements take effect without the requirement to recompile RKWard.

\subsubsection{Embedding and reuse of plugins}
\label{sec:technical_plugins_embedding}
@@ -279,15 +278,12 @@
A third mechanism allows to completely embed one plugin into another. For
instance the \code{plot\_options} plugin is used by many plugins in RKWard, to provide
common plot options such as labels, axis options, and grids. Other plugins
-can embed it using the \code{embed} tag in their \proglang{XML} file (the plugin supports
+can embed it using the \code{embed}-tag in their \proglang{XML} file (the plugin supports
hiding irrelevant options). The generated code portions can be fetched from the
\proglang{ECMAScript} file just like any other GUI settings, and inserted into the complete
code. Other examples of embedded plugins are options for histograms, barplots,
and ECDF plots (which in turn embed the generic plot options plugin).

-%% TODO: Santa Claus: merry X-mas ;-)
-%% this comment is just to remind we where i was :: MM
-
\subsubsection{Enforcing a consistent interface}
\label{sec:technical_plugins_consistency}
RKWard tries to make it easy to create a consistent interface in all plugins.
@@ -303,10 +299,10 @@
standardized caption for each piece of output. Printing results in vector or
tabular form is facilitated by \code{rk.results()}. A wide range of objects can be
printed using \code{rk.print()}, which is just a thin wrapper around the
-\code{HTML()}-function of the \pkg{R2HTML}-package \citep{Lecoutre2003} in the current
+\code{HTML()} function of the \pkg{R2HTML} package \citep{Lecoutre2003} in the current
implementation. The use of custom formatting with \proglang{HTML} is possible, but
-discouraged. Standard elements such as a horizontal separator, and the run-again
-link (see Section~\ref{sec:results_output}) are inserted automatically, without the need to define
+discouraged. Standard elements such as a horizontal separator, and the Run again''
+link (see section~\ref{sec:results_output}) are inserted automatically, without the need to define
them for each plugin.

Regarding the style of the generated \proglang{R} code, enforcing consistency is harder,
@@ -339,7 +335,7 @@
of the plugins depend on \proglang{R} packages other than the recommended \proglang{R} base packages.
Examples herein are the calculation of kurtosis, skewness or the exact Wilcoxon
test. Installation of additional packages is handled automatically by RKWard
-(see Section~\ref{sec:package_management}).
+(see section~\ref{sec:package_management}).