1. A method of creating an artificial neural network for processing elemental data inputs using a processor, comprising: (a) creating data structures on a storage device that represent elemental neurons for each elemental data input, wherein the processor is configured to modify the data structures to represent the activation of elemental neurons in response to receipt of the corresponding elemental data input; (b) activating elemental neurons in an order corresponding to the order or proximity of elemental data inputs; (c) creating data structures on the storage device representing the addition of structural neurons to the artificial neural network where necessary to create associations between neurons, wherein the processor is configured to modify the data structures to represent the activation of the structural neurons in response to the activation of one of: elemental neurons, structural neurons and elemental and structural neurons, associated with each structural neuron; and (d) activating structural neurons in response to the order of the activation of elemental and/or structural neurons.