Case study · Media and knowledge graphs

Making a decades-old media archive findable with model enrichment and a controlled vocabulary

A large archive of video, audio and photographs, catalogued under decades of changing conventions, with most items described by little more than a title and a date. The goal was consistent, searchable metadata at archive scale, without letting a model invent the catalogue.

Case studyMedia · Broadcast and publishing archiveSumanta Mukhopadhyay8 min read
#ai#llm#ontology#knowledge-graph#data
CASE STUDY · CASE STUDY · MEDIA AND KNOWLEDGE GRAPHS28 Oct 2026 · 01:40 GST
At a glance
SectorMedia · Broadcast and publishing archive
My roleAI architect
EngagementArchitecture, pilot and hand-off
ScopeEnrichment pipeline, vocabulary, review workflow, search
What changed
  • Archive items described against one controlled vocabulary instead of free-text tags
  • Every machine-suggested label traceable to its model, prompt and reviewer
  • Editors searching by meaning as well as by keyword
  • A taxonomy that the archive team owns and evolves without engineering help
Batch LLM inferenceSpeech-to-textSKOS concept schemeDCMI Metadata TermsSentence embeddingsHNSW vector indexReview queuePostgresObject storage

Anonymised composite. Client names, identifying details and confidential figures are withheld; public facts are cited in the references.

The situation

A media organisation held decades of video, audio and photography. The material was valuable for new programmes, licensing and research, but most of it was hard to find. Cataloguing conventions had changed several times, many items carried only a title and a broadcast date, and the same subject was described in a dozen ways. Search worked if you already knew the exact words a cataloguer had used years earlier, and otherwise depended on a few long-serving people who remembered where things were.

The organisation wanted to use AI to describe the backlog. The concern, rightly, was that a model left to itself would produce confident, inconsistent tags at a scale nobody could review.

What had to be true

  • One controlled vocabulary, so a subject, place or person is described the same way across the archive.
  • Machine suggestions, human authority: models propose, people decide where confidence is low or the subject is sensitive.
  • Provenance on every field, so anyone can see whether a label came from a cataloguer, a model or a reviewer.
  • Search by meaning and by exact term, for editors who know what they want and for those who are exploring.
  • A taxonomy the archive team owns, not one hidden inside prompts or code.

Architecture

The vocabulary was modelled as a SKOS concept scheme, which gives each concept a preferred label, alternative labels and broader or narrower relationships1. Descriptive fields such as creator, date, subject and rights were aligned with DCMI Metadata Terms so that records stayed portable between systems2.

Sources
Media asset storevideo, audio, imagesLegacy cataloguesparse recordsRights recordslicensing terms
Derive
Speech-to-texttranscriptsKeyframes and OCRon-screen textExisting metadatanormalised
Enrich
Batch model enrichmentstructured suggestionsVocabulary mappinglabels → SKOS conceptsConfidence scoringper field
Assure
Review queuelow confidence, sensitiveProvenance logmodel, prompt, reviewerTaxonomy ownernew concept requests
Use
Catalogue searchfilters, exact termsSemantic searchembeddingsReuse and licensingrights-aware
Layered architecture: models suggest, the vocabulary constrains, and people review before anything is published to search.

The data flow, end to end

  1. SelectPick a collection batch, prioritised by editorial and licensing demand
  2. DeriveGenerate transcripts, keyframes and on-screen text; keep them as versioned artefacts
  3. EnrichRun batch inference that returns structured candidate subjects, places, people and a summary
  4. MapResolve candidates to concepts in the scheme; unmatched terms become proposals, not tags
  5. ReviewRoute low-confidence and sensitive items to cataloguers; record every decision
  6. PublishWrite approved metadata to the catalogue and refresh keyword and vector indexes
Each batch is versioned, so any published label can be traced back to the inputs, model and reviewer that produced it.

For semantic search, transcripts and summaries were embedded with a sentence-embedding model, which produces vectors that can be compared with cosine similarity3. Nearest-neighbour lookup used an HNSW index, a graph-based approximate search method that scales well to large collections4. Model choice and storage trade-offs are covered in choosing embedding models and pgvector or a vector database.

