The SpineML Network layer describes the connectivity of components using the high level concepts of populations and projections. A population contains a set of neurons which are instances of a single component model. The top level Network layer element is SpineML. It can contain only Population elements.
Contains | Description |
---|---|
Population [1..*] |
Set of one or more Population elements |
A Population describes a collection of neurons and a set of projections to other populations. At least one projection is required.
Contains | Description |
---|---|
Neuron [1] |
Neuron body definition |
Projection [1..*] |
Set of one or more Projection elements |
The Neuron element describes a set of instances of a neuron body component model (referenced by the @url attribute). The @size and @name attributes indicate the size and name of the population respectively. Zero or more property attributes can be specified to set the initial values of StateVaraibles and Parameters of the component model. If a component model contains Parameters or StateVariables which do not have valid properties within the Neuron element then the values are assumed to be zero.
Contains | Description |
---|---|
Property [0..*] |
Set or zero or more Property Elements |
@name::String |
The population name |
@url::String |
URL to the neuron body component model file |
@size::int |
The population size |
Properties are used to set the value of Parameters or StateVariables for instances of a component model (this could be within a Neuron, WeightUpdate or PostSynapse). The @name attribute must reference a Parameter of StateVariable from the parents named component model. Dimensionality is inherited from the component.
A Property element references a single abstract Value element. A number of implementations of value types can be substituted wherever value is referenced.
Contains | Description |
---|---|
Delay [1] |
A delay element |
@name::string |
The name of a Parameter of StateVariable from the parents named component model |
A fixed value indicates that the named StateVariable or Parameter for all instances of a component (within a Population, WeightUpdate or PostSynapse) have a fixed value.
Contains | Description |
---|---|
@value::double |
Fixed value |
A value list type indicates that the named StateVariable or Parameter values are set explicitly using a set of Value elements. There should be a value for each component instance (Neuron, WeightUpdate or PostSynapse). Note that value lists cannot be used where the number of weight update component instances is not fixed (i.e. for fixed probability connections).
Contains | Description |
---|---|
Value [1..*] |
Set of one or more Value elements |
A Value element defines a property value for a single instance of a component. The @index attribute indicates the index position of the component instance within the set. WeightUpdate indices are interpreted depth first. i.e. For an all to all connectivity of two populations of 10 neurons, index 0 implies src neuron 0 to dst neuron 0 and index 1 implies src neuron 0 to dst neuron 1.
Contains | Description |
---|---|
@index::int |
Index of the component within a population, weight update or post-synapse set |
@index::value |
Value of a property for a single instance of a component |
Distribution values indicates that the named StateVariable or Parameter values are set using a distribution of values. Value distributions may be either Uniform, Normal or Poisson. Each distribution may have an optional @seed attribute used to initialise the random number generation.
Contains | Description |
---|---|
@seed::integer |
Optional seed value to be used for random number generation |
@minimum::double |
Minimum value within the range of the distribution |
@maximum::double |
Maximum value within the range of the distribution |
Contains | Description |
---|---|
@seed::integer |
Optional seed value to be used for random number generation |
@mean::double |
Mean value of the distribution |
@variance::double |
Variance of the distribution |
Contains | Description |
---|---|
@seed::integer |
Optional seed value to be used for random number generation |
@mean::double |
Mean value of the distribution |
A projection links the neuron models of two populations. Connectivity is described within a projection by a synapses (each projection may have multiple synapses). The @dst_population defines the destination population name (specified within a Neuron @name element).
Contains | Description |
---|---|
Synapse [1..*] |
Optional seed value to be used for random number generation |
@dst_population::double |
Population name of the projection synapse |
A Synapse describes a specific connectivity pattern between two populations in a projection. Each synapse also contains a single weight update and post-synapse model instance which describe how neuron, synapse weight update and post-synapse model components are linked by ports.
Contains | Description |
---|---|
Connectivity [1] |
A connectivity type |
WeightUpdate [1] |
WeightUpdate model |
PostSynapse [1] |
PostSynapse model |
Connectivity is used within a Synapse to describes how two populations of neurons are connected. The connectivity element is abstract, a number of implementations of connectivity types can be substituted wherever connectivity is referenced. Each connectivity type has an optional delay element. A Delay element is a special form of property which can contain only a fixed or distribution value. If no delay is specified then all delays are assumed to be 0.
A one to one connection implies that two populations (of equal size) have a synaptic connection between source a destination neuron with the same index value. Where the projection source and destination of the projection are the same self connections are created.
Contains | Description |
---|---|
Delay [1] |
An optional synaptic delay |
An all to all connection implies that two populations (of equal size) have a synaptic connection between every source a destination neuron. Where the projection source and destination of the projection are the same self connections are created.
Contains | Description |
---|---|
Delay [1] |
An optional synaptic delay |
A fixed probability connection implies that two populations (of equal size) have a synaptic connection between every source a destination neuron with a probability specified by the @probability attribute. Where the projection source and destination of the projection are the same self connections are created.
Contains | Description |
---|---|
Delay [1] |
An optional synaptic delay |
@probability::double [1] |
Probability of connectivity |
@seed::integer [1] |
Optional seed value to use for random number generator |
A connection list explicitly lists synaptic connections between source a destination neurons.
Contains | Description |
---|---|
Delay [1] |
An optional synaptic delay |
Connection [1..*] |
Set of one or more single connection instances |
A connection element describes a single connection between a source neuron (@src_neuron) and a destination neuron (@dst_neuron). An optional delay value can be used to set a unique delay value for each synaptic connection. Where a delay value is set it will overwrite any delay value specified in the parent element.
Contains | Description |
---|---|
@src_neuron::integer |
Index of the source neuron |
@dst_neuron::integer |
Index of the destination neuron |
@delay::double |
An optional single synaptic delay value |
The WeightUpdate element describes a set of instances of a weight update component model (referenced by the @url attribute). A WeightUpdate is connect to a set of pre synaptic source neurons (from the containing projections parent population) by specifying a neuron component port (@input_src_port attribute) and weight update component port (@input_dst_port attribute) to link the components. Feedback from a post synaptic neuron to the weight update (for implmenting learning mechanisms) is possible by using the @feedback_src_port attribute to specify the post synaptic neuron component port and @feedback_dst_port attribute to specify the synaptic component port. Zero or more property attributes can be specified to set the initial values of StateVaraibles and Parameters of the weight update component model. If a component model contains Parameters or StateVariables which do not have valid properties within the Neuron element then the values are assumed to be zero. No size is specified for a weight update component. Size is determined by the source and destination populations sizes and the connectivity pattern used to connect them.
Contains | Description |
---|---|
Property [0..*] |
Set or zero or more Property elements |
@name::String |
The population name |
@url::String |
URL to the neuron body component model file |
@input_src_port::string |
Source port of pre synaptic neuron component |
@input_dst_port::string |
Destination port of weight update component for pre-synaptic input |
@feedback_src_port::string |
Optional destination port of post-synapse component to communicate weight update data for learning |
@feedback_dst_port::string |
Optional source port of weight update component to communicate feedback to post-synaptic neuron for learning |
The PostSynapse element describes a set of instances of a post-synapse component model (referenced by the @url attribute). A PostSynapse is connect to a set of synapes by specifying a weight update component port (@input_src_port attribute) and the post-synapse component port (@input_dst_port attribute) to link the components. The post-synapse connects to a set of post synaptic neurons by using the @output_src_port attribute to specify the post-synapse component port and @output_dst_port attribute to specify the post synaptic neuron component port. Zero or more property attributes can be specified to set the initial values of StateVaraibles and Parameters of the post-synapse component model. If a component model contains Parameters or StateVariables which do not have valid properties within the Neuron element then the values are assumed to be zero. No size is specified for a post-synapse component. Size is determined by the destination populations size.
Contains | Description |
---|---|
Property [0..*] |
Set or zero or more Property elements |
@name::String |
The population name |
@url::String |
URL to the neuron body component model file |
@input_src_port::string |
Source port of weight update component |
@input_dst_port::string |
Destination port of post-synapse component for synaptic input |
@output_src_port::string |
Source port of post-synpase component |
@output_dst_port::string |
Destination port of post-synaptic neuron for post synaptic output |