Hi,

One issue which came up at today's meeting for people at Auckland 
involved with CellML is how we will represent the next version of the 
CellML specification. Having a 'source' format of the specification will 
make it easier for us to propose specific changes to the document and so 
will hopefully allow us to make progress towards the next version of CellML.

There are a few different options out there which might be worth 
exploring. Any feedback from the wider CellML community on the issue of 
how we represent the 'source' of the specification which gets exchanged 
would be very helpful, and after the close of discussions we will be 
able to start preparing draft versions with proposed changes much more 
easily.

I have identified a few possible choices, and have included my views on 
what potential benefits or pitfalls of different approaches will be:

1) Use HTML as is currently stored in the Plone Software Centre.
    Pros:
      * The source format can be directly visualised in the user's 
browser, which reduces the complexity of the required development 
         environment.
      * WYSIWYG type editing possible (although the cleanness and 
consistency of such editors' output may be an issue).
      * We already have the document in this format which we could use 
as a starting point.
    Cons:
      * No automatic ability to generate section references by number 
based on a reference by name in the source.
      * Sophistication of automatic numbering limited to single 
uninterrupted numbered lists with possible manual restarts if there is 
intervening text.
      * Diffs between different HTML versions are hard to read.
      * Even if CSS is used, there will inevitably be some mixing of 
style and content, which makes it harder to make sweeping changes to the 
layout, and makes it harder to create good quality PDF / RTF / plain 
text outputs.
 
2) Use reStructured text.
    Pros:
      * The unrendered reStructured format is quite readable, which 
means that it is easy to learn by example, and also that diffs are more 
readable.
      * Easy to set reasonable and consistent style guidelines for 
writing the specification in the reST source.
      * Reasonable tool support, including in Trac and in ZWiki.
      * Could convert to several types of output.
    Cons:
      * No section references by number based on reference by name in 
the source.
      * No automatic numbering aside from numbered lists (e.g. no counters).
      * No easy way relate specific elements to specific style 
instructions if we need to do this.

3) Use Warren's CWML language
    Pros:
      * We already have the document in this format which we could use 
as a starting point.
      * Reasonably clean markup in terms of header, section, and so on.
      * Supports section references by name, which come out as 
references by number.
      * Can generate multiple output types.
      * Embedded MathML equations can be used.
    Cons:
      * Non-standard.
      * Warren's tools are out of date and need to be updated to be 
useful for the current CellML site - potentially a large time investment.
      * Need to manually create contents sections and the like as it is 
at the moment.

4) Modify the W3C DSSSL based tools (see 
http://www.w3.org/XML/1998/06/xmlspec-report-v21) used for their 
specifications.
    Pros:
      * Allows for section references and generation of full 
specification structure.
      * Supports a lot of specification type metadata and concepts, and 
will therefore delimit everything in specification very thoroughly.
      * Used by the W3C for a large number of specifications, so 
reasonably well field tested.
    Cons:
      * Potentially hard to read diffs if they change lots of sections 
and therefore include parts of the markup.
      * We will need to make some changes to make it non-W3C specific.

5) Use DocBook
    Pros:
      * DocBook widely implemented - lots of tools, several output formats.
      * Lots of semantic markup elements for a lot of different types of 
data.
      * Automated section numbering and content page references.
      * Content page generation
      * With the MathML extension module, embedded MathML can be used - 
I'm not sure how well this works in practice
    Cons:
      * Potentially hard to read diffs if they change lots of sections 
and therefore include parts of the markup.

6) Use the IETF's xml2rfc tools
    Pros:
      * Widely tested.
      * Section references.
    Cons:
      * We would have to update it so it isn't IETF specific.
      * Text-only - no images except ASCII-art
      * Potentially hard to read diffs if they change lots of sections 
and therefore include parts of the markup.

I personally favour options 4 and 5 - I think that option 5 might end up 
being the easiest for us because of the wider tool-base.

Best regards,
Andrew

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

Reply via email to