Hi Zac! I love your use cases and sample GIFs illustrating them, very well done!

I just made a feature request that could actually solve both of our needs:

Here’s how this simple attributes feature would work:

I want to make this paragraph have its own class. {.foo}

Furthermore, I want to give [[This Page Link]]{.bar} its own class.

Lastly:

- this list
- should have
- a third custom class
{.baz}

Now you may be thinking, “this doesn’t solve my use case”—but it’s usable for any attributes. For example, are you familiar with XFN — the XHTML Friends Network? It lets you establish relationships using the standard rel="" attribute, so a relationship link could be defined like this in markdown:

Meet my partner, [[River Song]]{rel="partner"}.

Looking for something more specifically tailored to your Obsidian needs, like wanting custom filterable options in the Graph? If the Obsidian team implements this markdown-it-attrs feature request, then they could support your exact needs with something like the above (parsing the rel attribute for graph filters, for example), or:

Meet my partner, [[River Song]]{data-obsidian-graph-group="Partners"}

The data-obsidian-graph-group would find all unique values (“Partners”) and turn those into filter options as a group.

Additionally, this proposed feature request for markdown-it-attrs would allow for customizable aspects to lots of areas of Obsidian, using that data-obsidian-X syntax. It’s all up to what the devs would want to allow and implement, but the idea of customizable graph filters is awesome and I would love to see them implement this!

3 Likes

