Short of ideas? Let the tag search give you a hint.
If you want to represent a concept but you do not know how, choose "Tag search" and try looking for that concept just like you would look for it on Google. In many cases you will get a useful tag suggestion for it.
Every package should have a role.
Contrary to most other facets in Debtags, the Role facet is designed to be applicable to all packages in Debian.
Try to find a suitable role for the package you are tagging. If you think that there is no applicable role, use the tag role::TODO to mark a possible gap in the tag vocabulary.
Every piece of software should be implemented in one or more languages.
For all software in Debian, there should be an implemented-in::* tag that applies to most of its code. However, it is often hard to know what implemented-in::* tag to use without looking at the source of a package.
If you are the maintainer of the package, or have looked at its source code before, then please take some time to choose an implemented-in::* tag for it: it is a quick and easy task for you, but hard for many others.
devel::lang:* and implemented-in::* are different.
Take lua5.1, for example: it's devel::lang:lua, but it is implemented-in::c.
If the name is similar, the tags may not be.
Take for example k3b and k3b-i18n: the former package contains a very good application to create CDs and DVDs. The latter package does not contain software, but data files containing translated strings.
role::app-data is a good tag for k3b-i18n. You should not tag k3b-i18n as x11::application, because it does not contain any X11 application.
The same idea usually applies to those packages that end with -data, -common and -sound. Shared libraries and -dev packages have similar names, but very different use: think libc6 and libc6-dev.
Data packages need very few tags.
Debtags does not provide many categories for role::app-data packages besides role::app-data and sometimes a made-of::* tag. The reason is because Debian is mainly distributing software.
Most of the data packages in Debian are things like arch-independent support packages for arch-dependent software, which one normally would not want to see as the result of a package search.
There are some data packages in Debian that don't fit the category of "application data". For those few other packages, like anarchism, bible-kjv-text, or cfi-en, use role::data.
culture::* tags are for culture-specific packages.
Use culture::* tags to mark only those packages that are especially useful to people who are part of a specific culture.
Do not use culture::* tags to mark that a package (like b2evolution) has been translated into some languages: if the tags were used that way, with time all applications in Debian would have all culture::* tags, and the culture::* tags would become useless.
However, do use culture::* tags for packages that only provide localisation, like openoffice.org-l10n-it: they do provide special support for a specific culture.