What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 131 Stack Exchange communities.

There have been other proposals for this, but please allow me to present this in a new, simplified approach.

Premise

We can mainly distinguish 4 types of tags on SO:

With the first 3 items it's pretty clear what this does.

The problem is [technology][version]. Tagging nomenclature becomes vague, askers will not know what to use (php, php5, or both?). Experts in these tags will register to several RSS feeds if they want to follow them, etc. People looking for answers will not find them due to mislabeling, and will post duplicate questions.

Proposal

To allow a tag to be either a parent or a child (not both) of another tag, and thus to have the means to organise [technology][version] tags as children of their respective [technology] parent.

In that way, tagging a question with either parent or child (say [php] or [php5], or both) will attract the attention of the proper experts. When looking up [php5], only the questions with the [php5] tag would show. When looking up [php], all its children would be included ([php4], [php5], etc.)

I propose nothing else. I'm not touching features or concepts, only versioning.

Because of the 2 level restriction, looking up tags would simply imply a modified query, adding a single OR statement:

...
WHERE tag_id = %tagSelected%
OR parenttag_id = %tagSelected%

In this way, if the tag is already a parent, the OR statement will return all children. If the tag is a child, the OR statement will return nothing.

Closing argument

In this way, we can re-assemble several categories into meaningful ensembles again, and stop much confusion, without having to retrace so many questions to retag them. Searching will give fuller results, and tagging will be more effective.

Supplemental argument: Parent tags can be sponsored for a higher price. $$$!!!

share|improve this question
    
related: Implicit tagging hierarchy and its related posts. –  Tobias Kienzler Aug 26 '10 at 14:50
1  
Thanks Tobias. Please note that I'm staying as far away as I can from an actual hierarchy as possible, as I know that a full tree is a heavy thing to handle. –  MPelletier Aug 26 '10 at 14:53
3  
Tag hierarchies have been proposed before and turned down. I hope they read your post carefully, it really is a great idea. –  Lance Roberts Aug 26 '10 at 15:04

2 Answers 2

Experts in these tags will register to several RSS feeds if they want to follow them, etc

No, they just need to use wildcards.

The server side tag wildcard is ~ and the client-side tag wildcard is *

Also, in the case of PHP, is it really that onerous to follow, for example, PHP, PHP4, and PHP5? For any given technology, how many versions are actually relevant at any given time? It just can't be that many in practice.

share|improve this answer
    
Well, look at my list, some have several. –  MPelletier Aug 27 '10 at 16:28
3  
Well, the wild card breaks in a few cases. java* will highlight questions tagged javascript as well. –  jjnguy Aug 27 '10 at 16:34
    
Although, I feel that a tagging heiarchy is more work than it's worth. –  jjnguy Aug 27 '10 at 16:35
    
@jinguy: It is NOT a hiearchy! Only parent or child! It's much smaller than a full fledged hierarchy, much more manageable. –  MPelletier Aug 27 '10 at 16:39
    
@Jeff Atwood: Also, stat pages will not work with wild cards. You don't get the full "family" stats, just the one stat. With version-tags, we could. –  MPelletier Aug 27 '10 at 16:42
    
@MPell, I understand that this is different than a hierarchy. I still don't see a huge value gained by implementing it. –  jjnguy Aug 27 '10 at 17:27

