Design Discussion

In fact, given the structure of neurons already defined, defining simple concept maps is not very complicated; most elements are a must.

That given, there are problems to discuss. One could ask why the detailed map is given here and not in the neuron itself. There are two reasons for this. First, this would constitute a breakage to the separation between the neuronal network and the presentation level (which may be replaced by other types of maps). The second reason is that which map one wants to link to actually is very dependent of which map one is regarding. Still, this should not stop us from considering placing a preferred detailed map in the meta-data of a neuron, as a sort of "primary context".

Double occurences

The implementation allows the same neuron to appear several times in the map. This feature is relatively new, but the need has been felt from early on in complex concept maps, where the otherwise resulting mess of axons is not pleasant. An axon thus points to only one of these appearances.

Note that the identifier given to each axon in a neuron (as described in the section called Architecture in Chapter 3, Neurons and Neuron Types) allows us to have several axons of the same type pointing to the same neuron. This will result in user interface troubles, when having to choose an axon to show in a map. It is expected that the vast majority of neurons will not use this feature, and that an axon type and the pointed-to neuron will usually uniquely identify an axon in a neuron, which is a natural way of identification. The exceptions will most likely mainly be machine-generated listings with double occurences such as histories etc.

Contained neurons

It has been discussed that one should allow concept maps to contain neurons. This would mean that one would not need to give very simple neurons definitive identities, as long as they are only used inside the map, and that one could distribute certain maps in an XML file, completely self-contained.

The neuron could, in this case, be referred to with the help of a "fragment identifier", which are introduced with the character # (see [rfcuri]).