Supertags in Obsidian?

Can anyone hazard a guess as to the feasibility of adding something like what the developers of Tana call “supertags” to Obsidian? Or is this kind of functionality already available in Obsidian through a plugin I don’t know about?

A “supertag,” as they define it, is a tag that carries with it a set of data structures. For example, one could write the name of a book, then give it the supertag “book.” And then define for “book” a number of fields: Author, Title, comments, summary, etc. Additional items tagged with “book” could have similar fields filled out. And then, when you compile all the entries tagged with that supertag, you would see a database table of all the tagged entities and their associated fields. A big advantage of supertags is that you can easily add fields on the fly, so there’s no requirement to create data definitions in advance of using them, and little friction in changing them.

I understand this seems like more database functionality than should be expected from a text-based program, but Dataview has already paved the way of showing off the data-manipulation potential of Obsidian.

If my description is confusing, here’s a gentler video introduction to the supertags concept: How To Build A Content Idea Capture System In Tana - YouTube

14 Likes

Sorry that I can’t contribute directly to your question, but with the huge hype around Tana these last weeks, if some genius Obsidian plugin developer develops or even extends an existing plugin… I see massive potential for even higher adoption of Obsidian as offline local storage alternative to Tana

7 Likes

Maybe the “Metadata menu” plug-in is “close to” it.
The concept of Tana is very nice and on the fly.
Worth to build in :smiley:.

3 Likes

I haven’t had a chance to have a Tana account yet, but from what I’ve seen in Youtube videos, it seems like Metadata Menu could get closer to Tana’s user experience based on the « fileClass » capability.

Basically fileClass would be the equivalent of « superTags », but then I’d have to smoothen:

  • the access to metadata from note’s links (maybe with a button that i could prepend to the note’s link?), to display them in a « note metadata modal » and give the user the capability to update part/all of them at lne time
  • the capability to had a field to the fileClass from this note metadata modal
  • the capibility to assign a fileClass to a note from the link (with another type of button) or create a new fileClass and creare fields for it….
  • ….

I think all the logic is already available in Metadata Menu, and an improved UX is what I’ve had in mind since the beginning, but I would definitely need some ideas and guidance from UX design ninjas :slight_smile:

So don’t hesitate to throw ideas here or in the github repo’s discussion page Discussions · mdelobelle/metadatamenu · GitHub

7 Likes

Totally. If the Obsidian community comes up with an ontology-editor plug in to extend dataview with a better UX, in the style of Tana, it could really become a pull factor for all the people that value fully local implementations and the interoperability of markdown.

Tana have mentioned their backend database is proprietary. End-to-end encryption and local-only aren’t currently in their roadmap. I see Roam and Notion a lot more exposed to Tana’s remarkable innovations.

To me, - the true value of Obsidian is:

  • Its basic unit is the markdown file. The interoperability is huge, you can simultaneously work with Obsi and with VSCode, Emacs, Logseq, Devonthink, Tinderbox, Scrivener, Github or Google Docs. And the implication is that the notes you work with in Obsidian can truly outlive you. Plaintext has been around since the beggining of personal computers and it’s going to stick around for a very long time.
  • It works fully offline, and it’s totally crossplatform. For very sensitive data, compliance issues, etc, you can have a full on-premises set up. If you need a more collaborative setup, it can work on any server you want or Github.
  • If you need sync, it works accross all platforms and it’s end-to-end encrypted.
  • The plug-in ecosystem is super extensible, because the basic unit is the markdown file.
  • The Obsi community is among the most grass-roots and easy going you’ll find in the PKM / Tft space.

I am very thankful with Tana for bringing schemas to the TfT space and I want them to be very successful and keep pushing in that direction. But at the same time I’m very thankful with Obsi for its commitment to fully local implementations and interoperability. I hope both projects can learn from each other.

11 Likes

I imagine that it’ll be pretty difficult given obsidian is not a database itself, but I think some kind of workaround can be possible. But blow me away please.

I’m on the wait list for Tana and looking forward to “having a play”. But in Obsidian I’m only just getting into Dataview and (correct me if I’m wrong), most of the data filtering and manipulation you can do in Tana with SuperTags can be done with Dataview. I’m also Mac-based and use Alfred for “snippets”, so it’s easy for me to use a shortcut to create the frontmatter/YAML fields for a specific type of note that I can then populate and search/manipulate/report in Dataview.

Although there is a lot of cross over between Tana and Obsidian in functionality there are some fundamental differences in the approach. Tana - Online, proprietary, supertags = usable by teams, easy data manipulation, very limited interoperability, not so secure/private, not so extensible. Obsidian - Markdown file format, great API for plugins, user hosts/owns their own data = great interoperability/legacy, huge ecosystem, very secure/private, but a PERSONAL knowledge management tool, no team capability, can be difficult to use in corporate environment where tool installation is controlled/limited.

Let me chime here quickly as youtube is bombarding me with Tana related content this past week.

I believe Tana is what Roam should have been if they decided to go all-in with a (strict) type annotation system at bullet level.
I know that at first glance Tana is more similar to Roam than Notion, but in realty, Tana follows a different path to achieve the same thing as Notion.

In a sense, Tana is a reverse Notion. In Notion, pages follow a database defined schema with an extra “hidden” field for free form content (what you see as the page’s content). In Tana, every free form bullet point can be augmented with extra fields following a strict predefined schema (the “supertag”).
Once you have these databases following strict schemas, you can query them and build views.

An approach similar to Notion’s can been replicated in Obsidian with YAML attributes, inline attributes, dataview, DB folder, metadataedit, etc, etc, etc. This is cooperative effort between some basic Obsidian APIs and different work done by third-party plugins.

The nice thing about Notion is that

  1. being a DB first application, all of the complexity is hidden away from the user
  2. everything is implemented in a cohesive manner by a single entity (Notion)

The con is that, if you don’t use notion, your data doesn’t make sense.

Hopefully, in the future Obsidian can improve on the APIs and GUIs to manage the page’s metadata so the whole plugin ecosystem looks more cohesive and is more interoperable.

I believe that Tana-like approach (bulletpoint augmented with a strict schema) is harder to implement in Obsidian because

  1. Obsidian is not an outliner first
  2. It’s hard to enforce a bullet-level type system on plain text files. (Harder than page level type/metadata).
9 Likes

I too like everyone else have been bombarded by the same videos on you tube, and also thought the supertag function was very elegant. It seemed like the dataview/database folder route is as close as we can get. Database folder does look relatively easy to edit on the fly but requires some upfront data entry initially.

1 Like

PS. Also Tana uses an outliner paradigm, like Logseq. Whereas Obsidian uses regular, long-form Markdown documents… although there is, of course, a good outliner plugin if you want that option.

I’m at the beginning of my Obsidian adventure and I don’t know anything about Tana, but I think we can easily obtain something similar using some Obsidian feature. Templates, YAML frontmatter and dataview, for example

If I consider this Tana video as a reference for supertag feature:

  • you can obtain the “outline” (isn’t a bullet list, in the end?) in Obsidian;
  • near American Spynx yout can have a note link. O even “American Spynx” itself can be a note link to American Spynx separate note.
  • in American Spynx note, I can create a YAML section, specifying

type: book (or type:#book)
author:…
year:…

##topics

And so on

Then I can create a book template with this kind of structure, and reusing it when I have to add a “book supertag” to another block of text.

I already use something similar in my vault, can I call it “obsidian supertags”? :slight_smile:

A significant drawback I’ve found in these method, if I have 100 book notes and I want to add a new attribute to my book model, it’s a bit tedious update the 100 already taken notes according to new book model.

But I think it’s not so difficoult add a better YAML manager to Obsidian, if in the future this feature will become a must have.

1 Like

I honestly have not found this database like feature of Tana so innovative comparing to Obsidian.
I already obtain a powerful database feature in Obsidian, using YAML and a template for each “entity” I have to model in my vault.

It could be useful having the feature of transclusion of note front matter in another note, so I can have data set of a note included in another node.

But if I really need attribute inclusion in another note, I can also set attributes using key::value format and make a transclusion of a section of these data.

Hi there
I’ve just released Metadata menu v0.3 that combines metadata menu capibilities with tags (i’ve named them « supercharged tags » :slightly_smiling_face:)

see the release note below :point_down:. This could be a mvp towards supertags (given what i’ve seen in their videos since I don’t have a tana account yet)

—-

:muscle:t2: Note Supercharged tags: Bind tags with fileClass definition. When you put a supercharged tag anywhere in a note, all fields defined in its fileClass definition are available for this note.
:hatching_chick: Create a supercharged tag: from existing or not yet exisiting tags
:dog::lion::red_car::world_map: Add multiple fileClass and supertags per note: combine fileClass, supercharged tags and fileclass queries to finegrain-grain which metadata fields are available for your note.There’s a priority management If the same field is defined in serveral fileclasses.
:clipboard:New Note’s metadata fields form: access all available metadata fields for your note in a sigle form where you can easily:

  • insert (at cursor or at a chosen section or at the end of the frontmatter section) a field
  • update a field
  • see which fileclass/supertag the field belongs to
  • change the field settings
  • add a new field definition to one of the supercharged tag/fileclass of this note (it will therefore be available for other notes sharing the same supercharged tags and fileclasses)

:sparkles:For notes with a supercharged tag/fileclass definition, a Note’s metadata button will be added right next to the note’s link/tab header/file/backlink/star-result/search-result/… to access the note’s metadata form without opening the note or navigating in the context menu.
:man_artist:t2: The Note’s metadata button icon can be customized in the fileClass definition (from lucide.dev icons set). You can customize where these buttons are displayed or hidden in the settings.
:handshake:When used in combination with the Supercharged links plugin, you get a great understanding of what a note is about and great ease to manipulate its metadata from anywhere in your vault.
:pushpin:Better UX for section choice for “add a field at section” command.
:wrench:Lots of under-the-hood optimization, so if anything work act as expected, don’t hesitate to open an issue in github.
:books:Documentation here: Metadata Menu
:popcorn:Demo here: https://youtu.be/I73uW8fqOZ8

19 Likes

This is really good !!

There are a lot of limitations with supertags in Tana that need to be addressed to meet the high expectations. Let’s let the Tana hype settle.

I have two questions regarding Supercharged Tags:

  • Can they extend a tag (e.g. Guitar and Piano as extensions of Instrument)
  • Is it possible to query attributes under a Supercharged Tag (e.g. incomplete task say in a remarks field under the Guitar supercharged tag across several notes)

Hope you can clarify…

2 Likes

Yes you can extend supertag definition.
In your example, add ˋextends: instrument` in the frontmatter section of the Guitar fileclass note and in the Piano fileclass note

For the query question, this could be achieved with a complex dataviewjs query.
I could add an api method ˋavailableFieldsForFileClassName` that return a list of available fields with their name and type that you can interate on in a dataviewjs query.

2 Likes

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.

10 Likes

From your lips to the Gods’ ears!