CellML Discussion List

Text archives Help


[cellml-discussion] Survey on opinions for the backwardscompatibility levels for future CellML Specs


Chronological Thread 
  • From: david.nickerson at nus.edu.sg (David Nickerson)
  • Subject: [cellml-discussion] Survey on opinions for the backwardscompatibility levels for future CellML Specs
  • Date: Wed, 09 Jan 2008 11:37:33 +0800

I agree with Poul, especially in regard to having API implementation and
translation tools available at the time of transition. Also, where it is
not feasible to automatically translate a model such that it is
compatible with a new specification there must be well documented
processes for model authors to follow in order to manually transition
their models.


Andre.

Poul Nielsen wrote:
> I think that the best policy is to evolve CellML toward a clean and
> simple specification. I don't think that this means that we require a
> complete break with previous specifications at each major iteration
> if, for example, we use deprecated/obsolescent flags. I believe that
> it is essential, however, that we provide a mechanism for adding and,
> importantly, removing elements and attributes.
>
> We have discussed previously the option of retaining deprecated/
> obsolescent elements/attributes for one or several iterations with a
> view to maintain compatibility, but signaling that more appropriate
> constructs are available and that such features are marked for
> deletion. Examples of what is at issue here are suggestions that (1)
> the reaction element be removed and (2) the public_interface and
> private_interface elements be removed or their attributes be
> modified. Deprecation has the advantage of offering a more gentle
> transition, allowing models expressed in older, but not every,
> iteration specification to be interpreted. It has the disadvantage
> that it may not provide a clean break, making it difficult to deal
> with the addition of new features that may be incompatible with old
> ones. In both scenarios it will be important to provide tools to
> translate older models into newer versions that conform to later
> specifications.
>
> Because I think that it is important to be able to remove elements/
> attributes, I am not in favour of option A. Like Mike, I have a
> problem with the statement that "[future versions] may remove
> functionality that does not have an established base of software
> which correctly implements that functionality". If the addition or
> removal of elements or attributes results in a better specification,
> then I think that consideration should be made for such changes
> irrespective of whether there is "an established base of software
> which correctly implements that functionality". My preferred option
> is C, with the proviso that translation tools and APIs, conforming to
> the new specification, be made available at the time of transition.
>
> Best wishes
> Poul
>
> On 2008 Jan 09, at 11:58, Andrew Miller wrote:
>
>> Hi all,
>>
>> There have recently been some discussions of changes which would
>> drastically break forwards or backwards compatibility of CellML (for
>> example, changing the way that connections work).
>>
>> I think that it is important that we come to some consensus on what
>> the
>> policy for inter-version compatibility in CellML should be quite soon,
>> because this drastically affects decisions that need to be made in
>> CellML specification development.
>>
>> It doesn't really make sense to be inconsistent with respect to
>> version
>> compatibility - it would be quite unfortunate if we worked hard to
>> keep
>> compatibility for one part of CellML, and then broke it in another
>> major
>> part such as by changing the way connections work, and so I think we
>> need a policy on this.
>>
>> I have come up with a number of different potential policy
>> statements on
>> when backwards compatibility should be broken and when it should be
>> kept. It might help us to reach consensus if members of the CellML
>> community could rank the policies in order of preference (1 is the
>> most
>> preferable policy, 2 the next most, and so on), and suggest any good
>> policies that may be missing.
>>
>> Option A)
>> Future versions of CellML should aim to solely express the
>> intention of
>> previous versions better and more clearly. They should aim to keep
>> full
>> compatibility with an implementation of the specification according to
>> the rules of the specification as they were interpreted by
>> implementors.
>>
>> Option B)
>> Future versions of CellML should try to be mostly compatible with
>> existing implementations of previous versions of CellML. They may
>> remove
>> functionality that does not have an established base of software which
>> correctly implements that functionality. They may also add in new
>> functionality, if that new functionality significantly increases the
>> expressiveness of the language. However, in normal circumstances,
>> compatibility should be maintained, so that when a model not using new
>> features is saved in the new version's most preferred format, it can
>> still be correctly loaded into software only supporting the old
>> version.
>> Likewise, a model not using any removed features should be able to be
>> loaded in software supporting only the new version of the
>> specification.
>>
>> Option C)
>> Future versions of CellML should make any changes which make it
>> conceptually cleaner, even if there is a less clean compromise
>> available
>> that would have lesser compatibility implications. Software will
>> need to
>> explicitly support more than one version as a completely separate
>> format.
>>
>> My preferred choice is Option B. Despite being apparently at opposite
>> ends of the spectrum, Option A and Option C are, in my opinion, fairly
>> similar, because if we adopted Option A, larger changes would
>> appear in
>> a new specification called something other than CellML. Although there
>> could be advantages of coming up with a more meaningful name than
>> CellML, I think that this would also set us back in terms of community
>> awareness of the specification, and so I think that Option C is
>> marginally better than Option A (i.e. my personal order of
>> preference is
>> currently B:1, C:2, A:3).
>>
>> I look forward to any feedback on this you may have.
>>
>> Best regards,
>> Andrew
>>
>> _______________________________________________
>> cellml-discussion mailing list
>> cellml-discussion at cellml.org
>> http://www.cellml.org/mailman/listinfo/cellml-discussion
>
> _______________________________________________
> cellml-discussion mailing list
> cellml-discussion at cellml.org
> http://www.cellml.org/mailman/listinfo/cellml-discussion

--
David Nickerson, PhD
Research Fellow
Division of Bioengineering
Faculty of Engineering
National University of Singapore
Email: david.nickerson at nus.edu.sg




Archive powered by MHonArc 2.6.18.

Top of page