CellML Discussion List

Text archives Help


Re: [cellml-discussion] CellML 2.0 Draft Specification - May 2017 version


Chronological Thread 
  • From: Mike Cooling <mtcooling.research AT gmail.com>
  • To: cellml-discussion Mailing List <cellml-discussion AT lists.cellml.org>
  • Subject: Re: [cellml-discussion] CellML 2.0 Draft Specification - May 2017 version
  • Date: Wed, 31 May 2017 13:55:50 +1200
  • Authentication-results: mx3.auckland.ac.nz; spf=Pass smtp.mailfrom=mtcooling.research AT gmail.com; dkim=pass (signature verified) header.i=@gmail.com; dmarc=pass (p=none dis=none) d=gmail.com
  • Ironport-phdr: 9a23:QRmUpRxUJvFfAUrXCy+O+j09IxM/srCxBDY+r6Qd2u4UIJqq85mqBkHD//Il1AaPBtSFra8bw6qO6ua7CDNGuc7A+Fk5M7VyFDY9yv8q1zQ6B8CEDUCpZNXLVAcdWPp4aVl+4nugOlJUEsutL3fbo3m18CJAUk6nbVk9Kev6AJPdgNqq3O6u5ZLTfx9IhD2gar9uMRm6twvcu80XjId4Kqs8yAbCrn9Ud+hL329lK1aekhTm6sus4JJv9jlbtu48+cJHTaj1cKM0QKBCAjghL247+tDguwPZTQuI6HscU2EWnQRNDgPY8hz0XYr/vzXjuOZl1yaUIcP5TbYvWTS/9KhrUwPniD0GNzEi7m7ajNF7gb9BrxKgoxx/xJPUYJ2QOfFjcK7RYc8WSGxcVctKSSdPHp2zYJcOD+oZPOZXsY/9p0cVrRCjAQWgHf7jxiNUinPz26AxzuYvHhzc3AE4Hd0OvnTaotv2OqkPT+660LLFwi/fY/5Mwzrx9JTEfxInrPqRXbxwa83RyUw3Gg3Cj1WQqpLqNC6L2+QKtGib6+tgVeSgi2U6rAxxpySvydsrionOgoIVy1bE9SpjzIYvO9K4U1B0bsS+EJRMtyGXLIR2QsY4TGFpvCY20KEJuZm+fCUTzpks2hDRa/uCc4eS4xLjUv6cITh/hHJid7K/gwi9/VK8xe37U8m51ktBoCldktTUqHwByxje5tKER/Z95EutxDKC2x7J5u1ZI005kazWIIM7zLEqjJocq0HDEzf2mEroiK+WcV0p+u2y5OTmZrXqv4ecN4Fohg3nPKQih86yDOAiPggBWGib/uu81Ln98kHjXLpKifg2nrHYsJDcO8sbura0DxFJ3osn8RqyDDer3M4FkXQDMl5JYg+LgortNl3WJfD3F/a/g1CikDdxwPDGO6XsApDRLnffl7fherJ9609ayAo819xf/YxbCqofL/3pQE/+qNzYAwQ2Mwyx2ennCdF92pkCVmKIB6+VKLnSvkOQ5uIzP+mMY5cYtyrjJPgh4/7uiHs5lUYAcqmoxpsYdG24Hu99I0WYZnrshMwMEWMLvgolUOzqk0eOXiJNaHa2W6I84zU7BJihDYfZSYD+yICGiSy2GplTYiVKC0uHDGzzdoKCE9IFaSaTJMAptj0fSfD1QIIl0RSq8QP70LF6NfHV/SswsZP4yMMz7ODXkRQ2sztuAJLO/XuKSjRRn2AFDxQx26R+p0M1nlKf2q9/h/1eGppJ6uhEWx0xNbbTyuV7D5b5XQeXLYTBc0qvXtjzWWJ5ddk22dJbJh8lQ9g=

Thanks, Lucian, for the comments.

>I would strongly recommend *not* making a formal difference between 'x>y'
and 'x>=y', or at least not giving examples that rely on there being a
difference between them.. a notoriously difficult situation to distinguish
between...

We have described the algorithm for a forward Euler, where it would be easy
to distinguish between them (with attendant disadvantages due to that
integration method of course). For a more sophisticated (and common,
hopefully :) ) integrator, exact compliance depends on the algorithm and I
think it is fair to say that solutions would 'tend' to be 'correct' more
than actually be 'correct' (and in practice this is just fine). At present,
if you read carefully (notice the examples follow our 'forward Euler'
algorithm) you will see that actually we have side-stepped specifying the
result that exactly for a more sophisticated integrator.

Being able to specify those cases in the first place is consistent with
piecewises - which incidentally have left the behaviour even more implicit
since, I think, the late nineties.

>Also, when the 'order' attribute matters, put it into the example.

I'm prepared to be corrected in the event that we made a mistake somewhere
but I believe that is exactly what we did - if it wasn't there, it didn't
matter.

