Note to the reader

This is simultaneously a critique of pure text as a medium for content, and a experiment to fix it. The key idea is that if we combine pure text with a parallel means of apprehending and navigating it (experimentally instantiated with the graphs on the right), the reader is empowered further. There is a request for feedback at the end of this post.

A region of text is selected by hovering over it, or by scrolling. The top graph shows nearby logical connections for the local region of text. The bottom graph shows how the local region connects to the main point of the post. Grey nodes are nodes which are not explicitly stated in the text.


Text is a channel for rhetoric, let’s add one for logic

Text should not be left alone

Many things-worth-knowing are put into text instead of conversations and experience.
This is unfortunate, because getting them back out of text is hard
.
Here are the core problems with pure text, as a medium for communication:
Side note about [search]: Of all the flaws of text mentioned, this is the closest to being solved.
We now have vector databases that allow text to be semantically searched (search-by-meaning) instead of syntactically searched (search-by-exact-text). The underlying mechanism is to convert your search query to an eerie mathematically-represented understanding of the meaning of the query, and compare its numeric distance to similarly-represented chunks that encompass the entire underlying text.
It’s not mainstream yet, but I suspect that books will start including search tools to increase their interactivity soon
.
There’s probably profitable startup idea there - an LLM that unlocks knowledge bases when the book purchase is verified
.
Personally, I find this monetization to be disgusting as it is a movement towards barriers to knowledge.
This post details an experimental attempt to fix many of the problems of text, while also demonstrating the experiment. The tech is there. It’s been there for a while. But the idea and its adoption do not yet exist.

On the utility of rhetoric

At its core, all of language is just gesticulating vaguely at concepts and things which are too big for us to hold losslessly in our tiny brains.
The trick to good communication is thus to make pretty signposts and point them in the roughly-correct direction for the particular traveller you’re trying to orient.
Seen from this lens, rhetoric is a wonderful pathogen with which to infect readers with understanding.
Understanding, however, is not the same as truth-seeking. You can certainly understand things that are false, and there is often value in doing so. The problem comes from believing that false things are true.
Like a bad roommate, rhetoric gets logic drunk in the text and then leaves it alone to find its own way home.
Thus our solution should preserve the life-of-the-partyness of rhetoric, while also keeping logic sober.

The solution: A logic-forward channel to complement text’s rhetoric-forward channel

The solution is simple:
let rhetoric have its stage in text
.
Meanwhile, we assemble a parallel arena for logic to perform, and place it visibly at text’s side
.
These are different views on the same content, but they are synced.
The reader may flit between them as they see fit.
The writer may use the logic-forward channel to extend communication beyond text
,
by making the implicit into the explicit
, and
drawing links that are not easily seen through linear presentation.
Rhetoric is simple and requires little to perform. Logic, despite being the quiet one, is more of a diva. Let us investigate her needs.

The building blocks of logic’s stage

To show logic is to show structure. Thus we require knowledge of what is allowable in the structure, and a way of marking up statements to fit into that structure.
The particulars of what is allowable in the structure is a work-in-progress. I welcome any ideas for improvement. For the work you are currently reading, the basics of the structure are as follows:
Links have different types. The types currently used are as follows:
Thus if Node A points to Node B with the link type of claim, then we know that A is a premise which supports the conclusion B.

Marking the Main Conclusion

I have marked the main conclusion of this essay. This serves as a focal point for all other nodes.
The advantage is that it is easy to show, from any point of the text, how this links to the overarching point-of-interest (the main conclusion).
The disadvantage is that, in fact, there may be multiple overarching points-of-interest.
A future extension should thus generalize the concept of the “main conclusion” to multiple overarching points-of-interest (main conclusions).

Levels of detail through keypoints

For years, video games have been cheating computational demands by using lower-resolution (computationally cheaper) elements for things that are far away.
The player won’t notice or care yet, anyway - these far things are not in their immediate vicinity.
Similarly, this text uses keypoints in its High Level view in order to show how the point leads to the main conclusion.
There are interesting extensions here:
Note: in practice, levels of detail techniques in video games often break down in jarring ways, e.g. distracting the player by having more details suddenly pop in.
But these are, I believe, implementation issues or hardware limitations, rather than problems with the metaphor.

Some insights from marking up the logic in this post

The process was painful, but this is likely fixable

Here were the steps:
  1. Write the post on Notion
  2. Export to markdown, generate HTML from the markdown
  3. Specify the graph details in the JavaScript, and couple the HTML to particular nodes.
  4. Discover weak aspects of the post and structure
  5. Edit and repeat from step 3
The visualization code was a one-time cost that is usable for any future posts, so I won’t discuss it.
Feel free to check out the code on GitHub, but be warned that it’s hacky.
The pain comes from the process of marking up the text to extract the logic graph.
This is fixable - I could create a custom GUI for making the graph.

The process helped me see my own thinking more clearly

Writing, of course, always clarifies thought.
But that clarification often comes with an illusory sense of certainty, that when tested, falls apart.
Writing too often helps me believe what I think, without ensuring that I know it.
In this way, the logical layer was a stress-test for those beliefs. This is the second post I have written in this format. Like the first, I immediately saw weaknesses in my own argumentation and thought.
Thus the act of logically marking-up my beliefs was a nice complement to writing them down.

