If you have circles drawn on a piece of paper, it is quite natural to give them Names to be able to distinguish between them.

An important fact to notice is that, once you remove the names, the circles are quite equivalent to each other. Thus, it is clear that the most disparately named distinctions can be on an equal footing when it comes to the meaning of carving a portion out of the universe of possible things. It is perfectly normal for distinctions to be quite mundane, lacking a special place on the piece of paper.

For example, if you were to look around, you would see things. However, what you perceive as things are Regions of your perception space defined by a Boundary. The boundary is set by you, the observer, according to your intentions.

If you pay enough attention to let some regions be determined by means of boundaries, but do not give names to these regions, you will see that they are quite similar to each other as far as bounded regions go. At this point, they are distinctions without a name, and as such they are quite equivalent to each other.

Names are labels which are applied on distinctions, just as if they were post-it notes. This leads to the following principle, which is extremely important to keep in mind at all times: *labels should never be confused with the labelled objects*.

A language can be constructed by means of a set of labels which, considered as distinctions named as themselves, have a particular relationship between each other. The relationships between the labels can be thought of as the connections between the nodes of a graph in which the labels are the nodes.


> While in the graph model an edge always connects 2 nodes, in the Associative Model of Data an edge can connect edges too. Either at one end (A2), or both (A3).

Basically, DMX also makes associations into discourse objects. Associations can be associated with other topics/associations, just like topics. This leads to expressive, highly interconnected structures on both levels, data model and content (= instances).


In a language built this way, the meaning of a label is derived from the local topology of the graph in the immediate neighborhood of the label’s node. This applies regardless of which distinctions the labels are applied to.

Languages give meaning to things by means of the relationship between the labels. When labels are applied, the meaning given to distinctions *does not depend on the labels themselves*.

The particular appearance of the labels does not matter either. The only practical requirement for the representation of the labels, which can be thought of as the “words” of the language, is that it should be possible to distinguish between them.

> “Point of view is worth 80 IQ points.” —Alan Kay

All of this puts no restrictions on naming distinctions using the labels of the language. We can simply go and label distinctions according to our intentions. In particular, when you have different intentions, you apply different labels to possibly different distinctions and thus derive different meanings.

Regardless of how elaborate a language can be in terms of relationships between its words, it is still up to us to be able to represent different patterns of ideas with it. Sophisticated languages do not guarantee sophisticated ideas.

But what is the process by which all of this works? In particular, what are the properties of labelled objects that are needed for labels to be useful in a consistent manner?


VALLOUD, Andrés, 2010. A Mentoring Course on Smalltalk.