> If the order attribute never matters in the examples you have created,
say that explicitly.

There is no explicit explanation on that point because following the rules
in the spec 'order' doesn't work like that (the relevant clauses are
19.11.2 and 19.11.3.e). I think this might be the root cause of your
concern here. More broadly, the ordering of statements has no effect in
CellML at all, and is distinct from any 'order' attributes.

>reset A when B>3, A = B
>reset B when B>3, B = 1

>is the same as

>reset B when B>3, B = 1
>reset A when B>3, A = B

Following the spec and the examples, those two cases are identical
(assuming A and B are not connected - we later also have an explicit
example further on where such variables are connected and then order
attribute does come into play).

>can't tell from the examples

I should clarify that the examples appendix is not designed to teach, from
the ground up, about resets. Such a document might well be valuable too but
that isn't it :). It was designed to confirm / clarify various situations
that arise from following the rules in the specification. My recommendation
is to start with the spec first (which by it's nature as a normative
document is not the easiest to process at times), then go through the
examples.

Best Regards,
Mike














On Wed, May 31, 2017 at 11:59 AM, Lucian Smith
<lucianoelsmitho AT gmail.com>
wrote:

> I would strongly recommend *not* making a formal difference between 'x>y'
> and 'x>=y', or at least not giving examples that rely on there being a
> difference between them. This is a notoriously difficult situation to
> distinguish between, and makes certain types of simulation approaches
> impossible to accomplish. Whenever I accidentally put situations like that
> into the SBML Test Suite, I'm always asked to take them back out again.
>
> Also, when the 'order' attribute matters, put it into the example. If the
> order attribute never matters in the examples you have created, say that
> explicitly. I can't tell from the examples you give if:
>
> reset A when B>3, A = B
> reset B when B>3, B = 1
>
> is the same as
>
> reset B when B>3, B = 1
> reset A when B>3, A = B
>
> (i.e. if the hidden 'order' attributes are different) or not.
>
> -Lucian
>
> On Tue, May 30, 2017 at 4:13 PM, Mike Cooling <
> mtcooling.research AT gmail.com>
> wrote:
>
>> Dear CellML Community,
>>
>> The 'Specification Writing Group' is proud to present an updated draft
>> Specification for CellML 2.0.
>>
>> This second draft aims primarily to clarify the semantics of the
>> new-in-2.0 'reset rules'. The appropriate section of the specification has
>> been adjusted and the new Release Notes now include an Appendix containing
>> reset rule examples with expected model behaviour.
>>
>> The exclusion of integrals was also reconsidered. At this time, support
>> for integrals is not part of CellML 2.0. This decision could be revised
>> with community needs.
>>
>> We invite community feedback on the May 2017 draft Specification.
>>
>> The explanatory release note (May 2017 draft) can be found here:
>> https://drive.google.com/open?id=0B7o2fHkRhadEQ3c4bnFXRlpBSUk
>>
>> The specification itself (May 2017 draft) can be found here:
>> https://drive.google.com/open?id=0B7o2fHkRhadEVTBacExBb0tnTDg
>>
>>
>> Best Regards,
>>
>> Mike Cooling
>> on behalf of the CellML 2.0 Specification Writing Group
>>
>>
>> ---------- Forwarded message ----------
>> From: Mike Cooling
>> <mtcooling.research AT gmail.com>
>> Date: Thu, Feb 9, 2017 at 10:51 AM
>> Subject: CellML 2.0 Draft Specification
>> To:
>> cellml-discussion AT lists.cellml.org
>>
>>
>> Dear CellML Community,
>>
>> The '2.0 Specification Writing Group' is proud to present a draft
>> specification for CellML 2.0.
>>
>> Unlike the CellML 1.x specifications, the CellML 2.0 specification is
>> written in a formal, "normative" style. It consists largely of a list of
>> interlocking rules. This makes it difficult to meaningfully 'skim' the
>> document, so for your convenience we present a Release Note highlighting
>> the differences between CellML 1.1 and CellML 2.0. We recommend starting
>> with that Note which can be found here:
>>
>> https://drive.google.com/open?id=0B7o2fHkRhadEeG10cDlIZkNsQk0
>>
>> The specification itself can be found here:
>>
>> https://drive.google.com/open?id=0B7o2fHkRhadEUnp4Zkx4ZTRkZXc
>>
>> We invite community feedback on this draft specification. We are also
>> seeking more information, specifically, on the usefulness of the ability to
>> include definite integrals in the mathematics (currently not in CellML
>> 2.0). If you can provide details of models that need that feature, or wish
>> to provide any other feedback on the Specification, please do so via this
>> mailing list, or, if you prefer, directly to my email address.
>>
>> Best Regards,
>> Mike Cooling, on behalf of the CellML 2.0 Specification Writing Group.
>>
>>
>



Archive powered by MHonArc 2.6.18.

Top of page