cellml / cellml-specification

CellML Specification
0 stars 8 forks source link

Reorder 3.11 Interpretation of resets #316

Closed kerimoyle closed 4 years ago

kerimoyle commented 4 years ago

Currently we have this: image

Would it make more sense if point 3 was at the end? It certainly would help with writing the informative stuff ...!

agarny commented 4 years ago

The current order makes sense to me, so could you tell us in what way to have point 3 at the end would help you with writing the informative bit?

MichaelClerx commented 4 years ago

I could see you doing it one of two ways. Either:

Or

Something like that?

kerimoyle commented 4 years ago

It's because the order thing only kicks in when there's more than one reset. We make it mandatory, but in reality, it's not needed unless there is a clash somewhere. So, when explaining it in the current order, I have to discuss the things in (3) regarding order in which things are evaluated before I can even talk about what the reset does (5) or when (4). It would be easier to start from the simple end with one reset ... ? say: 1, 2, 4, 5, 3

kerimoyle commented 4 years ago

... and then all of the special order/equivalences/other variables stuff could be addressed once the reader understood what resets were and how they worked, with an algorithm like @MichaelClerx mentioned.

agarny commented 4 years ago

Ok, I can now see your rationale and I agree with it. So, personally, I would be happy for the order to be changed to 1, 2, 4, 5 and 3.

MichaelClerx commented 4 years ago

I don't mind too much about where the "order" stuff goes. I do see a problem with moving 3 though: it's the first place to mention a connected variable set, which is quite important?

kerimoyle commented 4 years ago

It's important no matter where it goes :) It's just that it's hard to talk about when you haven't yet talked about what the resets are intended to do (4 and 5)? The order is only ever used when more than one reset references the same variable (or equivalent) whereas 4 and 5 are relevant to every single one?

nickerso commented 4 years ago

I prefer the current order. I don't like using the informative spec as a reason for why things should change in the normative spec - this is an issue due to the current way we interlace the informative bits within the normative.

I think it is also important to remember that while we may be writing the informative bits in a given sequence, they are all hidden to the reader from the beginning and they need to expand them to see the ones that they are interested in. (at least that is my current understanding of how this works.) So the reader is likely to be jumping around following the cross references, you can't assume a given reader will follow the same sequence when reading the informative version.

kerimoyle commented 4 years ago

It's not really to do with the informative spec, it's more that I only noticed that the current order didn't make sense to me while writing the informative spec ... :)

kerimoyle commented 4 years ago

Closing as too late to make it :)