The tagging system in Things is one of the most powerful available. Here is a list of the advanced features:
Hierarchical Tags
Tags can be nested. You can use the Tags window to group related tags under more general ones. Priority tags are an example:
In order to keep the Tag Bar uncluttered, the children of a given tag are only displayed when it is selected:
When a hierarchical tag is selected, items with parent or child tags assigned will be displayed.
For example, let's assume that from time to time you enter ideas for fun things you might want to do in the future. For example, books you'd like to read or movies you want to watch. Music you'd like to check out or ideas for trips with your family are other examples. Tagging these to-dos "Read", "Movies", "Listen", and "Outdoors", respectively, will enable you to quickly retrieve them when needed. All corresponding tags could be further subsumed under a more general "Fun" tag. A to-do that has a "Read", "Movies", "Listen", or "Outdoors" tag also matches the tag "Fun". Hence, selecting "Fun" in the Tag Bar will reveal all to-dos tagged "Fun", "Read", "Movies", etc.
Filtering by multiple tags
Suppose you would like to see only those items that belong to work and have priority information associated with them. You may start by selecting "Work" in the Tag Bar. Then shift-click the priority symbol "‼". Shift-clicking allows you to select multiple tags. Only items that match all selected tags are shown.
Once more, shift-clicking "High" will further narrow your focus to all high priority to-dos in Work.
Ordering to-dos
We have already seen that selecting a tag with children narrows your focus to those to-dos that match this tag. These are all the to-dos that have the selected tag or one of its descendant tags. But there is more...
The displayed to-dos are also ordered by which child tag they carry. For example, if you select the priority tag "‼", you will only be presented with to-dos that have a priority assigned, and the displayed list is ordered in such a way that to-dos with priority "High" come first.
The ordering can be changed in the Tags window. Just reorder child tags however you like. To-do lists filtered by the corresponding umbrella tag will be ordered accordingly.
Inheritance
Simple to-dos can be contained in projects which themselves can be contained in areas. If a project can only be done at home and consequently has been tagged "Home", then this tag also applies to all of its associated action steps, i.e., the contained to-dos.
All action steps of a project are automatically considered to have the enclosing project's tags as well. For example, if a project has a tag "Work" and some of its action steps have priority tags "High", then those action steps are treated as if they carried both tags "Work" and "High".
The same discussion applies to areas. Tags applied to a specific area are inherited all the way down to to-dos that are contained in projects of this area.