Why does CellML have a flat structure as opposed to a hierarchical structure?
(Where “flat” refers to the CellML concept of listing all of the components (in any order), and then later grouping the components together and “hierarchical” refers to the listing of components so that they are nested, allowing the branching to be inherent in the file layout.) A model is a network that may have numerous hierarchical relationships defined over it, where these relationships will not necessarily coincide. Consider a signalling pathway with some abstract relationships in it that spans numerous regions which occur in different parts of the geometric hierarchy (i.e, in different physical locations in the cell). In such a case, it would be difficult if not impossible to construct a uniform hierarchy without conflicts. The principal hierarchy in an electrophsyiological model should be geometric, as well. But a modeller may wish to use an abstract relationship between components (such as encapsulation) to hide unnecessary complexity from the user within a single component. Als