Eli Parra Profile picture
Apr 4, 2021 25 tweets 13 min read Read on X
A thread on 2-way links! I want to use them to interpret & contextualize what @Conaw, the Roam team & the #roamcult are building at @RoamResearch.

This is a tentative, personal take. I'll first compare Roam to other hypertext landmarks, then imagine why it could get very visual. Image
Let's start here: a visual link between 2 things ALWAYS goes both ways! ⇄

I mean it in the deep & natural sense that your 👁️ eye can go→ from one thing to the other, then ←back again.

A 1-way link is pretty abstract! To represent it I'll use arrowheads & comic panels. Image
The infamous, genius move by @timberners_lee was to make links 1-way in his 1989 World Wide Web.

With a URL address you point outwards to any other page. But the linked page doesn't keep track of its inbound links, nothing does! These are →jump-links without ←back-links. Image
Why are 1-way links GENIUS? Because it made linking much more lightweight & permissionless, allowing the web to scale & scale! 🤯

Backlinks are a MAJOR point of friction. How to display & track them? They're easily subject to spam & abuse, as in the trackback collapse in blogs.
Yet even implied backlinks are so valuable! In 1997 a couple of PhDs first usefully ranked the web through backlinks they amassed from crawling it all.

BackRub, later @Google, changed the world. Policing & gaming backlinks became its own industry, SEO. Image
Why are 1-way links INFAMOUS? Because they're broken, blind, obstacles to networked thought! Hypertext creator @TheTedNelson decries them. In his 1965 Xanadu links are 2-way.

Have you seen Xanadu-style linking? Visually marvelous, it quickly overwhelms.
In 1995 @WardCunningham's experiments gave us the wiki link. Instead of a technical address (the URL), you could use a mere page title as destination, by putting it in CamelCase or [[brackets]].

Pages could now be CREATED by the act of linking to them!
Roam's key insight was to find a clear, non-spatial way to make wiki links 2-directional. (Non-spatial as opposed to Xanadu style.)

Its solution was to use an automated reference list of all the backlinks! Like what Google Scholar does for academic papers, but for every page. Image
Because pages in Roam are made of nestable blocks, these backrefs can now be both precise & contextual.

Blocks are flexible containers, holding paragraphs or sentences as well as words.

Every link becomes not just a jump-board, but a bookmark or "anchor" back to its context. Image
You can also link to each block in Roam by using its unique hash as its address.

It's even possible to "portal" directly to a block, to "transclude" the block somewhere else: a live, editable copy that links to itself.

An expandable reference count keeps it 2-way kosher. Image
Another way to see all this: Outlines are usually just trees. Under a block you nest its children, its outgoing links.

Roam FLIPS this at times, so that nested inside a block are its INCOMING links, its "parents".

@metaraine calls it "transhierarchy", transcluded hierarchy. Image
Also, @Twitter does block links too, ever since its users invented retweeting in 2007! (Shout out to @narendra!)

The feature has evolved very very slowly: automated retweets in 2009, quote tweeting in 2015... 🤷 Check out extensions like @twemex to see more of its potential. Image
See also @visakanv's threads to see what public networked thought looks like. Start wherever, it's a deeply interlinked graph.

Why progressive summarization

Journalling as jailbreaking

Why Hayley Williams Image
So Roam found a clear, nonspatial way to have more scalable 2-way links.

How scalable we don't yet know. The challenge is only partly technical

Roam's graph of graphs might be a Wikipedia of Wikipedias, a Twitter of Twitters... or a whole new web. Image
Let's now turn to how visual Roam could become.

Roam's non-spatial 2-way links have so far meant no real visualizations of your graph. The genius right sidebar has been the only relief valve so far.

But here's why it could soon grow able to easily parse & visualize most graphs.
Notice TAGS in Roam are just wiki links with different formatting & a more convenient notation (shout out to @chrismessina).

When links are 2-way, they can be more than a jumpboard to the page (content), they also imply an association of the current block with the page (title). Image
Another way to associate in Roam is with ATTRIBUTES, which again are just wiki links that use the standard notation of a colon to describe key-value pairs.

We can have the key & value in the same block or have the values nested as children underneath. Image
Here's where it gets trippy: all diagrams establish visual links, sometimes explicit ones, often implicit, but always 2-way.

Nested lists aren't just an abstract data structure, they're visual too! With indentation & proximity, they associate parents & children bidirectionally. Image
So in Roam, thanks to 2-way links, we can think of all these as equivalent: outline = wiki link = block hash link = tag = attribute.

The outline is visual & implicit linking, the others are explicit text links. Each has pros & cons. Text makes wonderfully flexible raw material. Image
Humanity has been stumbling towards a humane notation for describing graphs. This is the next step.

Say we we want to express the graph of a child with 2 parents.

By "express" I mean: write that graph in a way that's clear for us but also clear for the computer, parsable. Image
After the outline, perhaps the simplest diagram is the table, right? Well, tables are just the above graph in essence!🤯

Any table, however complex , has an abstract structure equivalent to some graph, which can be expressed as some blocks & links in Roam. Image
So diagrams are visual ways to express graphs. Links are how you turn graphs into text. Graphs are the most general data structure.