I'm listing here some tags that would do well for this scheme. Please add your own here:

  • c# : c#2.0 c#3.0 c#3.5 c#4.0 c#5.0
  • java : java-1.3 java1.4 java1.5 java1.6 java-5 java-6 java-7
  • php : php4 php5 php5.3 php52 php6
  • .net : .net-1.0 .net-1.1 .net-2.0 .net-3.0 .net-3.5 .net-3.5-sp1 .net-4.0 .net-4.0-beta-2 .net-4.0-rc1 .net-5.0
  • asp.net : asp.net-1.1 asp.net-2.0 asp.net-3.5 asp.net-3.5sp1 asp.net-4.0
  • visual-studio: visual-studio-2003 visual-studio-2005 visual-studio-2005-express visual-studio-2008 visual-studio-2010
  • sqlite : sqlite2 sqlite3
  • jquery : jquery-1.3 jquery-1.3.2 jquery1.4 jquery-1.4.2
  • iphone : iphone4
  • iphone-sdk : iphone-sdk-2 iphone-sdk-2.2.1 iphone-sdk-3 iphone-sdk-3.0 iphone-sdk-3.1 iphone-sdk-3.1.2 iphone-sdk-3.1.3 iphone-sdk3.2 iphone-sdk-3.2 iphone-sdk-4 iphone-sdk-4.0 iphone-sdk-4.0.1
  • c++builder : c++builder-5 c++builder-6 c++builder-2005 c++builder-2007
  • visual-c++ : visual-c++-2003 visual-c++-2005 visual-c++-2008 visual-c++-2008-express visual-c++-2010 visual-c++-2010-express visual-c++-6
  • python : python2 python-2 python-2.1 python-2.4 python-2.5 python-2.5 python-2.6 python-2.7 python-2.x python3 python-3 python-3.1 python-3.x
  • mysql : mysql4 mysql5 mysql-5.0
  • html : html4 html5
  • sql-server : sql-server2000 sql-server-2000 sql-server2005 sql-server-2005 sql-server-2005-express sql-server2008 sql-server-2008 sql-server-2008-express sql-server-2008-r2 sql-server-7
  • ruby-on-rails : ruby-on-rails3 ruby-on-rails-3 ruby-on-rails3beta ruby-on-rails-3-beta
  • objective-c : objective-c-2 objective-c-2.0
  • css : css2 css3
  • android : android-1.6 android-2.0 android-2.2
  • wpf : wpf-3.5 wpf-4
  • asp.net-mvc : asp.net-mvc2 asp.net-mvc-2 asp.net-mvc-2-beta asp.net-mvc-2-rc2(?) asp.net-mvc-3 asp.net-mvc-beta1
  • vb : vb5 vb6
  • vb.net : vb.net-2010 (subtle distinction here)
  • django : django-1.1 django-1.2 django-1.2.1
  • flex : flex2 flex3 flex-3 flex4 flex-4
  • flash : flash-8 flash-10 flash10 adobe-flash-cs3 flash-cs3 flash-cs4 flash-cs5
  • silverlight : silverlight-2.0 silverlight-2-rc0 silverlight-3.0 silverlight-4.0
  • actionscript : actionscript-1 actionscript-2 actionscript-3
  • eclipse : eclipse-3.2 eclipse-3.3 eclipse-3.4 eclipse-3.5 eclipse-3.5.1 eclipse-3.6
  • oracle : oracle10g oracle10g-express oracle11g oracle8i oracle9i
  • delphi : delphi-2005 delphi-2006 delphi-2007 delphi-2009 delphi-2010 delphi-2011 delphi-2012 delphi-4 delphi-5 delphi-6 delphi-7
  • delphi-prism : delphi-prism-2010
  • sharepoint : sharepoint2003 sharepoint2007 sharepoint-2007 sharepoint2010 sharepoint-2010
  • nhibernate : nhibernate-3
  • apache : apache2 apache2.2
  • xcode : xcode3.2 xcode3.2.2 xcode3.2.3 xcode4
  • excel : excel-2002 excel-2003 excel-2007 excel-2010 excel-97
  • internet-explorer : internet-explorer6 internet-explorer-6 internet-explorer7 internet-explorer-7 internet-explorer8 internet-explorer-8 internet-explorer9 internet-explorer-9 ie6 ie7 ie8
  • hibernate : hibernate3
  • http : http-1.0 http1.1 http-1.1 http2
  • entity-framework : entity-framework4 entity-framework-4
  • iis : iis5 iis6 iis7 iis7.5 iis-7.5
  • qt : qt3 qt4 qt4.6
  • ms-access : ms-access-2003 ms-access-2007 ms-access-2010
  • firefox : firefox2 firefox3 firefox-3 firefox3.5 firefox3.5.1 firefox3.6

And I guess synonyms would embark too, either as is or explicitly.

Items which should, for matters of practicality, be kept out if this scheme despite some versioning:

  • windows (but not say variations of windows-xp)
  • osx (maybe?)
share|improve this answer

You must log in to answer this question.

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