INCF/nineml-spec

Specification of Sets

Closed this issue · 14 comments

Sets are intended to group populations and, possibly, define and group sub-populations. They were not fully specified by the task force.

For V1, the NineML standards meeting in Antwerp agreed to adopt the syntax from the "technical paper" for version 1 (i.e. , etc., no sub-sets). Handling more complex scenarios is postponed to version 2.

NineML standards meeting:

We have agreed on the following format for union of populations

<Set name="AllNeurons">
  <Concatenate>
    <Item index="0">Golgis</Item>
    <Item index="1">Granules</Item>
  </Concatenate>
</Set>

Subsets are deferred to version 2, see #38

Set doesn't seem to be the right name for this considering we are trying to conserve cell indices...

In the google hangout last Friday we decided to reassign the name Group (the old concept of Group may be reintroduced as Network in future versions) for this concept instead of Set. However, as we have already been talking about using the name ComponentGroup in version 2.0 I have proposed that we call this a PopulationGroup in the latest draft of the spec. Any objections?

PopulationGroup sounds like a group of populations, whereas we are really talking about a group of cells, so perhaps CellGroup would be better?

Yeah, in the case where we are just allowing concatenation of populations PopulationGroup would make sense but where we are selecting sub-populations and concatenating them together it wouldn't really. The difference between a CellGroup and a Population could be pretty confusing though. Not sure, how about something like PopulationsCombined, PopulationsSelection... still not quite right

How about <CellSelection>, or actually I am coming around to <PopulationSelection> as it can be either a selection of populations or a selection from a population (or both) in version 2.0?

<PopulationSelection> sounds good.

This is now implemented in the python library with PR #54 (assuming Andrew is okay with it).

It's fine with me. Another idea for the name: how about simply <Selection>?

Yeah, I like <Selection>. I will change it in the spec and see if anyone has any problems with it when we send it round

It is not clear to me what happens if several items in a concatenate declaration refer to the same population, e.g.:

<Selection name="AllNeurons">
  <Concatenate>
    <Item index="0">Excitatory</Item>
    <Item index="1">Excitatory</Item>
    <Item index="2">Inhibitory</Item>
  </Concatenate>
</Selection>

Are repeated elements in the set preserved, and is it that two copies of the Excitatory population are to be created in this example?

If so, perhaps it is more appropriate to call this object a "population map" or "population dictionary" since it also serves to assign indices to populations.

It would seem sensible that there are simply several references to the same
objects. I think 'Selection' is better than 'map' or 'dictionary', as it
has a suitable meaning to non-programmers even if it is not as correct.

On 10 November 2014 21:36, Ivan Raikov notifications@github.com wrote:

It is not clear to me what happens if several items in a concatenate
declaration refer to the same population, e.g.:

Excitatory
Excitatory
Inhibitory

Are repeated elements in the set preserved, and is it that two copies of
the Excitatory population are to be created in this example?

If so, perhaps it is more appropriate to call this object a "population
map" or "population dictionary" since it also serves to assign indices to
populations.


Reply to this email directly or view it on GitHub
#34 (comment).

Alex Cope
Research Associate
Behavioural and Evolutionary Theory Lab
Department of Computer Science, University of Sheffield
www.alexcope.co.uk

That's fine, as long as it is clearly defined somewhere. I agree that 'Selection' is a better name in this case,
my suggestion about 'map' was in case somebody wanted to make copies of repeated populations.

On Mon, Nov 10, 2014 at 6:43 PM, Alex Cope notifications@github.com wrote:

It would seem sensible that there are simply several references to the
same
objects. I think 'Selection' is better than 'map' or 'dictionary', as it
has a suitable meaning to non-programmers even if it is not as correct.

On 10 November 2014 21:36, Ivan Raikov notifications@github.com wrote:

It is not clear to me what happens if several items in a concatenate
declaration refer to the same population, e.g.:

Excitatory
Excitatory
Inhibitory

Are repeated elements in the set preserved, and is it that two copies of
the Excitatory population are to be created in this example?

If so, perhaps it is more appropriate to call this object a "population
map" or "population dictionary" since it also serves to assign indices
to
populations.


Reply to this email directly or view it on GitHub
#34 (comment).

Alex Cope
Research Associate
Behavioural and Evolutionary Theory Lab
Department of Computer Science, University of Sheffield
www.alexcope.co.uk


Reply to this email directly or view it on GitHub
#34 (comment).