Quite often Transact SQL questions get tagged as t-sql when the convention now is to tag as tsql.

However, no matter how hard you can try to educate users that the 'correct' tag is tsql, you're always going to get posters tagging with the wrong one (t-sql).

Clearly not everyone notices or understands the number next to the tag name in the autocomplete tag textbox. Also if this is a first time tag use (say after an editor has done a daily cleanup to re-tag these correctly), the system doesn't prompt the user to think about the tag they're about to use.

Perhaps it would be better to, for obvious cases such as t-sql and tsql or active-directory and activedirectory, implement a system of tag synonyms?

* Update: Implemented *

Go here for the official repository:

Official repository of tag synonyms

  • We might also be able to use this to help our tags with usability problems. meta.stackexchange.com/questions/27702/… – rlb.usa Mar 26 '10 at 21:04
  • 6
    The correct way to abbreviate "Transact-SQL" is to write "T-SQL" - you are never going to be able to educate users that in fact tsql is the correct tag. Given this I have to ask, who / what is wrong here? The user or the tag? – Justin May 2 '10 at 16:00
  • 1
    @Waffles OMG was this really just implemented? – Maxim Zaslavsky Jul 14 '10 at 5:56
  • @Maxim , yes ... its done ... – waffles Jul 14 '10 at 5:56
  • @waffles - nice one. – Kev Jul 14 '10 at 16:54

10 Answers 10


I believe that tags on SO should be relatively rigid.

In general, when tagging media like images, audio, or video that is not otherwise easily indexed, you want a very loose tagging structure that encourages adding as many and as varied tags as possible. This is because you lean heavily on the tags to index your content for search. It's why flickr and youtube let you tag things any way you want.

But when talking about text, which is already easily indexed, the tags themselves don't matter for indexing; you index the text directly. The tags don't matter for summarizing; that's the job of the title. Instead, tags are used strictly for categorization. Categorization is a different thing entirely, and it only works if everyone is sorting content into the same set of categories. You need a rigid set of categories for this happen. It's why gmail labels (which are really tags) are harder to just create willy-nilly.

StackOverflow content is definitely text-based, and that means we should be thinking of rigid tag categories rather than a loose tag cloud. I've advocated a few changes to the tagging system to help improve things:

  • done Minimum rep threshold required to create new tags (implemented at 100, I'd like to see it bumped to 250 so that an eager new user has to spend at least more than one day with the site before they can create new tags).
  • done A better explanation of why the question was rejected would be nice, too.
  • Add a warning whenever using a tag that appears on fewer than 10 other questions.
  • Restrict certain junk words like 'and', 'the', 'a', 'server'(on stackoverflow), 'visual', etc from use as tags entirely. Possibly even do this silently where possible- the tag just doesn't show after you post.
  • Some synonyms are already tracked and corrected automatically every hour. This should be done as questions are posted and edited instead. This way, users are more likely to notice the tag changed (often the entire question is resolved before the correction, so the user never knows about it) and we reduce time spent by community members correcting these tags that could be more profitably spent elsewhere. This is also important because by the time a correction is applied the question has fallen off the main page, and users that might have been interested in the question based on the corrected tag will never see it.
  • done A way for users to nominate tags for merging/elimination/add to synonyms list built into the user interface of the site (not just posting a question here) that allows high-rep users to comment and vote on the nominations via the 10K tools.
  • Re-name 'tags' to 'labels' ala GMail, to encourage users to think of them in terms of categorization.
  • 1
    Does the tag search automatically change 'tsql' to 't-sql' ? May be an idea to publish these synonyms so that editors are aware and don't spend time on them? – Kev Jul 6 '09 at 14:50
  • 1
    The question is retagged, so the old tag is removed completely and the new one added. Only certain known synonyms are tracked, and there's no comprehensive list available to users of which tags those are. – Joel Coehoorn Jul 6 '09 at 14:54
  • 1
    The creation of a please-retag tag would also be quite nice – Steve Schnepp Jul 6 '09 at 15:34
  • 1
    +1 Nice idea, this would help in a lot of different ways! – Alex Angas Jul 6 '09 at 16:05
  • There are problems with that as well, mainly that by the time it's tagged correctly it's missed the front page and rss feeds, and so won't be seen by as many qualified answerers. – Joel Coehoorn Jul 6 '09 at 16:09
  • 1
    The tag that Steve Schnepp suggests is actually called [retag-request] – Brad Gilbert Jul 29 '09 at 4:30
  • I strongly agree that the synonym list be published, and/or an easy method for nominating new entries. – Ether Aug 16 '09 at 0:52
  • 4
    +1 for restricting junk words; there are currently 1000+ questions tagged "file" on SO. – wcoenen Jan 11 '10 at 15:14
  • Another need for this is IBM's marketing department's MPD with regard to the AS/400, which has been branded successive AS/400, iSeries, SystemI and i5, and whose O/S may be either OS/400 or i5/OS. They have changed brands for the AS/400 more often than Sun changed Java version formats. – Lawrence Dol Mar 10 '10 at 7:31
  • Good stuff. For the warning presented if the tag has <10 instances, I suggest 100 would be a better number, it would greatly reduce the amount of poorly tagged questions. Also, some way of discouraging users from entering tags as though they were 5-words sentences would be good. – skaffman Mar 25 '10 at 20:15
  • Voting on the tag synonyms/blacklist would be a really nice stepping stone along the way to 10k. Maybe it could be done at 6k rep? – Earlz Apr 29 '10 at 22:10
  • "Restrict certain junk words .. from use as tags entirely" this is done. The current list is |or|and|the|a| – Jeff Atwood Aug 1 '10 at 18:47

I'd like to see some anti-suggestions in the tags UI as well. For instance, any time someone enters "mssql", I'd like to see a suggestion that they use "sql-server" instead.

In fact, if the UI for this is nice enough, it might also suggest they add one of the version-specific tags as well, e.g., "sql-server-2008".

  • I would like to see a prompt that suggests "sql-server" whenever a user selects "sql" unless they really are asking a DBMS-agnostic, ANSI standard question. – APC May 2 '10 at 15:15

We have a basic system for tag synonyms in place.

You can view all the synonyms for each site at http://##site_url##/tags/synonyms for example here is meta's list.

It shows a dump of all the synonyms in the system together with the name of the person who created it and a hit count. The hit count is roughly the number of times the synonym was invoked.

Additionally in the tag info page you can now vote and propose tag synonyms.

For example if you try to tag something as waffle on meta, transparently the tags will change to waffles. There is no end user UI, it just happens silently in the background.

The concept is only to have noncontroversial tag synonyms so the end user will not end up getting to upset by the automatic change.

If you think we need any particular synonyms on a site, post a question to Meta so the collective can discuss and vote.

  • 2
    Woooooo! Now let's get those lists populated! meta.stackexchange.com/questions/50088/… – Mark Henderson Jul 14 '10 at 5:53
  • Thank you so much!!! :) – Maxim Zaslavsky Jul 14 '10 at 5:56
  • Will the tags page somehow link to the synonyms page? – Maxim Zaslavsky Jul 14 '10 at 5:57
  • 1
    @Maxim, not initially but at some point we are considering a per tag wiki page synonyms would fit in nicely there ... – waffles Jul 14 '10 at 6:02
  • All the completed retag requests would be candidates for the synonym list... – sth Jul 14 '10 at 12:40
  • Is that a moderator only feature? – Lance Roberts Jul 14 '10 at 19:48
  • @Lance, yerp moderator only – waffles Jul 14 '10 at 22:15
  • The plan is to have some voting around this in the near future – waffles Jul 15 '10 at 4:16

