The motivation behind the terminology "neuron" is the following: As what we have designed is a generalization of both concepts and associations, and indeed may be used to represent even other things, neither of these names would be appropriate. A neuron is an entity which connects other neurons with each other using axons[1], and thus serves both as link and as the subject of links. Our neurons connect to form a globally interconnected "neural network", which we visualize using computer tomography sections, that we call concept-maps (the name of which, however, may not be entirely in line with the metaphor).
This is a very abstract image, but this is what makes it possible to describe the different types of relations we want to describe. It is, we believe, an interesting new way of representing graphs that, in effect, comes down to assigning an owner to each edge in the graph among the two nodes it is connecting[2].
Note that when we say "neuron", we mean any neuron in the system, while the word "concept" is only used to talk about neurons that represent concepts or similar objects.
It has been a long way before we have reached the current design. Our first attempt at creating the structure, carefully described in [cid53] lead to failure on several points:
We were fixated on the ideas of concept and association, and therefore failed too see how we were to expand the system to include other types of object to be able to draw, for example, activity diagrams. This also led to an underestimation of the importance of associations. Remember what Henri Poincaré said:
The aim of science is not things themselves - as the dogmatists in their simplicity imagine - but the relations between things. Outside those relations there is no reality knowable.
Associations were not separate components, but were instead each included in a concept, leading to severe problems and complexity when wanting to associate external concepts.
Associations were only allowed to be of degree exactly two, which was motivated by the fact that the most common associations were of degree two, as well as by the fact that the MOF actually had the same restriction (which we now consider a severe defect in the MOF). In fact, higher degree association can be simulated by introducing a new concept acting as middle point. However, the current solution results in a much cleaner and more natural system.
Associations had no type, resulting in problems when attaching common appearances to the same sort of associations, as well as problems of standardization when wanting to introduce new sorts of associations.
All of these problems were clear to us even before we had finished the implementation of the first Conzilla prototype, and the solution described here was already on the drawing board. By contrast, we strongly believe in the current system design. The system has proved itself to work very well in unexpected circumstances.
The elimination of the fundamental difference between a concept and an association actually has philosophical consequences that are important. It succeeds in elevating associations to the same status as have concepts. But it also has technical consequences, in the sense that everything you can do with a concept, you can automatically do with an association. For example, when implementing the assigning of content to concepts to aid in explaining them, this becomes an automatic feature of associations as well, which is not insignificant! This allows, namely, the explanation of associations by the same means, which results in exactly the emphasis on the relations between things that we were searching.
It is expected that map designers in different areas construct their own neuron types for use in their own situations, but it is also expected that there will be a considerable amount of work dedicated to the standardization of types, as this is what allows large-scale searching. Regrettably, we have not ourselves done much work in this direction, and it is clear to us that before this design is set in stone, we will have to try to encode knowledge from several disciplines in the system so as to be sure that it is actually possible and that the system is flexible enough to cover all relevant needs.
When considering which axon types a new neuron type should have, the idea is that axons connect neurons with the neurons that are essential for its existence. As an example, a generalization does not exist before you have something to generalize and something to specialize, which is why it has degree two, while a concept exists by itself and therefore has degree zero. The same reasoning holds for data as well: it represents information without which the neuron does not exist. The difference between data and the axons is that the information given by a data tag is not represented by another neuron (meta-data, on the other hand, is not information internal to the neuron, but external information).
The reason for having data tags in axons is to avoid having to construct an extra layer of neurons between the neuron and the neurons it links to. For example, you may consider representing a sequence of events by letting them be attached to an event-sequence neuron. Then you realize that being connected by axons from this neuron prohibits you from marking the events with the time when they happened, and so you may consider adding the time information to the axons (as it is impossible to add it to the events themselves; they take part in several different sequences). The alternative would be lifting the relation to neuron status, by defining a event-occurrence neuron type, connected to the event with an axon and with the time it occurred as data. Then the event-sequence neuron may connect to this neuron instead. It is not at all clear which solution is the right one for this case, as this in fact depends on if you will need to do one of the following things with the event-occurrence:
Indeed, if you need to do one of the above, the event-occurrence clearly needs to be a neuron on its own. It is clear that not every relation can be a neuron, as this would lead to infinite recursion. The above points summarize the limit when a relation can be represented by an axon. Thus, the example shows the importance of considering carefully which neuron types you need.The remaining problems in the design, in need of discussion, include:
A more serious standardization of the visual attributes, as well as usage experiments to examine the relevance of the different attributes.
A discussion of the role of the neuron type. Should you be able to inherit types? Which types are standard, and what identifiers should they have? Is the type an attribute of the neuron, or should it not in fact be part of the meta-data? Should the restrictions in the type be enforced by the system in some way?
A discussion of the role of multiplicity. Is the concept well defined and useful, and is the design the right?
Where should meta-data be located? Is it really necessary to download it together with the neuron? Perhaps a separate "meta-data" component is the solution?
How are you supposed to find all the axons that point to a given neuron? Part of a solution is given by including relation informationint the meta data. But if you add a link to a neuron that you cannot modify, this does not help much. It becomes obvious that in the future, a standardized catalogue function will be necessary.
| [1] | And dendrites, of course. But all analogies have their problems... |
| [2] | As it still is the case that a single axon connects two and only two neurons. |