The logical markup is still subjective

Prior to starting, I believed that the outcome would be formal and unambiguous. This is not the case. Even with the framework fixed, my subjectivity rests within the following choices:
  • [node text choice] At first, I believed that nodes should be fully self-contained and unambiguous. However, this made nodes too long, which limited their interface utility. Node 41, for example, was originally "Showing the path from the current point in content to the main conclusion makes text more understandable", which was too much. It is now "Showing path to forcal point increases understandability". Additionally, the drive to disambiguate led to too much local redundancy (by repeating context). In the end, I removed much repeated context. When the reader is in its local neighborhood, the context is clear. Much like making a geographical map, while we want the map of the text's logic to be as detailed as possible, we still want it to metaphorically fit in the navigator's pocket.
  • [link type choice] The problem here is multiple competing alternatives. For instance, is Node 61 ("Logically marking up this text helped clarify my thoughts") a claim for Node 54 ("Some insights from marking up the logic in this post"), an artefact or an analysis? All of these choices are fine, and so my decision to actualize one over the other adds a flavor to the logical structure.
We may see this subjectivity as an anologue to rhetoric. Neither channel is pure logic, nor pure rhetoric. But each channel deals the proportions differently.

The detail in the logical markup can be varied as I see fit

At points where I feel that things require less explanation, or points where I simply feel like marking up the logic would be too taxing, I can choose to use a single node instead of decomposing the details into a larger structure. This is compelling, because as the shepherd of meaning, I know that I do not need to give equal care to each of my flock's members. This paragraph is itself an example of variation (only one node represents it in its entierity).

Much of the logic was implicit

The connections and conclusions I want the reader to draw are often not associated with any part of the text at all. They are implied, and this often surprised me as I thought I was being clear.
I have marked these nodes in light gray.
As an example, the main point of [rhetoric-logic confusion] was that "Text obfuscates logic through rhetoric" (Node 912). This is fairly clear from reading the text, yet it is never stated explicitly.

Additional Thoughts

Structural comments are a promising idea

Comment threads are already a fantastic system for interaction.
Adding the logical channel enables even more specificity when discussing content.
This is an extension for the future, but one that is easy to imagine.
It would be far more fruitful to point with specificity to the part of the content or to the part of the relationship between two nodes when commenting on it.
This would aid comment writers in honing their thoughts
, and
readers in apprehending those thoughts
.
One can also imagine that this specifity unlocks a new way of discovering comments
-
similar to how YouTube might replay comments made at a particular timestamp
,
a user might see associated comments when they are at the relevant node.

Why not automatically extract the logical graph from text?

It would be obviously-useful to have any text that you are reading represented in the format that I am proposing.
At worst, it can't hurt (just ignore the logic channel).
I believe that AI is advanced enough to generate knowledge maps of a given text.
In fact, it might even do a better and faster job than I can in most cases.
This is highly useful for other-people’s-writing, and I might build something for it.
However, I am currently against walking the route of automatically extracting knowledge maps for my own writing. Here’s why:
There is something special about me marking up my own text.
I believe this has two aspects:
  1. [better self-critique] It deepens my own understanding of my text. I see flaws and blemishes that I otherwise would have missed.
  2. [more interpretation control] It allows me to collapse the ambiguity of my text into what I want.
    The logical channel provides more firewood for the interpretation engine in the reader’s mind. This firewood decreases ambiguity, and the reader will better arrive at what I wish to deliver.
    In order for an automated process to extract my intent from textual ambiguities, it has to know me extremely well.
    I do not trust any automated process to know me well enough
    , particularly since
    I am ever-evolving (and thus a shifting target for it to reach)
    and
    have not yet given any process enough of my data to derive me from.

Problems and Limitations

Problems that I believe are solvable

Problems that may not be solvable

Limitations

[scope] It’s a fool who earnestly tries to build a knowledge map out of a poem.
This supplement to text is not meant for every text.
Some of the most perspective-shaping text I have read has had beauty as its central point, instead of sense.
These texts gifted me with psychological imagery and feelings that became part of the inner mental language through which I grapple with the world.
Some text is a puzzle
-
the zen koan is ambiguous on purpose because it is a journey meant to transform you along the way.
To increase clarity at the outset is to rob you of the procedure for self-betterment.
Elucidating the logical structure of such texts is not only useless, but detracts from the purpose they serve.

End

This is part of a grander project I have, to create modern tools to increase my agency in making sense of the world.
Technology is evolving faster than useful information is compounding
, and
the previously untraversable terrain may now be tamed
.
Fundamentally, I want to live in good company.
And good company is friends with both rhetoric and logic.

Additional: Some nice related things

Ideas

Readings

Meta: Request for Feedback

The feedback I'm looking for is as follows:

  • [core idea] Do you think the core idea of some logical channel for info display is promising, or do you think it's not worthwhile?
  • [current utility] Does the current logical channel help you understand the text better?
  • [reader interface] Assuming we have the logical markup of a text, how can we use that to help readers grasp the parts of the text they're interested in faster? How should we display the information?
  • [author interface] What would an ideal author interface look like, for marking up text while writing it?

Please do send me any comments you might have. Even high-level impressions from incomplete readings are valuable.