Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
jonrkarr opened this issue Aug 2, 2021 · 1 comment

Comments

@jonrkarr
Copy link
Contributor

jonrkarr commented Aug 2, 2021

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

  • Ordered lists
    • changes (with a model)
  • Unordered sets
    • simulations
    • algorithm parameters
  • Acyclic graphs
    • models
    • tasks
    • functional ranges
@luciansmith
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants