From f48deb29c6a91224be8146cff2c192c32656877e Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Thu, 10 Jun 2021 17:11:22 -0700 Subject: [PATCH] Fix for https://github.com/SED-ML/sed-ml/issues/105: RepeatedTasks can have models. Mostly this was fixed by changing 'model' to 'model or models', or 'model state' to 'model state or states'. A bit of extra clarification also added in this section, particularly the fact that since it inherits from the changed ComputeChange, it doesn't define its own 'target' and 'symbol'. --- .../images/uml/repeatedTask.pdf | Bin 74421 -> 73625 bytes .../level-1-version-4/sources/task.tex | 37 ++++++++++-------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/specification/level-1-version-4/images/uml/repeatedTask.pdf b/specification/level-1-version-4/images/uml/repeatedTask.pdf index 02667984040e9c32729cf207221830c8dee4da3c..9b8b32b449884463a07efe2afbccfb26460319cf 100644 GIT binary patch delta 25863 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 L$SA8OhyH&6(Hzv! diff --git a/specification/level-1-version-4/sources/task.tex b/specification/level-1-version-4/sources/task.tex index 53fc90c..577d4dc 100644 --- a/specification/level-1-version-4/sources/task.tex +++ b/specification/level-1-version-4/sources/task.tex @@ -57,7 +57,7 @@ \subsubsection{\element{SimpleRepeated Task}} % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \subsubsection{\element{Repeated Task}} \label{class:repeatedTask} -The \concept{RepeatedTask} (\fig{repeatedTask}) provides a generic looping construct, allowing complex tasks to be composed from individual steps. The \concept{RepeatedTask} performs a specified task (or sequence of tasks as defined in the \hyperref[class:listOfSubTasks]{\element{listOfSubTasks}}) multiple times (where the exact number is specified through a \Range construct as defined in \hyperref[sec:rangeAttribute]{\element{range}}), while allowing specific quantities in the model to be altered at each iteration (as defined in the \hyperref[sec:changesRepeatedTask]{\element{listOfChanges}}). +The \concept{RepeatedTask} (\fig{repeatedTask}) provides a generic looping construct, allowing complex tasks to be composed from individual steps. The \concept{RepeatedTask} performs a specified task (or sequence of tasks as defined in the \hyperref[class:listOfSubTasks]{\element{listOfSubTasks}}) multiple times (where the exact number is specified through a \Range construct as defined in \hyperref[sec:rangeAttribute]{\element{range}}), while allowing specific quantities in the model \changed{or models} to be altered at each iteration (as defined in the \hyperref[sec:changesRepeatedTask]{\element{listOfChanges}}). \sedfig[width=.8\textwidth]{images/uml/repeatedTask}{The SED-ML RepeatedTask class}{fig:repeatedTask} @@ -65,8 +65,8 @@ \subsubsection{\element{Repeated Task}} The order of activities within each iteration of a \concept{RepeatedTask} is as follows: \begin{itemize} - \item The \changed{entire} \Model state is reset if specified by the \hyperref[sec:resetModel]{\element{resetModel}} attribute. - \item Any changes to the model specified by \hyperref[class:setValue]{SetValue} objects in the \hyperref[sec:changesRepeatedTask]{\element{listOfChanges}} are applied to the \Model. + \item The \changed{entire} model state \changed{for any involved \Model} is reset if specified by the \hyperref[sec:resetModel]{\element{resetModel}} attribute. + \item Any changes to the model \changed{or models} specified by \hyperref[class:setValue]{SetValue} objects in the \hyperref[sec:changesRepeatedTask]{\element{listOfChanges}} are applied to \changed{each} \Model. \end{itemize} \changed{Then, for each \SubTask child of the \RepeatedTask, in the order specified by its \hyperref[sec:subTaskOrder]{\element{order}} attribute:} @@ -116,7 +116,7 @@ \subsubsection{\element{Repeated Task}} % ~~~ RESET MODEL ~~~ \paragraph*{\element{resetModel}} \label{sec:resetModel} -The \hyperref[class:repeatedTask]{repeatedTask} has a required attribute \concept{\element{resetModel}} of type \code{boolean}. It specifies whether the model should be reset to the initial state before processing an iteration of the defined \hyperref[class:subTask]{subTasks}. Here initial state refers to the state of the model as given in the \hyperref[class:listOfModels]{\element{listOfModels}}. +The \hyperref[class:repeatedTask]{repeatedTask} has a required attribute \concept{\element{resetModel}} of type \code{boolean}. It specifies whether the model \changed{or models} should be reset to the initial state before processing an iteration of the defined \hyperref[class:subTask]{subTasks}. Here initial state refers to the state of the model \changed{or models} as given in the \hyperref[class:listOfModels]{\element{listOfModels}}. In the example in Listing~\ref{lst:repeatedTask} the repeated task is not to be reset, so a change is made, \code{task1} is carried out, another change is made, then \code{task1} continues from there, another change is applied, and \code{task1} is carried out a last time. @@ -132,12 +132,12 @@ \subsubsection{\element{Repeated Task}} %% ~~~ LIST OF CHANGES ~~~ \paragraph*{\element{listOfChanges}} \label{sec:changesRepeatedTask} -The optional \concept{\element{listOfChanges}} element contains one or many \hyperref[class:setValue]{SetValue} elements. These elements allow the modification of values in the model prior to the next iteration of the \RepeatedTask. +The optional \concept{\element{listOfChanges}} element contains one or many \hyperref[class:setValue]{SetValue} elements. These elements allow the modification of values in the model \changed{or models} prior to the next iteration of the \RepeatedTask. %% ~~~ REPEATED TASK : LIST OF SUBTASKS ~~~ \paragraph*{\element{listOfSubTasks}} \label{class:listOfSubTasks} -The required \concept{\element{listOfSubTasks}} contains one or more \hyperref[class:subTask]{subTasks} that specify which \hyperref[class:abstractTask]{Tasks} are performed in every iteration of the \RepeatedTask. All \hyperref[class:subTask]{subTasks} have to be carried out sequentially, each continuing from the current model state (i.e.\ as at the end of the previous \hyperref[class:subTask]{subTask}, assuming it simulates the same model). \changed{If the \element{concatentate} attribute is set \val{true}, the results are} concatenated (thus appearing identical to a single complex simulation), \changed{and if set \val{false}, the results are added to a matrix with the addtitional dimension of the repeated task.} The order in which to run multiple \hyperref[class:subTask]{subTasks} must be specified using the \hyperref[sec:subTaskOrder]{\element{order}} attribute on the \hyperref[class:subTask]{subTask}. +The required \concept{\element{listOfSubTasks}} contains one or more \hyperref[class:subTask]{subTasks} that specify which \hyperref[class:abstractTask]{Tasks} are performed in every iteration of the \RepeatedTask. All \hyperref[class:subTask]{subTasks} have to be carried out sequentially, each continuing from the current model state \changed{or states} (i.e.\ as at the end of the previous \hyperref[class:subTask]{subTask}). \changed{If the \element{concatentate} attribute is set \val{true}, the results are} concatenated (thus appearing identical to a single complex simulation), \changed{and if set \val{false}, the results are added to a matrix with the addtitional dimension of the repeated task.} The order in which to run multiple \hyperref[class:subTask]{subTasks} must be specified using the \hyperref[sec:subTaskOrder]{\element{order}} attribute on the \hyperref[class:subTask]{subTask}. \begin{myXmlLst}{The \code{subTask} element. In this example the task \code{task2} must be executed before \code{task1}.}{lst:subTask} @@ -188,7 +188,7 @@ \subsubsection{\element{SubTask}} \begin{blockChanged} \paragraph*{\element{listOfChanges}} \label{sec:subTaskListOfChanges} -The \SetValue children of the \ListOfChanges of this \SubTask define changes to apply to the model state before this \SubTask is carried out. This allows model changes between individual \SubTask elements, perhaps based on the changed state of the model itself. The set of all \SetValue children of the first \SubTask are applied after the set of \SetValue children of the \RepeatedTask itself. +The \SetValue children of the \ListOfChanges of this \SubTask define changes to apply to the model state \changed{or states} before this \SubTask is carried out. This allows model changes between individual \SubTask elements, perhaps based on the changed state of the model itself. The set of all \SetValue children of the first \SubTask are applied after the set of \SetValue children of the \RepeatedTask itself. \end{blockChanged} @@ -196,13 +196,11 @@ \subsubsection{\element{SubTask}} % ~~~ SET VALUE ~~~ \subsubsection{\element{SetValue}} \label{class:setValue} -The \concept{SetValue} class (\fig{repeatedTask}) allows the modification of the \hyperref[class:model]{model} prior to the next execution of the \hyperref[class:subTask]{subTasks}. The changes to the model are defined in the \hyperref[sec:changesRepeatedTask]{\element{listOfChanges}} of the \RepeatedTask. +The \concept{SetValue} class (\fig{repeatedTask}) allows the modification of a \Model. \changed{Each \SetValue in the \ListOfChanges child of the \RepeatedTask fires before each repeat, and each \SetValue in the \ListOfChanges child of a \SubTask fires before the execution of that \SubTask.} -\concept{SetValue} inherits from the \ComputeChange class, which allows it to compute arbitrary expressions involving a number of \hyperref[class:variable]{variables} and \hyperref[class:parameter]{parameters}. \concept{SetValue} has a mandatory \element{modelReference} attribute, and the optional attributes \element{range} and \element{symbol}. +\concept{SetValue} inherits from the \ComputeChange class, which allows it to compute arbitrary expressions involving a number of \hyperref[class:variable]{variables} and \hyperref[class:parameter]{parameters}. \concept{SetValue} \changed{inherits the standard attributes and children from \SedBase, a required \element{target} and optional \element{symbol} from \ComputeChange, and adds} a mandatory \element{modelReference} attribute and the optional attribute \element{range}. -The value to be changed is identified via the combination of the attributes \code{modelReference} and either \code{symbol} or \code{target}, in order to select an implicit or explicit variable within the referenced model. - -As in \hyperref[class:functionalRange]{functionalRange}, the attribute \code{range} may be used as a shorthand to specify the \code{id} of another \concept{Range}. The current value of the referenced range may then be used within the function defining this \concept{FunctionalRange}, just as if that range had been referenced using a \hyperref[class:variable]{variable} element, except that the \code{id} of the range is used directly. In other words, whenever the expression contains a \code{ci} element that contains the value specified in the \code{range} attribute, the value of the referenced range is to be inserted. +The value to be changed is identified via the combination of \changed{the attributes \code{modelReference}, \code{symbol}, and \code{target}}, in order to select an implicit or explicit variable within the referenced model. The \Math contains the expression computing the value by referring to optional \hyperref[class:parameter]{parameters}, \hyperref[class:variable]{variables} or \hyperref[class:range]{ranges}. Again as for \hyperref[class:functionalRange]{functionalRange}, variable references retrieve always the current value of the model variable or range at the current iteration of the enclosing \hyperref[class:repeatedTask]{repeatedTask}. @@ -218,11 +216,16 @@ \subsubsection{\element{SetValue}} \end{myXmlLst} -% missing attribute descriptions for consistency -% \paragraph*{range} -% \paragraph*{symbol} -% \paragraph*{range} -% \paragraph*{modelReference} +\paragraph*{\element{modelReference}} +\label{sec:subTaskModelReference} +\changed{The required element \concept{\element{modelReference}} of data type \SIdRef specifies the \Model this \SetValue is to modify. Each \SetValue elements in the same \RepeatedTask may potentially reference a different \Model.} + +\paragraph*{\element{range}} +\label{sec:subTaskRange} +\changed{The optional attribute \concept{\element{range}} of data type \SIdRef, if defined, must reference a \Range child of the parent \RepeatedTask.} + +As in \hyperref[class:functionalRange]{functionalRange}, the attribute \code{range} may be used as a shorthand to specify the \code{id} of another \concept{Range}. The current value of the referenced range may then be used within the \Math defining this \concept{FunctionalRange}, just as if that range had been referenced using a \hyperref[class:variable]{variable} element, except that the \code{id} of the range is used directly. In other words, whenever the expression contains a \code{ci} element that contains the value specified in the \code{range} attribute, the value of the referenced range is to be inserted. + % ~~~ RANGE ~~~