tagging
Message-Id: https://www.5snb.club/w/tagging/
Linked-From: wiki.
context: boorus (like e621)
instead of tagging being just a plain list (or a namespaced list) of strings, make tags into their own objects, and also make images contain entities that can be referenced
entities are local to a single image. an entity may have tags that link entities in different images together, but an entity is just a way to group tags
an entity is usually a character, but in general its “anything that you want to point to” in a tag
tags act like like functions or operators
for example, you can have a tag \1 hugging \2
, which takes 2 entities as arguments, in a specific order
This lets you run queries of the form “xenia hugging”, “xenia hugged” (if the inverse form is entered), and “xenia hugging tux” as well as just “hugging”
maybe have a *
that all of this desugars to
so * hugging xenia
is the long form of xenia hugged
(how to handle this in the search UI is an open question)
image tags
some tags just apply to the image as a whole
such as artist, or rating
tags
tags have a given UUID and that is what’s actually stored against images
this means that you can freely rename tags without anything breaking
tags have a freetext description field, used for storing background info, and a name.