The hard part: a vocabulary people agree on

Running models over the archive was the easy part. Agreeing what the labels should be took far longer. The approach that worked:

  • Seed the concept scheme from the terms cataloguers already used most, then merge duplicates as alternative labels rather than deleting them, so old records still match.
  • Use SKOS mapping properties to link local concepts to external vocabularies where they existed, instead of copying those vocabularies wholesale1.
  • Never let the pipeline create a concept. A model suggestion with no match becomes a proposal for the taxonomy owner, with example items attached.
  • Treat people and sensitive topics as always-reviewed fields, whatever the model's confidence.

The taxonomy design choices are discussed further in SKOS vs OWL for enterprise taxonomies.

A controlled vocabulary turns a model from an author into an assistant. The model can only choose from concepts people have agreed, and everything else becomes a question for a person.

How the engagement ran

Pipeline
  1. Derive and enrich a batch
  2. Map to concepts and score
  3. Publish approved records
Cataloguer
  1. Work the review queue
  2. Accept, correct or reject
  3. Flag missing concepts
Taxonomy owner
  1. Review concept proposals
  2. Version the scheme
  3. Trigger re-mapping
Three roles, one loop: reviewer corrections and new concepts flow back into the next batch.
Phase 1Discover
  • Collection and rights inventory
  • Search pain points
  • Seed vocabulary
Phase 2Pilot collection
  • End-to-end pipeline
  • Review queue design
  • Evaluation set
Phase 3Harden
  • Confidence thresholds
  • Provenance and versioning
  • Hybrid search
Phase 4Scale and hand off
  • Further collections
  • Taxonomy governance
  • Runbooks and training
Phased delivery: one collection end to end before widening the backlog.

Thresholds were set against a hand-labelled evaluation set drawn from the pilot collection, not against the model's own sense of certainty. The method is in LLM evaluation sets that predict production.

Key decisions and trade-offs

DecisionAlternativeWhy
SKOS concept schemeFree-text model tagsConsistent labels, synonyms and hierarchy; reusable outside the pipeline
Batch enrichmentReal-time tagging on viewPredictable cost, reproducible runs and reviewable outputs
Structured model outputsProse descriptions parsed laterFields validate on arrival; failures are visible, not silent
Review by confidence and sensitivityReview everything, or nothingPeople spend time where the model is weakest or the risk is highest
Hybrid keyword and vector searchVector search onlyEditors still need exact names, dates and identifiers

What I'd do again, and differently

Again: put the vocabulary at the centre and make provenance a field, not a log file. Differently: involve the cataloguers in designing the review screen from the first week. The speed and quality of review decided the throughput of the whole system, far more than the model did.

If you're planning something similar, the ontology and knowledge graph page describes how I run these engagements, or analyse your challenge and bring the result to a call.

References
  1. 1
  2. 2
    DCMI Metadata TermsDublin Core Metadata Initiative
  3. 3
  4. 4
FAQ

Common questions

Can a language model tag an archive on its own?

It can suggest tags quickly, but unreviewed free-text tags drift and duplicate. Mapping suggestions onto a controlled vocabulary and routing low-confidence items to people keeps the catalogue consistent and trustworthy.

Why use SKOS for a media taxonomy?

SKOS is a W3C standard for thesauri and taxonomies. It gives preferred and alternative labels, broader and narrower relationships and mappings to external vocabularies, in a form that tools and search engines can reuse.

Do you still need keyword search if you have embeddings?

Yes. Embeddings find items by meaning, but editors still search for exact names, dates and identifiers. A hybrid of filtered keyword search and vector similarity serves both needs.

Keep reading

Related

Open to advisory, fractional CTO & select builds

Let's talk about what you're building.

The fastest route is a free 30-minute call. Prefer to write? Send a message and I'll reply personally within two business days.

Start a conversation

How would you like to reach me?

Book a 30-min callFastest. Pick any open slot on my calendar.→ Write in GmailOpens a pre-filled draft in your browser.→ Use my email appOutlook, Apple Mail or your default client.→

I reply personally within two business days. Time zones from the Americas and Europe to the Middle East and Asia-Pacific.