This answer on meta.stackexchange.com provides some general guidelines for what tags are for:
They are used for (weak) statistics. For example, you can't look at the currently 51,715 questions tagged c#
and say there are that many C# questions, because some C# questions will simply be tagged .net
and some question that are only very loosely C#-related (more about the .NET API, for example) will end up tagged that way. But you can compare the c#
tag to other language tags like php
or java
for relative popularity on Stack Overflow or track the growth of the c#
tag over time.
Tags connect experts with questions they will be able to answer. If you tag your SQL Server question 'mssql' instead of 'sql-server', odds are it won't get near as much attention and may not get a good answer or as good of an answer, because frequent users who use SQL Server have settled on the 'sql-server' tag. They know to watch the sql-server
tag for questions they can answer, but are not watching for mssql
. A good rule of thumb is that any tag used less than 10 times is almost certainly wrong, and any major language or product tag used less than 100 times is almost certainly wrong.
Tags are used in searching. You can search within a specific tag by enclosing it in square brackets, like this: [java] generics
. That would search for all posts tagged "java" with the word "generics" in them. Additionally, if you search on any one of the top 20 tags, it's automatically converted to a tag search.
Tags can award badges. Earn 100, 400 or 1000 upvotes in a specific tag, and you get a badge for that tag. Also, if you click on a tag there is a stats tab where you can view top users within that tag.
Tags are for sorting your question into specific, well-defined categories. Each tag should by itself refer to a specific category. If a tag only makes sense when used in combination with another tag (like '2005' with sql-server, 'visual' with 'studio', or '3.5' with .net), it's a bad tag.
I think the most important, for us, are the second, and the last.
In the example of the butterbeer tag, I feel it fails to meet either of those criteria.
The experts aren't "butterbeer" experts. They're most likely harry-potter experts, or possibly food or cooking experts, although that really is more the purview of the experts at cooking.se.
Nor do I consider "butterbeer" a specific, well-defined category. To me, a specific, well-defined category is something that could easily wind up with dozens of valid, on-topic questions. I find that hard to imagine with butterbeer... but I could be mistaken. However, I would rather wait and see if we wind up with far more questions than I anticipate, rather than adding a tag now in anticipation of a flood of butterbeer-related questions.
"Wait and see" seems generally to be the right approach to sub-tags. In some cases, it's obvious that a new tag is needed: if there aren't any tags that properly describe a question, or the only tags that describe it are incredibly vague (e.g. movies), then sure, go ahead and create (or request) a new tag.
But if the question already falls under a well-defined genre tag (such as harry-potter, star-trek, star-wars, etc.), then I'd be careful about adding new tags unless there's already a large volume of questions dealing with that specific sub-genre.
For related discussion, see this meta on character tags.