Topic: Per-character tagging system?

Posted under General

(This is not about discussing TWYS' validity, nor it's my intention to reignite that kind of conversation. Just my proposal of an idea I had a long time ago, which I was reminded of due to topic #61584 and gender tags. I'm throwing it out there in case it could be a way to improve the site in general, that's all.)

Would it be possible for the tag system to work (at least internally) so that tags are associated to specific characters in an artwork?

Let me explain how that system could work:

Tagging posts:

On post upload (or when editing tags), one could add general tags for the post, and then there'd be the option to "Add a character", which would add another textbox in which you can add tags related to one of the artowrk's characters, including its name, which could work as that tags' title.

To illustrate the concept a bit clearer, there'd be a textbox titled "General tags" where things like "size_difference", kinks, background elements and meta tags like "comic", "dialogue" and such could go. Then a textbox could be added whose title could be written as "bowser" (only character tags would be valid), then have the tags specific to the character written in that textbox. Then another textbox could be added with "princess_peach" at its title, and so on and so forth.

Search queries:

With this system implemented, the option could be added such that searching for, let's say "{tiger blue_nose}" would give only posts with blue-nosed tigers in it as a result, while ignoring posts with tiger characters and blue-nosed characters but not both on the same.
At the same time, searching for "solo" would search for posts with only one group of character tags.

Group aliases:

As an addition to this, some tags could work as a group of tags for a single character. Something like "felid_humanoid" could work as the equivalent of searching for "{felid humanoid}", displaying post with humanoid characters with felid features without the need for that specific of a tag.
This next idea is just wishful thinking, but, as a result of this system, gender tags could exist only as lore tags. As an oversimplification:

Alias Equivalent
male {penis -breasts}
gynomorph {penis breasts}
ambiguous_gender {-featureless_crotch -breasts}

"male" could be an alias for "{penis -breasts}" while "gynomorph" would be an alias for "{penis breasts}", "ambiguous_gender" for "{-penis -vulva -breasts}". This way, users can keep using those terms while avoiding possible misgendering.

My arguments in favor of this system:
  • I think it could be useful for searching for specific character descriptions and such. (In my specific case, more than once I've wanted to find the author of a certain artwork, and image searches have not helped me in that regard. In e621, I've tried to search for, let's say, things like "skunk red_eyes purple_fur" just to find artwork with these tags, but not all applying to the same character.)
  • Moreover, I'm certain people would like to be able to search for specific things like, for example, characters with certain attributes in certain outfits and in certain poses/situations.
  • It would too make tags like male_penetrated/female_penetrated/etc and those kind of endless relational tags unnecessary, since "{male penetrated}" would work as fine, unbloating the increasing list of tags (not sure if that's an issue to begin with, though).
  • Also, I think this would, at the same time, be somewhat of a fix for the whole misgendering issue (I'm not going to assume since I'm not trans myself) by tagging a character with, for example, "female_(lore) penis".

I am aware that the possibility that this might not be possible to implement to begin with is there.
I am also aware that this would imply revisiting EVERY post and change the way it's tagged.
I'm not expecting for this to be implemented at all. It sounds like a gargantuan undertaking. At least I hope this feedback brings to to the table some ideas that could inspire a change for the better.

Edit: Fixed table

Donovan DMC

Former Staff

Putting aside actually implementing this (how to store it, how to search with it, how to tag it) and reeducating the entire userbase on its usage, we have 6 million posts and no one has the time to apply some new system to all of those
We already barely get any action if a tagging project has more than 10,000 posts

Without actual use a system like this is just needlessly complicated and serves no benefit
This has got to be the dozenth time something like this has been suggested, and each and every time it has been and will continue to be met with "not worth it"

Also beyond just teaching people how to search for it, the amount of people that would actually use it is likely minuscule and would further nullify any benefits

And more on storing this, how the hell do you even begin to index a system like this without wasting gigabytes of storage based on queries that will never be made

This would be a gargantuan task indeed, for both the developers and the users using the site.
Your idea is very similar to that of "nested tags" (see topic #56958 & topic #46551) and suffers from the same drawbacks.

You see, for each feature request, you would need a dedicated site developer to write the code and implement it into the existing system without breaking everything.
Our site only has a handful of developers who are all working on a voluntarily basis, all without getting paid. You can even see the all of the pending features and bug fixes on the Github page for the site.
Something this complex would most likely require a complete rework on the current tagging system and there is simply not enough people dedicated enough to work on it.

Even if this was fully implemented without any technical problems, it would also require full cooperation of the userbase.
Something you can see now is how people don't even tag properly or even tagging in detail, settling for only the bare minimum or basic tags.
IIRC only around maybe <100 people are doing the most of the tagging around here as compared to the ~2.5 million total users here.

Donovan DMC

Former Staff

thegreatwolfgang said:
IIRC only around maybe <100 people are doing the most of the tagging around here as compared to the ~2.5 million total users here.

donovan_dmc said:

  • less than 10% of the site has ever edited a post (forum #463461)
  • the top 10 users are responsible for 27.5% of all post changes (forum #463044)
  • the next 40 users make up 17.2% (forum #463044)
  • 50 people are responsible for almost 50% of all edits (44.7%)

donovan_dmc said:
200,286 ((626*320)-34) users with >=1 post edit, which is about 8.5% of all users

An overhaul like this in reality would be relying on something like 20 people to retag every post in existence

An overhaul like this in reality would be relying on something like 20 people to retag every post in existence

I would kindly partially disagree. We already have something like this with the suggested tag system, that in and of itself suggests tags for characters with tags that are common among solo works. So implementing such a system could be far more of a matter of automated collation than manual tagging.

Edit to add quote for clarity

Updated

FWIW I think nested tags/character-based tags/whatever you want to call it isn't inherently a bad idea. It's just that for all of the reasons listed above by other users it wouldn't work for e621 specifically. The most practical way to implement it would probably be to start a new booru.

Pretty reasonable, as far as character-based tagging proposals go (if I got it right).

So by default a post would just have a main list of tags, the way it is now. But you could add another, separate list, where you'd put all tags associated with a character. That list would also be appended to the main list.
That way, a normal search would be only looking through the main list of each post (the way it is now), while additional lists would be indexed only when character-based search syntax is used.
This wouldn't require going back and editing every post. But if someone was to attempt that, a UI that allows to quickly add/remove tags from additional lists would be necessary.
The title of additional list doesn't have to be complicated - leave it title-less in the database, and display character name(s) that are found in the list to the user, on user side.
Or character names could simply be moved above other tags, kind of like it already works now.
Creation of additional lists could be blocked if post only has solo as character count tag.

Now, who's going to implement all of that?

Updated

Aacafah

Moderator

Oh, boy, another one for the list on my profile of every time this has been asked!

...jokes aside, I keep that list around because it's a good question, so I understand why it keeps getting asked. Here's my prior tl;dr of my detailed breakdown of implementing character-based tagging:

The main problems I foresee [are] in

  • Getting people to use it
  • Updating the ~5 million preexisting posts
  • Misc. Unforeseen Challenges & Accumulated Minor Road Bumps
  • Finding the time to do this

Additionally, storing this info in a separate field & backfilling the relevant tags to the main tag_string field, while the kind of creative problem solving us developers need to use (& something I love to see), has multiple problems that make it at best on par with the solution I proposed prior:

  • Needlessly stores duplicate data
  • Necessitates extra processing (& possibly a whole new system) to facilitate
  • I believe the current implementation of note searching may carry a greater performance impact than searching the tag string (as it needs to query a different record instead of the already loaded post record, although this may be faster in the cases where there are no notes at all); this would both:
    • Degrade the user experience
    • Increase load on the server

There may be some benefits to this approach I'm not considering, but it comes with some major concessions & still doesn't solve the biggest problems this feature would create.

You can see the full breakdown here.

I added grouped searches to the site, so I'm all for radical change, but this is probably untenable from what I can tell. ...plus I'm not psyched to rewrite it so you can use this across search groups.

aacafah said:
Oh, boy, another one for the list on my profile of every time this has been asked!

...jokes aside, I keep that list around because it's a good question, so I understand why it keeps getting asked. Here's my prior tl;dr of my detailed breakdown of implementing character-based tagging:
You can see the full breakdown here.

I added grouped searches to the site, so I'm all for radical change, but this is probably untenable from what I can tell. ...plus I'm not psyched to rewrite it so you can use this across search groups.

Yeah, it is completely reasonable.
Not surprised to see more people have come across this idea before. With so many forum posts I didn't know how to even search for that, since I'm not that knowledgeable on terminology.
And knowing staff works purely voluntarily explains how this is unfeasible to begin with.
Such a shame.
Thanks for the links though! At least I can get a bit more educated on the matter.

I also appreciate this list. I hadn't considered the problems with eg. TF sequences, which maybe necessitates compound indices: (character, time). I guess there are even-more-degenerate cases involving clones etc, where (character, instance, time) indices would be necessary for relatively simple character-based queries to deal properly with the post. Probably in some of those cases it wouldn't even be possible to figure out a description of how to tag them reliably.

I'm still baffled every time I'm reminded that this site stores all the tags for a post in one field; it's sort of like it's running a very peculiar type of forum. I feel like updating the index every time that's rewritten must be relatively slow, though TBF you probably get a lot more searches than tag updates.

I actually have a very similar idea for a personal database I want to work on. I never thought it would ever be viable on e621, but being the only user of my smaller, curated gallery would solve many issues. I may not agree with with many tagging decisions, but e621's daily database exports have been very helpful.

I already have several other tasks taking priority, so I haven't worked on much yet.

aacafah said:
I added grouped searches to the site, so I'm all for radical change, but this is probably untenable from what I can tell. ...plus I'm not psyched to rewrite it so you can use this across search groups.

aacafah said:
Hell, we have grouped tag searches now; you could do ~( dragon female -male ) ~( dragon female solo ) , and get specific with other search terms, etc. It's a worthy trade-off to have many consistent general tags over fewer specific tags; the only way to have both is to have half the community racing the other half to clean up their mess before they make another one.

I'm glad this thread was created because this is the first I'm learning of this. Thanks, Aacafah.

I get how that would be useful if implemented correctly but dread how that would work out on some sort of group-shot where characters are not neatly lined up nor named, and there's like 20 of them.

fuzzygears said:
I get how that would be useful if implemented correctly but dread how that would work out on some sort of group-shot where characters are not neatly lined up nor named, and there's like 20 of them.

Unless I'm missing something, is that not addressed via tag groups?

randomanon said:
With this system implemented, the option could be added such that searching for, let's say "{tiger blue_nose}" would give only posts with blue-nosed tigers in it as a result, while ignoring posts with tiger characters and blue-nosed characters but not both on the same.
At the same time, searching for "solo" would search for posts with only one group of character tags.

Even if there were 20 unnamed characters, each would get their own set of tags within a pair of curly braces ( {} ). The only issue I can see would be if the work contained a bunch of identical twins, all wearing the same thing, performing the same acts, in very similar looking locations, etc.

fuzzygears said:
I get how that would be useful if implemented correctly but dread how that would work out on some sort of group-shot where characters are not neatly lined up nor named, and there's like 20 of them.

You need a temporary buffer for collaboration in that kind of scenario IMO. Just tags that you are pretty sure apply but you don't have the time to figure out what groups they all go in.

Maybe that would encourage people to be lazy + not finish the grouping? But OTOH 'thinking up the tags' and 'grouping them' are both easy tasks compared to the conjunction 'thinking up the tags at the same time as grouping them correctly'.

Aacafah

Moderator

savageorange said:
Maybe that would encourage people to be lazy + not finish the grouping? But OTOH 'thinking up the tags' and 'grouping them' are both easy tasks compared to the conjunction 'thinking up the tags at the same time as grouping them correctly'.

That's probably the biggest catch 22 of this whole thing; it won't be useful unless we give it a hard shove on the userbase to tag with it, but that'll lead to even fewer people tagging, & likely tagging even worse on average from taking longer on fewer posts.

randomanon said:
Thanks for the links though! At least I can get a bit more educated on the matter.

hsauq said:
I'm glad this thread was created because this is the first I'm learning of this. Thanks, Aacafah.

Glad it was helpful to you guys!

Btw, if grouped searches or something else in the post search gives you trouble, I've been working on overhauling the search help cheatsheet to document everything it can do, so it might be worth seeing if that's changed since you last saw it; I know that sorting has had improvements as well.