Re: [cellml-discussion] CellML 1.1 to draft CellML 1.2 normative specification mapping

2008-02-21 Thread Alan Garny
Hi Andrew,

> > - Section 2.6.1: you may want to be consistent in the way you refer
> to
> > attributes in general. Compare this section with Section 4.2.1 for
> example.
> > - Section 3.3: are we missing 3.3.b and 3.3.c (in
> > http://www.cellml.org/Members/miller/mapping-1-1-to-draft-
> 1.2/mapping/toplev
> > el.xhtml at least)?
> >
> You are right that in many cases I have used "attribute" as a short-
> hand
> for "attribute information item" in a number of places. Because we are
> talking about XML Infosets, it is technically correct to refer to
> "attribute information items". Attribute information item would get a
> little unwieldy in places - would you be happy with defining attribute
> to mean attribute information item in the terminology section?

Yes, after all you have already taken that kind of approach (e.g. Section 5
where you refer to "component element information items" as "component
elements").

> > - Section 3.4.c: shouldn't U+002E be introduced in Section 1?
> > - Section 3.5.e: shouldn't 'e' and 'E' be referred to as U+0065 and
> U+0045,
> > respectively? Again, shouldn't those be introduced in Section 1? I am
> not
> > convinced and, as a result, I am not convinced about U+002D and
> U+002E
> > either anymore.
> >
> We do need to be careful that everything is unambiguous. There are lots
> of characters which people might potentially try to use for full stop
> and hyphen-minus (I have heard of models purporting to be CellML models
> with all sorts of Unicode characters in place of that character,
> usually
> as a result of people copying physical constants from online sources or
> word processors), although saying Basic Latin may be enough to make it
> unambiguous. I think that Basic Latin 'e' and 'E' are definitely
> unambiguous, although perhaps there is still a case for consistency of
> notation, perhaps by saying 'e'  (U+0065) or 'E' (U+0045).

That's what I was after: consistency. If you were to say something like "'e'
(U+0065) or 'E' (U+0045)", then you might want to do the same with say "'-'
(U+002D)". This way, one wouldn't have to look up the particular Unicode
character you refer to (indeed, though I knew what you were referring to, I
did look up the different Unicode characters you refer to).

> > - Section 4.2.2: not critical/essential, but I would personally have
> the
> > order 4.2.2.d first, followed by e, a, c and b, i.e. the order in
> which a
> > model might be written if it was to be written from scratch.
> >
> I think 4.2.2 is essential - without it section 2.4.1 would mean that
> model element information items could only contain whitespace, RDF and
> extension element information item children.
> 
> In terms of the ordering, I did think about ordering schemes for the
> elements, and the reason I went for an alphabetical ordering was to
> choose an arbitrary ordering of something which doesn't matter.
> 
> You suggest the ordering import, units, component, group, connection,
> although I know of people who prefer very different orderings. Perhaps
> keeping things like this alphabetical might be the safest approach from
> the point of view of producing an uncontroversial draft.

I didn't realise it was in alphabetical order. I agree that this is most
likely the safest approach.
 
> > - Section 5.1.2: not critical/essential, but I would again personally
> have
> > the order c, a and b.
> >
> or we could alphabetise this one properly - I guess that the MathML
> entry should be sorted as 'm', then units, then variable. I am now
> assuming that you mean the order is not critical, and not the section
> itself?

Yes, that's indeed what I meant (and the same obviously holds true for my
comment above on Section 4.2.2). Otherwise, I agree on your alphabetical
order.

> BTW, the text is supposed to mean that the order in the CellML Infoset
> is not important.
> I don't think "... MAY contain zero or more specific information item
> children, each of which MUST be of one of the following types ..."
> could
> be interpreted as requiring that all of one type of children must
> appear
> before the first of the next type of child, but perhaps I am missing
> something.

Agreed, so I don't think you are missing anything here.

> > - Section 16.1.1: lack of consistency. You have "... the value of the
> name
> > attribute MUST NOT be identical to the name attribute of any other
> units
> > element child of that model element..." while in Section 6.1.1.a you
> have
> > "... The value of the name attribute MUST NOT be identical to the
> name
> > attribute on any sibling variable element." In other words, in one
> case you
> > refer to the child of a parent element while in another you refer to
> sibling
> > elements.
> >
> I think that sibling elements are semantically the same thing as the
> other child elements of the parent element, so can be used
> interchangeably depending on which one is the least unwieldy in the
> context.

Agreed, I was merely pointing out a lack of consistency.

Re: [cellml-discussion] CellML 1.1 to draft CellML 1.2 normative specification mapping

