Note: This is all in addition to the basic features of any sane tagging system; Pinboard or lobste.rs is a decent starting point.
Note 2: These desiderata are not necessarily all compatible; some may be contradictory.
- Tags may be harvested from the content itself, via special markup, or via an out-of-band input method
- Tags should be stored as metadata, separately from the content
- Any chunk of content should be taggable (post; comment; media asset)
- Optionally (to the server operator), users should be able to suggest tags
- User-suggested / crowdsourced tags should be stored separately from author-applied tags
- Whether crowdsourced and author-applied tags are displayed separately should be up to the operator of the { server | forum }
- Optionally (to the server operator), a set of pre-supplied suggested tags should exist
- Whether users are limited to the set of pre-supplied tags should be up to the operator of the { server | forum }
- Tag names should be case-insensitive but case-preserving
Tag Character Rules
- No commas or semicolons in tags
- No whitespace except common spaces
- More rules enforced by regular expression that is provided through the API to clients