athensresearch / athens

Athens is no longer maintainted. Athens was an open-source, collaborative knowledge graph, backed by YC W21
https://athensresearch.github.io/athens
Other
6.31k stars 399 forks source link

Allow multiple page names, or aliasing, for better linking #828

Open yifanyin opened 3 years ago

yifanyin commented 3 years ago

For example, one can have a page [[climate change]] with aliases as "global warming" and "Klimawandel" so that under linked and unlinked references, all the aliases show up together.

tangjeff0 commented 3 years ago

Is this implemented in any other applications? If so, how?

ddauber commented 3 years ago

So you want to use Athens in multiple languages synchronously? This is an interesting inclusivity feature. I can see how this would make things easier when trying to find unlinked pages (because of different languages or simply synonyms.

However, I also don't mind having a page and its synonyms listed. I currently do this for abbreviations, i.e. I have a page called MCAR and then on this page, I link to [[missing completely at random]], which again links back to [[MCAR]]

I guess the challenge would be to keep pages unique. My solution would have been to just list synonyms on the main page to keep things as explicit as possible. Unfortunately, publishing my research means publishing in English. Eventually, all text gets translated to English (or the language I publish in).

Curious to see what others think and their use cases.

TillScout commented 3 years ago

I second the idea of allowing aliases for pages. Apart from the language and abbreviation use cases, this would also allow for mixed upper/lower case page names. Imagine you have an existing page called world domination and then you stumble upon the (unlinked) sentence World domination is my goal for this year. You could link this by going to the page and look into the unlinked references, but you could also mark the text and type [[, however in the latter case, this would generate a new page World domination. In addition to that I do have multiple pages in my Athens, which do have aliases in colloquial language and which I would prefer to link to the same page. With careful typing and linking or by listing synonyms on the page, this could possibly be avoided, but I think that aliases would be the easiest and most user friendly way. Possibly even with the possibility to merge an empty page into an existing one, in case you accidentally created a new page.

ddauber commented 3 years ago

You can merge an empty page already. You just have to rename it. Agreed, aliases would be nice, but this should probably be an opt-in option (so maybe part of customisation settings in Athens?)

TillScout commented 3 years ago

Thank you for the merging advice, I was not aware of that! In my opinion, aliases would be a manual thing in any case.

yifanyin commented 3 years ago

Is this implemented in any other applications? If so, how?

This is implemented in Obsidian and Logseq. In markdown files, they use YAML headers to make this work. For example the page of Climate Change starts with a section like this:

---
aliases: global warming, Klimawandel
---
yifanyin commented 3 years ago

Maybe another way of achieving a similar result is just to have 1) query rules or 2) fuzzier linking?

One usage I see in other places is just to keep track of content in languages with many verb tenses. Or just to keep track of your characters in your novel like:

Anthony Stark
---
aliases: Tony Stark, Tony, the Iron Man
---
miloskroulik commented 3 years ago

Using aliases in links is available in Logseq using [alias](link) and in Obsidian using [[link|alias]]. The latter comes from Wikipedia syntax, I believe. This is a must have feature for me to be able to take notes in my native language (Czech).

tangjeff0 commented 3 years ago

Which syntax makes more sense? Probably would do markdown first, since Wikipedia syntax can get crazy.

TillScout commented 3 years ago

I think that the suggestion by @yifanyin is nice and simple, so something like this:

---
aliases: global warming, Klimawandel
---
miloskroulik commented 3 years ago

It seems that I misunderstood this issue. I will create a new issue for my use case.

yifanyin commented 3 years ago

I think that the suggestion by @yifanyin is nice and simple, so something like this:

---
aliases: global warming, Klimawandel
---

While that is simple to type, I believe a header like this is much easier to parse when your notes are markdown files instead of data structure. Maybe some syntax within a block would work? Something like {{[[aliases]]: Tony Stark, the Iron Man}} ? In no way I know how to make this work though 😅

tangjeff0 commented 3 years ago

Roam has attributes, wonder if that would be an option:

aliases:: [[Tony Stark]] [[Iron Man]]

tangjeff0 commented 2 years ago

Aliases were implemented this way: https://github.com/athensresearch/athens/discussions/1326#discussioncomment-923738.

Leaving this issue open for discussion of real aliases. This solution is actually solving the issue of anchor text, not of fundamental aliases, i.e. different names for the same fundamental entity.