The way I envision this working would be mostly a back-end/higher-rep-user change, where there is a master tag and a set of synonym tags associated with the master tag.

  • Only master tags would be shown in the public system

  • Any time a synonym tag is entered in the tag text box, the system automatically replaces it with the master tag on submit (if anything got auto-replaced, let the user audit the changes before submitting again)

  • In tag searches, if a synonym is entered, the autosuggestion/search should suggest/display the master tag instead. All of the synonyms would have the same weight (i.e., question count) as the master tag, so partial word matching would work.

  • It would be nice to make groups of ordered tags suggest tags, i.e., if the user enters "sql server" into the tags box, the autosuggest should pop up with [sql-server]. The user would not be required to comply with the suggestion, because there are cases where the suggestion does not apply. A good tag blacklist would help out with this problem.

  • The Taxonomist badge would be only be awarded for creating a master tag that uses 50 or more questions in the master/synonyms set. I.e., you can't get the badge by creating a bunch of synonyms, but if you create a master tag and get a bunch of synonyms associated with that master tag, then you get the badge.

  • For putting synonyms into the system:

    • All tags right now would start out as master tags

    • Existing master tags would be converted to synonym tags by a vote, which would be a new privilege at 5k. Diamond mods would have the ability to undo this conversion, and to arbitrarily reorganize the master/synonym relationships.

    • The conversion vote would be similar to the vote-to-close system, except including negative votes: if the net score reaches +5 (threshold to be discussed), the conversion proceeds. If the net score reaches -5, the synonym proposal is removed. Each user would only be able to vote on a master/synonym pair proposal once (either + or -), although I think it's reasonable to be able to propose the same master/synonym pair more than once.

    • The UI would take the form of a page similar to the 10k tools pages. There would be a hierarchical list of proposed synonyms for a master tag -- if 3 synonyms were proposed for 1 master tag, there would be one easy spot to vote on all the synonym proposals. The list would be sorted by total tag popularity which would give more attention to the most important/popular tags.

    • A proposed synonym tag could be either an existing master tag, or plain text input. We want the ability to put synonyms in the system even if there aren't any questions associated with them yet (i.e., preventative synonyms). A master tag involved in a proposal would always have to exist.

    • There would be two ways to propose a synonym: (a) add a synonym to the master tag listed on the tools page, or (b) start a new master/synonym proposal by choosing both tags. The question count would be shown with each proposed synonym tag to show usage (and whether the proposed synonym is preventative).

    • I don't imagine this scenario happening often, but it could happen: if a bunch of questions are retagged away from a master tag that's involved in a proposal such that the master tag now has 0 questions associated with it, the system should lock the proposal system/voting for that master tag, and flag for mod attention (where they would be able to reorganize the master/synonym relationship such that the master tag will have existing questions).

  • 1
    This is a well structured idea. It resembles successful tag synonym systems, but also expands on it with things like how to handle preventative synonyms and methods for proposing them, and especially that tag combos are not forced but instead suggested (still doesn't help the situations where people ignore it, but it will have an impact that is better than a forced implementation). – Grace Note May 14 '10 at 14:39
  • 1
    Personally I'm all for taking away the invalid taxonimist badges, but I think this should be raised separately, we already have a ton of invalid ones in the system, and Jeff always said that we don't take away badges. – waffles Jul 12 '10 at 3:11
  • 1
    @waffles: I'm neither for nor against taking away taxonomist badges (that is a management decision which it seems Jeff already made). All I've said here is how the system would be modified to award the badge in the future. – Jon Seigel Jul 12 '10 at 3:19
  • 1
    status completed :) – waffles Jul 22 '10 at 6:43
  • @waffles: +amillionbillion – Jon Seigel Jul 22 '10 at 17:08