2008-02-20 Thread Andrew Miller
Alan Garny wrote:
> Hi Andrew,
>
>   
>> I have now defined a mapping between CellML 1.1 and one draft of CellML
>> 1.2. I have put this up at:
>> http://www.cellml.org/Members/miller/mapping-1-1-to-draft-1.2/mapping
>>
>> It currently has all the mappings from 1.1 to a particular 1.2 draft,
>> although it may be missing some of the reverse mappings.
>> 
>
> I haven't had time to go through everything in detail (i.e. check that
> everything that is in the original CellML 1.1 Specification is also in your
> draft), but as far as I can tell (i.e. as far as I can remember the original
> CellML specification) it all seems fine to me and it will no doubt be very
> useful to anyone interested in CellML (it would certainly have saved me a
> lot of time when working on COR's CellML API!). Anyway, here are some
> comments which I hope will prove useful to you in some way or another (sorry
> in advance for the number of them!):
>
> - Section 1: you may want to provide a link to RFC 2119
> (http://www.ietf.org/rfc/rfc2119.txt I believe).
>   
Good point, I have now drafted a version which I will push to my public 
git shortly which adds RFC2119 as a normative reference.

> - Section 1: shouldn't we have a definition for a CellML 1.0 Namespace? I
> guess you may not have given one because your document is currently about
> CellML 1.1 and will then be targeting CellML 1.2?
>   
No, the specification mixes namespaces in accordance with the rules that:
  1) Any element which hasn't changed semantics from CellML 1.1 keeps 
the CellML 1.1 namespace in CellML 1.2.
  2) Any element which changes semantics goes in the CellML 1.2 namespace.

CellML 1.1 already changed the namespace for everything from the 
namespace used in CellML 1.0, so it makes no sense to mix CellML 1.0 
namespaces with CellML 1.1 or 1.2 namespaces. Because we never refer to 
CellML 1.0 namespaces, there is no point in providing a definition for them.

