Synonyms, plurals, acronyms, aliases, multi-lingual usage of Roam, abbreviations, or: redirects

Plurals, synonyms, acronyms, aliases, multi-lingual usage of Roam, abbreviations, … all are good reasons to link to the same page (concept, “thing”) via different [[words]] / [[terms]].

Current implementation of /Alias is nice, but requires quite some editing and typing when you want to make a link from a word in an existing text. It would be nice if you could just double-click-and-hit-[[ on mouse to make a link to the [[mice]] page…

Example:
mouse, mice, muis, muizen,:mouse:,:mouse2:

Sketch for a proposal:
What if the page title simply were
mouse||mice||muis||muizen||🐭||🐁


This would make it easy to “merge” (and “unmerge”) terms from one page, and having a simple and clear overview of all terms at the same time.

Note how under Unlinked References it automatically lists all terms in the page title! :wink:

… a more friendly rendering is of course imaginable, but it requires a bit more UX / UI and personally I prefer the rough kind above :point_up_2:

So in the rest of you database it doen’t mater anymore whether you use [[mouse]], [[mice]] or [[:mouse2:]]; they will all take you to the same page…

Brandon Toner on this Freshdesk-thread came up with another solution:


Disadvantage would be that we’d still need to create these pages separately somehow, and it might get harder to keep track of all “aliases” in use…)

more search terms: aliasing, multiple languages, bilingual, english, dutch, german, spanish, italian, …

82 Likes

Excellent summary! Love the more friendly rendering suggestion.

4 Likes

Link to previous discussion (and upvotes): https://github.com/Roam-Research/issues/issues/175 (which contains links to more previous discussions and upvotes :stuck_out_tongue: )

2 Likes

This is something I’ve been hoping for as well. Currently, my workaround is to use incomplete words (e.g. [[explor]]) and add suffixes outside the brackets (e.g. [[explor]]er, [[explor]]ed, [[explor]]ation, [[explor]]ing), but it’s a tad cumbersome. And in cases where that won’t work, there’s always the hyperlink feature, but that adds quite a bit of extra typing.

So a built-in aliases feature would be a major improvement.

4 Likes

This would be an excellent addition; it would vastly simplify my workflow.

3 Likes

more voting, more fun :slight_smile:

… has anyone read or heard any news on what platform will be used by the developers for setting their priorities / building their roadmap / status tracking / etc. ? Github, Freshbooks, this forum? (Can moderators @josh and @filipesilva maybe say anything about this? hi! ;))

1 Like

In a way, the divided-by-||'s syntax (for sameness) is like the perfect complementary to the divided-by-/'s syntax of namespaces (for dissimilarity, hierarchy).

Lets think about how they could / should be mixed together, staying with the mouse-example.
Which one “should go first”? (like multiplication before addition)

1. "|| first"
[[computer/mouse||mice||muis||muizen]]
[[species/mouse||mice||muis||muizen]]

OR

2. "/ first"
[[computer/mouse||computer/mice||computer/muis||computer/muizen]]
[[species/mouse||species/mice||soort/muis||soort/muizen]]

Judging by intuition, readablility and length at the moment I prefer 1.