The tag suggestions were improved recently to ignore hyphens so typing t-s still suggests tsql. Obviously some people still aren't spotting the more frequently used tags, but hopefully it's not as bad as it was. Maybe the suggestions should more prominently highlight tags that only differ in hyphens if they are more widely used than the one the user is attempting to insert (or just silently change them when it's submitted).

  • 1
    I think anywhere you have tags that only differ by hyphens, they should be auto-nominated as candidates for elimination (there are likely some legitimate instances). – Joel Coehoorn Jul 6 '09 at 17:00

I agree with you. On serverfault there is a lot of double too.
There is also others things like tag "windowsvista" and "windowsvista64" while, from my point of view, "windowsvista64" could be changed by "windowsvista" and "64bit" tags.
Another things is tags that can be use for more than 1 things. Like "screen", it can be GNU Screen or screen like a monitor. For this case I think that the tag "screen" should be impossible to use because it has more than 1 meaning.

  • it's "vista", not "vita" (though perhaps it would have been a better OS with that name....) – Jason S Aug 19 '09 at 1:37

This is how I humbly imagine tag synonyms working:

if 'visualisation' and 'visualization' are defined as synonyms, then typing 'visualis' into the tag field should list 'visualization' as a potential tag, even though it doesn't contain that letter sequence. You can then eliminate the tag 'visualisation' entirely (migrating all existing entries to the z version).

The t-sql/tsql example has already been covered by simply ignoring the hyphens (nice work there!), but this suggestion does cover the 'mssql' vs. 'sql-server' example given elsewhere in the answers. It can even work in instances where both tags could potentially be correct, but suggesting the other is still a good idea. For example, sql people might tell us that 'mssql' should, indeed, be a valid tag, but 'sql-server' should still be suggested when a user types 'mssql' (or part thereof) into the tag field. If that were the case, typing 'sql-server' should also suggest 'mssql'; this could be implemented by having the reverse entry (from sql-server to mssql) in the synonyms database table as well as the mssql to sql-server version.

  • Thanks for the edit Æther - can you tell I'm not familiar with the US spelling? – whybird Jan 4 '10 at 1:57

Does anyone have any empirical data regarding the average time to retagging on obvious examples like "t-sql" to "tsql"?

It's always better to look at the data before attempting to correct a perceived problem (which may not actually be one). If they're getting retagged quickly, the system is working fine, in my book.


Perhaps there should be a minimum reputation level required to create a new tag (or use a tag that currently has 0 uses -- i.e. already created but has been merged into another tag)?

There's no reason why a questioner should have to fully tag the question himself -- someone with higher rep will soon see it and tag it appropriately if not already done so.

A pleasant side-effect is that the Taxonomist badge is harder to game -- at least, it staves off the gaming attempt until the user is more seasoned and hopefully wiser.

EDIT: I see this was also suggested here.

  • of course, this has been implemented, and it seems this is one rep value that naturally needs to inflate over time if history is our guide. – Jeff Atwood Jul 14 '10 at 6:43

The tagging convention (according to SO popularity) is 1230 in favor of tsql and 2 in favor of t-sql. I have said this in numerous other tagging questions that I believe the convention should be the most popular format (in this case it is obviously tsql).

Tag synonyms have also been something brought up in the past but I have never really seen anything that came across as a sensible way of actually making it work effectively.

  • 1
    I totally agree, but you're going to have the life of King Canute keeping on top of the endless trickle of t-sql's that appear. Hence a system that supports synonyms. Allow user to tag this way, but when searches on tags happen, if someone searches for t-sql they get tsql as well because they mean the same thing. – Kev Jul 6 '09 at 16:08
  • @kev: Or we could just keep the data correct in the first place. – GEOCHET Jul 6 '09 at 18:04

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .