ClassificationSystem DEV

From AniDB
Revision as of 12:11, 13 October 2012 by Der Idiot (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Current Situation

  • 2 partially opposing Systems for Anime (which work somewhat)
  • 1 System for Character (which works great)
  • 1 System for Creators (which is in a state of limbo)

Tags are pretty much unmoderated, containing tons of dupes and are to a large portion fueled by bias and judgement. But people seem to like them and usage is high.

Categories are used moderately to not at all. Moderation works ok-ish for these.

Character Tags are used as they should and are highly accepted.

Creator Tags are suffering from a lack of clear guidance on how to use them and what to tag. This is mainly a moderation issue and we need to get our act together on this matter.

Vision

1 System with 1 data pool to fuel the different entries for simpler maintenance and less user confusion

Requirements

  • Groups
  • Verification Layer
  • Weight (only applicable for some tags for anime and only 3 levels (some, important/highly visible, everywhere/main))
  • Group Restriction from certain Systems (no char tags on anime level -> for example death of anime tag tsundere)
  • to compensate for this character tags could be displayed based on character data
  • weight could be generated based on percentages based on the number of appearances of the characters in question or the role the characters play (main character -> high weight, appears in -> low weight); obviously this isn't 100% perfect, but it should be close enough to really matter
  • Synonyms
  • Lexicon
  • Resources
  • minor/major flagging (for filtered display purposes)
  • Spoiler classification on global and local scale (anime only?)
  • Limitation of certain groups to only allow a specific number of tags form it to be added (pick one or die)
  • Specification on tag level if a tag has weight or not (default no)

The self-healing powers of the tag system have failed imho and hence votes should be ditched in favor of weight to symbolize the importance.

There would be no predefined data pool like for categories, but unverified ones would not be displayed. Making it flexible, extensive and still hardened against trolling.

Data Input

Data input would be realized analog to character tag addition. To set weight one could allow the following format from the edit box:

<tagname> ***
<tagname> *
etc.
Alternatively or additionally there could be a massedit page build displaying the already set ones with radio buttons next to them. This should lessen the impact of dupes

Data Presentation

Creator and Character Tags should remain their current presentation forms, because it has proven to be successful.

For Anime we could have multiple forms. Currently we make use of tag clouds. This makes sense for when things can be weighted and displayed that way. Though there are lots of tags which are valid and just simple yes/no choices. Weighting and displaying these as cloud makes no sense. A group based listing might be more sensible here.

group 1:

tag 1 (<number of usage>) [<weight if applicable>]
tag 2 (<number of usage>) [<weight if applicable>]
tag 3 (<number of usage>) [<weight if applicable>]
tag 4 (<number of usage>) [<weight if applicable>]

group 2:

tag 5 (<number of usage>) [<weight if applicable>]

etc.

These could be displayed in multiple columns.

Character Tags on the anime page could be displayed like this as well.

Import Scenarios

Categories

  • turn abstract categories into groups
  • convert categories into tags
  • round the weight to full values (half star to 1, 1.5 to 2, 2.5 to 3)

Anime Tags

  • ditch existing groups and put them all as unknown
  • weight conversion (pick one):
  • use votes to build a weight
  • import as unknown
  • use votes to build a weight and flag them as imported so mods/user can manually approve of it
  • import to a default value
  • certain tags/groups might even not get a weight at all. there are various meta tags that can't really be weighted, but are valid to keep around like "uncensored version available"

Char tags

  • straight convert, no changes needed

Creator Tags

  • straight convert, no changes needed

Lexicon

  • straight merge with the related data (can be used to find a few dupes existing in both systems)

Database

Option A

tagtb

  • id
  • description
  • tooltip
  • picurl
  • isverified
  • isspoiler
  • isimportant
  • usage
  • redirectid

--in case similar tags with different names should share a lexicon entry (German and Germany for instance)

  • date
  • update
  • uid
  • edituid

tagnametb

  • id
  • name (1. main title 2. lexicon title, 3. Alias)
  • type
  • langid
  • isverified
  • date
  • update
  • uid
  • edituid

UNIQUE(type, langid)

taggrouptb

  • id
  • name
  • reltb
  • parentid
  • isvisible
  • tagid

--to allow chained adding we need to store the tag that is set on this level (let's say you want to set BDSM and at the same time Pornography which is the level above)

  • date
  • update
  • uid
  • edituid

taggroupreltb

  • id
  • tagid
  • gid
  • hasweight
  • usage
  • date
  • update
  • uid
  • edituid

UNIQUE(tagid, gid)

tagentityreltb

  • id
  • tagid
  • relid
  • reltb
  • weight
  • isspoiler
  • date
  • update
  • uid
  • edituid

UNIQUE(tagid, relid, reltb)

Option B

Display groups would be defined as "is abstract" and "is visible"

tagtb

  • id
  • description
  • tooltip
  • picurl
  • isverified
  • usage
  • redirectid

--in case similar tags with different names should share a lexicon entry (German and Germany for instance)

  • date
  • update
  • uid
  • edituid

tagnametb

  • id
  • name (1. main title 2. lexicon title, 3. Alias)
  • type
  • langid
  • isverified
  • date
  • update
  • uid
  • edituid

UNIQUE(type, langid)

tagentityreltb

  • id
  • tagid
  • relid
  • reltb
  • weight
  • isspoiler
  • date
  • update
  • uid
  • edituid

UNIQUE(tagid, relid, reltb)

tagreltb

  • id
  • tagid
  • parentid
  • reltb
  • usage
  • is_abstract
  • is_visible
  • has_weight
  • is_spoiler
  • is_important
  • is_porn_only
  • is_general_only
  • is_blocked
  • date
  • update
  • uid
  • edituid

UNIQUE(tagid, reltb)

Todo

  • fix the anime tags data pool
  • remove crap
  • merge dupes
  • change titles/purpose to something sane for certain tags

Open Questions

  • Are biased and subjective tags really needed (for anime)?
  • If yes do we need a different presentation? NO
  • Is there a need for certain tags in an approved group for a certain entity to not be available or the other way around
  • Are there tags that would be grouped differently for different entities?/do we need groups per entity? YES
  • How do we display the content on the anime page? Clouds? Listings? Mixed depending on type?