I am down for typed links, colored connections, different types of lines — whatever we call it. I have Objects (.md files) that are linked with other Objects (obviously), but some of the Objects are “GOOD” and others are “BAD”. I have a ton of them and it is confusing to see only one type of line which is in my case is
.graph-view.color-line { color: #97969c; opacity: 0.5; }

I imagine that if we have common connections as [[Object]], then we could use [[[OtherObject]]] or {{OppositeObject}} to tell the app to use a different line type.

2 Likes

This would also be a game changer for me! Hopefully this is something we’ll see in the future!

1 Like

I’m trying to figure out how people are currently writing link types…

I’m aware of Dataview’s Inline fields that allow writing types using the Key:: Value syntax.

# Example

is a :: proposal

Also Juggl link type support to label edges like:

- is a [[proposal]] 

Which others can be found in the wild?

Would it be possible to have connections in Obsidian’s Graph View representing notes of their own? Just like the nodes in the graph represent notes.

Coming from Kumu’s relationship maps, I miss the possibility to detail how two things relate to each other. And having notes attached to connections would be perfect for that.

2 Likes

I don’t quite understand. Are you perhaps describing this, where links can have a type associated with them? Add support for link types

Or are you saying you want the connection between notes to be able to have notes? Like this or something? (If you’re talking about link types, I’ll suggest merging your topic into that thread.)

image

Thank you for your drawing. It gets the idea through. Nonetheless, what I’m trying to describe is actually a mix of the two things you mentioned, in the sense that once a link can be/have a note of itself, it’d be possible to specify its type on such a note (via tags even).

Do you think it’d be more productive to merge this topic into the thread anyway?

2 Likes

Howdy,

Having started with the Zettlekasten Method and learning how links within that method are created (which fit with the existing Obsidian functionality), I started wondering about how to extend those links with additional semantics based on Mark Burgess’ four meta-types of semantic links with four directions each.

Within the context of Mark Burgess’ ideas of Semantic Spacetime there exist four meta-types of semantic links that ought to improve our ability to model information. These are:

  • CONTAINS (where A contains B) - a container/space-like relationship
  • FOLLOWS (where A follows B) - a sequential/time-like relationship
  • EXPRESSES (where A expresses B) - a local property being expressed
  • NEAR (where A is near B) - a similarity/nearness relationship

Each one of these types can be expressed in four directions:

  • Forward : ex, “Contains”
  • Backward : ex, “Is Contained By”
  • Negative-Forward : ex, “Does Not Contain”
  • Negative-Backward : ex, “Is Not Contained By”

Lastly, each one of these meta-types can be instantiated by a specific type. For example FOLLOWS can be a relationship between events in time, assertions in an argument, process outcomes, etc.

So, the link type I would like to be able to express has three attributes:

  1. meta-type: one of Contains, Follows, Expresses, Near
  2. direction: one of Forward, Backward, Negative-Forward, Negative-Backward
  3. type: the specific type (not meta-type) of the link: “Is Like” (Near), “After” (Follows), “Depends On” (Contains), etc.
3 Likes

Use case or problem

I’m trying to make a concept map like described here: Concept map - Wikipedia

Proposed solution

Adding the abillity to add relations (like here: Concept map - Wikipedia) between obsidian notes (concepts/ terms/ definitions)

Current workaround (optional)

no workaround

Related feature requests (optional)

nope

no workaround

Have you checked Juggl plugin?

1 Like

You could also try to create a separate note per concept and then have notes that reference that concept note? Could also have the concept as its own tag which will also show up in graph-view.

1 Like

Support Roger Shank’s learning structure (Engines for Education) that provides additional meaning in the structural links themselves

Each note supports four new categories of links

  1. What led to this?
  2. What does this lead to?
  3. Where is more detail?
  4. What is the context for this?

The user need to be able to define what kind of link, and edit the category type. User then can enter a structure anywhere by text sech, quickly navigate to the knowledge being sought

2 Likes

He had three other categories some people use, Give me examples, Give me alternatives, and What to avoid.

That’s an interesting approach. Seems very useful for a complete system.

Probably it could be a bit complex to start with. Perhaps we could start with a more functional approach in the sense of: Which different link types are used most often?

Here a suggestion for the situation: In note A, there’s a link to note B. (the categories “(in)direct links” indicate the “weight” or “order” of the link; the initial symbol could indicate a graphical represantion of the semantics of the corresponding link):

  • direct links (first order links or greater weight links):
    • ⇒: B is the logical consequence of A.
    • →: B is an argument following A, i.e. the “next step” in an argumentation
    • ↔: B is the opposite or the/a critique of A.
  • indirect links (second order links or lower weight links):
    • :arrow_upper_right:: B is another topic that is related to A (“cross reference”).
    • ↑: “external” link, i.e. link to a file, a website, or another type of note (e.g. an literature excerpt).

This would reduce the number of possible link types.

3 Likes

It has been around 6 months since this post was first made… is there any workaround as of yet for implementing this functionality?

This way of adding types to links seems the simplest way:

Is there any plugin that implements this or anything similar?

1 Like

try breadcrumbs. It’s great

1 Like

Link is the big feature that lead me into using obsidian, just because linking knowledge and having backlinks as a first class citizen easily connect things. I was totally sold on the graph view !

However as the number of notes i have grows with the number of meetings, projects, people, organizations and technologies i take notes on, the global graph itself became very cluttered, and even the local graph became quite difficult to sort out. Adding colors to nodes did the trick for some time but i fear that graph views quickly becomes just nice for screenshots but not actually very exploitable.

The main reason for the graph view to quickly reach its limit is that instead of being a canvas where i can organise notes spcially myself and that view get saved it is laid out automatically. And there is no way to lay out the notes in any smart way automatically because all notes and links just have the meaning of “linked to”.

Linking two notes to an intermediary note just completely loose the benefit of direct linking and is more like the work around that non graph database uses as “join table”, it will clutter the graph view even more.

I think the key feature in obsidian being the links, the product should embrace everything that makes the success of graph database. Links should be typed so that rich semantic queries can be achieved in the search. Optionally in the future they could hold parameters or link to their own note or a note could describe the link type. But semantic linking seems to me the single most important thing to begin with.

And no matter what theory says about what kind of links should exist between notes, obsidian is built on the concept that people decide their own workflows, so for me what kind of meaning the links have is something that must be left for the user to decide, for example between a #project note and #person note, i could have several link, one linked as project lead, one linked as analyst, or more general links like works on, works for to link organsations, implement link for a product linking to a research topic.

This product : https://heptabase.com/ implements the graph view as an actionnable view that instead of being automatically laid out are infinite views the user can add the notes and organize them spacially into, it also has some typed link supports. Such a kind of user-organized view allows to make timeline or even kanban without any need of plugin support, just by user’s own visual conventions.

Those are the two linked topic i would love to see obsidian move to : semantic links and the ability to not just save the graph view but make it my own canvas where i can layout (and see!) my notes inside, saving dashboards for later use.

2 Likes

Thank you so much for suggesting breadcrumbs plugin :smiley: … I would have completely overlooked breadcrumbs if it weren’t for your comment. i had taken a look at it initially but it had seemed it was only for a parent-child like hierarchy … but i had a look at its wiki page again after your comment … and it is almost exactly what i wanted when combined with dataview inline syntax and juggl plugin.

1 Like

haha no worry. It was me that overlooked it at first. We are the same :joy:

1 Like

It sounds like you want to look at the Excalidraw plugin? The author is very enthusiastic with it; he has a lot of video tutorial and examples.

1 Like