> - Section 1: would it be worth to provide a link where the reader could look
> up the Unicode characters given in some definitions (e.g. the Basic Latin
> alphabet; possible link: http://www.unicode.org/ and in particular
> http://www.unicode.org/charts/)?
>   
I don't think this is necessary in a normative specification - I don't 
think providing such a link would serve the goals of a normative 
specification, but this would of course be a good thing for an 
informative specification.

> - Section 2.2.1.d: did you really mean "element information element" or
> "element information item"?
>   
I have drafted a revision to fix this - thanks for finding that.
> - Section 2.3: should its title be "Element information items" instead of
> "Character information items"?
>   
The section says...
"
  An element information item in the CellML namespace MUST NOT 
contain any
  character information items, except for character information 
items which
  consist entirely of whitespace characters. 
",
which is the constraint on the occurrence of character information items 
in CellML documents, so the title in my draft seems to make sense to me 
at least.

> - Section 2.4.3: once again (see comment on Section 1 above), there is no
> reference to CellML 1.0.
>   
This is because elements in the CellML 1.0 namespace do not comply with 
CellML 1.2. Software which is attempting to process a document in 
accordance with the CellML 1.2 specification should give an error if 
they encounter an element in the CellML 1.0 namespace (if those software 
packages want to implement CellML 1.0 as well, they of course can, but 
compliance with the CellML 1.0 specification is not related to 
compliance with CellML 1.2 because, for a given CellML Infoset, the two 
specifications are mutually incompatible).

> - Section 2.4.4.a: I don't know whether this is the rendered version of your
> document that is responsible for it or not, but it might be worth
> emphasizing keywords such as local names (here, "RDF")?
>   
DocBook has an element called literal, which I think can be used for 
this purpose. I have changed the RDF and math cases in 
general-matters.xml, but not the remainder yet, because many of them are 
changed in various other drafts, and it might be easier to wait for some 
of them to be integrated in as the set of literals will change as a 
result of that process.

> - Section 2.5.4: I don't see the point of having "when the parent
> information item is not modified" and would therefore suggest to delete that
> bit. Indeed, it's a "SHOULD", so the CellML Processing Software may, for
> whatever reason, decide not to implement that 'rule'.
>   
The intention is that extension information on an element be preserved, 
as a matter of best practice, when a particular element in a document is 
not modified. If, on the other hand, that element is modified, then it 
would no longer make sense to try to preserve unrecognised extension 
information, because it relates to what an element used to look like. It 
is a SHOULD ru

Re: [cellml-discussion] CellML 1.1 to draft CellML 1.2 normative specification mapping

2008-02-20 Thread Alan Garny
Hi Andrew,

> I have now defined a mapping between CellML 1.1 and one draft of CellML
> 1.2. I have put this up at:
> http://www.cellml.org/Members/miller/mapping-1-1-to-draft-1.2/mapping
> 
> It currently has all the mappings from 1.1 to a particular 1.2 draft,
> although it may be missing some of the reverse mappings.

I haven't had time to go through everything in detail (i.e. check that
everything that is in the original CellML 1.1 Specification is also in your
draft), but as far as I can tell (i.e. as far as I can remember the original
CellML specification) it all seems fine to me and it will no doubt be very
useful to anyone interested in CellML (it would certainly have saved me a
lot of time when working on COR's CellML API!). Anyway, here are some
comments which I hope will prove useful to you in some way or another (sorry
in advance for the number of them!):

- Section 1: you may want to provide a link to RFC 2119
(http://www.ietf.org/rfc/rfc2119.txt I believe).
- Section 1: shouldn't we have a definition for a CellML 1.0 Namespace? I
guess you may not have given one because your document is currently about
CellML 1.1 and will then be targeting CellML 1.2?
- Section 1: would it be worth to provide a link where the reader could look
up the Unicode characters given in some definitions (e.g. the Basic Latin
alphabet; possible link: http://www.unicode.org/ and in particular
http://www.unicode.org/charts/)?
- Section 2.2.1.d: did you really mean "element information element" or
"element information item"?
- Section 2.3: should its title be "Element information items" instead of
"Character information items"?
- Section 2.4.3: once again (see comment on Section 1 above), there is no
reference to CellML 1.0.
- Section 2.4.4.a: I don't know whether this is the rendered version of your
document that is responsible for it or not, but it might be worth
emphasizing keywords such as local names (here, "RDF")?
- Section 2.5.4: I don't see the point of having "when the parent
information item is not modified" and would therefore suggest to delete that
bit. Indeed, it's a "SHOULD", so the CellML Processing Software may, for
whatever reason, decide not to implement that 'rule'.
- Section 2.6.1: you may want to be consistent in the way you refer to
attributes in general. Compare this section with Section 4.2.1 for example.
- Section 3.3: are we missing 3.3.b and 3.3.c (in
http://www.cellml.org/Members/miller/mapping-1-1-to-draft-1.2/mapping/toplev
el.xhtml at least)?
- Sections 3.3.b and 3.4.b: shouldn't U+002D be introduced in Section 1?
- Section 3.4.c: shouldn't U+002E be introduced in Section 1?
- Section 3.5.e: shouldn't 'e' and 'E' be referred to as U+0065 and U+0045,
respectively? Again, shouldn't those be introduced in Section 1? I am not
convinced and, as a result, I am not convinced about U+002D and U+002E
either anymore.
- Section 3.2-3.5: shouldn't we have a rule similar to 3.1.c?
- Section 4.2.2: not critical/essential, but I would personally have the
order 4.2.2.d first, followed by e, a, c and b, i.e. the order in which a
model might be written if it was to be written from scratch.
- Section 5: for consistency, you might want to consider having "... local
name component..." rather than "... local name equal to component..." (see
2.4.4.a). If you were to go ahead with it, then it should also be done in
the rest of the document (i.e. Sections 6-17).
- Section 5.1.2: not critical/essential, but I would again personally have
the order c, a and b.
- Section 6.1.2.a: as for Section 2.4.4.a (see above), it might be good to
emphasize the different values (here "in", "out" and "none") that a
particular (here "public_interface") may have. Again, there are other places
where this also applies (i.e. 6.1.2.b, 12.1.1, 16.1.2, 18.3.1.c, 18.3.4,
18.4.10, 18.6.2, 18.6.3.c.i-iv and maybe others that I might have missed!).
- Section 10.1.1: if only encapsulation grouping is to be supported (dixit
your mapping document), we might then allow one and only one
relationship_ref element (rather than one or more of them).
- Sections 11 & 12: shouldn't those sections be swapped, so that
relationship_ref elements are discussed before component_ref elements (i.e.
the order in which they are introduced in Section 10.1)?
- Section 12.1.1: you make a reference to the fact that the relationship
attribute "MUST either take the value encapsulation or containment".
However, in your mapping document, you mention that "containment [is] not in
this draft version [and that] this needs further discussion".
- Section 13.1.2: the formatting is not consistent with say 10.1. One might
expect a list, as well as a reference to Sections 14 and 15.
- Section 16.1.1: lack of consistency. You have "... the value of the name
attribute MUST NOT be identical to the name attribute of any other units
element child of that model element..." while in Section 6.1.1.a you have
"... The value of the name attribute MUST NOT be identical to the name
attribute on 

[cellml-discussion] CellML 1.1 to draft CellML 1.2 normative specification mapping

2008-02-12 Thread Andrew Miller
Hi all,

I have now defined a mapping between CellML 1.1 and one draft of CellML 
1.2. I have put this up at:
http://www.cellml.org/Members/miller/mapping-1-1-to-draft-1.2/mapping

It currently has all the mappings from 1.1 to a particular 1.2 draft, 
although it may be missing some of the reverse mappings.

Best regards,
Andrew
___
cellml-discussion mailing list
cellml-discussion@cellml.org
http://www.cellml.org/mailman/listinfo/cellml-discussion