CellML.org - Meeting Minutes 4 October 2000
|
Author: 1 SummaryThis progress report sums up an Auckland teleconference on October 3, a subsequent meeting between Warren and Scott regarding low-level XML re-use, some MathML research Warren did and some XMI research Melanie did. 2 Auckland TeleconferenceMelanie had gone over her earlier CellML metadata requirements work, and this had highlighted some issues which she wanted to raise with Poul and David at Auckland, who typically have strong views on pretty much everything. The issues document is recorded in Figure 1 for posterity. The Auckland teleconference was used both to discuss Melanie's metadata questions and to review the final versions of the meeting minutes from September 28, 1 October and 2 October.
The general consensus on the first metadata question was that metadata in general was strictly optional, with the exception of Poul argued quite forcefully that the absence of metadata should not imply inheritance of metadata, with regard to the second question. This promotes re-use of model-parts, as we don't have to look for information anywhere other than in the model-part. Finally, it was generally agreed that CellML must include a general facility for specifying reference information, but define some standard shortcut mechanism for making use of Medline UIs. This was a mildly disappointing result as Warren had been secretly hoping that Melanie would turn blue in the face.
With regard to discussion of the September 28 minutes, the idea of re-introducing a Poul and David were fairly happy with the CellML extension mechanism (based on XML namespaces) and the script definitions described in the September 28 and October 2 minutes respectively. They re-iterated however their displeasure with the low-level XML re-use scheme, and in particular, with the idea of using it for class definition. Again, they talked about using a more high-level scheme, and again they kept weaseling out of doing any work themselves — luckily, Melanie was kind enough to volunteer to investigate this further. More discussion in Section 4. 3 Low-level XML Re-usePoul and David had been pretty harsh on the ol' low-level XML Re-use scheme since Warren had proposed that it was the ideal candidate for the implementation of class definition (as described in the September 28 meeting minutes). Poul had gone so far as to question its very need for existence. Interestingly, so did Scott, who would probably have had to implement it at some point. He pointed out (yes, Warren had realised this) that, although it was useful as a cut and paste mechanism for hand-authoring XML files, it would be tricky for software to make use of when outputting, and even when the exact cutting and pasting was stored, any editing of the model would probably invalidate this. The L2XR scheme's only saving grace was that it effectively provided the same functionality as a notebook — where the modeller can store "diff"s to a model, which might be a useful way of describing simulations. For example, given a model, we could use the L2XR scheme to describe concisely that model with a number of small changes, and associate this with the resulting dataset. 4 Class DefinitionMelanie waded straight into the class definition thing by looking at the drowsiness-inducing XMI documentation. XMI is aimed at the serialization of UML data models, and is way too complex for our purposes — I wouldn't wish the coding of an XMI interpreter on anyone. So this was thrown out. It appears that the best solution would be to define some vocabulary specifically aimed at defining component classes, with the single concept of extension. The extension mechanism would only allow the addition of information to a class definition, and not allow re-definition of or modifications to inherited information. Modification of information could be made however in class instances, and so something resembling the low-level XML re-use scheme would be necessary here. A really dodgy quick example which kind-of demonstrates the functionality we'd like to see is given in Figure 2. The vocabulary probably could do with some improvement. Of course, if we really did want to milk the object-oriented angle, we would allow redefinition of information based on name. That is, if a subclass defines a variable with the same name as its base class, the latter definition overrides the former. I think we might postpone further discussion on this issue until Poul Nielsen arrives at Physiome. Warren still advocates composition by cutting and pasting. Scott advocates composition by nesting (?? I think.) Poul advocates anything that isn't composition by cutting and pasting. Melanie was left with no options to advocate. 5 Switches in MathMLThe MathML specification is pretty hard to read and it is usually not clear how certain types are equations are supposed to be implemented. Warren spent some time on October 4 reviewing the best way to handle switches, a kind of behaviour fairly prevalent in electro-physiological models. A good example is the calculation of alpha_h (the alpha gating variable for the h gate in the sodium channel) from the Luo-Rudy I model. The switch is of the form: 0 if V_m >= -40mV alpha_h = { ... if V_m < -40mV
The markup given in Figure 3 is based on the second example of Section 4.2.5 of the MathML 2.0 March 2000 working draft. Note that in addition to showing off the use of the 6 Variables as Functions of TimeMany models incorporate hysteresis effects, where the model's state is dependent on a previous state. In fact all of a model's state variables (variables whose behaviour is described by differential equations) can be regarded as functions of time. Sometime soon we're going to have to make a big call about actually treating state variables as functions in the math — we'll leave that until Poul Nielsen arrives on the 10th. Just for a laugh, Warren looked at some alternative methods for expressing the value of a variable at a specific point in time in MathML. A quick browse through the MathML documentation revealed two possible approaches to this, and they are shown in Figure 4. 7 Luo-Rudy II HysteresisThe crazy Aucklanders were prepared to concede that, since the Luo-Rudy paper actually cites a particular iterative method for evaluating the calcium buffering in the SR, scripting was acceptable in CellML. However they were fairly adamant that its use should be minimized, and so Warren had a look into the specification of the calcium fluxes in the SR using MathML. (This is the nasty 2ms delay problem.) The result of his investigation is shown in Figure 5.
It would be reasonably tricky for software to work out what was really going on from the MathML in Figure 5, so perhaps this is a good place for the use of the | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||