Supertags in Obsidian?

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.

Simply comparing a free app with subscription incentives that many people don’t pay for (i.e. sync) to a product like Tana (or more likely Coda) that restricts free usage to incentivize payment. I’m not at all saying Obsidian doesn’t make money, nor am I suggesting that they should start charging more money; I’m just making an observation as to why Tana/Coda/Notion will stay further ahead feature-wise, as their business model supports rapid development and feature releases in comparison. If Obsidian makes a similar amount of money to those services, I would be concerned as to why certain features are still missing, but it doesn’t seem to be the case and so therefore I am patient with the process.

I pay for obsidian sync + publish + insider. To me, it’s not a free product. I have faith in the Obsidian team :crossed_fingers:

3 Likes

You’re assuming that restricting free use increases total income. In practice that’s just one monetisation strategy. FOSS is another. If you’re correct then Heptabase and Scrintal will zoom ahead of Canvas, especially since they have a hefty start; we’ll see. Roam was free for a long time, then unavailable, then believer, then raised a huge amount of cash, employed a team of developers and stalled. I think that the optimal strategy will vary according to circumstances.

In practice, it’s just one area if development for Obsidian. Again, it’s a matter of strategy about whether it’s best to pursue just one niche or many.

2 Likes

I love Obsidian for everything it is, but I also suffer from having an Outliner DNA. Many times it feels like writing with my left hand while being right-handed. It feels so close, but not exactly there.
Enforcing a bullet-level type system on plain text files is hard, but I hope the team will continue exploring options. I have tried different approaches, but it is challenging to have a deep-level linkage unless I dissect my notes (in theory, possible, except for the immense friction in rebuilding a lego each time I craft an idea).

3 Likes