Caveats¶
Session transcripts¶
- All captions are Vimeo AI-generated English. Expect misheard names ("Foersch" → "Firsch" / "Forster", "Bunne" → "Bonner") and technical terms ("scGPT" → "SC-GPT", "AACR" → "ACR"). Find/replace before quoting.
- Sub-talks share the parent video. To extract just one sub-talk from a multi-speaker session, time-slice the parent VTT. See the
transcripts/agentic-ai/at02-per-speaker/directory in the repo for a worked example. - VTT signatures in raw Vimeo configs have expired (signed URLs valid ~6 hours). Re-extracting a session means re-navigating the live session page, not re-using the saved JSON.
Poster abstracts¶
- HTML entities decoded, tags stripped. Any markup in the original abstract body is flattened. Tables and figures are not preserved — the AACR Abstracts Online system doesn't include them in the API response anyway.
- "Activity" field distinguishes
Abstract SubmissionfromLate Breaking and Clinical Trials. Both are kept; other activities (Invited Speaker,Chairperson, etc.) are session-role records, not posters, and are filtered out. PlayerUrlrequired. Posters without a Vimeo poster-viewer link are filtered out (typically ~75-80% of raw activity-filtered records have PlayerUrl).- Token signatures in
PlayerUrlmay expire in hours. PDFs are not downloaded by default; if you want a specific poster's PDF, re-extract the PlayerUrl from a fresh session or grab it from the embedded JSON while the original session is still authenticated.
Poster-corpus construction¶
- Overlap handled by duplication, not symlinks. A poster appearing in multiple topic folders has its
.txtfile duplicated (~4 KB × ~534 duplicates = ~2 MB total) so each folder is self-contained for ripgrep. The JSONL-levelIdis the dedup key if you union across topics. - Keyword union is OR-based when unquoted. The AACR Abstracts Online search returns posters matching any word in a multi-word query unless the query is phrase-quoted. All multi-word terms in the harvest were phrase-quoted (
"virtual cell"notvirtual cell). @AllPosters=Yestoken + text search returns 0. The filter/text combination is broken in the API; filter downstream onActivity+PlayerUrlinstead.
Clinical Trials — session transcripts deferred¶
The Clinical Trials topic has no session transcripts in this corpus. Rationale:
- CT minisymposium talks at AACR are typically authors reading their own poster abstracts verbatim, then taking questions.
- Adding ~15 × 90 min = 22+ hours of auto-captioned video transcript would duplicate the poster corpus substantively.
- Extraction requires Fastly CAPTCHA handling + per-session Vimeo config capture; the Chrome download flow was blocked during the harvest session.
25 CT parent sessions are identified by ID in the repo's transcripts/clinical-trials/README.md. Each can be extracted on demand — each session costs ~5-10 minutes of live interactive work.
Known discrepancies¶
- The 38-file scso reconciliation: early in corpus construction, the slugification algorithm for
.txtfilenames differed slightly from the final version. This caused 38 duplicate.txtfiles (same presentation number, old slug + new slug) insingle-cell-spatial-omics/posters/abstracts/. These were deleted and the directory regenerated fresh from the JSONL in the initial commit. Count is now exactly 1,015.txtfiles matching 1,015 JSONL records. - Character handling:
<and>in the JSONL may represent stripped-tag remnants (now gone) or actual mathematical/scientific notation (e.g.,≤→≤→≤). TheDOMParser-based decode handles these correctly, but very old abstracts with HTML-within-entities may need manual review.
Intellectual property¶
- Poster abstracts are © their authors. This corpus is for personal research / analysis only. Any republication should be via the original AACR attribution and conference identifiers (
ControlNumber,PresentationNumber). - Session transcripts are auto-captions of proprietary video recordings. Same caveat.
- The
aacr-2026GitHub repo is private because of this — do not share the URL publicly.