Description
Checklist
- I am using an up-to-date version.
- I have read the documentation.
- I have searched existing issues.
Description
Currently, we can add a "Creature" tag to a file that already has a "Dog(Creature)" tag, which presents us with a meta challenge where we must organize our organizational system. Do we:
A) Embrace redundancy and include every valid tag. This is annoying because you'll have to dig into every tag's hierarchy to find and add the parents. Some will be missed making a mess and there can be quite the list of tags on a single file.
B) Only include the lowest level child tag we need. Clean, but difficult because there's no good way to keep in your head every possible parent and child when choosing tags, so some will be missed making a mess.
C) Some (arbitrary?) mix of both. Deal with an inconsistent organizational system.
Solution
One suggestion would be to change parent tags act as required tags. Have them be auto added if they don't already exist on the file. Basically switching from inheritance to composition. A Dog comes with a Critter tag, instead of a Dog tag is a Critter tag. You could then remove the () from the tags.
Alternatives
Perhaps don't allow adding parent tags if a child tag is present, maybe by filtering parents already on the object on the list of available tags, and removing parents already on the object when a child is added.
A simpler alternative would be to not allow adding parents at all. If your file is a shape, it HAS to be a circle, square, or some new tag. Clean, but limiting, and there would need to be a solution to orphaning tags when adding children to them.
Note
All of these, especially the alternatives, would greatly benefit from a UI update like #431