Diagrams ≈ graphs ≈ links.

Roam could allow you to convert seamlessly between them, to choose the most convenient view at the moment. Image
In this future you write notes as usual in Roam, but the ways to parse & visualize your implicit graph get steadily better & easier, beautiful eventually.

With a lightweight "link-Markdown", Roam may bring the power of expressing & visualizing complex graphs beyond programmers.
This is the promise currently shown (through a glass, darkly) by Roam commands like QUERY, TABLE, DIAGRAM & KANBAN.

If you want a taste of what's possible consider this magical demo of a schedule as the perked-up kanban of a simple outline. 🤯 /END

Ah, I meant @geoffreylitt's @TwemexApp here of course! 😅 It's so good I hate using Twitter without it, like on iOS. I feel addled without it, missing a sense.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Eli Parra

Eli Parra Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @elzr

Jan 16, 2023
I often think back to this brilliantly simple definition of computers by @DavidDeutschOxf:
In Popperian terms of World 1 (physical, material —particles, fields & forces), World 2 (sensations & feelings) & World 3 (abstractions, ideas):

Computers are ways of connecting World 3 with World 1, of making it come alive, instantiating it. 🤯
Will be exploring many many other directions that definition has taken me, but was surprised I hadn't tweeted this central node of my thought graph!
Read 5 tweets
Jan 14, 2023
The main shapes of our digital conversations: sequence, tree, feed, graph & thread.

What I'm fascinated lately is how transclusion lets you play with these shapes. It's an easy way to tame complexity by linearizing, going back to the time sequence. Image
The reply feature in most modern chats is already a kind of transclusion, a way to linearize the tree by adding to replies a (click-to-jump-back-to) snippet of context.

It's similar to the quote-replying with > that you do manually in email. Image
In the notoriously confusing Twitter graph, I notice more authors use quote-tweeting transclusion to reply to comments: this surfaces replier & author by appending it to the original thread.

Like in this super viral thread by @PeterClines: Image
Read 10 tweets
Oct 13, 2022
100 days since @balajis published his first book at TheNetworkState.com

I'm fascinated by the idea of a network state. Technology will eventually remake politics, this is one picture of what it may look like.

Some diagrams exploring the concept. First, as general sentence: Image
A more complex, more opinionated definition, fleshing out each previous phrase with Balaji's specific vision.

These 2 passes are taken literally from the book's first chapter: thenetworkstate.com/the-network-st… Image
Now here are suggestive summaries of the terms in each phrase. A sort of map/index of the whole book.

This is based on the final chapter devoted entirely to network states & assuming all the book's context: thenetworkstate.com/on-network-sta… Image
Read 8 tweets
Sep 17, 2021
“We want to go graph to graph instead of graph to stream to graph,” said @Conaw to @justinkan in a recent interview:

I want to elaborate on this dream, contrasting examples from @RoamResearch, @jack's @Twitter & @ivanzhao's @NotionHQ to ground ourselves. Image
Wait, this is the web, we have links, isn’t it a graph already? Yes, but a painfully limited one.

Here are 3 directions to realize the potential of graphs:
#1 Make links ⇄ 2-way (←backlinks!).
#2 Break down ↓ pages into smaller pieces.
#3 Glue up ↑ those pieces in new ways.
I'll go through each in turn, but first, what do we mean by GRAPH? Just organization by free linking.

References, thesauri, & book indices are early graphs on paper, cute but painfully static.

It took the automated symbolic-manipulation of computers for graphs to come alive!
Read 21 tweets
Mar 23, 2021
I want to manipulate equations on screen better than on paper.

Digitizing math script is so tiring, we usually just jump to automatic solvers after. But math is more than statements & solutions, it’s about the fun of *engaging* abstractions.

Algebra needs new interfaces!🧃
Operations are how you kick around abstractions. The = sign is the net, demanding ⚖️balance of you.

I fell in love with math when I found this kind of thinking on paper as a kid.

If we automate away the drudgery & the blunders, equations will be fast puzzles, Rubik cubes!
Imagine toddlers playing with it!

Before being able to hold a pencil. Without knowing the meaning behind the symbols.

Growing & pruning wild equations for aesthetic criteria, for shits & giggles. Internalizing deeper patterns. Coming up with other-wordly Ramanujan-esque beauty. Image
Read 6 tweets
Mar 18, 2021
What is to reading what a word processor is to writing?

Here's a quick demo of a syntax exploder in honor of Doug Engelbart, father of 🐉 demos, who called similar dreams “parsing processors”.

The text is the first paragraph of Doug’s 1962 framework dougengelbart.org/content/view/1…
This diagram dates back 15 years, to 2006: elzr.com/blag/iibb-june…

In my mind's eye, it was always animated. I literally hand-waved demoing it.🤌🖐️

Only with the new crop of Intellect-Augmenting tools like @figmadesign & @principleapp was it easy enough to get out of my head.
The other key change has been the rise of social networks, specially our corner of Twitter lately.

@Conaw is right, it feels like a new scenius, a distributed, demo-driven community of practice.

Really, I mean friends. @Pixar U's "Alone No Longer." 💛
Read 7 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(