> * Remove the CellML Subset / "fully MathML capable software" - instead, 
> delegate
>   the exact description of what mathematical expressions are allowed in 
> models
>   to secondary specifications which refine the mathematics allowed in 
> CellML to
>   the point that the secondary specification can realistically be completely
>   implemented for all cases.
> 
>   This will allow for tools to support multiple secondary specifications if
>   they deal with more than one problem domain.

this seems to be a good direction to be heading.

> * Remove the recommended prefixes for namespaces in the normative
>   specification, although this could go in the informative specification 
> as a
>   suggestion. This should help ensure that no one relies on things having a
>   particular prefix, which the current specification doesn't go out of its
>   way to prevent.

I don't see this as being a problem, but have no reason not to take it 
out of the normative specification.

> * Make CellML identifiers like _1a valid. The 1.1 specification currently
>   contradicts itself on whether this identifier is valid.

agreed.

> * Assume attributes without an explicit prefix are in the empty 
> namespace, in
>   accordance with 6.2 of the namespaces in XML document. This means that 
> it would
>   be invalid to explicitly put an attribute in the CellML namespaces.
>   <model xmlns="http://www.cellml.org/cellml/1.1#";
>          xmlns:cellml="http://www.cellml.org/cellml/1.1#";
>          cellml:name="test">...</model>
>   would be invalid, while
>   <model xmlns="http://www.cellml.org/cellml/1.1#"; name="test">...</model>
>   remains valid. This seems to be consistent with how people have actually
>   implemented CellML processing software.

yep - sounds like how it should be defined.

> * Software will be required to identify cases (and report an error) where
>   future CellML elements are present (unrecognised namespaces starting with
>   http://www.cellml.org/cellml/).

I think this one needs a bit of elaboration. I'm guessing this applies 
to all software which claims to be CellML 1.2 compliant/conformant to 
some degree, right? and would need to tie in with applications 
supporting the secondary specifications with regard to the type of 
MathML they support...

> * It will be valid to define presentation MathML from within extension 
> elements.
>   This should be legitimate content for an extension element.

didn't realise this was currently not allowed. Definitely good to allow 
it. On a related note, I presume it currently is and will continue to be 
valid to also provide presentation MathML using the annotation mechanism 
within MathML?

> * Software will no longer be encouraged to alert the user to unrecognised
>   extension elements. Extension elements shouldn't contain information 
> which is
>   essential to the model processing, so there is no need to warn the user.

agreed.

> * In CellML 1.1, only one connection element can be present for all 
> variables
>   being connected for a particular pair of components. This restriction can
>   make coding models unnecessarily hard and there is no evidence that it
>   reduces the implementation burden. Therefore, it makes sense to remove 
> this
>   restriction. It will still not be possible to connect the same 
> variables more
>   than once.

I don't recall the discussion on this issue ever being resolved, but 
this would imply that some resolution was achieved somewhere?

> * The current specification says:
>   "A variable with either a private_interface or public_interface attribute
>    value of "in" must be mapped to no more than one other variable in the
>    model. [ Note that a similar restriction does not apply to variables with
>    interface values of "out". An output variable can be mapped to multiple
>    input variables in various components in the current model. ]"
> 
>   The problem with this is that it doesn't properly account for mappings 
> where
>   a variable is forwarded into an encapsulated block. As an example, 
> consider
>   the following encapsulation hierarchy (higher components encapsulate lower
>   ones)...
> 
>                    A
>                    |
>                    B
>                   / \
>                  C   D
> 
>   Suppose that component A has, for variable v, public_interface="none",
>   private_interface="out", and B has for variable v, public_interface="in",
>   private_interface="out" (connected to A), and C and D have 
> public_interface="in",
>   private_interface="none", both of which are connected to B.
> 
>   There is no reason why this should not be valid. However, the 
> specification
>   contradicts itself on whether this is allowed. On one hand, because B has
>   private_interface="out", it "can be mapped to multiple input variables in
>   various components in the current model.", but because it has a public
>   interface of in, it "must be mapped to no more than one other variable 
> in the
>   model".
> 
>   This can be fixed by firstly defining the interpretation of 
> connections and
>   interfaces, and then adding constraints based on that which actually 
> describe
>   which connections are allowed to each set of variables.

will be interesting to see how such a definition ties in with the idea 
of input variables becoming output variables based on the way the 
components are hooked together :)

> * CellML 1.1 provides facilities for the support of scripting. While we
>   probably shouldn't rule this out in the next version, it should be 
> delegated
>   to the secondary specifications mentioned above.

you mean the inclusion of ECMA script code via the csymbol mathml element?

> * The reaction element will be removed from the specification. The 
> informative
>   specification will provide alternative ways to represent the same 
> information
>   without breaking tools which are not reaction aware, making CellML 
> more domain
>   independent.

While I still have reservations about the abruptness of the removal of a 
core CellML element and the fact that discussion on this issue was never 
resolved, I see that no one else is concerned and so have no issues with 
this change.

> * metre and meter, and litre and liter will be described as being equivalent
>   to one another, instead of being separate, dimensionally incompatible 
> units.

good.

> * The multiplier and prefix attribute part of the units conversion 
> formula were
>   incorrect in the CellML 1.1 specification, when compared to the 
> examples. The
>   1.2 specification will describe units conversions correctly.

sweet.

> * Units conversion on connections is not mandatory in CellML 1.1. This will
>   result in different results in different packages. In CellML 1.2 it will
>   be mandatory.

makes sense, especially given the support in the api implementation.

> * Software will not be permitted to automatically (i.e. without asking the
>   user) insert constants into the mathematics in an attempt to correct any
>   units inconsistencies identified, but will of course be able to report 
> on any
>   errors identified.

will need to see further details on such a constraint, especially in 
regard to software with little or no user interaction.

> * Containment information will no longer be permitted, nor will user defined
>   relationships. Only a single encapsulation tree will be permitted. 
> Instead,
>   in the informative version of the specification, users will be 
> encouraged to
>   represent such information as RDF in metadata.

Same comments as for the removal of the reaction element.

> * Import semantics will be changed so that each import element creates one
>   separate instance of the model, and a given unit or component can only be
>   imported once per import element. This is required to avoid various
>   consistency problems that arise otherwise - see the earlier mailing list
>   thread on this.

yep.

> * Add support for non-scalar mathematics, subject to what the secondary
>   specification allows.

I think this deserves a more detailed proposal in order to understand 
the full implications of such a change.



Andre.
_______________________________________________
cellml-discussion mailing list
[email protected]
http://www.cellml.org/mailman/listinfo/cellml-discussion

Reply via email to