It was early November 2020. I escaped for a long weekend to Tenerife where I played tennis for the last time of what turned out to be a 5-month ban back in Belgium. It was over 20°C and sunny, two more things I was going to miss in the long winter of the second lockdown.
I’d been working since dawn on a big terrace overlooking the ocean.
It was a magical moment to see how the ocean emerged out of nothing, made all the more special by its synchronicity with my thoughts. I was writing a chapter note on George Spencer-Brown (GSB) for Essential Balances which was to be published a few weeks later. For it was GSB who showed mathematically how everything can come into being out of nothing.
All I teach is the consequences of there being nothing. The perennial mistake of western philosophers has been to suppose, with no justification whatever, that nothing cannot have any consequences. On the contrary: not only it can: it must. And one of the consequences of there being nothing is the inevitable appearance of “all this”.
Now, a few hours later, I was immersed in work when I got interrupted by some birds’ cries. I lifted my eyes from the screen of my laptop and saw a couple of colourful parakeets that have just alighted in the palm tree in front of the terrace. But they did not hold my attention long. What did, was not an exotic island bird but a boring city one that landed on the corner cap of the railing and posed in a way making the flat cap look like a pedestal. It was then when I remembered I started writing a series of posts about Roam, published two of them, the next one to write being about self-reference. I took a photo of the bird, noted in Roam what it looked like to me, and posted this tweet:
Indeed it’s high time for another Roamantic entry. This is the third instalment in a series of five. The first part was about what is Roam like. The second was about the powerful concept of distinction, based on George Spencer-Brown’s Laws of Form. And it was the rigorous study of distinction that led George-Spencer brown embrace what was treated as an error by the western1That wasn’t the case in the East. See for example the logical system Catuṣkoṭi. philosophers and mathematicians before him − self-reference.
An example of self-reference is “This statement is false.” It is a paradox. Any attempt to solve it produces a contradiction. As it’s not meaningless, it must be either true or false. If it is true, then it must be false, as it states. But if it is false, then saying that it is false makes it true.
I find paradoxes attractive and ubiquitous. The subtitle of this blog is hidden along with other things in support of an uncluttered reading experience. But if you google it, it will show up: “paradox is orthodox”.
Yet the aesthetic appeal of paradoxes alone would’ve been insufficient to sustain my interest if it wasn’t for their application to explain time and other complex phenomena in life, and in fact life itself. It was the ground-breaking theory of autopoiesis that provided an unmatched to date explanation of what life is: self-production (autopoiesis).
“An autopoietic system is organized (defined as a unity) as a network of processes of production (transformation and destruction) of components that produces the components that:
1. through their interactions and transformations continuously regenerate and realize the network of processes (relations) that produced them; and
2. constitute it (the machine) as a concrete unity in the space in which they [the components] exist by specifying the topological domain of its realization as such a network.”
While the canonical autopoietic system is the living cell, it seems that the immune and the nervous system, are also autopoietic. But the application of autopoiesis go way beyond biology2See Self-Producing Systems – Implications and Applications of Autopoiesis (Mingers, 1995).
George Spencer-Brawn reached the idea of self-reference naturally. If starting from nothing, a distinction creates space, then a re-entry into that space would create time.
Space is only an appearance. It is what would be if there could be a distinction.
Similarly, when we get eventually to the creation of time, time is what there would be if there could be an oscillation between states.
If we use parentheses to express re-entry, it will look like this
a = (a)
It has two possible values, mark or void. We can test what happens, trying the two possible values on the right side of the equation.
Let a be void, then:
a = ( )
Thus, if a is void, then it is a mark.
Now, let a be mark, then:
a = (()) = .
If a is a mark, then substituting a with a mark on the right side will bring a mark inside another, which according to the law of crossing will give the unmarked state, the void.
Varela further develops this idea by creating a calculus for self-reference.
By the way, if you try writing the last equation in Roam, the double parenthesis will automatically collapse into astrolabe, so the last equation will look like this
But before going to Roam, it’s worth noting that self-reference has a central role for Luhmann in all his work from the publication of Social Systems to the end of his life. In fact, his systems theory itself is self-referential and developed with that awareness. A theory of society can only happen in society as part of its self-production. More generally, social systems come about due to the self-referential network of communications. Some social systems produce themselves through a specific type of communications. For an organization, that specific type is decisions. The insight that decisions are constitutive and paradoxical for an organization had an important influence on my work3 See Productive Paradoxes in Projects, Productive Organisational Paradoxes, and Chapter 5 of Essential Balances..
If the explanatory power of self-reference for understanding time, life and social systems is still not enough, then try fractals, attractors, and eigenbehaviour.
Self-reference in Roam
Before seeing the self-reference in Roam, it’s worth paying attention to the self-reference when interacting with Roam.
To paraphrase Karl Weick, how can we know what we think until we see what we’ve written. Roam facilitates conversations with your past and future self. You can see different facets of your and others’ ideas at once using the right-side bar or the Roam42 daily notes4While the feature is called ‘Daily notes’, it can be used to display any page in a floating window and in this way you can see several facets of your graph at once .
Ranulph Glanville described how self-reference is essential for any design process:
This process can be thought of as a conversation held mostly (but not exclusively) with the self. In the most common traditional version, the conversation consists of making a mark with a pencil on paper (equivalent to talking, in a verbal conversation), and then looking at it to see what the mark suggests (equivalent to listening) and, consequently, modifying the drawing. The process goes on and on in a potentially endless circle. Reasons for stopping are that the outcome is good enough or that it fails. As an initial process it may have little or no intention: it is just a sketch or (to downplay the action) a doodle. But the sketch/doodle suggests a form and that is explored, playfully, and requirements are gradually assimilated into the design as form is brought into being.
In Roam, this is amplified by serendipitous discoveries.
Many people may find self-reference in Roam useless (self-reference block) or even frustrating (self-referencing queries) but it’s actually good for our thinking. Even starting from the most obvious loop, finding the context in linked references, makes the blind spot of context pointed out by Luhmann, quite obvious
Although the excuse is offered that the “context” has to be taken into account, this remains a paradoxical demand: the “context” would have to be transformed into a “text.”
Once the context is selected it becomes the text.
Roam is written in Clojure. I don’t know much about Clojure but I do know that it is a homoiconic language. That means it treats the code as data. Probably that’s the reason self-reference lives so naturally in Roam.
To test it the only thing you need to do is run a query. The user-friendly Roam queries work at the page level but it’s easier to see self-reference at the block level, where the loop is smaller. For that, you need to run a Datalog query. Here’s a query that finds itself
Nice but useless. Yet, the same approach can be applied to write one of the most useful queries.
My most frequent use case for Datascript queries in @RoamResearch is for counting nested blocks with distinct strings.— Ivo Velitchkov (@kvistgaard) August 8, 2020
The parent ID is of the block of the query itself.#roamcult pic.twitter.com/VpvGnd62zF
As in the Five little Ducks, all the query does is count its children.
Now back to the teaser. Somewhere in October 2020, Roamresearch released inline opening of block references. That’s how this infinite regress of the bird, pretending to be a statue of a bird, pretending to be a statue of a bird … was done. But wait, it gets better.
Borrowing an example from the mathematician Louis Kaffman, instead of a bird, and with more emphasis on “self”, I’ll use this sentence:
I am the one who says I.
If we nest a block below referring to what “I am”, namely, “the one who says I”, then we get something very similar to the recursion with the bird. But then, since “I” = “the one who says I”, then “I” can be an alias of this block. And get this:
Now, you can do that also with the second “I” and see what happens. Then if you click on every “I am” reference, you’ll have a colourful Roam fractal. Maybe not as pretty as that of Mandelbrot − at least not until some of the CSS magicians get inspired − but certainly more useful.
Luhmann said that writing is disciplined thinking. With Roam writing goes to another level and so does the thinking it simulates. At that level, many things are counter-intuitive. Entering a mirror labyrinth, you expect to lose yourself, and yet in Roam, just the opposite happens. As a side effect, you can start seeing self-reference as something generative. Which is what it is.