Call me pedantic (you wouldn’t be the first), but I have found terms like category and class end up being used ambiguously, and interchangeably – and I do it sometimes, too! So I have decided to put a stop to this and define the way I think the terms should be used. And it all comes down to exlcusivity…
Class(-ify, -ification) – a given item can only be a member of a single class (unless it inherits from a super-class) and indeed it MUST be a member of a class.
Category(-ise, -isation) – a given item may concurrently be a member of multiple categories, or indeed of none.
So, the item’s position in the prime hierarchy or taxonomy, usually detemined by who owns it or who is responsible for it, indicates its class. Within the whole domain, this structure is generally relatively stable. It can change, just like organisations can restructure, but it takes time and effort and involves upheaval.
If you want to have alternative forms of grouping, like search tags, or secondary means of browsing items, you can create categories. Because they are optional, flexible, and can be multiple, there is more scope to refresh, restructure, add new structures and depreciate irrelevant ones.
“Each item must have a single class and may have multiple categories”
It seems so simple now. Maybe you already understood this definition – sorry if I’m stating the obvious. However, this reminds me of the day I learnt the difference between authentication and authorisation – the dark clouds of doubt just fell away. But then you should know by now that I’m a geek as well as a pedant 🙂