Skip to content

Mixing of XML/info-item talk and conceptual talk #207

@MichaelClerx

Description

@MichaelClerx

Hi all!

Problem

In recent work on chapter 3, we've started mixing talk of syntax and XML items with talk of conceptual items i.e. the thing a CellML model represents.

It's visible most clearly when we talk about references. A reference is said in many places to be to e.g. "a units element" (which is an XML info item!), rather than to the conceptual unit it represents. This makes all the language really weird and convoluted, and turns chapter 3 into a second chapter on syntax (which was what chapter 2 was supposed to be).

(It also creates issues, because there is no units element for a built-in unit, and recursive imports are then to a units element in some arbitrarily deeply nested infoset. If we allow the imports to just create new conceptual units we never need to talk more than one layer deep in the spec. See #208)

In sections like 3.9 and 3.10 we do it much better, and say things like

For a given variable, the available interfaces SHALL be determined by the interface attribute information item on the corresponding variable element as follows.

Solution

I think we can fix this quite easily, by

  • re-ordering chapter 3 a bit, so that we have the space to say things like "a model element defines a model", "a variable element defines a variable", before we get into e.g. encapsulation and imports
  • re-writing parts of chapter 3, without changing its meaning

It's a bit of work, but it would ensure the spec says what we intend it to say. It wouldn't actually change its (intended) meaning (just its actual meaning).

Alternative?

The alternative is to do this later, in some kind of CellML 2.0.1. This would be really annoying as this second spec wouldn't actually introduce or remove anything from the language, it would just describe it better.

Metadata

Metadata

Labels

normativePertaining to the normative specification

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions