A Master Tag System (advice and feature requests) (Tag hierarchy)

Background
I usually manage my stuff (in Anytype, objects) with tag system. For example, in Anytype I have many Documents (objs) and each contain different research note on different diseases. I want to create a tag system where I can create relation in each Document obj to my tag.

How I do it now?
I created an Obj called “Knowledge Field” in the Obj Library. For example, I have Nephrology obj, Acute Kidney Injury, and Chronic Kidney Injury, etc.

Problems encountered
I want to create a Set of Document where I want to show all Document obj related to Nephrology. That means I have to filter out EACH kidney-related topic by hand picking. Is there a way whether I can do this more easily. Obliviously the best solution is to make my Tag System a Tree Structure. An example would be both Acute and Chronic KI are two tags under Nephrology tag, so that when I filtered Nephrology, I can include every tags under Nephro tag. To make it even better, if there is a way whether I can do the filter by clicking on the Tag Objs on the Graph, it would be great.

Currently, I created a Tag Template where the Title is the Knowledge Field and the content has two blocks: a) Description, and b) Relation. The Relation is designed to only allow Hypernym obj(s) in Knowledge Field. For example, in my Chronic KI obj page, the Relation is Nephrology. In Nephrology, the Relation has no Hypernym. Would love to know if there is a better way to do this or if there could be a function to do the Tree structure tag system.

9 Likes

Tag hierarchy is a great idea! I suggest adding these words to the post title.

2 Likes

Tag hierarchy is a fantastic idea, for sure!! Agreed!

1 Like

Would the following setup be something nice? This just came to mind while reading this awesome feature request, so I haven’t given it a lot of thought yet… (yes, that is a disclaimer that this idea might turn out to be garbage one or to posts down the line).

Edit: thanks @SirCaptain for very clearly summarizing points 2 and 4! :slight_smile:

I would love it if this became reality:

  1. You define a tag hierarchy/taxonomy in the Library like you define your Object Types and Relations (just add another tab next to Types and Relations). You only need to setup a “Tag category” but you can immediately populate the category with (nested) tags. Example:
  • [Tag Category] Disease Timeline
    • [Tag] Chronic
    • [Tag] Acute
  • [Tag Category] Anytype
    • [Tag] Sprint Review
  • [Tag Category] Company Y
    • [Tag] Sprint Review
  1. “tags as objects” and “objects as tags”. A Tag is just an Object Type that is also listed in the Library so that would allow you to define nice templates for Tags that you want to create, and it allows you to open any Tag as an Object to write a nice description what the tag mean in more detail (or other stuff you want to have in your Tag Object). When Inline-Sets are introduced, you can add an inline set in your Tag Object to list all Objects with that tag!
  2. A tag is added to an Object as Relation (either as its own Block similar to other Relations of Type Object, or inline using # like you can currently add inline @-mentions). When using either method to add a tag, a suggestion should be made to create a new tag from scratch of there is no exact match. Additionally, either individual tags, Objects that are marked as a tag, or tags within a taxonomy should be suggested. If we reuse the example taxonomy from above, typing “#cute” should suggst to create the tag “cute” from scratch, but also suggest to add “Acute” or “Disease Timeline/Acute” as a tag. Which tags to suggest and in what order might need some more thought, but I expect some kind of relevancy score system is needed.
  3. “tags as objects” and “objects as tags”. Any Object can be marked as a Tag for one or more Tag Category to add this Object as a member of that Category. You would need to pick a Category and a place in the tree of that Category to give it the right place in the tree. For example, if you select the Category your Object will be added as a child of that Category, but if you select any of the existing children in that Category it will be a child of that child (a grandchild of the Category if you will :wink: ). Hopefully this can be achieved by adding a bool option to Objects like “isTag” to allow it to show up when adding tags.
  4. This setup should allow Tags to be reordered/moved with a Category AND Tags can existing in multiple Categories. Sometimes you might need to have a specific tag: Bug (software) vs Bug (organism). Sometimes you might need a more general tag: “Sprint Review” can be a tag in Category “Anytype” as well as “Company Y” (if that is how you want to structure your tags). Deleting the Object would result in the same visual indication where the original name/title of the tag is still visible, but it is greyed out and has a “deleted” badge.
1 Like

Some extra notes

  • I think Wordpress (and possibly other software) calls this taxonomy (the idea of defining a hierarchy)

  • Also, I think there’s an app that allows defining such subtags by simply giving them a name including a “/”. For example, in a blank AT installation, creating the tag “Work/Projects” would create both tags and nest them accordingly

2 Likes

Yes, actually I did this a lot. But then there will be limitations in terms of the length of the name. I believe in many fields (not just medicine), the hierarchy could have a long tier.

For your #1, that is an interesting idea. But I think for many academic fields, that would mean I have create and remember multiple ways where I categorized them. For example, categorize by duration (chronic acute), severity, lesion location, idopathic/non-idiopathic, etc. I think I can’t remember them all.

But thanks for the different approaches!

I think the way you would add the tags makes this either hard to remember or easy :wink:

I’ve adjusted my text above to add some clarification about my idea about this.

Edit: see point 3 for this :slight_smile:

"tags as objects " and “objects as tags” makes a lot of sense intuitively, and allows for creative flexibility as you described. Great idea

3 Likes

not sure I fully understand your #3. The issue I have at this moment is that I have to choose each one of the tags within that hypernym (in your example, taxonomy) to make a set that comprises all related tags. Take nephrology for example, I might have more than 100 diseases under it. I can’t click 100 times. to make that set even with auto-suggest.

For you #1, another challenge would be that many diseases might not have the word (acute or chronic) in its name. By using this type of categorization, it seems to create difficulties in searching that particular disease in the future.

#4 probably solves my situation here.

PS. I am using object as tags.

To solve your issue with #3, Set View filters for tags should then maybe include an option to “include children/nested tags”?

For #1, my example might be bad. You might want to user different keywords and a different structure :wink:

Good to know: the tag system is being reworked, so whatever is written in this topic is a description of a desired, not the current state.

1 Like