ref-check
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chineseref-check — careful reference verification
ref-check — 严谨的参考文献核验
The iron rule, and why it exists
铁律,以及它存在的原因
NEVER guess or trust-from-memory an arXiv ID, journal reference, year,
author list, page range, or title. Every factual field is verified against a
fetched authoritative record before an entry is added, approved, or "fixed."
Training-data recall of bibliographic details is a hypothesis to verify,
never a source. If a field cannot be verified after trying at least two
sources, it is FLAGGED, not silently kept or invented.
The rule is this severe because bibliographies are not copied from sources —
they are copied from other bibliographies. An error, once printed, outlives
its origin: the next hundred authors copy the entry, not the paper, and the
error acquires the authority of repetition. A language model trained on that
literature has learned the majority text, which for a propagated error IS the
error — model recall of a reference reproduces the folklore version with full
confidence. This is why "it looks right" is worthless here, and why an entry
that half the field cites one way can still be wrong. Verification means
fetching the record closest to the publisher and comparing field by field;
nothing else counts.
A second consequence: an entry that a model drafted from memory is not a
degraded citation — it is a fabrication with correct formatting. The observed
pattern (see traps below) is a real identifier carrying invented co-authors,
a paraphrased title, or another paper's journal block. Plausibility is the
failure mode, not the reassurance.
绝不猜测,也不要凭记忆相信 arXiv ID、期刊参考信息、年份、
作者列表、页码范围或标题。 在条目被添加、批准或“修复”之前,
每个事实字段都必须与实际获取的权威记录进行核验。对书目细节的
训练数据记忆只是待核验的假设,绝不是来源。如果尝试至少两个
来源后仍无法核验某个字段,就将其标记为 FLAGGED,而不是默默保留
或凭空编造。
之所以如此严格,是因为书目不是从来源中抄录的——
而是从其他书目中抄录的。错误一旦被印刷出来,就会比其源头活得更久:
接下来的上百位作者会复制这个条目,而不是论文本身,于是错误便因反复
引用而获得了权威性。在该文献上训练的语言模型已经学会了其中的多数文本,
而对于一个被传播开来的错误,这些多数文本就是错误本身——模型凭记忆
复现参考文献时,会满怀信心地重现那个“流传版本”。这就是为什么
“看起来没问题”在这里毫无价值,也是为什么一个被半个领域都按某种方式
引用的条目仍然可能是错的。核验意味着获取最接近出版方的记录并逐字段
比对;除此之外的任何依据都不算数。
由此还有第二个后果:模型凭记忆起草的条目并不是一条质量降级的引用——
它是格式正确却虚构出来的内容。观察到的模式(见下方的陷阱)往往是:
真实存在的标识符却搭配了虚构的共同作者、改写过的标题,或另一篇论文的
期刊信息块。看似合理性正是失效模式,而不是让人放心的理由。
Authoritative sources, by literature
权威来源,按文献类型划分
The universal spine is CrossRef / the publisher's DOI landing page —
canonical journal, volume, pages, year for anything with a DOI. Around it,
use the registry native to the literature:
- INSPIRE-HEP (physics/hep) — fetch BibTeX directly:
(URL-encode
https://inspirehep.net/api/literature?sort=mostrecent&size=1&q=arxiv%3A<ID>&format=bibtexas:; old-style IDs URL-encode the slash:%3A). Cross-check the arXiv abs page.q=arxiv%3Ahep-ph%2F<YYMMNNN> - arXiv abs page () — title, full author list, journal-ref line. v1 titles sometimes differ from the published title; the published title wins when the entry cites the journal.
https://arxiv.org/abs/<ID> - CrossRef / publisher DOI page — the arbiter for journal fields.
- zbMATH / MathSciNet / Project Euclid / numdam — mathematics.
- ADS — astronomy; PubMed/PMC — life sciences; DBLP — computer science (conference/proceedings metadata that CrossRef often garbles).
- Zenodo / the software's own CITATION file — software and datasets.
- Gallica / archive.org / WorldCat / publisher record — classical books and pre-DOI literature.
Search aggregators (Google Scholar, Semantic Scholar) are for FINDING a
work, never for verifying it. They merge records, inherit upstream errors,
and invent metadata for scraped PDFs. Once found, verify against the native
registry or publisher.
Sleep ~2s between external calls; try a second source before declaring
anything unverifiable. When two authoritative sources disagree, the one
closest to the publisher wins for journal fields, and the disagreement itself
goes in the audit log — it usually marks a folklore error in the losing
source.
通用主干是 CrossRef / 出版方的 DOI 落地页——对于任何带 DOI 的
内容,它提供规范化的期刊、卷、页码和年份。以此为核心,使用该类文献
原生的登记系统:
- INSPIRE-HEP(physics/hep)——直接获取 BibTeX:
(将
https://inspirehep.net/api/literature?sort=mostrecent&size=1&q=arxiv%3A<ID>&format=bibtexURL 编码为:;旧式 ID 应将斜杠 URL 编码:%3A)。 同时交叉核对 arXiv abs 页面。q=arxiv%3Ahep-ph%2F<YYMMNNN> - arXiv abs 页面()——标题、完整作者 列表和 journal-ref 行。v1 标题有时会与正式发表后的标题不同; 当条目引用期刊版本时,以正式发表的标题为准。
https://arxiv.org/abs/<ID> - CrossRef / 出版方 DOI 页面——期刊字段的最终裁决依据。
- zbMATH / MathSciNet / Project Euclid / numdam——数学领域。
- ADS——天文学;PubMed/PMC——生命科学;DBLP——计算机科学 (CrossRef 经常会破坏会议或论文集的元数据)。
- Zenodo / 软件自带的 CITATION 文件——软件和数据集。
- Gallica / archive.org / WorldCat / 出版方记录——古典图书和 DOI 出现以前的文献。
搜索聚合器(Google Scholar、Semantic Scholar)仅用于查找作品,
绝不用于核验。 它们会合并记录、继承上游错误,并为抓取的 PDF
编造元数据。找到作品后,应在原生登记系统或出版方处进行核验。
外部调用之间暂停约 2 秒;在宣布任何内容无法核验前,先尝试第二个来源。
当两个权威来源不一致时,就期刊字段而言,以最接近出版方的来源为准,
并且必须把这一分歧记入审计日志——它通常表明落败来源中存在一个
流传错误。
Field-by-field comparison (semantic, not textual)
逐字段比较(基于语义,而非文本)
- Authors — every author present, correct order, correct spelling
including diacritics. TeX escapes vs unicode (=
{\'e}) are equal. A missing, extra, or misspelled author = FIX. Watch homonyms: same-surname collaborators are routinely merged into one person, and given names swapped between them.é - Title — word-level. Brace/capitalization/TeX-markup differences = formatting. Wrong, missing, or extra words = FIX.
- Journal, volume, number, pages, year — exact. Standard abbreviation vs full journal name = MINOR. Wrong volume/pages/year = FIX. Translated-journal pairs (Russ. Math. Surv./Uspekhi Mat. Nauk; Sov. Phys. JETP/ZhETF): either is fine if internally consistent; a mismatched year between the pair = FIX.
- arXiv ID, DOI — exact, and the DOI must resolve to the right work: fetch the landing page and compare its title. A syntactically valid DOI pointing at an erratum, a comment, or a different paper by the same group is a FIX that no string comparison catches.
- Entry type and roles — chapters in collections credit the chapter authors, with editors as editors; proceedings carry the conference year vs publication year distinction explicitly.
Classify each entry: OK (every factual field compared against a fetched
record and matching) · MINOR (formatting only, no action) · FIX (any
factual discrepancy — record + source URL) ·
UNVERIFIABLE (state exactly what was tried) · INTERNAL
(self-references/companion notes — list, exempt).
field: ours -> authoritativeNever mark OK without having actually fetched and compared. "Looks right" is
not a verification.
- 作者——每位作者都应存在,顺序和拼写均正确,
包括变音符号。TeX 转义与 Unicode(=
{\'e})视为等同。 缺失、多出或拼错作者 = FIX。留意同名者:同姓合作者经常被错误合并 为一人,名字也可能在他们之间互换。é - 标题——逐词比较。花括号、大小写或 TeX 标记差异 = 格式问题。 错误、缺失或多出的词 = FIX。
- 期刊、卷、期、页码、年份——必须完全一致。标准缩写与 完整期刊名不同 = MINOR。错误的卷、页码或年份 = FIX。翻译期刊的 配对版本(Russ. Math. Surv./Uspekhi Mat. Nauk;Sov. Phys. JETP/ZhETF): 只要内部一致,任一版本都可以;配对版本之间的年份不匹配 = FIX。
- arXiv ID、DOI——必须完全准确,且 DOI 必须解析到正确作品: 获取其落地页并比较标题。语法有效的 DOI 若指向勘误、评论或同一团队的 另一篇论文,也属于 FIX;仅比较字符串无法发现这种问题。
- 条目类型和角色——文集章节应署名章节作者,编辑则标为编辑; 会议论文集须明确区分会议年份与出版年份。
将每个条目归类为:OK(每个事实字段均已与获取到的记录比较且一致)·
MINOR(仅有格式差异,无需处理)· FIX(存在任何事实性差异——
记录 + 来源 URL)· UNVERIFIABLE
(准确说明尝试过的所有内容)· INTERNAL(自引或配套说明——列出并豁免)。
field: ours -> authoritative绝不在未实际获取并比较的情况下标记为 OK。“看起来没问题”
不算核验。
Folklore traps (all observed in practice)
流传错误陷阱(均为实际观察到的)
Each of these is a measured failure mode from real bibliography audits, not a
hypothetical. They are the classes that survive casual checking because the
entry looks healthy.
- Wrong years that circulate — a result becomes attached to the wrong year and the whole literature repeats it: e.g. a landmark irrationality theorem published in 2001 that half the citing literature dates to 2004 — the journal record, not the majority citation, is the evidence.
- Truncated author lists — the field remembers the famous pair and drops the rest (e.g. a four-author paper that the field routinely cites by its two most famous authors). Verify the FULL list even when the short form is universal.
- Merged authors — two distinct people fused into one: same surname, averaged initials, one entry where the record shows two names. The inverse also occurs — one author split into two by an initials variant.
- Phantom page numbers — a plausible page range attached to a paper that the journal published under an article number, or a first page copied from a different paper in the same issue. Article-number journals take the article number, not an invented range.
- Mislabeled keys — the entry under a key can be a different paper than the key name suggests (observed: a key naming one author trio holding a paper by a different trio). The key is part of the audit: check that key ≈ actual authors.
- Announcement vs final version — cite the cleanly citable version (book/journal), not a short announcement note, and say which in a comment.
- Preprint v1 title drift — published title wins.
- Prose initials vs keys — before renaming a key, grep every usage AND read the surrounding prose: initials in prose may already refer to the correct authors even when the key is wrong.
\cite - Another paper's journal block — an entry can carry the correct preprint ID/title with the journal/volume/pages/year of a different paper by the same authors (observed in practice). Verify the journal ref against the preprint server's own journal-ref line or CrossRef, not just "a" record by those authors.
- Descriptive phrase as title — entries written from memory often carry a paraphrase of the paper's subject instead of its actual title (observed five times in a single audit). Titles must be copied from the fetched record, never composed.
- Invented co-authors / wrong given names on real papers — LLM-drafted entries can attach plausible-but-wrong names to a correct identifier (observed: wrong given names on 3 entries, an extra co-author on 1, in one audit). Check every name against the record even when the ID resolves.
- Entirely wrong paper under a plausible key — key, note, and citing prose describe paper X while the entry's fields are paper Y (observed: an entry on one subject sitting under a key naming a different subject entirely). When key/note/prose disagree with the entry, read the citing prose to determine intent before fixing — the correct fix may be a new entry, not a field repair.
- A "verified" pass is not immune — one same-day verified addition carried wrong volume/pages from a hasty read of the abstract page (an off-by-one volume number). Volume/pages come from the journal-ref line or CrossRef, not from adjacent metadata on a page that lists several versions.
以下每一项都是真实书目审计中测得的失效模式,不是假想情况。
它们之所以能挺过随意检查,是因为条目看起来很健康。
- 被广泛传播的错误年份——某项成果会被挂到错误年份上,随后整个 文献领域都会重复这一错误:例如,一篇于 2001 年发表的重要 无理性定理,半数引用文献却将其定为 2004 年——证据应当是期刊记录, 而不是多数引用。
- 作者列表被截断——领域只记得那对知名作者,便丢掉其余作者 (例如,一篇四作者论文在领域内常被缩写成两位最知名作者)。即使短格式 引用已成惯例,也必须核验完整列表。
- 作者被合并——两个不同的人被糅合成一人:姓氏相同、名字缩写取平均, 于是一条记录中只出现一个人,而原始记录实际有两人。反过来也可能发生: 一位作者因名字缩写变体而被拆成两人。
- 幽灵页码——论文实际按文章编号发表,却被附上一个看似合理的页码范围, 或从同一期的另一篇论文抄来了首页。采用文章编号的期刊应填写文章编号, 而不是编造页码范围。
- 错误标注的 key——某个 key 下的条目可能是与 key 名称暗示不同的 另一篇论文(实际观察到:key 以一组作者三人命名,条目却是另一组 三人作者的论文)。key 也是审计的一部分:检查 key ≈ 实际作者。
- 公告版与最终版——应引用可规范引用的版本(图书或期刊),而不是 简短的公告说明,并在注释中说明使用的是哪一个。
- 预印本 v1 标题漂移——以正式发表的标题为准。
- 正文中的姓名首字母缩写与 key——重命名 key 前,应 grep 所有
用法,并阅读上下文正文:正文中的姓名首字母缩写可能已经指向 正确作者,即便 key 本身有误。
\cite - 另一篇论文的期刊信息块——一条目可能带有正确的预印本 ID 或标题, 却配上同一批作者的另一篇论文的期刊、卷、页码和年份(实际中已观察到)。 应针对预印本服务器自己的 journal-ref 行或 CrossRef 核验期刊参考信息, 而不只是核对“这些作者的某条记录”。
- 把描述性短语当作标题——凭记忆编写的条目常常使用论文主题的转述, 而非真实标题(在一次审计中实际观察到五次)。标题必须从获取到的记录中 复制,绝不能自行拼写。
- 真实论文中的虚构共同作者或错误名字——LLM 起草的条目可能给正确的 标识符附上看似合理却错误的名字(一次审计中实际观察到:3 条记录的名字 有误,1 条多出共同作者)。即使 ID 能正确解析,也要对照记录核验每个姓名。
- 看似合理的 key 下放着完全错误的论文——key、note 和引用正文都描述 论文 X,条目的字段却属于论文 Y(实际观察到:一条讨论某主题的记录, 其 key 指向的却是完全不同的主题)。当 key、note、正文与条目不一致时, 应阅读引用正文以确定意图,再决定如何修复——正确做法可能是新建条目, 而不是修复某个字段。
- “已核验”流程也不免疫——某次当天完成的核验新增条目因匆忙阅读 摘要页面而带入了错误的卷或页码(卷号偏差一)。卷和页码应来自 journal-ref 行或 CrossRef,而不是页面中与多个版本相邻的元数据。
The claim check — does the cited work say what the sentence says?
主张核验——被引作品是否真的支持句子中的说法?
A bibliography can be field-perfect and still lie, because the citation's
real payload is the sentence attached to it. A full ref-check audits both
layers. For every citation that carries factual weight — "X proved Y [12]", a
number with a bracket after it, a definition attributed to a source, a
"first shown in" — do this:
- Open the work. Full text where available; the preprint version otherwise (note the version skew). The abstract alone verifies only abstract-level claims.
- Locate the claim: the theorem number, equation, table, or page where the cited statement actually appears. Record the locator in the audit log — a claim check without a locator is an impression, not a check.
- Verdict per claim: SUPPORTED (locator recorded) · DRIFTED (the claim is true but lives in a different work — often an earlier or later paper in the same series; fix the citation, not the prose) · INFLATED (the work proves a special case or a weaker form than the sentence asserts) · ABSENT (nothing in the work matches) · CONTRADICTED (the work says the opposite — it happens, usually via a sign, a convention, or a negation lost in paraphrase).
- Report, never silently rewrite. For DRIFTED the fix is the citation; for INFLATED/ABSENT/CONTRADICTED the fix may be the prose, and that is the author's call. A checker who "fixes" meaning has exceeded the mandate.
The claim-layer traps mirror the field-layer ones: secondhand laundering
(the citation and its misreading were both copied from an intermediary paper
that itself never checked); review-article telephone (a survey's
compressed paraphrase gets cited as if it were the original's claim);
attribution creep ("first proved by" pointing at the famous paper when
the record shows an earlier, obscurer proof); convention mismatch (the
cited formula is right in the source's normalization and wrong in the citing
paper's). None of these are visible from the bibliography file; they only
fall to actually opening the work.
即便书目每个字段都完全正确,它仍可能撒谎,因为引用的真正承载内容
是其所附的句子。完整的 ref-check 必须同时审计这两个层面。对于每个具有
事实分量的引用——“X 证明了 Y [12]”、带方括号引用的数字、归属于某来源的
定义,或“最早由……证明”——执行以下步骤:
- 打开该作品。 全文可用时使用全文,否则使用预印本 (并注明版本偏差)。仅凭摘要只能核验摘要层面的主张。
- 定位主张:找到被引陈述实际出现的定理编号、公式、表格或页面。 将定位信息记入审计日志——没有定位信息的主张核验只是一种印象, 而不是核验。
- 逐项主张给出结论:SUPPORTED(已记录定位信息)· DRIFTED (主张为真,但实际位于另一部作品中——通常是该系列中更早或更晚的 论文;应修复引用,而不是正文)· INFLATED(作品只证明了特殊情形或 比句子所断言更弱的形式)· ABSENT(作品中没有任何匹配内容)· CONTRADICTED(作品给出了相反说法——通常源于符号、约定或 在转述中丢失的否定)。
- 只报告,绝不默默改写。 对于 DRIFTED,修复对象是引用;对于 INFLATED/ABSENT/CONTRADICTED,修复对象可能是正文,但这应由作者决定。 擅自“修复”语义已超出本流程的授权范围。
主张层面的陷阱与字段层面的陷阱如出一辙:二手洗白
(引用及其误读都复制自一篇本身也从未核验过的中间论文);
综述文章中的传话游戏(一篇综述压缩后的转述被当作原始主张来引用);
归属漂移(“最早由”指向一篇著名论文,而记录显示此前已有一种更冷门
的证明);约定不匹配(被引公式在来源的归一化方式下是正确的,
在引用论文中却是不正确的)。这些都无法从书目文件中看出来;
只有真正打开作品才能发现。
Process
流程
Adding entries (small batches)
添加条目(小批量)
Verify each work per the rules above; match the house entry style of the
target .bib; add under a dated comment block
() with a per-entry
comment; run a duplicate-key check
( must be empty); never modify
existing entries in the same pass. Also run a duplicate-work check: the
same paper can already sit in the file under a different key, and two keys
for one work will bite at citation time.
%% ----- <purpose> (added <date>, verified)% VERIFIED <date> <source-URL>grep '^@' | extract keys | sort | uniq -d按照上述规则核验每项作品;匹配目标 .bib 的内部条目样式;在带日期的
注释块
()下添加条目,并为每个
条目添加 注释;运行重复 key 检查
( 必须无输出);同一轮中绝不
修改已有条目。同时还要运行重复作品检查:同一篇论文可能已经以
不同 key 存在于文件中,而指向同一作品的两个 key 会在引用时引发问题。
%% ----- <purpose> (added <date>, verified)% VERIFIED <date> <source-URL>grep '^@' | extract keys | sort | uniq -dFull-file audit (report-then-fix pattern)
整文件审计(先报告、后修复)
- Chunk the .bib by entry boundaries (~15–20 entries per verifier;
compute line ranges from ).
grep -n '^@' - Verify in parallel, REPORT-ONLY — if your agent framework supports parallel subagents, fan the chunks out; verifiers never edit the .bib (concurrent writes corrupt it). Each returns structured per-entry verdicts with verbatim diffs and source URLs.
- Fix serially — one pass (human-reviewed, or a single agent working from the approved diff list) applies FIX items only, keys unchanged unless a rename is explicitly approved.
- Key renames are load-bearing — grep all usages across the tex tree, update them atomically with the .bib, check prose initials (see traps).
\cite - Rebuild — full compile-plus-bibliography cycle (e.g. pdflatex+bibtex); zero errors, zero missing/undefined citations is the exit gate. A clean exit code is not the gate — read the log for warnings, and confirm the rendered bibliography actually carries the fixes (stale .bbl files survive successful-looking builds).
- Record — stamp fixed entries ; log the audit (date, counts by verdict, fixes applied) wherever the project tracks provenance. The log is what lets the next audit skip re-fetching two hundred already-verified records — an unstamped verification evaporates.
% VERIFIED <date> <source>
- 按条目边界分块 .bib,每名核验者约 15–20 条;
根据 计算行范围。
grep -n '^@' - 并行核验,仅报告——如果 Agent 框架支持并行子 Agent, 可将各分块分派出去;核验者绝不编辑 .bib(并发写入会损坏文件)。 每个分块返回结构化的逐条目结论,并附原文差异和来源 URL。
- 串行修复——通过一次流程应用仅包含 FIX 项的修改(由人工审核, 或由单个 Agent 根据已批准的差异列表执行),除非明确批准重命名, 否则 key 保持不变。
- key 重命名至关重要——在整棵 tex 目录中 grep 所有 用法, 将它们与 .bib 原子化地一并更新,并检查正文中的姓名首字母缩写 (见陷阱部分)。
\cite - 重新构建——执行完整的编译加参考文献流程(例如 pdflatex+bibtex);退出条件是零错误、零缺失或未定义引用。仅仅 成功退出并不是门槛——应阅读日志中的警告,并确认最终呈现的参考文献 确实包含修复(陈旧的 .bbl 文件可能在看似成功的构建后残留)。
- 记录——为已修复条目加盖 标记; 在项目跟踪溯源信息的位置记录审计日志(日期、各结论数量、已应用 的修复)。审计日志能让下一次审计跳过重新获取两百条已核验记录; 没有留存标记的核验会随之消失。
% VERIFIED <date> <source>
Exit checklist
退出检查清单
- Every entry has a verdict; zero entries skipped.
- Every FIX applied cites its source URL; every UNVERIFIABLE is flagged to the user, not silently retained.
- Every DOI resolved and its landing page compared, not just string-checked.
- Claim check done on every load-bearing citation, with locators (theorem/equation/page) recorded; DRIFTED/INFLATED/ABSENT/CONTRADICTED verdicts reported to the author, prose untouched.
- Duplicate-key and duplicate-work checks clean; all keys in the tex tree resolve (bibliography log has no missing-entry warnings).
\cite - Full rebuild passes with zero errors and zero undefined citations, and the rendered output carries the fixes.
- Audit logged with date, counts by verdict, and fixes applied.
Acknowledgment. This procedure leans entirely on open bibliographic
infrastructure — INSPIRE-HEP, arXiv, Crossref, zbMATH Open, MathSciNet, NASA
ADS, PubMed and DBLP; we are grateful to the people who maintain them. Work that
relied on ADS should carry the acknowledgment its FAQ asks for ("This research
has made use of the Astrophysics Data System, funded by NASA under Cooperative
Agreement 80NSSC21M00561").
- 每个条目都有结论;没有任何条目被跳过。
- 每项 FIX 均附有来源 URL;每项 UNVERIFIABLE 都已向用户标记, 而非默默保留。
- 每个 DOI 均已解析,并已比较其落地页,而非只做字符串检查。
- 每条具有事实分量的引用均已完成主张核验,并记录了定位信息 (定理、公式或页面);DRIFTED/INFLATED/ABSENT/CONTRADICTED 结论均已报告给作者,正文未被改动。
- 重复 key 和重复作品检查均无问题;tex 目录中的所有 key 均可解析(参考文献日志中没有 missing-entry 警告)。
\cite - 完整重新构建通过,零错误、零未定义引用,且最终输出包含这些修复。
- 审计日志包含日期、各结论数量和已应用的修复。
致谢。本流程完全依赖开放的文献基础设施——INSPIRE-HEP、arXiv、
Crossref、zbMATH Open、MathSciNet、NASA ADS、PubMed 和 DBLP;
我们感谢维护这些资源的人们。依赖 ADS 的工作应按照其 FAQ 的要求附上
致谢(“This research has made use of the Astrophysics Data System,
funded by NASA under Cooperative Agreement 80NSSC21M00561”)。