Most of the time when I want to make two pages into aliases/synonyms, what am I *actually* trying to do?
I'm trying to say, "These two page titles *are* different (different enough not to rename to be identical), but for some purpose I'm TREATING THEM as the same."
In what context does it MATTER that two pages are associated that way?
I want to argue, it's NOT when I'm WRITING notes. That's not when aliasing matters.
Aliasing matters when I'm trying to resurface connections BETWEEN notes.
Where/how does resurfacing happen in Roam?
Queries, Linked References, and Unlinked references (and to a lesser extent, [[]] autocomplete).
In Queries, I can already write query syntax to accomplish functional aliasing—to logically treat two pages as equivalent, all I gotta do is replace a single page in the query (say, [[page 1]]) with an {or: [[page 1]] [[page a]]}.
Done. No need for a new feature here.
So here's the big thought (are you ready for this):
+90% of the time when I think want to make two pages into "aliases," all I ACTUALLY need is a way to add an "OR" clause to the Linked and Unlinked References section of a page.
🤯
This means that "aliasing" is EXACTLY THE SAME THING as "filtering," just using logical "OR" instead of logical "AND."
Full Outer Join rather than Inner Join.
Logical AND Logical OR
↓ ↓
"Alias" should just be a type of filter—an INVERSE FILTER that *ADDS* links to the Linked References and Unlinked References lists, rather than removing stuff from them.
🤯🤯🤯
Here's how I would implement it:
Add a button next to the Filter button, right above Linked References.
It suggests pages that are textually similar to the main page, but with search bar to pick any page in the graph.
Click to add as many as you want, just like filters.
Effect:
Aliased pages seamlessly populate in Linked and Unlinked References
Aliases added to one page auto-add to the corresponding page too
Maybe color code them as aliases, maybe not
I think this would handle the overwhelming majority of use cases for "Aliasing" in a simple-to-implement, visually idiomatic way that requires no new primitives or fundamental changes to the core of how Roam works today.
It's SO simple, actually, this could probably be a Roam42 feature before ascending to true feature status.
@syncretizm@codexeditor I find indentation very, very important. In fact, I would say indentation is the primary reason to consider @RoamResearch a "Tool for Thought" rather than a basic memo taking machine.
I think indentation is at least AS important as backlinks.
A 🧵👇
@syncretizm@codexeditor@RoamResearch Here's the big idea: Indentation neatly models three of the most important features of how human thought works. These are:
I am a Christian. I believe that God is real. I believe that the Christian scriptures (aka, "the Bible") contain God's actual writings. I believe God wants humans to know about and believe the message that is in his book.
The Bible teaches that all humans are born with a terminal disease. All except three, that is—but two of those three were Patients 0 and 1, respectively. Their names were Adam and Eve.
The disease is not genetic. But it is hereditary, and there is no natural cure.
This illness has a 100% mortality rate, and YOU have it, because your parents had it. The presenting symptom: *not wanting to get better.*
The true killer feature of @RoamResearch that I wouldn't be able to leave behind is the Daily Notes page. Roam made me realize that the one truly universal index for all my thoughts is Time.
Having everything indexed by time means that my thoughts are, at minimum, never LESS organized in my db than they are in my brain (but maybe more so). If there is a useful or insightful additional dimension to index along, I can add that WITHOUT destroying the time index.
"Non-hierarchical" is not as accurate as "Multi-hierarchical" for describing most of the concept spaces I work in.