View Structure of Nested Tags on Graph

I think this is similar to my need. Possible an easier to consume example.

Currently, nested tags in graph are treated as a single tag. For example, there is no apparent difference between:

#Europe/Italy/Rome and #EuropeItalyRome

It would be helpful if the graph was hierarchical and branched at each sub-tag. This would allow a core tag in the graph of #Europe (with any general files on Europe connected). From there, the #Europe/Italy tag would connect to #Europe but contain files that are tagged #Europe/Italy. From #Europe/Italy the #Europe/Italy/Rome tag would be connected with its related files.


Check out Link Tags to Subtags in Graph

It is different than this feature request but does take care of this:



Hi everyone,
first, thank you for this amazing Application!

Use case or problem

Subtags and Tags currently have no Connection in the Graph-View but are completly separate.

Because I don’t want a Connection between the Main-Tag and the SubTag lost, this makes me tag my Pages like this at the moment:

#books #books/fiction #books/fiction/fantasy

But this on the other hand leads to a lot of clutter in the Graph-View,

Proposed solution

It would be nice if Sub-Tags would connect to there parents, so that there is a strong connection between Sub-Tag and parent, but Notes only need to link to their specific Sub-Tag. This would de-clutter my Graph a lot and lead to a nice Tag-Tree.


Good idea.

Makes sense to me. I see what you mean. But, maybe a toggle would be a good compromise.



A Tag Tree Toggle! That is a wonderful idea!
Even I was a little disappointed when subtags arent “sub-tags” per say, but they function as distinct tags, but with similar names.


Here’s something I’ve been thinking upon.

Once nested tags are graphically interpreted, I was wondering what would become of the relationship between the tags #America/History and #Canada/History?

I would like to hear everybody’s thoughts.


I really like where you are going with this.

Maybe there could be a toggle switch in the Display section of graph settings to create a dotted connection between them.

Or, perhaps with either an automatic toggle or by creating a new tag called */History (or something legal), this new shared subtag node would be connected to all tags that had the History subtag.

I am having trouble finding it, but I had a similar feature or plugin idea using the same concept but for headings. In my idea, all notes that had a matching heading would be linked to a note with that heading name or a new note if one did not exist. Of course this would not be automatic and would have to be invoked.



I think it would be more usefull if they were seperate at first, because them beeing linked would lead to a lot of overlap in a Tag-Tree and would make it hard to follow the branches from Main-Tag to Lowest-Level-Tag. But it would be nice if there was a Option to filter the Graph, to show only Notes tagged with */History/* for Example.


+1 to that!

Linking tags to nested tags on the graph seems super important! I want to start using a tag system, but I can’t imagine not having nested tags, and I don’t want nested tabs messing up my graph view by not being linked…


Just chipping in, I too would find it highly useful if nested tags connected in a meaningful way.

At the very least I think that connections should be made between direct descendants so that the tag #philosophy would connect to #philosophy/socrates and to #philosophy/democrates but the two nested tags would not connect to each other. That way you would get a tree structure which feels very natural when navigating.


:construction: A very messy workaround, but a workaround

tl;dr: I created a note that links to the base tag and all its nested tags, pulling them together on the graph. And hacked together an automated way to pull nested tags given a base one.

:woman_shrugging: I originally, for the laughs, created a note named after the base tag, even with the #, #geo (subtags of which I use in locations for Map View, like #geo/beach). Having the note, I just went ahead and mentioned every tag nested under it in that note. Manually. And once I opened the graph, it seemed to work perfectly! I put that note into its own folder and assigned it a color so that it would blend in with the other tags.

:thinking: E-e-e-except for one small problem. When trying to extend that practice to other tags I learned that this was only working fine because the base tag was not in use. So when I created a note that only had the base tag, #geo itself, I suddenly had two dots on the graph named #geo — one for the tag and one for the note. That was confusing. And thanks to my color hack I couldn’t even tell them apart :grin: So I assigned this note a different color of course.

:warning: …and I later discovered that Obsidian on Android cannot create a file with # in the name. So I had to remove it from the note name anyway. It worked on Windows though.

:bulb: But on second thought — it actually did the job! It pulled the nested tags together! Sure, there’s one unnecessary link and the base tag got hard to spot, but the structure is mostly there. I just had to mention the base tag in the “pulling note” (as I’ve gotten to call them) too, in order to not have it dangling elsewhere.


Now, of course I had to automate this. Gathering tags by hand is tedious. I solved some of this using Dataview plugin. I mention the base tag I want to pull the subtags of, place this snippet on the page and, well, follow what it says:

Automation snippet to maintain the list (copy&paste its results from preview window into the file):

let currentPage =
let pageTags = currentPage.file.etags;
let query = pageTags.join(" or ");
let queryTags = (query === "")
    ? []
    : dv.pages(query).file.etags.array();
  [ Set(queryTags)].join(" ")
  • Sadly, this only really handles single-level tag nesting, because it gets all of the descendants of mentioned tags, not just direct children! This is JavaScript though, so it’s got to be fixable. I haven’t (yet?) gone that deep into the tags.
  • It already does not match ancestors: if you mention a nested tag, it’s not going to return the base tag of it in the result.
  • Still a bit of manual action whenever a new tag is introduced. But the snippet does make initial setup easier, and makes future tagging sprees manageable.
  • It handles multiple base tags just fine. That goes beyond the workaround, but the snippet does not care.

Better than nothing overall. I hope this helps someone out there.

Still waiting for a native solution though. Pretty please? :slightly_smiling_face:


I have the same idea.


Hello, any update on this ? I don’t know if I should change the way I use tags or if a solution will come out eventually.


Any updates?
A toggle that could reveal relations between nested tags and root tags would be perfect.


I’m voting for this one!


Any updates with this feature?


+1, vote it up.


+1 vote this up. Particularly useful for users coming from Bear


+1 This would be incredibly helpful. I was surprised when I found it wasn’t an existing feature. I had to completely overhaul my tagging system to reinstate order on Graph View, as I was unable to see clustering of notes based on their parent tags. At this point (for my uses) nested tags are nowhere near as useful as they could be, if they would give a more intuitive visual representation of connections. Of course this could and probably should be a toggle-able option, for flexibility in tag implementation.