I know of several tags on SO that almost always appear together (and if they don't it is usually a mistake of the OP). For instance, the tags and almost always appear together with the tag , and I cannot think of any reason why it should not. The same goes for tags like , which is somewhat of a sub-category of the -tag. I am sure that there are similar scenarios in other tags.

An ontology can be used to define relationships between tags. In the simplest case, it would be a tree, where more general tags have more special tags as children. If a question is tagged with a special tag, it would implicitly also be tagged with all its ancestors in the ontology. More complex models are possible (though maybe useful), but I think we should start this discussion with a simple example.

The question is, could we benefit from such an ontology? And if so, how do we maintain it?

I will put my view on these question in an answer of my own.

  • 1
    Like this proposal?
    – Grace Note StaffMod
    May 26, 2011 at 15:10
  • Dammit, didn't find that. May 26, 2011 at 15:13
  • 2
    @Grace: But you know what? I will leave it open. I think as SO continues to grow, this will become an issue more and more, and so maybe, it would not hurt to discuss it a bit more that just No, we won't do it. May 26, 2011 at 15:16

3 Answers 3


A good starting point would be to run some sort of “tree building” machine learning over all the current questions looking for tags that predict other tags more than x% of the time.

  • This makes a lot more sense than any of the proposals involving manual user-curation of hierarchies.
    – Shog9
    May 26, 2011 at 15:39
  • @Shog, I think manual editing will be needed, but we need a starting point. May 26, 2011 at 15:49
  • 2
    I'm exceedingly pessimistic about any tagging system that requires manual intervention beyond simply... tagging posts. Right now, if you filter by a tag you get a list of related tags in the sidebar - using these emergent relationships as inputs to the tag-suggestion lists makes some sense.
    – Shog9
    May 26, 2011 at 16:02

Real ontology would be beneficial, but that would require running some decent inference library. I'm not sure how keen are Stack Overflow developers on using SPARQL and if there is any software for that build on top of MS SQL and .Net.

As for the structure, it definitely is not a tree. Take , it has two ancestors and .

  • 1
    Multiple inheritance isn't a problem in a true ontology; even circular inheritance is well-defined (it makes a group of synonyms). Ontologies are not class hierarchies. May 27, 2011 at 12:49
  • @Donal: srsly? YPB?
    – vartec
    May 27, 2011 at 12:51
  • What does “YPB” mean? May 27, 2011 at 13:59
  • @Donal: "You Point Being". As in what's the point of your comment to my answer?
    – vartec
    May 27, 2011 at 14:01

I think we would benefit from such an ontology. Users would only have to tag their question with the most specific tag that fits their issue, and it would automatically be tagged with the more general ones.

Also, some tags could benefit from having multiple ancestors (if we use a DAG instead of a tree for the ontology). For example is sometimes used for C++ templates, and sometimes for the templates of various web frameworks. If we had an ontology, a user could easily be prompted to disambiguate the use of the tag.

As for the question of how to maintain it, I would make it a privilege for experienced users (maybe 10k+). For instance, users with high reputation in a tag can manage the children of this tag. If a new tag is created, and the user does not have enough reputation to assign to some other tag, he can make a suggestion, and experienced users would see it in the moderation tools. I am not very sure on this point, so any ideas are welcome.

You must log in to answer this question.

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