Design Discussion

Terminology

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.

History

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:

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.

Concepts and associations

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.

Designing types

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.

Problems

The remaining problems in the design, in need of discussion, include:

Notes

[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.