diff --git a/raterspec.cls b/raterspec.cls index 5f58e2d..94be281 100644 --- a/raterspec.cls +++ b/raterspec.cls @@ -121,6 +121,10 @@ {} {} +\@raterspec@mkhook{dataclass}{data classifications} + {} + {} + %% diff --git a/raterspec/parts.tex b/raterspec/parts.tex new file mode 100644 index 0000000..5a9c35c --- /dev/null +++ b/raterspec/parts.tex @@ -0,0 +1,35 @@ +% raterspec common structure +%% + +%% note: \pnumoff and \pnumon are temporary kluges (...hopefully) + + +\pnumoff\part{General System}\pnumon + +\chapter{Host Environment} + \input{raterspec/sec/hostenv} + +\chapter{Input Data} + \index{input data|(} + \input{raterspec/sec/input} + + % implementation-specific parameter types + \section{Program-Specific Parameter Types} + \sectiondept{it/uw} + + \inputtypesout + \index{input data|)} + +\chapter{Input Parameters} + \index{input data!parameters|(} + \index{parameter|(} + \input{raterspec/sec/params} + \inputparamsout + + \index{input data!parameters|)} + \index{parameter|)} + + +\pnumoff\part{Data Classification}\pnumon + \input{raterspec/sec/dataclass} + diff --git a/raterspec/sec/dataclass.tex b/raterspec/sec/dataclass.tex new file mode 100644 index 0000000..f380874 --- /dev/null +++ b/raterspec/sec/dataclass.tex @@ -0,0 +1,69 @@ +% Data classifications + +\label{s:dataclass} +\index{classification|(} + +\chapter{Common Classifications} + +\label{s:dataclass:common} + +% applies until first subsection +\sectiondept{it} + +\incomplete +A classification---also known as a ``class'', but that term is avoided in this +specification due to ambiguities---is a set of rules performed on the ^[input +data] yielding a boolean result of the same depth as the largest depth of the +applicable ^[input data]. \todo{Include formal documentation from DSL manual.} + +\begin{ex} + Consider a classification~$c$ that has the following rules: + \begin{itemize} + \item $5\leq\alpha\leq10$ + \item $\beta>0$ + \end{itemize} + Given various sets of ^[input data], we would expect the results shown in + \fref{class-ex}. +\end{ex} + +\begin{figure} + \center + \begin{tabular}{cc|c} + $\alpha$ & $\beta$ & Result \\ + \hline + 1 & 2 & $\bot$ \\ + 5 & 2 & $\top$ \\ + + \set{4,5} & \set{10,10} & \set{\bot,\top} \\ + \set{\set{4,5},\set{5,6}} & \set{10,0} + & \set{\set{\bot,\top},\set{\bot,\bot}} \\ + \end{tabular} + + \caption{Results of various input data some classification} + \label{f:class-ex} +\end{figure} + +A classification may treat the result of another classification as ^[input +data]. + +A classification may treat the result of a~^[calculation] (see \sref{premcalc}) as +^[input data]. + +All classifications in this section \shall apply to the ^[input data] as defined +in~\sref{indata}. + +Each classification \shall have an associated character string +\dfn{classification!description} which \shall be made accessible to the caller +as ^[output data] in an \unspecified\ manner. + +The point at which classifications are calculated is \unspecified; an +implementation \may choose to defer any specific classification until such a +time that it is needed by a calculation. Furthermore, an implementation \may +choose not to perform a given classification at all, so long as it is determined +that such a classification does not apply to any ^[input data]. + + +%% user content +\dataclassout + +\index{classification|)}