(:thinking: this makes me wonder if it wouldn’t be even nicer ([[Roamish]]) if the namespace divider would be // instead of / :wink:)

4 Likes

+ :100: for option 1!

2 Likes

Somehow I’m hesitant to start using the /Alias workflow… I think it would mean an “aggressive” find-and-replace on my current entire database, because currently I’m tagging synonyms separately and using a Query (and) whenever I need all together…

I’m really looking forward to a reaction from the Roam-team on this. In the meantime … two more thoughts on this:

2 Likes
  1. I was thinking about what happens when pages are merged currently… I’m kind of hoping that I can keep tagging [[mouse]] and [[muizen]] to “merge” them under a single topic/concept-page someday. e.g. [[mice||mouse||muis||muizen]]… :thinking:Is the “original created on page x” stored per block? If so, then this would allow merging and unmerging pages … not sure how valuable that would be, but it intuitively feels like an interesting feature.
2 Likes
  1. I thought of another “easy” workflow in the meantime using namespaces that is sort of future-proof:
    I could:
    – rename the [[mouse]] page into [[[[mice]]/mouse]]
    – rename the [[muizen]] page into [[[[mice]]/muizen]]
    – keep namespace toggle ok ( Ctrl-C Ctrl-L )
    Now the [[mice]] page would show all synonyms on that page, right?

hmmm… it still feels cumbersome to me., because this would disallow the simple double-click-and-hit-[[ to tag from now on…

p.s. no [[:mouse::mouse:]] were harmed in the writing of this forum-essay :wink: … it is just an example! :slight_smile:

2 Likes

I definitely feel the pain that this proposal is trying to address, but I’m not crazy about using pipes in the page name as a solution.

Since they’re building this with clojurescript, I’m guessing they are big believers in the “code is data, data is code” idea so coming up with a way to encode this information in the body of the note would be ideal. I’d like to see an implementation built on special attributes. Other than attr-table, I haven’t seen them do anything useful with attributes yet. A special grammar of attributes would seem like a simple solution to me.

mouse
-----
- AliasOf:: [[mice]] [[muis]] [[muizen]]
7 Likes

Hi Jen,
Interesting point (and article). I’m thinking about pros/cons.

An I’m very curious about what the Roam-team thinks … I’m confident that they will come up with an elegant solution for this problem, but what will it be? Has it been discussed in the Believer Call that I unfortunately missed?

I like what you have in mind, and I plan to start using this scheme in my notes. My only concern would be these are all separate, though related, pages. So if I use [[mouse]] in one block and [[muis]] in another the links become muddled. [[muis]] would link to [[mouse]] and also to whatever page I used [[muis]], but there’s no direct link from each block to one source.

Or am I mistaken.

1 Like

I am not a software person at all. So please take my apologies, if my proposal sounds unrealistic to implement. Since I use 3 languages the synonyms issue is a headache for me. Though I am trying to follow strict rules on linking and creating pages on main concepts and people in one language, still one of the most amazing features of Roam - discovering unlinked connections is hard to use. Even if you follow these strict rules, these rules are hard to follow if we are talking about collaboration between different users. I don’t think aliases and creating billions of pages for synonyms and redirecting them is a solution, cause the discovery feature would be hard to use. I think this is a new function that should be introduced and it is about synonyms. We create page XXX and in metadata or in header we use equal function, e.g. Dietrich = Marlene Dietrich, Dietrich= Дитрих, Dietrich= Dītriha

6 Likes

Still hoping that soon a (no doubt perfect) feature will be implemented to solve all of this :slight_smile:

Recently I was thinking of groups or bundles … would that be something ? :thinking:

And: whatever the solution will be, it could also solve the case-sensitivity issue at the same time. (i.e. [[Spa]] could “bundle” [[Spa]], [[spa]], [[SPA]], [[sPa]], etc. by default) … “splitting” [[SPA]] from the bundle would then be an option that is allowed to take some extra effort.

1 Like

Hi, I’m using Roam for about 6 months now and this is my #1 pain.

I write notes in both Portuguese and English and there are a lot of cases that I end with multiple pages for the same subject.

It can be because of:

  • different words for the same concept: mouse, mice, rat
  • different languages of the same word: mouse, rato, camundongo
  • different capitalization of the same word: mouse, Mouse, MOUSE
  • acronyms and abbreviations: SaaS, Software-as-a-Service
  • emojis: :rat:, mouse, :mouse2:, :mouse:

I try to keep using the same words while I’m writing, but that’s not how my brain works and sometimes I use one of the possible variations. Later I discover that there are two pages with that concept and then I select one make the merge.

The merging process could also be a way to naturally and incrementally build the synonyms database.

One possible solution could be a page attribute with the list of synonyms that are considered for that page. And that list could be edited manually within the page, or be constructed while using with a specific syntax.

9 Likes

+1 Great, I absolutely need this because my graph is growing bilingual!

3 Likes

I was just tagging something #floor and #vloer again … opened another tab and went to this topic …

Just some stats :wink: :

#keepbelieving :wink:

2 Likes

This is incredibly important for the work I’m doing in Arabic! I want a single page where I can view all linked/unlinked references across ALL words.

Seems like we can’t do this, even using a query today.

1 Like