CellML Discussion List

Text archives Help


[cellml-discussion] Model versions


Chronological Thread 
  • From: matt.halstead at auckland.ac.nz (Matt )
  • Subject: [cellml-discussion] Model versions
  • Date: Wed, 15 Aug 2007 23:23:55 +1200

On 8/15/07, David Nickerson <david.nickerson at nus.edu.sg> wrote:
> Hi Matt,
>
> This makes quite a bit of sense to me.
>
> > So, more concretely, I am proposing that:
> > - we start the notion of a versioned workspace or package.
>
> yep. It would also be good to decide on either workspace or package :-)

I like 'package' over 'workspace' since I can imagine someone's
workspace having more than one package present.

I am thinking of a package as being a collection of one or more models
that are considered a unit. I don't know whethere this would require
all models to be related in some way via imports, or whether there
could be arbitrary collections that form a package where entry
points(models) are defined in a manifest/metadata file.

>
> > - the package is named and has an abstract version
>
> and the name is part of the package URI or the URI is the name?

I don't know if a package name would need to be a URI, but it might be
convenient. It's not clear to me yet what the scenarios for a package
would look like. But if there is some consensus of at least a package
root that contains the package manifest/details, then a URI for this
could be possible. But if not a URI, I would at least recommend some
use of namespaces, e.g. the package a.b.c.tar.gz would unbundle into
a/b/c/*, where c would be the root of the package and * is the tree
from there onwards. But that's just a possible pattern amongst many.

> Do you see things like the simulation and graphing metadata to start
> interacting with packages/workspaces in addition to straight CellML
> models or that the concept of a package supersedes the use of models in
> this context? (I'm thinking the latter would make more sense than
> starting to tie variable references to particular document versions)

I would think metadata that needs to refer to a particular version of
a package would refer to the package itself via a URI and also a
version label. Note, version labels, if used in a similar way to
software, can include wildcards or wildcard like behaviour to refer to
groups of versions, or all versions, or a very specific version.

>
> > - for the minimal case of a CellML 1.0 model and metadata in a single
> > document, the package name can be the model name, but the abstract
> > version is still separate from the document version
>
> Why the restriction on only CellML 1.0 models? Currently a model name is
> not used for anything so I'm not sure why a 1.1 model name can't also be
> used as a package name?

Sorry, I wasn't very clear. I was trying to think of the simplest case
of a model, which is actually a 1.0 or 1.0 model that consists of only
a single model document that has both model and metadata contained in
it. And I was thinking what a package would mean for that. But I
suppose that even a single model document scenario should be thought
of as residing in a single container that would form the package root
and hence offer a way of naming it through a URI or dotted
namespace.packageroot combination.

>
> > - that we add a package name and version number metadata construct to
> > all the models.
>
> while this makes sense in a 1.0 world, in a more general case any given
> model could be in more than one package/workspace. I'm guessing that the
> metadata construct you are thinking about could then easily be outside a
> particular model document (or within one) and refer to all it's
> constituent models via their URI? Where the URI or some other identifier
> would consist of the document version information.

Yep. You are right. This information would need to be a package metadata file.


so an example minimal layout:

bread/sourdough/matts/.metadata
bread/sourdough/matts/recipe.xml
.metadata would point to the local recipe.xml and also contains a
version, e.g. 0.1-dev

The package might be called bread.sourdough.matts or
http://backing.org/bread/sourdough/matts/

more complicated would be:

bread/sourdough/matts/.metadata
bread/sourdough/matts/recipe.xml
bread/sourdough/matts/ingredients.xml

where .metadata points to the local recipe.xml and ingredients.cml and
also to the following external resources (which are likely to be used
in imports by the models)
bread/measurement/metric/units.xml
bread/techniques/kneeding/method1.xml
and .metadata also contains a version, e.g. 0.1-dev

The package name would still be the same as in the minimal example.

If we round trip to subversion and document versions again, then I
would expect that useful releases of a package would be tagged.

>
> > - that for most purposes in our discussions we will be talking about
> > this abstract version and what it would mean to increase its major or
> > minor numbers, alpha, beta, or release status etc.
>
> agreed.
>
>
> Andre.
> _______________________________________________
> cellml-discussion mailing list
> cellml-discussion at cellml.org
> http://www.cellml.org/mailman/listinfo/cellml-discussion
>




Archive powered by MHonArc 2.6.18.

Top of page