CellML.org - Meeting Minutes 22 April 2001
|
Author: 1 IntroductionRecent progress on the units and mathematics parts of the CellML specification has caused some questions to be asked about the current system of conformance levels in CellML. This document presents some background about the issue, and some options. It will hopefully stimulate discussion. Addendums: On 23 April 2001, Poul and David officially ratified the recommendations of this document. On 24 April 2001, it was ratified by Melanie Nelson at Physiome, who added a few items to the terminology list. 2 The Current Two-Level SystemSection 1.2.2 of the 2001-03-02 draft of the CellML specification proposes a two-level system of CellML conformance for both documents and processing software. The intent of the two-level system was to separate out some features of CellML that were considered too hard to require everybody to implement, and yet define them to guarantee interoperability at the "extra for experts" level. Furthermore, processors are only required to implement rules that are deemed "appropriate" to be able to claim CellML compliance. The relevant technical rules are quoted below: CellML conformance level one A CellML Document is conformant to level one of the CellML specification if it complies with all level one rules for documents in the CellML specification. A CellML processor is conformant to level one of the CellML specification if it can validate CellML documents against all level one rules for documents in the CellML specification and it follows all appropriate level one rules for processor behaviour in the CellML specification when interpreting CellML documents. The appropriate rules are those that relate to the intended use of the software (i.e., software that only renders the model need not address the scope of units definitions). CellML conformance level two A CellML document is conformant to level two of the CellML specification if it complies with all level one and level two rules for documents in the CellML specification. A CellML processor is conformant to level two of the CellML specification if it can validate CellML documents against all level one and level two rules for documents in the CellML specification and it follows all appropriate level one and level two rules for processor behaviour in the CellML specification when interpreting CellML documents. The appropriate rules are those that relate to the intended use of the software (i.e., software that only renders the model need not address the consistency of mathematics). 3 The Current Level Two FeaturesThe current areas of CellML which involve two conformance levels because we can not realistically expect everyone to implement them are:
4 A Better Method?The concept of levels was introduced primarily because we want to define some behaviour that we don't expect everyone to implement, and at the same time we want people to be able to claim "complete CellML compliance". We also don't want to define two versions of CellML, because we need to be able to add to the "simple" version of CellML, without adding all the features defined in "hard" CellML. However some people are sure to get confused between levels and versions, and the potential to build up a vast 2-D array of levels and versions that software may be compliant to is frightening. Maybe we can take a leaf from the Terminology section of the XML specification and adapt their definition of for interoperability. Something like "Marks a sentence describing a non-binding recommendation included to increase the chances that CellML documents will be processed in a consistent manner". Reducing the strength of the Level 2 rules to recommendation status removes much of the confusion from the Levels/Versions system. In fact we should probably consider inserting a terminology section in the introduction to the specification. 4.1 RecommendationRemove the current section on conformance levels from the specification. Insert the terminology section into the introduction in place of the Definition of "model" section. We should include definitions of "model" and any other potentially ambiguous terms that we can find in this section. Note that we currently have the definition of "valid CellML document" in this section. 4.1.1 TerminologyA model is an idealized representation of the rules that govern the behaviour of a system. The terms in the following list provide various useful classifications of model, some of which are used in the later definitions of the validity of CellML documents.
The terms defined in the following list are used in specifying the form of valid CellML documents, and the behaviour of CellML-conformant processing software.
The definitions of may and must state that conformant CellML software need only concern itself with rules that are relevant to the intended use of that software. This means, for example, that software designed to render a model is not required to correctly interpret MathML. 4.1.2 Recommended handling of Level Two RulesEach of the features listed in Section 3 can be handled in the specification in the following way.
Note the the "Subsetting of MathML" rules reflect a limitation rather than an extension to the specification, so a valid CellML document can contain any valid MathML content markup. As far as CellML documents are concerned, the CellML subset is only a recommendation, which is non-binding. However, CellML software is only required to interpret the elements in the CellML subset, which makes the interoperability recommendation pretty darn important. This is a preferable option to stating something like "A valid CellML document must only contain elements from the CellML subset", because this would effectively prevent people from extending MathML in a valid way. We don't want to discourage people from doing this. The algorithms for units conversion and equation dimension checking and all related examples and information can be moved to the appendices depending on popular demand. | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||