Controlled vocabulary definition
A controlled vocabulary is a fixed, curated set of terms that may be used to describe or classify content, together with rules about which term is preferred for each concept. Instead of letting anyone type any label, it restricts input to preselected terms, so the same concept is always recorded the same way.
A controlled vocabulary is a fixed list of approved terms for describing content, plus rules deciding which term wins when several words mean the same thing. The list only works if it is enforced where content is written, so in Sanity you either fix the allowed values in the schema with options.list or make every term its own document that content references, in which case Content Lake refuses to delete a term while anything still points at it.

What problem does a controlled vocabulary solve?
A controlled vocabulary solves the problem of the same concept being recorded under different names, which makes content impossible to retrieve reliably. As Wikipedia's entry on controlled vocabulary puts it, controlled vocabulary schemes mandate the use of predefined, preferred terms preselected by the designers of the scheme, in contrast to natural language vocabularies, which have no such restriction.
The classic cases are synonyms (automobile and car), popular versus scientific names (cockroach and Periplaneta americana), spelling variants (American and British English), and homographs, where one word covers two concepts. A controlled vocabulary handles the last case with a parenthetical qualifier, so "pool" becomes swimming pool or the game of pool, and each preferred term maps to exactly one idea.
The payoff is described in the scope of the American national standard for this work, ANSI/NISO Z39.19: vocabulary control exists so that a search using any one of several possible terms for a concept still retrieves everything indexed under that concept. Note the qualitative claim. The standard promises consistency of description, not a measured percentage improvement in search results.
What are the four types of controlled vocabulary?
ANSI/NISO Z39.19-2005 (R2010), "Guidelines for the Construction, Format, and Management of Monolingual Controlled Vocabularies," covers four types of controlled vocabulary along a spectrum of increasing structural complexity, summarized here by CASRAI.
First, an authority list: a single approved term per concept, with no relationships recorded between terms. Second, a synonym ring: sets of interchangeable terms, with no single preferred form. Third, a taxonomy: terms arranged hierarchically. Fourth, a thesaurus: hierarchy plus explicit equivalence and associative relationships between terms.
All four are controlled vocabularies. That matters because people often reserve the phrase for the elaborate end of the spectrum. A flat list of twelve approved product categories with no parent and child structure is a controlled vocabulary, specifically an authority list, and it is not a taxonomy.
The standard was published in 2005 and reaffirmed in 2010. For publishing and linking vocabularies on the web, the companion data model is SKOS, the Simple Knowledge Organization System, which became a W3C Recommendation on 18 August 2009.
How do terms relate to each other in a controlled vocabulary?
A controlled vocabulary records three kinds of relationship between terms, as defined in ANSI/NISO Z39.19 and summarized by CASRAI.
Equivalence, written as USE and UF ("Used For"), links a non-preferred synonym to the single preferred term that should be used for indexing. So "automobile" might carry USE car, and "car" carries UF automobile. Hierarchical, written as BT and NT (Broader Term and Narrower Term), expresses genus and species, whole and part, or instance relationships. Associative, written as RT (Related Term), covers terms that are conceptually connected but neither synonymous nor hierarchical.
Choosing which term becomes the preferred one is not arbitrary. Three warrants are conventionally used: user warrant, meaning the terms users are likely to reach for; literary warrant, meaning the terms generally used in the documents and literature of the field; and structural warrant, meaning terms chosen by considering the scope and structure of the vocabulary itself.
Established examples show all of this in one place. In the ERIC Thesaurus, each descriptor carries a scope note, non-preferred synonyms point via USE to the preferred descriptor, and descriptors carry BT, NT, and RT cross references. Library of Congress Subject Headings, Medical Subject Headings (MeSH) from the United States National Library of Medicine, Sears, and the Art and Architecture Thesaurus are other long-running examples.
How is a controlled vocabulary different from tags, a taxonomy, or a dropdown?
A controlled vocabulary differs from free tagging, a taxonomy, and a content management dropdown in what each one actually constrains and records.
A folksonomy, or free tagging, is user-generated labeling where anyone applies any string they like. There is no approved term list and no cross references between synonymous terms, so it records what people typed rather than which concept they meant. CASRAI is explicit that a folksonomy has no equivalence, hierarchical, or associative relationship structure at all, which is the entire mechanism Z39.19 exists to standardize.
A taxonomy is a kind of controlled vocabulary, specifically one whose terms are arranged in a hierarchy. Every taxonomy is a controlled vocabulary; not every controlled vocabulary is a taxonomy. A thesaurus goes further still, adding equivalence and associative relationships on top of hierarchy. A controlled vocabulary becomes a thesaurus when it records how terms relate, not just which terms are allowed.
A dropdown in a content tool is the closest thing most editors have met. It enforces the term list at the point of writing, which is genuinely useful, but by itself it carries no preferred and non-preferred mappings, no scope notes, and no relationships. CASRAI makes the same point about the weak end of the spectrum: a flat pick-list with no BT, NT, or RT relationships and no scope notes is a controlled vocabulary in the loosest sense, a fixed term list, but it does not meet the Z39.19 guidelines for a properly constructed and managed vocabulary.
How do you implement a controlled vocabulary in a content system?
You implement a controlled vocabulary in a content system in one of two ways, depending on whether the term list needs to change without a code deploy and whether terms need relationships of their own.
The first pattern fixes the vocabulary in the schema. In Sanity, options.list on a string field restricts the field to a predefined set of values, given either as bare strings or as title and value objects, with options.layout choosing a dropdown (the default) or radio buttons. On an array of strings, options.list renders the same approved values as checkboxes for multi-select, and Rule.unique() stops the same term being applied twice. One honest limitation: options.list accepts a static array only, not a function, so a list that changes at runtime needs a custom input component.
The second pattern makes every term its own document that content references. Sanity's documentation on connected content names taxonomy fields that reference tag and category documents as a typical case, and this is the pattern to use when the vocabulary has to be governed. References are strong by default, and Content Lake will prevent you from deleting a document that is referenced elsewhere, so a term still in use cannot vanish out from under the content using it. References are also indexed bidirectionally, so you can query every document tagged with a given term, which is how you find the terms nobody uses and the ones carrying too much. On a reference field, options.filter takes a GROQ filter that narrows which term documents are selectable, and Sanity's parent and child taxonomy guide uses filter: '!defined(parent)' so a child category can only point at a top-level parent. Adding a parent reference to the term document type itself is what turns a flat authority list into the BT and NT hierarchy of a taxonomy.
For SKOS-conformant work, the community plugin sanity-plugin-taxonomy-manager, maintained by Andy Fitzgerald rather than shipped by Sanity, adds skosConcept and skosConceptScheme document types to the Studio.
Why do controlled vocabularies matter for AI and retrieval?
Controlled vocabularies matter for AI and retrieval because a model or an agent reading your content inherits whatever inconsistency is in the metadata. If half the catalog is tagged "womenswear" and half is tagged "women's clothing," a filter built on that field returns half the catalog, and no amount of semantic similarity fixes a field whose values disagree with each other.
Full-text and vector search did not make controlled vocabularies redundant, because they answer a different question. Search over the text of a document tells you what the document says. A controlled vocabulary term tells you what the organization has decided the document is about, which is the value you can filter on, route on, report on, and hand to an agent as a constraint.
This is the ground Sanity works on as the Content Operating System for the AI era, the intelligent backend for companies building AI content operations at scale. Because schemas are code in the repository, the approved term list is versioned, reviewed, and diffed like anything else, and because terms can be documents with references between them, the vocabulary is queryable rather than buried in a configuration file. The vocabulary becomes part of the content model rather than a convention people are asked to remember.
Explore Sanity Today
Understanding controlled vocabulary is just the beginning. Take the next step and discover how Sanity can enhance your content management and delivery.
Last updated: