CellML.org - Progress Report 27 March 2001
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | |||||||||||||||||||||||||
![]() | ![]() | ||||||||||||||||||||||||||||||
![]() | ![]() | ||||||||||||||||||||||||||||||
![]() | ![]() | ||||||||||||||||||||||||||||||
![]() | ![]() | ||||||||||||||||||||||||||||||
![]() | ![]() | ![]() | ![]() | ![]() |
April 2001 March 2001 29 March 2001 28 March 2001 27 March 2001 26 March 2001 21 March 2001 20 March 2001 15 March 2001 14 March 2001 13 March 2001 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Author: 1 IntroductionThis document proposes a scheme/some schemes for subsectioning the MathML element set for use in CellML. Why? One of the most frequent complaints about CellML is having to deal with the full complexity of MathML. If the MathML element set were divided up into some logical subsets, then software could properly advertise that it was only able to handle certain sets of elements or certain problem types. Throughout this document, when we refer to "MathML elements", we really mean just the MathML content elements. The CellML specification is not concerned with the presentation form of MathML markup, although this could be conceivably used for describing renderings of CellML variables and equations — such rendering information is considered metadata. Also, elements that are marked as deprecated in the MathML 2.0 specification will not be considered. 2 Problem or Element TypeThe most important issue to consider is the basis of any element subsetting. It is most likely that software will be able to deal with specific types of modelling problems. An example of a problem type is "system of ordinary differential equations". It should be possible to define some common problem types and associate a subset of MathML elements with each problem type. Software that claimed to deal with that problem type would be expected to read in valid MathML using the element set associated with that problem type, and would only output MathML elements from that element set for a problem of the specified type. Possible problem types are discussed further in Section 3. An alternative would be to split up the MathML element set by element type (i.e., function). Software could claim to be able to handle elements from a number of element sets. A specific problem type would generally involve using several sets. Possible element sets and their relationships to problem types are described in Section 4. 3 Problem TypesThe American National Institute of Science and Technology has assembled a repository of links to mathematical software sorted by problem category. Their Guide to Available Mathematical Software website defines a problem decision tree, the root categories of which are given below.
With the exception of categories B, O, P, Q, R, S and Z, all of the categories contain some subcategories which might conceivably be relevant to CellML and some that probably aren't. The task of analysing the hundreds of subcategories and defining sets of MathML elements that are appropriate for the problem type is too vast to contemplate. 4 Element TypesWe will consider how the MathML element set might be divided up into element types. The MathML specification itself divides the MathML element set into a number of element types in the complete listing of content elements given in Section 4.4 of the spec. The categories are given below:
This subsetting does not suit our needs because, in most cases, each category contains elements that are useful for specific problems and elements that aren't. For instance, the "basic content elements" category contains the 4.1 Lets Jump InAs the eminently quotable Chris Bradley would say: "If you want to do it right, you've got to do it yourself". Having fruitlessly tried to steal the work of others (one of the fundamental principles of CellML development), I decided to just have a go. A good starting point is to look at the most basic lumped parameter electro-physiological models — for instance, the Hodgkin Huxley squid axon model of 1952. The MathML elements used in this are listed in Figure 1,
Figure 1 The complete set of MathML content markup elements needed to define the governing equations from the Hodgkin Huxley squid axon model of 1952. These will form the basis of the basic MathML elements.
The set of elements from the H-H model is actually quite a useful set. There are some obvious issues. First of all, if we require the recognition of
The basic set also lacks some of the elements needed to do proper differentiation. In addition to the
Moving to more complex issues now: another model we've looked at in detail is the Luo Rudy model from 1994. This model makes use of switching functionality in many of its gate variable calculations. These equations are analogous to the common programming form
We have only the four basic arithmetic operators in the basic set so far, plus three classical functions. We should probably add the To quickly bin some other elements: CellML can borrow MathML's "theory of sets", "sequences and series", "statistics", "linear algebra" and "constant and symbol elements" sets. These are largely useless to CellML, but we may as well keep them differentiated to make them more usable.
The "semantic mapping elements" is a more tricky proposition, because it defines the elements needed to annotate an equation with its rendering (if we chose to do it using the MathML mechanism, rather than a CellML metadata mechanism). There are only three, and two of those can only be used in conjunction with the other. Basically, if software knows how to deal with the
The hard part now is deciding how to split up the "basic content elements" set. This includes set-related elements, function related elements, and domain-related elements. Let's eliminate the function related elements first. In order to declare a function defined in MathML, we need the 5 RecommendationWe are now in a position to start defining some sets. These sets are in the subsequent figures. It is expected that some sets could be merged to get a smaller number of larger sets.
Figure 2 The basic set.
Figure 3 The functions set.
Figure 4 The miscellaneous arithmetic operators set.
Figure 5 The integration set.
Figure 6 The partial differentiation set.
Figure 7 The imaginary set.
Figure 8 The trigonometry set.
Figure 9 The theory of sets set.
Figure 10 The sequences and series set.
Figure 11 The statistics set.
Figure 12 The linear algebra set.
Figure 13 The constants and symbols set.
Figure 14 The not very useful set. | ![]() | ![]() | ![]() | ![]() | ![]() | ||||||||||
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
| ![]() | ![]() | ![]() | ![]() | ![]() | |||||||||
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | |||||||||||||||||||||||||
![]() | ![]() | ||||||||||||||||||||||||||||||
![]() | ![]() | ||||||||||||||||||||||||||||||
![]() | ![]() | ||||||||||||||||||||||||||||||
![]() | ![]() |