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

Tag hierarchies have been requested many times and denied as often. There is one reason for not implementing them other than "Jeff does not want": hierarchies are usually a bad model for organising tags. Tags exist because category hierarchies failed!

Nevertheless, a completely flat tag space has its disadvantages which have been laid out in many requests, for example subscription horrors. Let me add another example over which I stumble every day:

On cs.SE we have have general tags like [formal-languages] and [automata]. Those are useful for subscribing to those sub-fields of CS (some would call them category tags). We also have for example [regular-languages], [context-free], [finite-automata] and [pushdown-automata] which describe natural subfields of the more general tags; those are indispensable for classifying questions properly. There are also questions only tagged with the general tags. In order to give subscribers of the general tags access to all related questions, we have to tag questions with both the specific and the general tag, or they have to subscribe to both.

I think this wastes tag slots (there have been cases in which there was not enough space for the general tags) and is not natural (for taggers and subscribers). It should be possible to tell the system: "Every [finite-automata] question is also an [automata] question."

It has been mentioned in the comments that you can use wildcards in tag searches, so for instance [*automata] finds all questions tagged with [automata], [finite-automata] or [pushdown-automata]. As it is purely syntactical, this is obviously a limited approach. Take, for instance [runtime-analysis] which is a kind of [algorithm-analysis] but neither relates to [mathematical-analysis].

Therefore I propose tag implications (or tag grouping or tag aggregation or implicit tagging or whatever you'd like to call it):

Allow to set up tag connections of the form [A] => [B], meaning that every question tagged [A] is also listed as [B] question.

This is similar to synonyms in behaviour but allows to keep both tags; this is vitally important, as any tag may be related to multiple others in this manner (a detail that should clearly not be overused), and users might want to subscribe to the more specific tag but not to the general one. Note how this does not yield a hierarchy, but (if not restricted further) a general graph; hierarchies (trees) and DAGs can be implemented, though.

Note also that a synonym corresponds to [A] => [B] & [B] => [A]. Therefore the proposed mechanism can be thought of a generalisation of synonyms, and might be able to replace the synonym feature (if symmetric connections are detected and dealt with accordingly).

Obviously, designing and maintaining those connections is a difficile task. That should not be a counter-argument, though: every community can decide for itself whether using the feature makes sense, and to what extend to use it. It is, in my opinion, important that the SE 2.0 software enables all communities to organise their content as well as possible -- and flat tags arguably fail to do so.

share|improve this question
    
As for implementation, implied tags could be added as proper tags in a hidden fashion. That way, queries should not be slowed down by much, while changes to tag implications would cause considerable work (for the server), which is fair. –  Raphael May 28 '12 at 11:54
    
Note that you can already use wildcards in tags when setting up your favourite and ignored tags - so [*automata] would find both [finite-automata] and [automata] tagged questions. And the link http://cs.stackexchange.com/questions/tagged/*automata will find them all too. –  ChrisF May 28 '12 at 11:55
    
@ChrisF: That helps in limited special cases, but not in general; see my edit. –  Raphael May 28 '12 at 12:03
    
This has definitely been suggested before; the canonical example has been that a [C#] tag should imply a [.NET] tag. Considering your specific example of [finite-automata] and [automata], are there really that many people who are experts in automata but not in finite automata? It seems like the titles can be used for this type of fine-grained disambiguation, rather than the tag system. –  Cody Gray May 28 '12 at 12:16
2  
@TheEstablishment: I don't know how the existence of an automata expert who is not interested in finite automata is of import to the feature; I have not suggested those people exist. Quite the opposite: most will probably be interested in both, but right now they are required to subscribe to two tags, which feels redundant (because of the relation of those specific tags). –  Raphael May 28 '12 at 12:19
1  
@TheEstablishment Linking c# and .net has the problem that neither implies the other: there's no hierarchy. I've never found much use for a hierarchy on SO, but I have found some use on other sites, such as SU and CS. (Which shows, by the way, that “it wouldn't be useful on SO” isn't enough to show that it wouldn't be useful on SE.) –  Gilles May 28 '12 at 20:07
add comment

You must log in to answer this question.

Browse other questions tagged .