I have noticed this even here on Stack Overflow. Where there maybe many similar tags eg. php vs php4 vs php5, or because of spaces eg. zendframework vs zend-framework.

So I hope that in future when I do a tagging system, I want to avoid this. Some ideas I have are:

  • Having a message telling users to use say dashes (-) or underscores (_) for spaces eg. zend-framework (which is better btw, I noticed _ is usually used). But how can I validate this, I can’t I think?

  • About the similar tags ... I dunno if having a self join of the tags table (id, related[FK], tag) to show a hierarchy will be good, like php4 & php5 is related to php.

  • Actually, I don't think this belongs on meta. My bad. You might want to emphasize that you are asking about tagging systems in general in your OP, as it was hard for me to tell. – ベレアー アダム Sep 26 '09 at 13:46
  • What's wrong with autosuggest to eliminate a lot of these? – RichardOD Sep 26 '09 at 14:07
  • 1
    Every week I change a couple of 'algorthms' tags to 'algorithm'. People ignore the automatically provided suggestion. – Pete Kirkham Sep 26 '09 at 14:30

For the first issue, you could do a search and replace for all tags before they are entered into the DB. So replace _ with - or something along those lines.

For the hierarchy you could either do a parent child setup or have a list of similar tags when a user is entering some certain tag. That can get complex pretty fast if it's not properly done though. And you should never count on your users to do it right.

| improve this answer | |
  • That is where moderators/editors would come in handy. The volume of tags is not so high as to make an editorial review impossible (at least on SO) - if you have too many tags for couple of hundred people to editorialize, you have too many tags to be useful in the first place. – DVK Sep 26 '09 at 13:49

I'm implementing a tagging system myself so I've given this a little thought.

The way I'm approaching it involves a little bit of code and a little bit of instruction:

1.) I'll implement an AJAX-driven text box which searches for similar tags as you type (very similar to what you see in Stackoverflow).

2.) I'll add some instructions next to the tagging fields that say something like, "Tag wisely: It's best to tag with common terms as well as specific (less common) terms that best define your entry. For example, rather than just using the tag 'gaussian blur', use the tags 'blur' and 'gaussian blur'."

3.) I'll also be moderating these entries so the remaining tags that come through poorly formatted should be something I can handle.

I think of steps 1 and 2 as simple measures that should work pretty well most of the time. But at the end it'll be my job to ensure the tagging is done well. Of course, I'll only be dealing with hundreds of entries, not 300,000+ like StackOverflow. So I think it'll be manageable for me.

| improve this answer | |

You must log in to answer this question.

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