Subconscious App

Gordon Brander concept-note-taking-app, called just "subconscious" (used to be "Mem"). Track his thinking via https://subconscious.substack.com/ and https://github.com/gordonbrander/subtext

Mem is Subconscious now

I realized I keep calling this thing a second subconscious. So I’ll lean into that. Subconscious. (cf second brain)

Building a Second Subconscious

The gist is that I’m building a creative oracle that helps provoke ideas. It also captures those ideas, and remixes and resurfaces them, provoking more ideas... in a feedback loop that powers a flywheel of divergent creative thinking.

In Tools for Conviviality, Ivan Illich describes a kind of tool that is shared in common, and which expands personal creative freedom and communal interdependence. He calls these convivial tools. Bicycles, libraries, and sewing machines can all be convivial tools

I don't want to store my brain on someone else's computer.

What if we instead had a small tool that was personal, multiplayer, distributed, evolvable?

Getting lost in the land of ideas

I’m building a creative oracle

Spaced-repetition (SRS) is designed to program convergence — specifically memorization. A creative oracle is a tool designed to program divergence.

there might be a mountain of an idea right across from you, but you can’t see it. You’ll never find it unless you leave your hill and descend into the dark valley. In machine learning, this is called deception. To go up, you paradoxically must go down

Having an objective is fine for hill-climbing, but terrible for hill-finding because deception is everywhere

The job of a creative oracle is to help you get lost in the landscape of ideas. Wander enough, and you might just stumble upon a new mountain.

Unconscious R and D

What if your notes could self-organize—from scratch notes, to draft, to finished creative work—through a stream-of-consciousness process—like dreaming?

Capture-organize-synthesize is recursive. It loops over and over until you snapshot an artifact you’re happy with

If we carefully closed the right feedback loops, could we construct a creative flywheel that generates finished works almost by accident, through a stream-of-consciousness process?

Thought Legos

Before the advent of computers it was common for writers and researchers to collect boxes and boxes of index card notes… a kind of proto-hypertext.

Cards continue to be one of the best personal tools for thought. Thought legos.

One my design goals for Subconscious is to bring some of the magic of cards to a multiplayer app.

What can you do with cards?

  • 1 / Order and re-order them to find a narrative… or multiple narratives.....
  • 15 / Give someone a card, as a gift.

Subtext: markup for note-taking

While building Subconscious, I’ve been experimenting with a simple markup language for plain text notes. I’m calling it Subtext.

This is a rough sketch, and the language design is just a hypothesis!

Subtext is line-oriented. Each line in the file is treated as a discrete block of content. The type of a line is determined by a sigil character, like #, &, >, at the front of the line.

It is currently impossible to write broken Subtext, which is nice!

Subtext is for notes

HTML is a publication format, designed to produce complete, indivisible artifacts, called pages.

The right mental analogy for Subtext is not the page. It is the the index card.

Subtext is block-oriented

Subtext represents block-oriented documents as line-oriented markup.

Why does this pattern keep re-emerging? One reason might be that block-oriented editing is an easy way to express rich formatting. But more importantly… Blocks are composable.

In theory, this is true of any tree-based markup language, such as HTML. But try meaningfully merging two HTML files in practice...

A linear block-oriented format resolves the problem by radically simplifying it.

Because blocks are structurally uniform, they can be automatically moved around and reorganized. Software can split, join, and merge documents easily and effectively, because the document structure is simple.

Link blocks (&) are the most important feature in Subtext. They let you reference other files, and URLs

The plan is to have Subconscious display these links as transclusions.

This lets you compose hypertext documents from many smaller documents

By an accident of convergent evolution, Subtext happens to have some similarities to Ted Nelson's ELF format

Why not Markdown?

I noticed that my markup needs for note-taking were different from my markup needs for publishing

As a complex publishing format, it is unclear how to meaningfully decompose or merge Markdown

When you combine documents, heading levels may need to be changed, lists may need to be flattened or nested.

Concept Refactoring

If you've ever maintained a Wiki, you've probably noticed that there is a lot of refactoring involved (wiki gardening). Ideas are written down in one place, then rewritten, moved, titles changed, links redirected, pages split and merged. Hypertext wants to be refactored. This is a feature of hypertext, not a bug.

Where does one idea begin and the other end? It depends upon your point of view.

Reality is too squishy and hyperdimensional to carve up into neat Platonic forms. Still, we end up building maps in an effort to make sense of things. The kind of map you construct depends upon what you’re trying to see.

Refactoring lets us construct both our question and our answer through organic exploration.

What does hypertext refactoring look like?

As a note evolves, separate ideas are factored out into their own notes.

notes taken during different times can often end up capturing similar ideas, or elaborating on the same idea. We want to merge these.

Imagine if your tool for thought could: Add or suggest related links; Fix broken links; Suggest when an idea could be factored out into a document; Suggest when related documents could be merged

If we want to augment or automate refactoring, we need a way to structure text into logical blocks that can be factored out, merged, added, rearranged, removed. And so… Subtext.

Subtext

Subtext is a hypothesis, an experiment, NOT a finished language proposal.

Subtext is a text-based, line-oriented hypertext format. It is designed with note-taking in mind.

Link blocks (lines starting with &) allow you to link to other files within the flow of a Subtext document. Any kind of file can be linked, including other Subtext documents! This makes Subtext composable, and gives it hypertext properties similar to Ted Nelson's ELF format (Nelson, 1965).

Markup for note-taking

Some of the earliest hypertext proposals were block-oriented, including Ted Nelson's ELF (Nelson, 1965). Block-oriented documents have also independently evolved within many contemporary tools-for-thought, including Notion, Roam, and Ward Cunningham's Federated Wiki.

Subtext takes the magic of block-oriented documents and represents it as line-oriented markup, with each line describing a block.

Subtext is not a layout, presentation, or word processing format.

Subtext currently supports only one level of heading. This is a deliberate design choice, since a deep heading hierarchy is probably a sign your note needs to be refactored or unbundled into multiple notes. To construct deeply nested documents, you can link to other notes using a link block, instead.

Subtext currently supports only one level of list


Edited:    |       |    Search Twitter for discussion