Combine Tags
Motivation
Tags are great. They allow us to find groups of content items (articles) that share a common aspect, label or keyword, within their metadata, i.e. a tag. They avoid a hierarchical separation into strict categories, and allow both overlapping and partial coverage. Content can be associated with a collection of tags during or after creation. And people can find content simply by selecting (click or tap) tags. In a tag cloud, for example (not to be confused with a word cloud).
However, we mostly use (or are allowed to use) just one tag at the time, to find what we are looking for. That means we get a lot of search results, that are only partially of interest. If we select another tag, the results 'switch' to the new tag, forgetting all about the previously selected tag. We can't really focus or narrow down our results, i.e. reduce the quantity and increase the quality. So, I think we should combine tags, to get better results.
Software solutions elsewhere
A very small number of similar solutions exist, if you can find them. They support the intersection (logical AND) of the selected tags: each search result must have all of the selected tags. Even less solutions support the union (logical OR) of the selected tags, where each search result has at least one of the selected tags.
There is no solution (yet) that supports the combination of tags that I propose, where each search result has as many tags as possible and the number of matching tags is used to order the results.
Relevance
When we select just one tag to find the content we are looking for, we will get a lot of results. Not all of them are equally relevant. When we select two tags, we will find the content that matches both tags. That leaves us with a lot less content and a lot more relevance, which is good. But we probably don't want to miss the content that has one matching tag... do we?
The content with two matching tags is more relevant than the content with just one matching tag, but less relevant than the content with three matching tags.
When we select N tags (N > 1), we will find the most relevant content: the content that has all N tags. If such content exists. If it doesn't, the content that matches N-1 tags is still pretty interesting. But if there is content that matches all N tags, the content that matches N-1 tags is also pretty interesting.
Group by number of matches
The relevance of content corresponds with the number of tags that match the tags we select. Even if the number of matches is not equal to the number of selected tags. Content with less matching tags is still relevant, albeit slightly less. When the results are grouped by their number of matching tags, in decreasing order, we get the most meaningful answer.
Example
This example shows what the result looks like when we select 4 tags. The search result should provide the following information:
Content with 4 matching tags:
Content with 3 matching tags:
Content with 2 matching tags:
Content with 1 matching tag:
Notice that any of these groups may contain zero articles (except for the first time we select a single tag).
Any UX designer will be able to come up with a compact but clear representation of this information.
Selecting multiple tags
So, how can we have multiple tags selected at the same time? Well, by first selecting one tag and then expanding the selection, by selecting more tags. When a tag is selected, how can we de-select it, to remove it from the selection? It must also be possible to change - or switch - the selection from the currently selected tag to a different tag.
The behavior should resemble the interaction people are used to, with regard to tags. If one tag is selected, selecting another tag replaces the selection, by default. However, the option to expand the selection should be presented simultaneously, as an invitation. Maybe something like this:
A slightly simpler example is available right here, at basa.nl/tags.
Feedback
If you have any comments, suggestions or questions, feel free to contact basa.