minor edits

This commit is contained in:
Oliver Kennedy 2016-04-17 23:10:28 -04:00
parent 87ea384962
commit d473336763

View file

@ -75,20 +75,32 @@ Conversely, a user might sort the rows of the table in descending order on Colum
At a high level, both actions are structural, as they only transform the coordinate system by rearranging the coordinate mapping; The effects on cells (the $C$ part of a state) are only incidental consequences of the new coordinate scheme. For each dependent cell that changes coordinates, the action must also something else to be correct.
The distinction between the two example actions is quite significant, because it underlies a fundamental tradeoff in minimizing the ``surprising'' incidental effects~\cite{saltzer2009principles} of a change in coordinates: For \texttt{MOVE}, cell formulas are \textit{translated} into the new coordinate system to ensure that each cell's values stay the same, while for \texttt{SORT}, cell formulas are \textit{re-evaluated} in the new coordinate system, changing the values to ensure that the formulas stay the same. We leave the optimization of this tradeoff to future work, but observe that virtually all structural actions we explored (drag cell, rearrange rows, filter, etc\ldots) favor minimizing changes in values.
\subsection{Operators}
\newcommand{\vizcommand}[2]{\noindent\texttt{#1}\\{#2}}
All \langname scripts begin with a \texttt{LOAD} command that defines an initial dataset (e.g., by cloning the output of an earlier page or loading data in from a CSV file). Parameters to the load command allow users to override default best-guess configuration options like format (CSV, JSON, etc...), field and record separator values, and/or the presence of column headers.
followed by a sequence of transformation operations:
\subsection{Selectors}
Many operations in \sysname
such as typecasting and formula pasting are applied in bulk to entire regions of cells. In the spreadsheet interface, such regions are initially defined by a rectangular area selected by the cursor. However, we can also give users the flexibility to identify regions according to more complex criteria as well. Concretely, a \textit{selector} identifies a set of cells;
at the intersection of a set of rows and a set of columns; In effect a selector is a selection and projection operator.
%\subsection{Actions}
%
%%\newcommand{\vizcommand}[2]{\noindent\texttt{#1}\\{#2}}
%
%All \langname scripts begin with a \texttt{LOAD} action that defines an initial dataset (e.g., by cloning the output of an earlier page or loading data in from a CSV file). Parameters to the load command allow users to override default best-guess configuration options like format (CSV, JSON, etc...), field and record separator values and other properties of the data.
%
%\langname uses a SQL-style \texttt{UPDATE} operation to update data values; An update operation identifies a set of cells through a selector, as defined below
%
%
% one or more rows using its a \texttt{WHERE} clause, and one or more columns
%
%
%