Tag scope is configurable — global, per-category, or multi-category, each with independent inheritance
Tags in LOGOS must support flexible scoping — a tag can be global,
scoped to a specific category, or assigned to an explicit set of
categories, with each scoped assignment independently controlling
whether child categories inherit it.
Why It's Needed
Talkyard tags are a flat global list. There is no scoping mechanism
of any kind. A tag created for one domain appears everywhere. The
only available mitigation is naming conventions, which reduce
confusion but cannot enforce anything structurally.
The needed model is more expressive than simple hierarchical
inheritance. A tag may be relevant to multiple unrelated categories
without being global. A tag may be relevant to a category but not
its children. These combinations cannot be approximated with a
hierarchy-only approach.
The Requirement
A tag has a scope configuration that specifies:
Availability — one of:
- Global: available across the entire forum
- Single category: available within one specified category
- Category set: available within an explicit list of categories
Inheritance — per assignment:
- Each category in the scope list independently specifies whether
its children inherit the tag or not
This means a single tag can be available in LOGOS and all its
children, and also in APPS but not APPS' children — two assignments,
two independent inheritance decisions.
Global tags remain available everywhere and are an explicit choice,
not the default.
Acceptance
An administrator can create a tag and assign it to two unrelated
categories with different inheritance settings. The tag appears in
the correct categories and their children (or not) according to each
assignment. It does not appear in unrelated categories. A global tag
appears everywhere regardless of other scoping rules.