[rkward-cvs] SF.net SVN: rkward:[3405] branches/jss_dec_10/FINAL_JSS_TEX
sjar at users.sourceforge.net
sjar at users.sourceforge.net
Sun Jan 30 18:42:59 UTC 2011
Revision: 3405
http://rkward.svn.sourceforge.net/rkward/?rev=3405&view=rev
Author: sjar
Date: 2011-01-30 18:42:59 +0000 (Sun, 30 Jan 2011)
Log Message:
-----------
applied \pkg{} to RKWard, KDE, Qt, Red-R, KWord, Kate, X11 and XEmbed
* some open issues (see private mail)
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 2011-01-30 17:49:58 UTC (rev 3404)
+++ branches/jss_dec_10/FINAL_JSS_TEX/GUI_elements.tex 2011-01-30 18:42:59 UTC (rev 3405)
@@ -1,11 +1,11 @@
\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}.
+This section gives an overview of the main user interface elements and features of \pkg{RKWard}.
+For a use case oriented example of an \pkg{RKWard} session, see Section~\ref{sec:using_RKWard}.
The default layout\footnote{
- Many aspects of the RKWard GUI can be customized by the user. For simplicity we will
- describe the default appearance of RKWard, only.
+ Many aspects of the \pkg{RKWard} GUI can be customized by the user. For simplicity we will
+ describe the default appearance of \pkg{RKWard}, only.
} of the main application window is divided into five
parts, as depicted in Figure~\ref{fig:main_window}. The top of the window is occupied by menu bar and toolbar
(Figure~\ref{fig:main_window}A). The content of both bars is partially context
@@ -16,13 +16,13 @@
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 \pkg{RKWard} provides a GUI
interface.
\begin{figure}[b!]
\centering
\includegraphics[width=15.450cm]{../figures/main_window.png}
- \caption{Default RKWard main window after start up.
+ \caption{Default \pkg{RKWard} main window after start up.
A) Menu bar and toolbar, B) tool panel showing workspace browser, C) document view area, showing
a help page, D) tool panel showing embedded \proglang{R} console, and E) status bar.
Panels B and D can be resized or collapsed. The red border around B indicates that the workspace browser is the active interface element.}
@@ -75,8 +75,8 @@
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
-\proglang{KDE} editor component,
+then to select ``Settings$\rightarrow$Configure Shortcuts''. Since \pkg{RKWard} relies on the
+\pkg{RKWard} editor component,
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
@@ -137,9 +137,9 @@
\subsection{Code editor}
\label{sec:code_editor}
-RKWard comes with an advanced
+\pkg{RKWard} comes with an advanced
\proglang{R} script editor, based on the
-\proglang{KDE} advanced text editor component (Kate; \url{http://kate-editor.org/}). Features of this
+\pkg{RKWard} advanced text editor component (\pkg{Kate}; \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
folding, block-wise indentation adjustments or commenting, automatic
@@ -154,7 +154,7 @@
offers object name completion and function argument hinting
(Figure~\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
+completion and function argument hinting features in \pkg{RKWard} predate the
inclusion of similar features into the core
\proglang{R} distribution. For this reason, they are
technically based on different mechanisms.}. A further feature specific
@@ -192,7 +192,7 @@
\subsection[Using the R console]{Using the \proglang{R} console}
\label{sec:using_R_console}
-For users with knowledge of \proglang{R}, RKWard provides direct access to the
+For users with knowledge of \proglang{R}, \pkg{RKWard} provides direct access to the
embedded \proglang{R} engine in the
\proglang{R} console tool window. It is important to understand that technically this is an
emulation of \proglang{R} running in a console
@@ -200,7 +200,7 @@
differences, e.\,g., with respect to the command history feature in
\proglang{R}.
-However, for most purposes RKWard's \proglang{R} console can be used exactly
+However, for most purposes \pkg{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}).
Most prominently, it supports syntax highlighting, code
@@ -218,7 +218,7 @@
\label{sec:spreadsheet}
Historically, one of the earliest
-features of RKWard is a built-in spreadsheet-like data editor.
+features of \pkg{RKWard} is a built-in spreadsheet-like data editor.
Currently, editing \proglang{R} objects of type
\code{data.frame} is possible. In contrast to the \code{data.frame} editing shipped
with the \proglang{R} core distribution, this editor
@@ -231,12 +231,12 @@
\begin{figure}[b!]
\centering
\includegraphics[width=15.5cm]{../figures/data_editors.png}
- \caption{RKWard with several \code{data.frame}s in use at the same time. A)
+ \caption{\pkg{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. Two further \code{data.frame}s
are opened in the background in tabs.
B) Another \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)}
+ are also usable within an \pkg{RKWard} session. In this example \code{fix(DNase)}
was invoked from the console (arrow).}
\label{fig:data_editors}
\end{figure}
@@ -257,7 +257,7 @@
``Label'', which is stored in
\proglang{R} as an attribute of the column.
-Contrary to many other editors, the data editor in RKWard does not
+Contrary to many other editors, the data editor in \pkg{RKWard} does not
automatically convert data types of columns. For instance, if a
non-numeric string is entered into a cell of a numeric column, the data
type of the column remains numeric, and the entered value is
@@ -277,7 +277,7 @@
mode to examine data objects.
In the context of data editing, it is noteworthy that
-RKWard supports working with multiple objects simultaneously, rather than
+\pkg{RKWard} supports working with multiple objects simultaneously, rather than
limiting actions to a single active \code{data.frame}, as with e.\,g., \pkg{Rcmdr} or
\pkg{DeduceR}. Given this non-modal interface design, multiple data editor
windows can be opened at once (Figure~\ref{fig:data_editors}).
@@ -287,7 +287,7 @@
Dealing with data -- i.\,e., importing, transforming, filtering, analyzing, and visualizing --
is the core strength of \proglang{R}, and one central goal of
-RKWard is to make the most of this functionality available to a broader
+\pkg{RKWard} is to make the most of this functionality available to a broader
audience by providing it in the form of easy to use GUI dialogs. Since
the data handling functionality itself is provided by
\proglang{R} and its numerous add-on packages, this
@@ -296,12 +296,12 @@
the GUI, and having the generated code evaluated by the
\proglang{R} engine.
This general pattern, implemented as plugins, is the
-basic recipe for most of the functionality provided by RKWard
+basic recipe for most of the functionality provided by \pkg{RKWard}
(see Section~\ref{sec:technical_plugins} for details). For
the purpose of this article we will look at the standard
elements of data handling functions by an example of importing comma-separated values (CSV)
data\footnote {
- Note that on purpose, RKWard does not have its
+ Note that on purpose, \pkg{RKWard} does not have its
own file format for data import and export, but rather uses
\proglang{R} workspaces as default data format. Additionally, it is possible
to import data from several sources as described in this section. Of course, further formats can
@@ -310,8 +310,8 @@
the \proglang{R} console (Section~\ref{sec:using_R_console}).
}. Further examples are given in Section~\ref{sec:using_RKWard}.
-At the time of this writing, RKWard provides support for importing \proglang{SPSS},
-\proglang{Stata}, and ``delimited text'' data. Internally, RKWard
+At the time of this writing, \pkg{RKWard} provides support for importing \proglang{SPSS},
+\proglang{Stata}, and ``delimited text'' data. Internally, \pkg{RKWard}
relies on standard \proglang{R} functions and the package \pkg{foreign}
\citep{Murdoch2002} for reading these data files. To import CSV data,
select ``File$\rightarrow$Import format$\rightarrow$Import Text$\rightarrow$CSV''
@@ -355,10 +355,10 @@
\subsection{Graphics window and plot previews}
\label{sec:plot_previews}
-For plotting, RKWard relies on the graphics capabilities provided by
+For plotting, \pkg{RKWard} relies on the graphics capabilities provided by
\proglang{R}. All \proglang{R}
devices, including on{}-screen devices, can be used in the regular way.
-However, for the \code{X11()} and \code{windows()} devices, RKWard adds a menu
+However, for the \code{X11()} and \code{windows()} devices, \pkg{RKWard} adds a menu
bar and a toolbar to the device windows (on the Microsoft Windows platform,
replacing the default menu bar provided by the device). The menu
bar and toolbar give access to a number of different functions,
@@ -384,7 +384,7 @@
\begin{figure}[b!]
\centering
\includegraphics{../figures/plot_history_cropped.png}
- \caption{On{}-screen graphics device window in RKWard. The plot history is
+ \caption{On{}-screen graphics device window in \pkg{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
set of a random sample (\code{rnorm()}). The plot can be
@@ -393,8 +393,8 @@
\label{fig:plot_history}
\end{figure}
-Further, RKWard provides access to different plotting functions using GUI dialogs,
-available from the ``Plots'' menu. Wherever appropriate, RKWard supports a ``plot
+Further, \pkg{RKWard} provides access to different plotting functions using GUI dialogs,
+available from the ``Plots'' menu. Wherever appropriate, \pkg{RKWard} supports a ``plot
preview'' feature. When the ``Preview'' box of
the respective dialog is checked, a device window is opened, which
shows the plot as it would be created with the current settings (see Section~\ref{sec:create_plot} for an example). The
@@ -411,7 +411,7 @@
While all basic mechanisms of
capturing and documenting \proglang{R} output can also
-be used, RKWard provides a dedicated output file and a output
+be used, \pkg{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.
The same applies to error messages, in case a plugin fails to perform its task.
@@ -447,7 +447,7 @@
\end{figure}
The formatting of the output is kept to a minimum. In particular,
-RKWard is very reluctant to round numerical results for the sake of a
+\pkg{RKWard} is very reluctant to round numerical results for the sake of a
pretty output. Rather, the focus is on making the results easily
accessible for further processing, typically in a dedicated word
processor. Output is based on
@@ -458,7 +458,7 @@
possible to select and copy sections of the output directly from the
output window, and to paste them into office applications as
richly formatted text; even images and tables can be easily copied by drag \& drop to many office applications. In future releases,
-it is planned to integrate RKWard
+it is planned to integrate \pkg{RKWard}
with existing office suites. This
will possibly also mean addition of different file formats such as Open Document Format and technologies such as \pkg{sweave} and \pkg{odfWeave}
\citep{Leisch2002, Kuhn2006}.
@@ -472,16 +472,16 @@
become the default output format eventually, but currently some SVG
files produced by \proglang{R} are not properly
rendered by older supported versions of the
-\proglang{KDE} libraries.
+\pkg{RKWard} libraries.
\subsection{Package management}
\label{sec:package_management}
The number of \proglang{R} packages available from the comprehensive \proglang{R} archive
network (CRAN), 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
+(2001) to \proglang{R}\, 2.7 (2008) \citep{Fox2008, Ligges2003, Visne2009}. \pkg{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
+\pkg{RKWard} at all. Only once a not yet installed package is required to conduct a certain
action, a package management dialog is invoked automatically, which allows to
download and install the package from a repository such as CRAN. The package
management dialog can also be invoked manually from the menu
@@ -489,12 +489,12 @@
packages. The underlying package management technology is that of \proglang{R}
\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.
+\pkg{RKWard} supports installing packages to any user writable location. If no current
+library location is user writable, \pkg{RKWard} offers to create a new one.
On UNIX systems, interactively acquiring root privileges for
installation to the system-wide libraries is also supported.
The installation process
-itself can be monitored at the interface for error tracking. At the time of this writing, RKWard has no
+itself can be monitored at the interface for error tracking. At the time of this writing, \pkg{RKWard} has no
built-in tools for the interactive exploration of \proglang{R} packages. However, it is
possible to invoke external helpers \citep{Zhang2004}.
@@ -503,7 +503,7 @@
The file browser tool window can be
used to open supported file types (e.\,g., \proglang{R}
-scripts, HTML files) inside the main RKWard
+scripts, HTML files) inside the main \pkg{RKWard}
window. For unsupported file types (such as portable document format; PDF), the
system's default external applications are used.
@@ -512,7 +512,7 @@
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
-RKWard's internal purposes such as keeping the workspace browser up
+\pkg{RKWard}'s internal purposes such as keeping the workspace browser up
to date.
Commands can be submitted while the \proglang{R} engine
@@ -527,21 +527,21 @@
\subsection{Help system}
\label{sec:help_system}
-RKWard provides access to both \proglang{R} specific and
-RKWard specific help pages.
+\pkg{RKWard} provides access to both \proglang{R} specific and
+\pkg{RKWard} specific help pages.
\proglang{R} specific documentation includes help pages for functions and packages
-and the various \proglang{R} manuals. RKWard specific documentation consists of
-help pages on RKWard in general and on specific GUI dialogs\footnote{For technical
-background of RKWard GUI help pages please refer to Section~\ref{sec:technical_plugins_defining}.}.
+and the various \proglang{R} manuals. \pkg{RKWard} specific documentation consists of
+help pages on \pkg{RKWard} in general and on specific GUI dialogs\footnote{For technical
+background of \pkg{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 can be cross--linked. For example, help pages for
-RKWard GUI dialogs will typically link to documentation for both
-related RKWard dialogs and the underlying \proglang{R} functions.
+\pkg{RKWard} GUI dialogs will typically link to documentation for both
+related \pkg{RKWard} dialogs and the underlying \proglang{R} functions.
An arbitrary number of help windows can be browsed simultaneously, in the
TDI view area (see Figure~\ref{fig:main_window}C) or in detached windows.
A central access point to the help system is the ``Help'' menu. Further, help pages on
-\nobreak{RKWard} GUI dialogs can be accessed from the dialog itself using the
+\nobreak{\pkg{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.
Help on \proglang{R} specific functions can be invoked from multiple places,
@@ -552,7 +552,7 @@
\code{help.search()} command in \proglang{R}. This allows to search all installed,
all loaded, or specific \proglang{R} packages for a specified topic.
-The help browser window is based on the \proglang{KDE}
+The help browser window is based on the \pkg{RKWard}
HTML viewer component and supports many standard
features like increasing or decreasing the font size and searching text
within a page. Additionally, \proglang{R} code inside a help
Modified: branches/jss_dec_10/FINAL_JSS_TEX/RKWard_paper.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/RKWard_paper.tex 2011-01-30 17:49:58 UTC (rev 3404)
+++ branches/jss_dec_10/FINAL_JSS_TEX/RKWard_paper.tex 2011-01-30 18:42:59 UTC (rev 3405)
@@ -10,7 +10,7 @@
\AND Prasenjit Kapat\\The Ohio State University
\And Meik Michalke\\Heinrich Heine University\\D\"usseldorf
}
-\title{RKWard -- A Comprehensive Graphical User Interface and Integrated Development Environment for Statistical Analysis with \proglang{R}}
+\title{\pkg{RKWard} -- A Comprehensive Graphical User Interface and Integrated Development Environment for Statistical Analysis with \proglang{R}}
%% for pretty printing and a nice hypersummary also set:
\Plainauthor{Stefan R\"odiger, Thomas Friedrichsmeier, Prasenjit Kapat, Meik Michalke} %% comma-separated
@@ -27,14 +27,14 @@
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 Microsoft Windows and Mac OS X platforms, respectively, for most users.
-In this paper we discuss RKWard which aims to be both a
+In this paper we discuss \pkg{RKWard} which aims to be both a
comprehensive cross-platform GUI and an integrated development environment
-for \proglang{R}. RKWard is based on the \proglang{KDE} software libraries. Statistical
+for \proglang{R}. \pkg{RKWard} is based on the \pkg{KDE} software libraries. Statistical
procedures and plots are implemented using an extendable plugin
-architecture based on \proglang{ECMAScript} (\proglang{JavaScript}), \proglang{R}, and XML. RKWard
+architecture based on \proglang{ECMAScript} (\proglang{JavaScript}), \proglang{R}, and XML. \pkg{RKWard}
provides an excellent tool to manage different types of data objects;
even allowing for seamless editing of certain types. The objective of
-RKWard is to provide a portable and extensible \proglang{R} interface for both
+\pkg{RKWard} is to provide a portable and extensible \proglang{R} interface for both
basic and advanced statistical and graphical analysis, while not
compromising on flexibility and modularity of the \proglang{R} programming
environment itself.
Modified: branches/jss_dec_10/FINAL_JSS_TEX/background.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/background.tex 2011-01-30 17:49:58 UTC (rev 3404)
+++ branches/jss_dec_10/FINAL_JSS_TEX/background.tex 2011-01-30 18:42:59 UTC (rev 3405)
@@ -18,16 +18,16 @@
John Fox stated that \pkg{Rcmdr}'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 a GUI for
-\proglang{R} based on \proglang{KDE}\footnote{\url{http://www.kde.org/}} and \proglang{Qt}\footnote{\url{http://qt.nokia.com/}} technologies.
+started the \pkg{RKWard} open-source software project with the goal to create a GUI for
+\proglang{R} based on \pkg{KDE}\footnote{\url{http://www.kde.org/}} and \pkg{Qt}\footnote{\url{http://qt.nokia.com/}} technologies.
-The scope of RKWard is deliberately broad, targeting both \proglang{R} novices and experts.
+The scope of \pkg{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 \pkg{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
+at least initially. At the same time, \pkg{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 integrated development environment (IDE)
+an analysis. At the other end of the learning curve, \pkg{RKWard} provides advanced integrated development environment (IDE)
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, such as when exploring an unfamiliar type of analysis
@@ -36,13 +36,13 @@
will be useful to \proglang{R} novices and \proglang{R} experts alike in their everyday work
(see Section~\ref{sec:user_interface}).
-RKWard provides a high level of transparency about the steps that are needed to
+\pkg{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 Red-R (\url{http://www.red-r.org/}), which
+ This distinguishes \pkg{RKWard} from \proglang{R} GUIs such as \pkg{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 contrast, RKWard limits itself to generate \proglang{R} code from GUI settings.
-}. In doing so, RKWard deliberately generates
+ programming \citep{Sutherland1966}. In contrast, \pkg{RKWard} limits itself to generate \proglang{R} code from GUI settings.
+}. In doing so, \pkg{RKWard} deliberately generates
comparatively 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
@@ -51,39 +51,39 @@
locking-in users to a specific GUI application, and provides them with more options for
customizing the generated code patterns.
-While RKWard tries to address users wishing to learn \proglang{R}, it is specifically not
+While \pkg{RKWard} tries to address users wishing to learn \proglang{R}, it is specifically not
designed as a teaching tool (such as \pkg{Rcmdr} or \pkg{TeachingDemos}), but as
-a productive tool. Dialogs for statistical procedures in RKWard do not
+a productive tool. Dialogs for statistical procedures in \pkg{RKWard} do not
necessarily show a one-to-one correspondence to the underlying steps in \proglang{R}, but are
-rather oriented at statistical tasks. Furthermore, RKWard does not impose
+rather oriented at statistical tasks. Furthermore, \pkg{RKWard} does not impose
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 create custom GUI dialogs
+time. \pkg{RKWard} is designed to allow users to create custom GUI dialogs
easily (see Sections~\ref{sec:technical_plugins} and \ref{sec:example_plugin}).
-RKWard is licensed under the terms of the GNU General Public License Version 2
-or higher. However, due to its dependencies, RKWard binaries are effectively
+\pkg{RKWard} is licensed under the terms of the GNU General Public License Version 2
+or higher. However, due to its dependencies, \pkg{RKWard} binaries are effectively
distributable only under the terms of Version 2 of the license. Parts of the documentation are available under the
GNU Free Documentation License. While the project remains in constant development, a growing
-number of users employs RKWard in productive scenarios. The source code,
+number of users employs \pkg{RKWard} in productive scenarios. The source code,
selected binaries and documentation is hosted at SourceForge
-(\url{http://rkward.sourceforge.net/}). Selected key milestones of the development of RKWard are
+(\url{http://rkward.sourceforge.net/}). Selected key milestones of the development of \pkg{RKWard} are
visualized in Figure~\ref{fig:timeline}.
\begin{figure}[t!]
\centering
\includegraphics[clip=true,trim=0cm 5.7cm 0cm 5.7cm,width=16cm]{../figures/timeline.pdf}
- \caption{Timeline of important development milestones and changes in RKWard.
- Time is presented on an arbitrary scale. Here Qt3 and Qt4 refers to the 3.x and
- 4.x versions of the \proglang{Qt} libraries, respectively and KDE4 refers to the
- 4.x version of the \proglang{KDE} libraries.}
+ \caption{Timeline of important development milestones and changes in \pkg{RKWard}.
+ Time is presented on an arbitrary scale. Here \pkg{Qt}3 and \pkg{Qt}4 refers to the 3.x and
+ 4.x versions of the \pkg{Qt} libraries, respectively and \pkg{KDE}4 refers to the
+ 4.x version of the \pkg{KDE} libraries.}
\label{fig:timeline}
\end{figure}
In this paper we will first give an overview over the main GUI elements and
-features of RKWard (Section~\ref{sec:user_interface}), followed by a short example
-of a simple RKWard session (Section~\ref{sec:using_RKWard}). Next, technical
+features of \pkg{RKWard} (Section~\ref{sec:user_interface}), followed by a short example
+of a simple \pkg{RKWard} session (Section~\ref{sec:using_RKWard}). Next, technical
details of the implementation will be discussed, comparing them briefly to
competing GUI solutions, where appropriate (Section~\ref{sec:technical}).
-Finally, we show an example for creating a plugin extension to RKWard
+Finally, we show an example for creating a plugin extension to \pkg{RKWard}
(Section~\ref{sec:example_plugin}).
Modified: branches/jss_dec_10/FINAL_JSS_TEX/conclusion_summary_acknowledgments.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/conclusion_summary_acknowledgments.tex 2011-01-30 17:49:58 UTC (rev 3404)
+++ branches/jss_dec_10/FINAL_JSS_TEX/conclusion_summary_acknowledgments.tex 2011-01-30 18:42:59 UTC (rev 3405)
@@ -1,30 +1,30 @@
\section{Conclusion and outlook}
\label{sec:conclusion_summary}
-In this article we have introduced the RKWard GUI to \proglang{R}. RKWard provides features ranging
+In this article we have introduced the \pkg{RKWard} GUI to \proglang{R}. \pkg{RKWard} provides features ranging
from easy to use dialogs for common statistical procedures targeted at \proglang{R} novices, to advanced
IDE features targeted at \proglang{R} experts.
-RKWard aims to empower users of all knowledge levels to make more efficient use of the
+\pkg{RKWard} aims to empower users of all knowledge levels to make more efficient use of the
\proglang{R} programming language, while carefully avoiding to lock in users to a specific
-GUI solution. In particular, RKWard
+GUI solution. In particular, \pkg{RKWard}
\begin{itemize}
\item Provides full transparency about the \proglang{R} code that is used to carry out tasks.
- \item Avoids introducing RKWard-specific \proglang{R} functions for central functionality (but uses some for output formatting).
+ \item Avoids introducing \pkg{RKWard}-specific \proglang{R} functions for central functionality (but uses some for output formatting).
\item Avoids hard dependencies on third-party \proglang{R} packages.
\item Uses standard \proglang{R} formats \citep[see][]{RDCT2010c} for data storage, and open standards (HTML, PNG, SVG) for storage of output.
\end{itemize}
-Future versions of RKWard will continue to add value for both groups of users. Planned features include
+Future versions of \pkg{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
+ability to connect the \pkg{RKWard} GUI to a remote \proglang{R} engine. Perhaps most importantly, \pkg{RKWard} will
gain many new graphical dialogs for manipulation, analysis, and visualization of data. The ability to
develop these dialogs as plugins allows to develop and distribute GUI dialogs
-independently of the RKWard core application, allowing any user to help in enhancing RKWard, without in-depth
+independently of the \pkg{RKWard} core application, allowing any user to help in enhancing \pkg{RKWard}, without in-depth
programming knowledge.
\section{Acknowledgments}
\label{sec:acknowledgments}
-The software RKWard, presented in this paper, is currently developed by Thomas\linebreak Friedrichsmeier (lead developer), Prasenjit Kapat, Meik Michalke,
+The software \pkg{RKWard}, presented in this paper, is currently developed by Thomas\linebreak Friedrichsmeier (lead developer), Prasenjit Kapat, Meik Michalke,
and Stefan R\"odiger. Many more people have contributed, or are still contributing to the project in various forms. We would like to
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,
Modified: branches/jss_dec_10/FINAL_JSS_TEX/example_plugin.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/example_plugin.tex 2011-01-30 17:49:58 UTC (rev 3404)
+++ branches/jss_dec_10/FINAL_JSS_TEX/example_plugin.tex 2011-01-30 18:42:59 UTC (rev 3405)
@@ -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 \pkg{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.
Modified: branches/jss_dec_10/FINAL_JSS_TEX/example_session.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/example_session.tex 2011-01-30 17:49:58 UTC (rev 3404)
+++ branches/jss_dec_10/FINAL_JSS_TEX/example_session.tex 2011-01-30 18:42:59 UTC (rev 3405)
@@ -1,8 +1,8 @@
% !TEX root = RKWard_paper.tex
\section{Using RKWard -- an example 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.
+This section describes an example \pkg{RKWard} session, in order to give an idea
+of what working with \pkg{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. The objective is to compare the responses
@@ -11,7 +11,7 @@
\subsection{Importing data}
\label{sec:importing_data}
Suppose that the data was saved as or exported to CSV format, for example, from a
-spreadsheet application. RKWard's import plugin can
+spreadsheet application. \pkg{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
Modified: branches/jss_dec_10/FINAL_JSS_TEX/installing_starting_RKWard.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/installing_starting_RKWard.tex 2011-01-30 17:49:58 UTC (rev 3404)
+++ branches/jss_dec_10/FINAL_JSS_TEX/installing_starting_RKWard.tex 2011-01-30 18:42:59 UTC (rev 3405)
@@ -1,20 +1,20 @@
\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://rkward.sourceforge.net/}.
+\pkg{RKWard} can be downloaded free of charge in source and binary form from \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 Microsoft Windows
-platform, RKWard is available in two forms: as a single binary
+platform, \pkg{RKWard} is available in two forms: as a single binary
installer (requires existing installations of
-\proglang{R} and \proglang{KDE}) and
+\proglang{R} and \pkg{RKWard}) and
as an installation bundle (including \proglang{R} and
-essential parts of the \proglang{KDE} runtime environment)\footnote{For detailed information please refer to the
-RKWard wiki \url{http://p.sf.net/rkward/windows}.}. At the time of
+essential parts of the \pkg{RKWard} runtime environment)\footnote{For detailed information please refer to the
+\pkg{RKWard} wiki \url{http://p.sf.net/rkward/windows}.}. At the time of
this writing, the developers lack the resources to support a Mac OS X
-port, and especially to provide binaries for Mac OS X. However, RKWard
+port, and especially to provide binaries for Mac OS X. However, \pkg{RKWard}
has been shown to be compilable and installable on the Mac, and appears
to be mostly functional.
-RKWard cannot be loaded from within an \proglang{R}
+\pkg{RKWard} cannot be loaded from within an \proglang{R}
session, but rather it is started as a stand-alone application with an
embedded \proglang{R} engine. To facilitate the first
steps for new users, a dialog offers the choice to load an existing
Modified: branches/jss_dec_10/FINAL_JSS_TEX/technical.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/technical.tex 2011-01-30 17:49:58 UTC (rev 3404)
+++ branches/jss_dec_10/FINAL_JSS_TEX/technical.tex 2011-01-30 18:42:59 UTC (rev 3405)
@@ -1,14 +1,14 @@
%!TEX root=RKWard_paper.tex
\section{Technical design}
\label{sec:technical}
-In this section we will give a compact overview of the key aspects of RKWard's
+In this section we will give a compact overview of the key aspects of \pkg{RKWard}'s
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
-RKWard.
+plugin framework (Section~\ref{sec:technical_plugins}) used in \pkg{RKWard}, since this is central to the extensibility of
+\pkg{RKWard}.
\subsection{Asynchronous command execution}
\label{sec:technical_asynchronous}
-One central design decision in the implementation of RKWard is that the
+One central design decision in the implementation of \pkg{RKWard} is that the
interface to the \proglang{R} engine operates asynchronously. The intention is to
keep the application usable to a high degree, even during the computation of
time-consuming analysis. For instance, while waiting for the estimation of a
@@ -18,16 +18,16 @@
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
- internal code. For instance, RKWard makes sure that no user command can
- potentially interfere while RKWard is loading the data of a \code{data.frame} for
+ internal code. For instance, \pkg{RKWard} makes sure that no user command can
+ potentially interfere while \pkg{RKWard} is loading the data of a \code{data.frame} for
editing.
-}. The asynchronous design implies that RKWard avoids relying on the
+}. The asynchronous design implies that \pkg{RKWard} avoids relying 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} itself (see Sections~\ref{sec:technical_toolkit} and \ref{sec:technical_plugins}).
-A further implication is that RKWard avoids querying information about the
+A further implication is that \pkg{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
+\pkg{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}),
object name completion, function argument hinting, and
other places. The object representation includes objects in all environments
@@ -39,7 +39,7 @@
Specifically, objects which would usually be ``lazy loaded'' only when needed \citep[see][]{Ripley2004} are
accessed in order to fetch information on their properties. This means the data
has to be loaded from disk; however, the memory is freed immediately after fetching
-information on the object. Additionally, for packages with extremely large number of objects, RKWard
+information on the object. Additionally, for packages with extremely large number of objects, \pkg{RKWard}
provides an option to exclude specific packages from scanning the object structures.
A further side-effect of the asynchronous threaded design is that there is
@@ -52,7 +52,7 @@
\begin{figure}[t!]
\centering
\includegraphics{../figures/design_sketch.pdf}
- \caption{Technical design of RKWard. Only a few central components are visualized.
+ \caption{Technical design of \pkg{RKWard}. Only a few central components are visualized.
All communication with the \proglang{R} engine is passed through a single interface living in the main application thread. The \proglang{R} engine itself
runs in a separate thread (or in a separate process).
Separate threads are also used to generate \proglang{R} code from plugins.
@@ -62,9 +62,9 @@
\subsection{Object modification detection}
\label{sec:technical_omd}
-RKWard allows the user to run arbitrary commands in \proglang{R} at any time, even while
+\pkg{RKWard} allows the user to run arbitrary commands in \proglang{R} at any time, even while
editing a \code{data.frame} or while selecting objects for analysis in a GUI dialog. Any user
-command can potentially add, modify, or remove objects in \proglang{R}. RKWard tries to
+command can potentially add, modify, or remove objects in \proglang{R}. \pkg{RKWard} tries to
detect such changes in order to always display accurate information in the
workspace browser, object selection lists, and object views. Beyond that,
detecting any changes is particularly important with respect to objects which
@@ -108,7 +108,7 @@
R> f ()
\end{Code}
-Future versions of RKWard will try to avoid this performance problem.
+Future versions of \pkg{RKWard} will try to avoid this performance problem.
One approach that is currently under consideration is to simply perform
a pointer comparison of the \code{SEXP} records of objects in global environment with
their copies in a hidden storage environment. Due to the implicit sharing of
@@ -119,33 +119,33 @@
\subsection{Choice of toolkit and implementation languages}
\label{sec:technical_toolkit}
-In addition to \proglang{R}, RKWard is based on the \proglang{KDE} libraries, which are in turn based
-on \proglang{Qt}, and implemented mostly in \proglang{C++}. Compared to many competing libraries,
-this constitutes a rather heavy dependency. Moreover, the \proglang{KDE} libraries are
+In addition to \proglang{R}, \pkg{RKWard} is based on the \pkg{KDE} libraries, which are in turn based
+on \pkg{Qt}, and implemented mostly in \proglang{C++}. Compared to many competing libraries,
+this constitutes a rather heavy dependency. Moreover, the \pkg{KDE} libraries are
still known to have portability issues especially on Mac OS X, and to some degree
also on the Microsoft Windows platform.
-The major reason for choosing the \proglang{KDE} and \proglang{Qt} libraries was their
-many high level features which have allowed RKWard development to make quick
-progress despite limited resources. Most importantly, the \proglang{KDE} libraries provide a
+The major reason for choosing the \pkg{KDE} and \pkg{Qt} libraries was their
+many high level features which have allowed \pkg{RKWard} development to make quick
+progress despite limited resources. Most importantly, the \pkg{KDE} libraries provide a
full featured text editor \citep{CullmannND} as a component which can be
seamlessly integrated into a host application using the KParts technology
\citep{Faure2000}. Additionally, another KPart provides HTML browsing capabilities in a
-similarly integrated way. The availability of KWord \citep{KWord} as an
-embeddable KPart might prove useful in future versions of RKWard, when better
+similarly integrated way. The availability of \pkg{KWord} \citep{KWord} as an
+embeddable KPart might prove useful in future versions of \pkg{RKWard}, when better
integration with office suites will be sought.
-Another technology from the \proglang{KDE} libraries that is important to the development
-of RKWard is the ``XMLGUI'' technology
+Another technology from the \pkg{KDE} libraries that is important to the development
+of \pkg{RKWard} is the ``XMLGUI'' technology
\citep{Faure2000}. This is especially helpful in providing an integrated GUI across
-the many different kinds of document windows and tool views supported in RKWard.
+the many different kinds of document windows and tool views supported in \pkg{RKWard}.
-Plugins in RKWard rely on XML\footnote{\url{http://www.w3.org/XML/}}
+Plugins in \pkg{RKWard} rely on XML\footnote{\url{http://www.w3.org/XML/}}
and \proglang{ECMAScript}\footnote{\url{http://www.ecmascript.org/}} (see Section~\ref{sec:technical_plugins}). XML is not
only well suited to describe the layout of the GUI of plugins, but simple
functional logic can also be represented \citep[see also][]{Visne2009}. \proglang{ECMAScript} was
chosen for the generation of \proglang{R} commands within plugins, in particular due to its
-availability as an embedded scripting engine inside the \proglang{Qt} libraries. While at
+availability as an embedded scripting engine inside the \pkg{Qt} libraries. While at
first glance \proglang{R} itself would appear as a natural choice of scripting language as
well, this would make it impossible to use plugins in an asynchronous way.
Further, the main functional requirement in this place is the manipulation and
@@ -155,18 +155,18 @@
\subsection{On-screen graphics windows}
\label{sec:technical_graphics}
-Contrary to the approach used in \pkg{JGR} \citep{JGR2010}, RKWard does
-not technically provide a custom on-screen graphics device. RKWard detects when
+Contrary to the approach used in \pkg{JGR} \citep{JGR2010}, \pkg{RKWard} does
+not technically provide a custom on-screen graphics device. \pkg{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
-for X11, on reparenting for the Microsoft Windows platform). An RKWard menu bar and a
+are then ``captured'' in a platform dependent way (based on the \pkg{XEmbed} \citep{Ettrich2002} protocol
+for \pkg{X11}, on reparenting for the Microsoft Windows platform). An \pkg{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
improvements made to the underlying \proglang{R} native devices will automatically be
-available in RKWard.
+available in \pkg{RKWard}.
A recent addition to the on-screen device is the ``plot history'' feature which
-adds a browsable list of plots to the device window. Since RKWard does not use a
+adds a browsable list of plots to the device window. Since \pkg{RKWard} does not use a
custom on-screen graphics device, this feature is implemented in a package
dependent way. For example, as of this writing, plotting calls that use either
the ``standard graphics system'' or the ``\pkg{lattice} system'' can be added to the plot
@@ -196,19 +196,19 @@
\subsection{Plugin infrastructure}
\label{sec:technical_plugins}
-One of the earliest features of RKWard was the extensibility by plugins.
-Basically, plugins in RKWard provide complete GUI dialogs, or re-usable
+One of the earliest features of \pkg{RKWard} was the extensibility by plugins.
+Basically, plugins in \pkg{RKWard} provide complete GUI dialogs, or re-usable
GUI components, which accept user settings and translate those user settings
into \proglang{R} code\footnote{
- Plugins are also used in some other contexts within RKWard, for instance, the
+ Plugins are also used in some other contexts within \pkg{RKWard}, for instance, the
integrated text editor (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 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, importing different file
+Much of the functionality in \pkg{RKWard} is currently implemented as plugins. For example, importing different file
formats relying on the \pkg{foreign} package is achieved by this approach. Similarly,
-RKWard provides a modest GUI driven tool set for statistical analysis,
+\pkg{RKWard} provides a modest GUI driven tool set for statistical analysis,
especially for item response theory, distributions, and descriptive
statistical analysis.
@@ -221,7 +221,7 @@
\begin{figure}[b!]
\centering
\includegraphics[width=8cm]{../figures/plugin_structure.pdf}
- \caption{Plugin structure of RKWard. One or more plugins are declared in a ``plugin map''. Each plugin is defined by
+ \caption{Plugin structure of \pkg{RKWard}. One or more plugins are declared in a ``plugin map''. Each plugin is defined by
two XML files, and one \proglang{ECMAScript} file.}
\label{fig:plugin_structure}
\end{figure}
@@ -241,7 +241,7 @@
the definition of the GUI layout and GUI behavior. High level GUI elements can
be defined with simple XML-tags. Layout is based on ``rows'' and ``columns'',
instead of pixel counts. In most cases this allows for a very sensible resizing
- behavior. RKWard supports single-page dialogs and multi-page wizards, however,
+ behavior. \pkg{RKWard} supports single-page dialogs and multi-page wizards, however,
most plugins define only a single-page GUI. GUI behavior can be programmed by
connecting ``properties'' of the GUI elements to each other. For example, the state
of a checkbox could be connected to the ``enabled'' property of a dependent
@@ -252,10 +252,10 @@
A separate \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
+ In earlier versions of \pkg{RKWard}, \proglang{PHP} was used
as a scripting engine, and \proglang{PHP} interpreters were run as separate processes.
- Usage of \proglang{PHP} was abandoned in RKWard version 0.5.3 for reasons of performance and simplicity.
- }. This \proglang{ECMAScript} file is evaluated asynchronously in a separate thread. RKWard
+ Usage of \proglang{PHP} was abandoned in \pkg{RKWard} version 0.5.3 for reasons of performance and simplicity.
+ }. This \proglang{ECMAScript} file is evaluated asynchronously in a separate thread. \pkg{RKWard}
currently enforces structuring the code into three separate sections for
preprocessing, calculating, and printing results. The generated code is always
run in a local environment, in order to allow the use of temporary variables
@@ -264,17 +264,17 @@
\item
A third XML file defines a help page. This help page usually links to the \proglang{R} help
pages of the main functions/concepts used by the plugin, as well as to other
- related RKWard help pages. Compared to \proglang{R} help
+ related \pkg{RKWard} help pages. Compared to \proglang{R} help
pages, the plugin help pages try to give more hands-on advice on using the
plugin. Plugins can be invoked from their help page by clicking on a link near
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 \pkg{RKWard}.
\subsubsection{Embedding and reuse of plugins}
\label{sec:technical_plugins_embedding}
-RKWard supports several mechanisms for modularization and re-use of
+\pkg{RKWard} supports several mechanisms for modularization and re-use of
functionality in plugins. File inclusion is one very simple but effective
mechanism, which can be used in the \proglang{ECMAScript} files, but is also supported in
the XML files. In script files, this is most useful by defining common functions
@@ -282,7 +282,7 @@
in the included file, which can then be inserted.
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
+instance the \code{plot\_options} plugin is used by many plugins in \pkg{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 XML file (the plugin supports
hiding irrelevant options). The generated code portions can be fetched from the
@@ -292,13 +292,13 @@
\subsubsection{Enforcing a consistent interface}
\label{sec:technical_plugins_consistency}
-RKWard tries to make it easy to create a consistent interface in all plugins.
+\pkg{RKWard} tries to make it easy to create a consistent interface in all plugins.
GUI-wise this is supported by providing high-level GUI elements, and embeddable
clients. Also, the standard elements of each dialog (``Submit'', and
``Cancel'' buttons, on-the-fly code view, etc.) are hard coded. Up to version
-0.5.3 of RKWard it was not possible to use any GUI elements in plugins which
+0.5.3 of \pkg{RKWard} it was not possible to use any GUI elements in plugins which
were not explicitly defined for this purpose. In the current development
-version, theoretically, all GUI elements available from \proglang{Qt} can be inserted,
+version, theoretically, all GUI elements available from \pkg{Qt} can be inserted,
where necessary.
For generating output, the function \code{rk.header()} can be used to print a
@@ -312,7 +312,7 @@
them for each plugin.
Regarding the style of the generated \proglang{R} code, enforcing consistency is harder,
-but plugins which are to become part of the official RKWard application are
+but plugins which are to become part of the official \pkg{RKWard} application are
reviewed for adherence to some guidelines. Perhaps the most important guidelines
are
@@ -333,21 +333,21 @@
\subsubsection[Handling of R package dependencies]{Handling of \proglang{R} package dependencies}
\label{sec:technical_plugins_dependencies}
-A wide range of plugins for diverse functionality is present in RKWard,
+A wide range of plugins for diverse functionality is present in \pkg{RKWard},
including plots (e.\,g., boxplot) or standard tests (e.\,g., Student's t-test)\footnote{
- At the time of this writing, there are 164 user-accessible plugins in RKWard.
+ At the time of this writing, there are 164 user-accessible plugins in \pkg{RKWard}.
Listing all is beyond the scope of this article.
}. Some
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.
-RKWard avoids loading all these packages pro-actively, as \pkg{Rcmdr} does. Rather,
+\pkg{RKWard} avoids loading all these packages pro-actively, as \pkg{Rcmdr} does. Rather,
plugins which depend on a certain package simply include an appropriate call to
\code{require()} in the pre-processing section of the generated \proglang{R} code. The \code{require()}
-function is overloaded in RKWard, in order to bring up the package-installation
+function is overloaded in \pkg{RKWard}, in order to bring up the package-installation
dialog (see Section~\ref{sec:package_management}) whenever needed. Packages invoked by \code{require()} remain loaded
-in the active RKWard session unless unloaded, manually (from the workspace browser, or using the
+in the active \pkg{RKWard} session unless unloaded, manually (from the workspace browser, or using the
\proglang{R} function \code{detach()}).
Dependencies between (embedded) plugins are handled using the \code{<require>}-tag in the plugin map.
@@ -366,12 +366,12 @@
The current development version adds support for downloading additional sets of
plugins, which are neither officially included nor supported by the
-RKWard developers, from the internet.
+\pkg{RKWard} developers, from the internet.
\subsubsection{Automated testing}
\label{sec:technical_processes_automatedtesting}
A second requirement for new plugins is that each plugin must be accompanied by
-at least one automated test. The automated testing framework in RKWard consists
+at least one automated test. The automated testing framework in \pkg{RKWard} consists
of a set of \proglang{R} scripts which allow to run a plugin with specific GUI settings,
automatically\footnote{
In the current development version, the scripts have been converted into a proper
@@ -392,10 +392,10 @@
Translatable strings are to be found under po/**.po in the sources. These files
can conveniently be edited with front-ends like Lokalize\footnote{\url{http://i18n.kde.org/tools/}}.
-Plugins and help pages in RKWard are not translatable at the time of this
+Plugins and help pages in \pkg{RKWard} are not translatable at the time of this
writing. While it will be technically possible to include the respective strings in
-message catalogs, this is not currently implemented in RKWard. Similarly, any
-output generated by \proglang{R} functions defined for RKWard is not currently
+message catalogs, this is not currently implemented in \pkg{RKWard}. Similarly, any
+output generated by \proglang{R} functions defined for \pkg{RKWard} is not currently
translatable. Again, however, there is no technical barrier with respect to
internationalization of \proglang{R} code, as discussed by \cite{Ripley2005a},
-and it is planned to make RKWard fully translatable in future versions.
+and it is planned to make \pkg{\pkg{RKWard}} fully translatable in future versions.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the rkward-tracker
mailing list