Roam-Research / issues

Roam Research - A note-taking tool for networked thought.
https://roamresearch.com/
303 stars 7 forks source link

Synonyms for pages get more urgent as a database grows #175

Open TheoKoster opened 4 years ago

TheoKoster commented 4 years ago

Describe the problem As my database grows, I find myself spending more and more time to manually combine separate pages. Uppercase/Lowercase variants (and because I am working bi-lingual (Dutch and English) even more possible permutations.)

This significantly hinders the core value proposition of Roam is to find new connections between idea's using backlinks since no auto-backlink is discovered between "boek", "Boek", _"book",_ "Book", "Books", "books", "Boeken" and "boeken", all of which are 100% synonyms in either Dutch or English, in their single or plural forms.

I am specifically referring to global aliasses, not a one-off I would have to repeat (and manually remember) everytime.

Feature implementation I envision a two step solution

  1. switch off the discern between upper- and lowercase. Easy-peasy, instant succes for references to [[book]] and [[Book]]
  2. Allow for a {:synonym [] []} clause. This requires programming (but would profit from step -1-) . It would have to be declared on the first specific key-word page, since that is where I would like to have these synonyms live. From thereon, they would inherit on all synonym-pages.

How would the feature look like to you, and how would it fit in with your interaction patterns? As described above. It will significantly enhance the quality and quantity of back-links that I might discover.

If you have a mock-up of this feature, we'd love to see it!

___ mockup of a page auto-assembled when searching for [[book]]____

book {:synonym [boek] [boeken] [books] }

[[boek]] Pinkeltje in dromenland [[Book]] The art of note-taking Meer [[boeken]] lezen is een keuze die iedereen moet maken.


As illustrated, it would automatically find all defined synonyms and upper/lowercase variants of the searchphrase "book"

Additional context As an European, it is not uncommon to speak more languages. I actually avoid German or French texts at the moment because of this problem.

agentydragon commented 4 years ago

Related issues https://github.com/Roam-Research/issues/issues/146 is a related FR for the specific case of alternate formats for dates.

For @TheoKoster 's usecase, since "boeken" should be a link to "book", but also should not show up as an unlinked reference to "book" as "boek", this FR might be relevant: https://github.com/Roam-Research/issues/issues/192

Alternative syntax My alternative idea for the syntax would be having a special attribute, like:

# book

* Aliases::
  * boek
  * boeken
  * books

Optionally case-insensitive page names? I'd also like if you could easily make a page's title case-insensitive. I prefer to use Titlecase for my page names (like Shovel ready, etc.) because I like the format better, but it's then a bit annoying that (especially if I'm writing on my phone) it matters whether I type #anki or #Anki, because they're not the same page.

Maybe a global setting for default case-sensitivity that you could override per-page?

# Anki {:case-insensitive}
# uzbl {:case-sensitive}

Automatic aliasing

Lots of human languages have available libraries that can automatically conjugate/decline. For @TheoKoster 's usecase, it would probably be nice if you could say "the page Book has an alias in Dutch: Boek". You could then use such a library to automatically recognize "boeken", etc. as other conjugations of the same word.

Note that it is conjugations of a noun may not have the nominative singular of the noun as a substring, so just doing substring matching would not be quite as good. For example, in Czech, the conjugated forms of the singular nominative "žena" (woman) are: ženy, ženě, ženu, ženo, ženou, žen, ženám, ženy, ženách, ženami.

TheoKoster commented 4 years ago

I can agree with all your suggestions on how to add this feature.

One observation about automatic aliasing: This would be great if there is an automatic external service that could be integrated within @RoamResearch. If @RoamResearch were to build this by itself, it would quickly become enormous feature bloat. Lexical systems are complex and I can't even begin to imagine what it would look like for Chinese languages.

Let's suppose automatic aliasing would be available as a service, then you'd combine this into another Feature Request: a garbage collector. Stuff like double spaces, Auto-capitalizing and yes, auto-synonyms (if even only for nouns) that would automatically be updated in the background.

agentydragon commented 4 years ago

I think having an API (https://github.com/Roam-Research/issues/issues/145) would be a massive unblocker for this, and lots of other features people want. Roam would then not need to do anything, you could just code up whatever logic you want to have.

TheoKoster commented 4 years ago

Some of this should be a core feature of the platform itself.

A Roam database contains many personal thoughts and valuable ideas. If the quality and coherence of the content would be delegated to third-party solutions, allowing external utilities to roam (tsjaboom!) all over your thinking would quickly become a privacy concern.

It would end up much like the mess in the Google App store, where you can't trust an App.

Stvad commented 4 years ago

I want to add 50+ upvotes from Metaroam archive here : https://roamresearch.com/#/app/metaroam2/page/M8Gm1V1N8

JustACuteGirlLookingForAManToFixHerBugs commented 4 years ago

Yes! Da! Natѵrlich!

It's pretty easy to add plural & possesive forms for the English manually, but for Slavic languages it get way crazier - and it needs an automatic solution (as mentioned above, there are numerous libraries for that). Here's the "book" example in Russian: image

maugermika commented 4 years ago

Hey,

I think I may have found a temporary (or even permanent) solution to this Alias problem by lurking through Reddit. You just need to make a hyperlink - [] () - using the Alias option (in the slash-command menu), then put the synonym you want in the square brackets then put the page name - [[example]] - in the round brackets. e.g. [book] ([[Book]]) using the example given supra.

I hope it helps you, Best regards.

galligan commented 4 years ago

Thanks @maugermika. Very useful to call out. It’s something that I’ve been doing since seeing Connor do it.

Stvad commented 4 years ago

@maugermika It's important to distinguish between user-side aliases (either with markdown syntax as you mention or via {{alias:}} command.
And page-side aliases - when multiple pages mean the same thing without you having to explicitly define alias each time. This ticket is about the latter

maugermika commented 4 years ago

Of course @Stvad, that's why I said "temporary". Always good to know alternatives, even if they are not as effective as what the request demanded.

Thank you for the toolkit by the way. Sincerely.

re404 commented 4 years ago

Big upvote. I'll copy my earlier Slack post on a different solution proposal below. -> In @TheoKoster 's example his page would then be [[boek||Boek||book||Book||Books||books||Boeken||boeken]]

This has probably been requested and discussed a thousand times, but after using Roam for quite a while I think I have an OK proposal for: synonyms, homonyms, aliasing, multi-language usage of Roam, abbreviations, different words for the same concept or meaning, etc. See art below, I hope it kind of explains itself :wink: . Note: All terms could then be used separately in between [[ ]].

image

image all terms between ||'s are to be found separately in the dropdown This would then also allow merging and "unmerging" terms in the future.

p.s. How funny Theo and I are both Dutch ;)

re404 commented 4 years ago

New place to vote ;) https://forum.roamresearch.com/t/synonyms-plurals-acronyms-aliases-multi-lingual-usage-of-roam-abbreviations-or-redirects/215

Halem998 commented 4 years ago

this is THE most annoying problem about roam imho i hope theyll get it done soon. im a beginner but as my workflow starts evolving its like a real nightmare. those little things make all the difference

soham25399 commented 3 years ago

Still waiting on this- as someone who is involved with the bureaucracy...abbreviations and nicknames are pretty darn important and ubiquitous.

csarmendariz commented 3 years ago

Just showing support for this feature request, it would make a huge difference!

faurehu commented 3 years ago

I have create a plugin that could work as a temporary solution. It involves a [[roam/js]] script. You can find a demo video and the link to source code here: https://twitter.com/mati_faure/status/1352792465577750529?s=20

Caveats: