Meta
add tag
Jack Douglas
On [databases](/databases) we have not felt the need to have a large collection of tags matching the 1300 or so on SE. We have just set up tags for things people want to filter questions by, like RDBMS.

U&L has [about 2800](https://unix.stackexchange.com/tags) tags. Do we want to tag to that level of detail? Do we just want to define some broad categorisations (like distro, application etc)?
Top Answer
hackerb9
## Yes, perhaps.

I know this answer is exploratory, but hopefully it will generate conversation. 

In addition to considering whether anything I'm suggesting below is desirable, I'd like people to consider whether it is needed (or would be easier) to implement *now*, rather than adding later.

## What is the purpose of tags?

I believe tags exist primarily for two reasons:

1. So answerers will see only the questions they are most interested and qualified to answer.
1. So askers can wave a flag to get the attention of experts who can answer their question.

## Do SE tags do that adequately?

For answering questions, my personal feeling is that the tags are somewhat helpful, particularly when used with a filter to show a virtual queue of unanswered Watched Tags. But tags could be better. For example, I would like to specify that some tags are more important than others.

For asking questions, it is harder for me to evaluate. Are there questions experts aren't seeing because they weren't tagged properly? Perhaps, but moderators (and the automated tag suggestions) seem to work pretty well. However, it could be clearer to the asker why tagging is so important and why they shouldn't mistag. 

## Ideas

Here are my thoughts on ways tags could be better here.

## Boolean Tags

It can be useful for answerers to Watch for two tags, and only be shown a question if both are present (Boolean *AND*). 

For example, a person who can answer questions about the Common Unix Printing System, but only as it relates to MacOS could specify:

> MacOS & Printing

The *AND* operator for tags seems like an obviously useful option to me. Of less potential use, but still worth mentioning would be *XOR* (one tag or the other, but not both). 

> MacOS ^ bash

This person wants questions about either MacOS or bash, but doesn't want questions about Apple's archaic bash.

 Finally, it might also be useful to allow Boolean Tagging of questions. For example,

> multithreading & python

meaning, this is a question about multithreading in the context of Python. (Technically, it would be more correct to use a logical implication instead of an *AND*, but I didn't want to make the example too complicated).

## Tag Skill Level 

While there's been talk about maybe marking questions with required skill level needed to answer, which is a great idea, I haven't seen anyone mention how tags would have to change to make best use of that. Since people have differing skill in their various interests, they should be able to mark what level of questions they'd prefer to see per tag.

I imagine skill level as a real number from 0 to 1, but you could also think of it as a percentage of how difficult a question is compared to the hardest question in any possible universe.

Each tag would have a range from minimum to maximum skill. Of course, the default would be to accept all skills.

For example, a person who knows a bit about "wayland" but is rather advanced in "X11" might set these skill levels:

> wayland ≤ 20%
>
> 35% ≤ X11 ≤ 65%

Or, the system could learn the appropriate skill level for various tags when it suggest questions in the queue and the user "swipes left" (rejects them). It can have an ignorable dialog appear in the question's place: "Why rejected? Too difficult, too simple, other".

By the way, I do not think of the Skill Levels on tags as ever completely hiding questions that are out of bounds. They would simply be pushed lower in the queue. 


## Tag Weight

People answering questions should be able to specify how important each tag is to them. By default, each tag weighs 1.0. For example, a user might have these Watched Tag Weights:

> linux=1 
>
> macos=1 
>
> vms=½
>
> debian=2
>
> kernel=7

That way, questions about kernels would get get bumped to the top, although the user is also interested in other things.

Note that I envision weights as real numbers, not integers. Fractions below 1.0 bump a tag up somewhat, but not as much as just the default when clicking "Watch Tag". For example, this user has knowledge of VMS, but gets grumpy when asked too many questions about it. 

The user interface need not show tag weights as numbers, although I would certainly prefer that as an option. For example, it could be a click-and-drag interface where one can rank the importance of tags visually.

## Tag Weight (systemwide)

Above I described each answerer having their own personal weights for tags. It would be useful if there was also a systemwide weight factor for each tag.

Why? Because tags which are general categories ought to have lesser weight than specific tags. For example, if I follow the *Debian* and *UNIX* tags, the system should detect that there are far fewer people Watching *Debian* than Watching *UNIX*, so a question that is tagged *Debian* should be shown in my queue above a question tagged *UNIX*. Essentially, one could think of the systemwide weight of a tag as being inversely proportional to the number of people Watching it.

### Tag Salience

Complementary to Tag Weight is Tag Salience which is primarily chosen by the question asker.

When a person asks a question, they would have an option to rank how relevant each tag is to the question. That way, an answerer who is watching a topic will get the questions most in their wheelhouse.

For example, a question might get tagged primarily *zsh* and secondarily *bash* because the question is asking how to do something in zsh that can be done in bash. That question would show up higher in the queue of a person who's Watching the *zsh* tag than it would for a person who's Watching *bash*. 

Marking salience shouldn't be completely up to the question asker. I'm thinking in two ways in particular. First, moderators should be able to vote up or down the salience of a tag instead of having the more blunt instrument of deleting it or not. A [Bayesian technique](https://www.evanmiller.org/how-not-to-sort-by-average-rating.html) can be used to determine the relative salience of tags.

Secondly, the asker should have a limited amount of "salience" that they can spread around to all the tags they've used in a question. Doing this numerically would be obviously annoying, but I think it could be implemented graphically. For example, there could be an empty box above the list of tags they've added which says, "Drag a tag here to mark it as most relevant". 

> {drag a tag here to mark it as most relevant}
>
> UNIX, 8086, ELKS, C Compiler, Far pointers 

If they do that, two more empty boxes will pop up under that tag, saying, "Drag secondary tags here". 

> { 8086 }
>
> { drag secondary } , { tags here    }
>
> UNIX, ELKS, C Compiler, Far pointers

If they place even one tag in the secondary tier, three more empty boxes will pop up for tertiary tags, and so on.


> { 8086 }
>
> { ELKS } , {     }
>
> { drag }, { tertiary }, { tags here }
>
> UNIX, C Compiler, Far pointers


To encourage askers to do this, there should be an indication to them that doing so promotes the value of the tag above the base level, making it rank higher in queues of answerers who are watching that tag. 

What's to prevent a user from marking the most widely Watched tag as "salient", simply to get the most eyeballs on their question? The answer is the Tag Weighting from above: a generic category with lots of watchers is going to weigh less from both the systemwide weight and from answerers who have marked their own tag weight preferences.

Enter question or answer id or url (and optionally further answer ids/urls from the same question) from

Separate each id/url with a space. No need to list your own answers; they will be imported automatically.