Supertags in Obsidian?

Perfect!

I would like to try this. It would be a game changer for me. Though I am not great at coding :frowning:

All very interesting (the video), but it leads to lock-in to the Tana platform. Seems the antithesis of the Obsidian anti-lockin approach.

I collected and reorganized some of the ideas expressed in my post above in a major Feature/Workflow Request for obsidian.

11 Likes

From your lips to the Gods’ ears!

This is really impressive. Thanks for building this!

1 Like

I do the exact same thing for a wide variety of note “types” (e.g. people, organizations, projects, books, articles, etc.). I consider most notes in my vault to be one of these “types.” They typically look something like this:

---
uuid: YYYYMMDDHHMMSS
---

# Person Metadata

Type:: #contacts/people 
Pronunciation:: 
Spouse:: 
Parents:: 
Siblings:: 
Children:: 
Relatives:: 
Organization:: 
Role:: 

===

Content of note

I don’t put this “metadata” in the YAML because it often includes links that I want to be updated should I change the name of a linked note (e.g. I learn a relative’s last name and update the linked note to reflect that).

As the metadata in my vault evolves, I do two things:

  1. I update the existing notes using BBEdit’s Multi-File Regex search and replace. (Over the past year, I’ve become shockingly proficient at writing regular expressions for a guy whose day job is being a pastor.)
  2. I update the template I use to create these notes.

As @andy76 mentions, this is incredibly tedious. @WhiteNoise, Notion’s functionality is incredibly tempting, because it solves these problems. I even toyed around with switching note platforms for this reason. Your product is just way more flexible (and much faster), so I’m unwilling to leave. I hope you develop this feature request that you submitted. A metadata typing system that works at the note level (as opposed to the block level) would be more than sufficient for my workflow, and I imagine others.

@Mat, I noticed that Metadata Menu 0.3.4 adds a command to “bulk insert missing fields.” Is it possible to create a “template” for what these bulk inserted fields look like? (See my example above.) Currently when I use this functionality, it inserts the fields at the selected position reading from the top of the fileClass to the bottom, inserting the fileClass information in essentially the reverse order and skipping anything that’s already included in the note. (See GIF below.)

2022.11.01 at 21.45.29

2 Likes

I didn’t considered the benefit of having auto-update for link attributes if they are in “::” form. It’s a very useful trick :slight_smile:

1 Like

I’ve just saw a plugin (link below) that claim to have tag details for each tags. Is it equivalent to supertags in Tana?

Hi @millerstevew.
In fact it’s inserting them in the right order but always on the same line number (to not override any existing data in the note) and pushing the pervious field inserted one line below. So the result is a reversed order display. I will change the insertion order in the next release to match the order of the fields in the fileClass

What else would you like to customize in the layout of missing fields insertion?

I realize that this is largely aesthetic, but I would love the ability to:

  1. prescribe the order of inserted metadata,
  2. merge the current metadata in a file with the inserted metadata, and
  3. group or offset this metadata from the rest of the note.

I currently achieve #1 and #2 with the MetaEdit and Templater plugins. Using javascript, MetaEdit pulls in the current metadata and Templater inserts it in the proper order. Managing this, however, when I want to make small tweaks to the metadata template is incredibly tedious.

I accomplish #3 by grouping the inserted metadata under a header (in my case an H1 with this format # {{Note Type}} Metadata. This yields the block I mentioned in my previous post.

That said, I recently saw a video by Nicole van der Hoeven where she inserts this metadata between %% (see below). I think there’s a lot of merit to this. Aesthetically, it fades into the background, and it’s not rendered in preview mode or when you hover over links. There’s also the added benefit that metadata exists between characters that aren’t regularly used and easy to search for. (This is part of the reason that I structure notes the way I do. I place additional metadata between a note’s YAML and the rest of the note, separating the two with ===, but I’m tempted to embrace the between %% method instead.)

%%
Type:: #contacts/people 
Pronunciation:: 
Spouse:: 
Parents:: 
Siblings:: 
Children:: 
Relatives:: 
Organization:: 
Role::
%%
1 Like

@Mat Loving the plugin!

Appreciate if you can help with the following:

  • Is there a way to add a field with a fixed value? Say Company is always set to ABC for ABCperson (ABCperson is an extension of person fileClass).
  • How do I make a field choose from other fileClasses? Say attendees will accept multiple values from source all notes that have ABCperson fileClass.

Hi Ashish, thank you for the feedback.
1/ There’s no fixed field available at the moment. Maybe I could add a option to input field “fixed: true, value: xyz”. If these options are set, then inserting this field wouldn’t require to open a modal or something → it would insert the value directly in the note.
If it’s covering your need, could you open an issue on github please?

2/ use MultiFile field for attendees and set the optional Dataview query to dv.pages().where(p => p.fileClass === "ABCperson")

1 Like

Thanks so much for the guidance.

Sure

Works perfectly!

Not at the moment. I’m not sure where the details are stored, but it’s not accessible to the other plugins (DB Folder, Project, etc.).

The idea of giving tags extra info seems really good. If we make these info accessible to the other plugins, we’re gonna have a very clean and efficient version of supertags!

1 Like

I wish there was a plugin where I did not have to program out a dataview query, where i could define supertags and get a structured view of my Obsidian vault similar to how Tana does it.

Did you try the last version of Metadata Menu ? Plugins - Obsidian.

You now have access to a table view of all notes with a fileClass or a tag without having to code any dataview query.
You can also edit all the metadata straight from the table

here are some demo

Metadata Menu 0.3.6 - Fileclass view and Supercharged tags aliases - YouTube (from 2:23)
Metadata Menu 0.3.7 - YouTube

Is this close to what you are looking for?

2 Likes

I’ve been using @Mat ‘s Metadata Menu plugin which is as close to supertags as is possible in Obsidian. I’m glad that he’s built it.

Unless the Obsidian developers improve on the frontmatter fields, the Tana experience will remain superior and so much more efficient. I guess it’s another compromise of using Obsidian.

3 Likes

You may be interested to hear that on the Obsidian roadmap on November 14, the Metadata improvements card was moved to Working on.

13 Likes

I am afraid that this may be the case for quite some time. Even if Metadata improvements are being “worked on”, it is almost always the case that a monetized software solution is worked on faster/harder than a free one.

Tana will probably remain ahead, unless one of two things happens: 1) Obsidian devs set out to compete against Tana, prioritize much of their time into doing so, and perhaps take donations or paywall some features to rationalize the amount of time it takes to implement such a complex feature-set. or 2) Obsidian devs continue focusing heavily into developing a robust framework for plugin devs to create deeper solutions within (i.e. Dataview plugin, Excalibrain plugin, Supertags plugin, etc).

We’re currently limited in the scope of what is possible within Obsidian, partially because markdown files were not originally created with databases in mind, and also because Obsidian is a free product and thus doesn’t have strong financial incentives as a commercial product to “breakthrough” that wall we are facing now.

I’m trying to be a realist here, but I’m also a dreamer. I would absolutely love for Obsidian to have more robust databasing and supertagging features which currently exist within Notion/Coda/Tana. I remain open to the possibilities, but also tempered to the fact that it may take quite a while for that to come to pass.

Do you know what Obsidian’s revenue stream is, or are you just speculating that surely their business model must not be working out for them as well as it could? I’m pretty sure they have strong financial incentives, despite what you say.

The introduction of JSON as the data model for the new Canvas feature is promising. There are plenty of databases built on JSON, and I’m curious to see what this means for plugin developers and new core functionality.