Add support for link types

+1

As a TheBrain user too, link types is something I dearly miss in Obsidian as well.

6 Likes

Any update on this topic? Links types sounds like a no brainer feature to me!

8 Likes

If at least there could be room for a syntax to let link type/properties be a thing then a plugin could use that new semantic. [[ ]] links have already been twisted to accept meta-data for images like size, or alias, so markdown “pollution” would be a bit of an hypocritical excuse.

I find it sad that this link as a first class citizen claim lead to something even less expressive than simple html hyperlinks in the end, a lot of how my notes are linked is to be expressed on the link itself and not on the source or target page, and there is no workaround this, knowledge is a graph, and a graph datamodel is the superior paradigm. I’ll migrate all my notes to the first PKM software to support link types/annotations, even more so if it can be enriched by properties…

I’m totally willing to wait if this appears on the “long term” roadmap, but with no sign at all that this fit or fit not the long term vision of obsidian and no visibility at all on that trello as to the direction that the products want to take i don’t see myself supporting another year :frowning:

7 Likes

How do you imagine writing the link types?

1 Like

First, I think the utility of something should be established independently of “how it is best implemented”. Having made my case as to why i would consider it useful, all I can do it some example proposal, none of which will be without impact or standard, because markdown was never made to offer semantic or parsability, it was just design to be cosmetically similar to a styled text while not imparing readability ^^

Proposes a :: syntax similar to the one we use in dataview and so would fit pretty well into what already exists. Probably the read view could hide that prefix part also as it’s not necessarily mean’t to be read but there to improve search, graph or give dataview a whole new set of rich queries.

Obsidian itself has a whole lot of ways to add stuff not originally envisionned in the markdown spec where it’s lacking, like the #page=number that works with PDF document, the [[image | 100x100]] size parameter that only works with images or can be used as alias… there could be optionally more parameters following that would simply not appear at first and could be implemented later or already used by plugins, if there was just somewhere to write them. It can also be some prefix to the link : works_for::[[link]] that doesn’t necessarily appear in the rendered view.

If non standard syntax could be added to a PKM tool for aligning an image, opening a PDF to the right page or introducing an alias, it would be sad to refuse to add syntax for something that is fundamentally PKM related.

4 Likes

Some months ago I wrote a prototype to have link types.

The syntax is a variant of what MediaWiki uses, which is very simple. I call this syntax dot-triples

It consists of phrases of two or three tokens.

If I write a phrase with three tokens, for example:

[[Bob]] :: is a :: [[Person]]

then a triple is generated.

If the phrase has only two tokens, then a triple is generated, but the subject is assumed to be the current note.

date created ::  2021-12-22

will be equivalent to

__THIS__ :: date created ::  2021-12-22

This allows me to have typed relations.

One can also write phrases that generate more triples.

[[Bob]] :: wrote about :: [[Topic 1] and [[Topic 2]] today

The plugin reads the triples and indexes them in a Database (Triplestore) each time I save the file, which I can later query using a language called SPARQL.

Edit view

Normal View

19 Likes

Looks very interesting! :+1:

1 Like

That is super interresting !

I’m in need to express those more strucuted relationships between objects, and this at the same time has the added benefit to not get in the way of readability and natural writing.

Do you use some kind of in-memory graph db for the model and querying ?

3 Likes

I use an external database, an RDF triplestore. However, I think there are implementations that work in memory, that for small vaults would be enough.

1 Like

A wealth @ https://plantuml.com

2 Likes

What do you mean?

various potential ways to write various link types

1 Like

It will be a powerful way to gather thoughts

1 Like

what is this plugin?

1 Like

@cristian
Yas, plez!

This would be a fantastic way of resolving the arbitrary separation between creation and provenance, or more plainly content and its context.

To be related, or not to be related…” that is not the question.

Instead:
“How are these things related?” - be it metadata, annotation, bidrectional-links, backlinks, outlinks, Dataview-dataz, human-un-friendly YAML-aml, aml, aml, aml…, or whichever flavor of unopinionatedly-opinionated markup language, it is all much ado about something.

The arbitrary arbitrage of separating the inseparable (content from all of its context) and then deciding the best way of displaying it (friction-ful side panels) or re-connecting it (cognitively burdensome) such that it may be useful seems less fruitful than developing an awareness of the inherent interconnectivity of all dataz, and working to reveal that which is extant in each note and its connections.

To disambiguate that which is not inherently ambiguous…

Oy… Forgive the salty prose.

Here’s hoping this will be the One Plugin to Rule Them All!

Thanks for keeping this hope alive since 7/2020!

3 Likes

Any news in this area Dear Obsidies?

Still pining away for some flavor of functional disambiguation…

It must’ve felt similar to the early adopters of the motorized carriages back before cars replaced horse and buggy as the more robust or advanced means of transportation…

Bah Humbug… These hippies and their fancy ‘link types’… Silly fad I tell ya! Why, back in my day… We had to manually connect each little data giblet… By hand [right-click]! Uphill both ways [bidrectionally], in the snow, with no shoes on…
And we liked it!

~Quo, Status Esq.

There is such immense unrealized potential in managing knowledge digitally. It’s further inhibited by staid and discursive designs that needlessly separate inherently interconnected dataz, only to expend later effort to instantiate their newfound and illusory separateness by debating the best means of re-connecting and then re-presenting the now-disconnected…

Systems of thought would do well to recognize the organic, essential, and extant interconnections of all things and then design optimizations that reveal what’s already there.

Facilitate more dialogue in data, and less discourse and debate.

Autocatalytic knowledge conversion beats the clunky death by a thousand right clicks all of the days…

#right_click_wrong_click
#save_click_save_a_life

~gobs

1 Like

Any updates on your plugin?

This would be a fantastic tool!

2 Likes

Agreed that link annotation ends up being better than some crossing-guard of a meta note cluttering things up.

This would be great for the issue of path intersection . https://www.reddit.com/r/ObsidianMD/comments/wxtjev/approaches_to_notes_in_multiple_thought_paths/?utm_source=share&utm_medium=ios_app&utm_name=iossmf

2 Likes

Hi Rishi,
I used TheBrain for years.

Link-Types in TheBrain
Pro
Definition of Link-Types are Supported including zoomable Icon, background-link-color
Activation is quite easy
Overwriting of the Link-Text is possible (and arrows too)
Link Notes (but no indicator that they exists in the graph)
Link-Type filtering is possible!! Very cool!
Con
no inline definition of a link (e.g. Linktype synonm has the symbol =, = NewNode1: would link the last active node0 to the new node1 with the link-type Synonym and = is shown on the link. e.g. ~ is the link type similar…<>…)
layers are missing, but with link-types there will be a workaround (if link-type filtering is possible of course).

Application:
I tried to get Philosphy into my second brain. And digitized the “Philomat”. So you have 12 layers, link-types and now you can filter the different view to the world (as a new philosphical interperetation).

Kind Regards

Possibly a different take, but I use the combination of

It allows me to define link types (for me in the front matter) using Juggle, and at the same time keep the types consistent through the autocomplete which I populate using a list of links I need (in my case foaf, dc and some word net).

The only thing I now need is a decent export/import of the juggling graph or a powerful query/reasoning tool to query over the juggl graph.

1 Like