This interactive analysis page was produced with Claude coding assistant. All content has been checked by a human reviewer. Errors or inconsistencies can be reported to issa@kcl.ac.uk
Data to drive this page is generated by make_ws2_data.py. It is re-run at each stage; the page is not edited between runs.
NWFA shared 400 video files in two deliberately different batches. One is a broad, richly catalogued cross-section of the main collection. The other is a near-undescribed television archive whose only content clue is known to be unreliable.
Mapping onto the design of FrameSense, we organise the collections hierarchically: archive → collection → video file → programme → segment. The bands below show what the catalogue establishes on its own at each level, before any processing.
Band width = share of the 400 records. The working sample row shows one square per video in the run (solid = annotated by hand, hatched = not yet); at full scale it shows only the annotated ones and says how many they are. Hover for detail. Note that below video file the catalogue stops being able to help: Channel M has a label it cannot vouch for, and Film & Video has a prose synopsis with no timecodes in it.
NWFA has flagged that a printing error on the barcodes means the label information in the Heritage 2022 metadata does not match up with the file content.
The label is the only content description these 200 files have. If it cannot be trusted, the files are effectively unreachable: you cannot search them, select them for a compilation, or answer an enquiry about them. Before any of the segmentation work matters, this is the practical problem.
A description generated from the pictures and sound does not depend on the barcode at all. That is what makes the label testable: score each tape's description against the archive's own label pool, and the fit — or its absence — is a per-tape result that adds up to a measurement across the batch.
For each processed Channel M tape, the pipeline's description of it — written from the pictures and sound; the pipeline never saw the label — is embedded together with the archive's full H22 label list (around 3,000 labels, not just this batch's 200) using a sentence-embedding model (all-MiniLM-L6-v2). The five nearest labels are kept, and two numbers come out per tape: how similar the best candidate is (%match1), and how far it clears the runner-up (simDif). The spreadsheet colours each row from those two:
| File | Best candidate label | Similarity | Margin | Scored | NWFA verdict |
|---|
—
The five tapes NWFA has judged independently check the heuristic. None of the four whose labels do not match the content — all five annotators said no on each — scores green: two find no candidate at all, and two top out on a pool of near-identical "Channel M News" labels, tied with zero margin. The contested tape does score green: its best candidate is a 4 Manchester label — the same programme its own spine label names, just not that exact one.
Because the candidates come from the whole H22 label list rather than this batch's 200 labels, a confident match can point at a label that is currently sitting on a different tape. That is the re-pairing opportunity: instead of correcting labels one at a time, the machine descriptions could be used to match labels to files across the batch.
| Task | Channel M | Film & Video |
|---|---|---|
| Outer segmentation | Nothing. No duration, no programme count, no content description. The label sometimes names more than one item, but it cannot be relied on to name even one correctly. | An assumption. One catalogue record per film, so the working assumption is one file = one programme — but compilation reels break it, and our sample already contains one that does. |
| Inner segmentation | Nothing. | Prose only. The synopsis describes the film shot by shot in words at the median, with no timecodes anywhere, so it can support a judgement about what the parts are but not where they are. |
| Descriptive metadata | Nothing beyond the label. | Strong. Year, colour, sound, duration, producer, place and index terms on essentially every record. |
Separators are detected first, the file is cut on them, and each resulting clip is then described on its own.
misc3): the description fields · pass 2 (secondpass1): programme flag, bands, environment| Model | RedHatAI/Qwen3.8-27B-INT4 |
| Type | Open-weights vision-language model, quantised build |
| Hosting | KCL CREATE HPC cluster — archive video never leaves KCL infrastructure |
| Settings | seed 1234 · reasoning_effort xhigh · video_tokens 64k · max_tokens 30k · max_fps 1 (clips) / 2 (separators) |
| Transcription | nvidia/canary-1b-v2 |
| Prompt | misc3 (pass 1) · secondpass1 (pass 2) |
misc3)The attached video is a single programme from a very diverse collection at a national screen archive. Sometimes a professional programme can contain raw unedited rushes with outtakes or retakes. Returns a json dictionary with the following keys: * year (the year the programme was made, only if specified and certain), * title (the title of the programme, only if specified and certain), * places (unique toponyms where the programme takes place; only if certain and mentioned on a sign or in subtitles), * segments (list of main chapters or major segments, for each a `title` and a `starting` timecode), * summary (one very concise sentence summarising the content of the programme), * synopsis (short paragraph summarising the content of the programme; don't mention possible visual transitions at the start), * colour (either: black-and-white or colour or sepia or colour-and-black-and-white), * category (one or more values from: Travel and transportation; Home and family; Sport and leisure; Landscape and buildings; Industry and occupations; Wartime; Culture and traditions; Health, Welfare and Education; No idea), * category2 (one or more values from: Cinema Newsreel; Local Cinema Topicals; Promotional/Advertising; Educational/Training; Scientific; Factual Record; Fiction; Home Movies; Special Interest; Amateur), * keywords (10 key topical or thematic tags for this programme; avoid overly specific tags like place names, people or objects), * credits (if specified; use a dictionary with keys for roles and name(s) for values).
secondpass1)The attached video is a single programme from a very diverse collection at a national screen archive.
Sometimes a professional programme can contain raw unedited rushes with outtakes or retakes.
Returns a valid JSON dictionary with the following keys:
* programme ('true' if this is an actual programme with meaningful content that can be broadcast;
'false' if this is mostly visual markers like blank screen, color bars, white noise),
* bands (a list of music bands featuring in this programme, for each one its `name` and a list of
`activities` such as 'music video', 'studio performance', 'concert performance', 'interview', 'other';
[] if no band in the programme),
* environment (in two words maximum, the primary type of environment the programme takes place in,
such as `forest`, `street`, `studio`, `school`)sep1)List every full-screen separator between distinct programmes. A visual separator usually looks like SMPTE color bars, blank screen, production card, countdown leaders, static or white noise. It is always totally distinct in style from surrounding programmes, usually non-photographic and never intended for public audience. Compare with programmes on either side of the separator to confirm this. Return an empty list if the input doesn't contain any definite separator. Other screens within a programme like ending credits or chapter titles should not be reported as programme separators but may help finding/confirming nearby separators.
Fields targeted per programme. Pass 1 (misc3):
Pass 2 (secondpass1):
Across files the pipeline detected separators and proposed programmes. The detection itself looks sound. The step that turns separators into clips is producing programmes that are not programmes.
Film & Video files mostly resolve to a single programme — 182 of 198 — as the catalogue assumption predicts; the 16 that don't are compilation reels, correctly split into two to sixteen programmes. Channel M is where the structure lives: over a third of the tapes hold more than one programme, and the most complex — a Channel 4 Manchester music magazine — fragments into .
Median s, range –s. of files open with a separator, which is what you would expect from tape leader.
Median , lowest ; files fall below 95%. High coverage is good news for outer segmentation — very little of each file is being thrown away — but it says nothing about whether the cuts fall in the right places.
Proposed programmes in colour, detected separators in amber, suspected non-content clips hatched. These are the most structured file in each batch.
Hover any block for its timecode. The Channel M tape () shows the characteristic shape of this collection: a short lead-in, four long programmes — the body of a Channel 4 Manchester music magazine — then a tail of short idents and promos in which three non-content slivers sit. The Film & Video reel () is a genuine compilation: sixteen short items on one reel, each cleanly separated.
programme flag now marks most of these itself: programmes are flagged false — of them inside the heuristic's list, beyond it (plus with no second-pass data). The flag is the primary signal; the duration rule remains a cheap safety net, since short clips bounded by separators on both sides — of the here — can be dropped immediately even without the model.
types unconditionally, the model still assigns a genre to colour bars: —. Flagging rather than deleting keeps those rows auditable instead of silently disappearing from the index.Summary, synopsis, keywords, colour, types and environment come back for essentially every programme — the model will always write prose (environment names the setting in two words or fewer). Title, year and credits only appear when something on screen states them, and bands only when a band is in the picture. Note the contrast with section 1: on Channel M these are the only values that exist for any of these fields.
segment items in total; programmes came back with none, which maps closely onto the non-content clips. Timecode style is inconsistent — — — and needs normalising before the segments can be used for navigation.
places prompt — a toponym only if certain, and seen on a sign or in subtitles — has removed it since: in the full run the same footage comes back as "Calf's Head", environment "outdoor countryside", with no coastline.For the full run the prompt asks directly for NWFA's two controlled lists — the nine-term category and the ten-term category2 — so the output arrives in the archive's own language rather than as a parallel description. The question has changed from "do the two vocabularies touch?" to "how well does the machine's use of them line up with the catalogue's?"
typesOne field, two axes: category (subject) and category2 (provenance — how and why the film was made). Eighteen of the nineteen terms came back; Scientific never did.
categoryChannel M was never catalogued, so its programmes have no catalogue terms to agree with — the machine's terms are all they have.
category, the machine's terms overlap it — most often on Sport and leisure, Culture and traditions and Travel. Term for term the two agree exactly on of the ; on the machine covers everything the catalogue says, usually with additions — it is generous, not precise. The lopsided term is Culture and traditions, added by the machine on 39 files against 7 the other way round.The second list — category2, the Professional and Amateur sub-categories — is where the mapping gets harder: on raw labels only of films share a sub-category with the catalogue. Part of the gap is a naming difference: the catalogue files its amateur material under Special Interest ( films) where the machine says Amateur or Home Movies ( films), and reading those labels as the same term lifts the overlap to . The rest is genuine disagreement about which film gets which sub-category — both sides reach for Factual Record and Local Cinema Topicals a great deal, on different films.
What the full-run prompt now asks for, and how each NWFA axis performed against the catalogue.
| NWFA axis | Terms | What the prompt now asks for | How it performed |
|---|---|---|---|
Subjectcategory | 9 terms: Sport and leisure, Wartime, Culture and traditions, Industry and occupations, Travel and transportation, Landscape and buildings, Health/Welfare/Education, Home and family, No idea | Asked for directly, multi-valued (pass 1) | of films share ≥1 term; exact on ; the machine is generous — it covers all catalogue terms on |
Provenancecategory2 | 10 terms: Factual Record, Local Cinema Topicals, Promotional/Advertising, Cinema Newsreel, Educational/Training, Scientific, Fiction, Home Movies, Special Interest, Amateur | Asked for directly (pass 1) | of on raw labels; once Special Interest is read as Amateur/Home Movies |
| Professional / Amateur (catalogue binary) | Professional / Amateur | Not asked as a binary — signalled by category2 (Amateur, Home Movies) | Could be made an explicit field if NWFA wants it; the visual signal is strong |
| Form (no NWFA equivalent) | The old 17-term machine list (documentary, promotional, animation…) | Dropped in this run — types is now NWFA's two lists | The free keywords (10 tags) still carry form and detail |
| File | Gauge | Sound | Catalogue | File | File ÷ catalogue |
|---|
The catalogue's own footage-to-runtime relation implies different projection speeds for different gauges — — — which is consistent with silent material timed at sound speed but transferred speed-corrected. If that is the explanation, the rule is knowable and the check becomes automatic. Duration is otherwise the cheapest consistency check available at 400-scale.
Human annotation is the scarce resource in this project. The two batches need opposite things.
| Field | Asked of | Why |
|---|
category, Professional/Amateur and sub-category vocabularies is a prompt change, not a model change.Most of Channel M is rushes, and the machine is already showing us the problem: one sampled tape is a reporter re-recording the same piece-to-camera repeatedly, described by the pipeline as a comic sketch about exactly that. It is not wrong about what it sees.
Is the unit NWFA wants the story, with all takes collapsed, or the take, separated — which is what an editor reusing footage would want?
Decision: the unit of outer segmentation, before scale-up.
If the printing error is an offset — labels shifted by one, or one crate's labels transposed with another's — machine descriptions across all 200 files could let us re-pair labels to files rather than correcting them one at a time.
Five tapes is too small to tell. Does the error have a shape Nick already knows about? The batch has two crates, which is the obvious first thing to test.
Decision: whether re-pairing is in scope for the 400-run.
NWFA has three: category (nine subject terms), the Professional/Amateur split with its sub-categories, and free-text index terms at terms per record. The current prompt points at none of them.
We can target one or two well, not all three at once. And in FileMaker, do machine terms share fields with human ones or sit alongside them?
Decision: the target vocabulary and the field layout for ingest.
The two batches need opposite things. For Film & Video, year, colour, sound and title are already catalogued; asking again spends the budget on nothing. For Channel M the catalogue is empty and one tick-box per tape produces the project's headline metric.
Proposal: label-match, programme count and timecodes for Channel M; programme count, timecodes and a verdict on the machine text for Film & Video. How many tapes is that in practice?
Decision: the annotation template and its size.
of sampled films disagree, by factors up to —. The catalogue's footage-to-runtime relation implies different projection speeds by gauge, consistent with silent material timed at sound speed but transferred speed-corrected.
Nick will likely settle this in a sentence. It matters because duration is otherwise the cheapest automatic consistency check at 400-scale.
Decision: which value is authoritative, and the conversion rule.
What form does this need to take to be ingestible — a FileMaker import, a spreadsheet, something in the ISSA Inspector? And what would NWFA want to be able to show internally in November?
This shapes what gets built between now and the workshop, so it is worth the time even if it runs long.
Decision: the deliverable format for the workshop.