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 stl and boost almost always appear together with the tag c++, and I cannot think of any reason why it should not. The same goes for tags like boost-thread, which is somewhat of a sub-category of the boost-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.