SED-ML / sed-ml

Simulation Experiment Description Markup Language (SED-ML)
http://sed-ml.org
5 stars 2 forks source link

Clarify which lists should be thought of an ordered lists vs unordered sets vs acyclic graphs #196

Open jonrkarr opened 3 years ago

jonrkarr commented 3 years ago

I think it would be helpful to clarify which lists should be thought of an ordered lists vs unordered sets. The consistent prefix listOf suggests these data structures should be interpreted the same, and that they should be interpreted as ordered lists. However, this is not always that case. This information is in the specifications, but not as clearly as it could be.

In yet some other cases, through relationships the "lists" really need to be thought of as acyclic graphs (e.g., models -- because the source of models can be other models). In such cases, disjoint subgraphs can be processed independent (e.g., in parallel), but successively layers of graphs need to be processed in series.

Examples

luciansmith commented 2 years ago

This is really late, but: I actually believe that as designed, model changes were supposed to be unordered sets as well. In other words, if you had two changes:

M1.S1 = M1.S2 M1.S2 = M1.S1

This would flip the values of S1 and S2, as opposed to making both equal to S1 (which it would if the list were ordered). When SED-ML was designed, ordered XML was considered bad design, and equivalent lists of changes in SBML (such as event assignments or initial assignments) were both unordered and non-interacting: you built up the new state of the model from the old state of the model, and never used the new state to continue making changes.

As such, all lists in SED-ML are consistent: they can all be considered acyclic graphs, with some falling back to unordered sets if nothing depends on anything else in the set.