Does anyone have experience working with nested tags? I could not find any websites that allow users to have hierarchies in their tags (equivalent to non-mutually exclusive categories). Is it a bad practice in general? If so, why?
The idea behind tags is the same as the idea behind labels in GMail: the ability to assign multiple tags to a single post/mail/.../item.
The GMail labeling of e-mails was born specifically to counter the need in most e-mail clients to archive an e-mail in a single specific folder which ususally would be part of a hierarchy of folders. So what do you do with an e-mail that belongs both in the folder "advertisments" and in the folder "creditors"?
GMail was the first to solve this using labels: you just assigned both the label "advertisements" and "creditors" to the e-mail and you would be able to find it both when showing all e-mails in the "advertisements" label ("folder") and the "creditors" label/folder.
Some people still want to organise their GMail labels in a hierarchical manner and there is actually a GMail "labs" feature that allows this. But in my opinion it goes against everything for which these labels are intended and were invented.
Similarly, organising tags in a hierarchy goes against the grain. How can a specific document/mail have tags from different branches of the hierarchy tree? Technically not a problem of course, but it just doesn't make any sense (at least not to me).
In many CMS's you will find both tags and categories. Usually you can assign multiple tags, but just one category. And you will find that the categories actually can be organised in a hierarchical manner...
So I would say that the reasons most websites won't allow you to have tag hierarchies is that tags are not intended to be used hierarchically and that if you want to do something in a hierarchical manner you need to use categories (or whatever the website offers by way of a hierarchical organisation system).
We are facing a similar situation where our client has a huge catalog and wants to allow its users to successively filter down the content by drilling down into a hierarchy defined by them; a hierarchy they can decide to change anytime and as much as they want. Add to that the fact that the target platform is Android, its omnipresent back button and navigation back stack and you find yourself with an interesting challenge.
We came to the conclusion that classification and categorization are two different things. Is Evil Dead a horror, b-movie or a b horror movie? For categorization, it does not matter. The movie will have both tags associated with it. As for classification, it depends on what you want to put in evidence. The hierarchy of tags is completely independent from the categorization of an item. So for example, it probably would make more sense to classify Evil Dead as a b-movie under the horror category. However, during the b-movie festival weekend, one might want to put b-movies in evidence and bring that category up the classification tree. I don't believe organizing your tags hierarchically is necessarily a bad practice.
Though I agree in part with the answers already posted, you can impose structure on tags. Rather than using 'hierarchy', a better term is 'relationship'. Consider some of the potential relationships between two tags:
- is parent of
- is child of
- is type of
- is subset of
- is opposite of
Of course, each type of tag relationship adds extra complexity to your user interface, so you need to weigh cost versus benefit for each additional layer you include. For most use cases, it's probably better to not define tag relationships.
Yes tags can be hierarchical and there is actually a lot of (not yet widely recognised) potential in it.
Although some people (probably like the question asker) have been curious and/or after hierarchical tagging for years, the reason it is not present on the CMS market now is more because of technical obstacles rather than not seeing point in it. With pure SQL, juggling hierarchies is not easy: it requires either recursion (which is CPU-expensive and not scalable) or graph abstraction.
It is only not long ago that the dominance of SQL started being seriously challenged by alternatives like NoSQL / graph databases, so we may see hierarchical tagging coming soon.
In my opinion tag hierarchy is not always a bad idea, but I think hierarchy is a bad word here, I would consider this being subsets.
Let's say we are on Stack Overflow and because you work often with Microsoft Excel, you are interested in all questions regarding it. So you add as favorite the "excel" tag and ignore all the others.
But there are other tags related to Excel. There are tags about VBA in Excel, about formulas, about macros, about specific versions (like 2003, 2007, 2010 etc.). In my opinion all of them should be subsets of "excel" tag, so when I'm interested in Excel, I will also see Excel-VBA questions, if only I do not ignore them. This can be in case somebody tagged his question with "excel-vba" but forgot to tag with "excel". The same applies to "vba" tag, which can contain subsets like "word-vba", "access-vba" and of course "excel-vba".
Having this tagging questions would be easier, as I don't need to remember and search what tags are usable. I just put my question with one tag "excel-vba", and it will be seen for all the people who are interested in "excel", and for those who like "vba". This guarantees that more people will see the question and increases probability of getting an answer.
I think that such grouping is missing in SO, especially in case when there are about 1,000 pages in the "Tags" list, which is completely non-searchable.
Well we support tag hierarchy feature in our notes manager app CintaNotes. So far it has great success with the users. However you need to be extra careful, as it the feature is not easy to implement correctly.
Why is tag hierarchy useful? There are two main benefits derived from organizing tags into trees:
1) You can easily generalize and specialize tags. For example, where you might use tags Todo, Reply and Watch, you can instead use Todo/Reply and Todo/Watch. Todo becomes a parent tag in this case. By selecting this tag, you can see all things you need to do, regardless of the type of action that needs to be taken. Without tag hierarchy, you would need to select all these tags one by one to get the same result.
2) When you have a lot of tags, it quickly becomes difficult to manage them and to find them. If your tags are organized into groups by parent tags, you can easily locate the tags you need.
A few tips / advice:
Make sure that each tag has a short name and a full name. Full name includes all parent tags. For example, Ferrari and Cars/Ferrari. Inside of your program, use only full names to identify tags. But allow users to enter short names, and resolve them to a long name asap. Auto-suggest tag names while user is typing.
When a user wants to see items tagged with tag A, you also need to include all child tags such as A/B, A/B/C etc. If an item is tagged as A/B, it has tag A by implication. This is the main difference of tags from folders (Evernote gets it wrong for example).
When a child tag is added to an item, automatically add all parent tags. And remove all child tags when parent tag is removed. Also consider removing parent tags when a child tag is removed, but only if no sibling tag is present.
Provide a way to move tags around in the hierarchy. This is the most tricky part. The easiest way to do it is via a rename operation.
Please refer to this section of our help file for further details on how this feature is implemented.
Hope that this helps, and good luck!
The problem with trying to use heirarchies is that it's seldom you find universal agreement on what the heirarchy should be. The heirarchy can also change in unpredictable ways.
If you had a tag
ASP.NET then should it's parent be
Web Development Frameworks or
If you had a tag
Iron Python that was a child of
Microsoft Products, what do you do now that it's been open sourced?
If you have a tag
Functional Programming, what parent tag makes sense? You don't want to have generic tags like
Programming Paradigms that don't make sense as tags, just to be able to group things.
Generally, it seems that attempts to arrange tags into a heirarchy are seeking to add semantics to each tag, so that searching and classification become richer. I'm not convinced that it works.
I would agree that explicitly organizing tags within a hierarchical structure is bad practice however the nature of tags is such that by specifying multiple tags for an item you are in effect creating a dynamic hierarchy anyway.
Take the example of an online store like amazon. I may classify a toy train model as "trains", "cargo", "toys", "hornby", "models". What I have is a flat list of associations but as soon as I filter by a single tag we can start to build a hierarchy based on associated tags.
If I filter by "toys" then I can aggregate all of the tags associated to items tagged "toys". I could order these by number of associations to create a smart-list of further tags to filter by. Conversely I could start with "trains" and get a completely different list of tags to filter further by.
Stack Exchange does this allowing you to pin-point the type of questions you're after. Take for example the following link which presents questions tagged "usability", "mobile", "navigation" and "touch screen". I could just as easily have started at mobile and ended up at "mobile", "iphone", "navigation".
I think the 'hierarchy' in tags comes from how you define and use them, because technically there is no structure behind it as the logic is constructed from the combination of tags associated with a particular item (think about keywords in a search query where the order of the search terms don't matter).
You can try to create a structure for the use of tags by grouping them in the user interface so that users will be able to see which categories or groups the tags have been applied to and therefore create a structure in their mind. You can also use different colours to show relationships between tags and create a visual hierarchy.
However, I don't think it is always advisable to implement an interface design that forces a users to apply the tags in a specific way, because the way tags are used encode information about how they see the relationship between the items and what it means to them.
Information Architecture (IA) is the structure of shared content across the entire web that includes text, photos, and videos. It’s a concept said to be first recognized by Richard Saul Wurman in the 1970’s.
photo credit: theuxreview
The three working components of that makes IA is
- Ontology (the product’s elements)
- Taxonomy (arrangement of its parts)
- Choreography (the interaction between its parts)
. The most efficient IA is when these three parts are working together.
What Is Folksonomy?
In the early 2000’s we saw the evolution of tags in social media. This tagging system helped one website to become one of the top bookmarking tools. Del.icio.us offered users the chance to categorize their bookmarks under whatever category name that was made sense to them. We are currently using today era that already use a pinboard system (Pinterest) and hashtagging social networks (Twitter) that have already been using this system for some time.
As soon as everyone witnessed the power of the tagging system, we would start seeing the trend in other industries. The photographers who shared their content on Flickr would then experience the chance to tag all of their own uploaded photographs with whatever definitions and labels they felt best described their work.
The collection of all these categories, tags, and user-organization was in fact the creation of folksonomy. The individual credited with inventing the term was Thomas Vander Wal, which he explained was a combination of the words “taxonomy” and the word “folks” to put emphasis on who makes this structure possible. The Users.
Future of Folksonomy
Today, we currently have meta-tagging websites for Search Engine Optimization (SEO) and geolocation tracking hashtags on Instagram. We have seen many companies benefit from the exposure as a marketing tool, and we have seen how effective hashtags can be in organizing for political awareness. It was a way to tap into the mindset of the masses — like reading the virtual graffiti on the web-wall.
The future of folksonomy is unclear in my opinion. While it is an excellent system, it is also a very messy one. There’s tons of room for human error, such as misspelling a bride’s name in a wedding tweet. For a short time, it was not possible to begin a hashtag with a number. Some tagging system allows more than a single word, while others allow spaces for wider definitions. I think the future is more a question is how we continue to implement folksonomy in our new trends; like voice-navigated devices.