页码对不上时,先不要重新搜索标题,也不要急着把引文改成自己刚看到的那个页码。更稳妥的核验顺序是:先确认命中的是不是同一篇文献,用 DOI、期刊卷期、作者组合这三项把记录固定下来;然后再判断页码偏移到底是版本差异,还是引文信息被拼接或改写。把这两步的顺序做反,后面的核对通常就没有用了:你可能会拿会议版论文集的页码,去“纠正”一条本该引用期刊版的引文;或者拿综述的页码,去修改一条原始研究的出处。CiteReal 这类核验工具无论由人工复核,还是由脚本辅助处理,第一步都应该检查文献同一性,删除记录和更新字段都应放在后面。
页码、年份、作者顺序出现出入,先分两类:同一文献的不同版本,还是引文被拼接改写。判据是 DOI、期刊卷期、作者组合能否同时对上;只对上标题不算数。同一性没确认前不要改页码;确认之后,再按版本差异、字段改写、弃用三档下结论,并在记录里留下判据字段,方便回查。
先确认命中的是不是同一篇文献
标题相同是一个很弱的信号。检索页、PDF 文件名和参考文献列表里的标题经常被截断,副标题一旦被去掉,不同的工作就可能显示成同一个字符串。建议按下面的优先级逐项比对,能对上高优先级项,再考虑是否低优先级项:
- DOI:如果有 DOI 且完全一致,基本可以认定是同一篇文献;如果两边都有 DOI 但不一致,可以先按“两条不同记录”处理,除非能证明是同一工作的不同版本。
- 期刊名 + 卷 + 期 + 起页:没有 DOI 时,这是最实用的判据。卷期对但起页差很远,通常说明版本不同,或者根本不是同一篇文献。
- 作者组合:比对前三位作者的姓氏与顺序,不要只比首作者。
- 文献类型标签:Article、Review、Proceedings Paper、Preprint 这几类在页面上一般都能看到,能帮助排除同名文献。
有两个容易混淆的情形需要单独说明。综述与原始研究使用相同标题:原始研究常叫《X 方法在 Y 场景的应用》,综述则是《X 方法在 Y 场景的应用:研究进展》,标题截断之后完全一样,但作者集合通常不重叠,或者只有一个作者重叠,DOI 和文献类型也不同。处理方式是比对作者集合与文献类型,不要靠标题。会议版与期刊版使用相同标题:会议论文扩写成期刊论文时标题经常一字不改,会议版带 proceedings 字样,页码是会议论文集的连续页;期刊版有卷期和文章号或期刊页码。二者的作者可能完全一致,这时看 DOI 和页码形态,比看标题更可靠。
分清版本差异造成的页码偏移
页码不同未必是引文出错。预印本、会议版、期刊版由不同出版方排版,分页方式本来就可能变化:预印本常常每页连续编号,或者使用文章号;会议版按论文集连续编页;期刊版按卷重新编页,或者改用 e12345 这类文章号。也就是说,同一篇工作在不同版本下的页码没有可比性,拿一版的页码去核对另一版,对不上是正常现象。
判断当前页面命中的是哪个版本,可以看这几处标识:DOI 前缀和期刊名是否与引文一致;页码形态是“112-130”还是“e02134”;页面是否有 Online first、Accepted manuscript、Preprint 之类的状态标注;参考文献列表是否与引文的年份、数量大致吻合。可以先在页面上找到卷期和 DOI,再回到引文里逐项对照,不需要一上来就去查全文。
# 只做字段对照的请求骨架,按自己环境替换 DOI 与网络出口
GET https://api.crossref.org/works/{doi}
# 只读取 message 下的 volume / issue / page / author / published-print
# 用途:核对卷期页码是否为同一版;不把返回值直接回写引文
这一段的结论只有两种:页码偏移可以由版本差异解释,或者不能。能解释的,后续是按引文实际对应的版本补齐卷期与 DOI;不能解释的,直接进入下一小节的字段改写检查。
检查作者顺序与年份被改写的迹象
作者和年份出问题的模式,通常不是整条信息都错,而是某几个字段被拼接:真实的首作者加上了另一篇文章的年份,或者作者列表在中途换成了别人的名字。可以按下面的检查点逐项对照原文元数据,并记住每一项不一致大概意味着什么:
- 作者总数:数量差两位以上,多为引文被拼接或抄自二手综述,不要直接采信。
- 首作者:首作者变化优先级最高,通常直接判为可疑,需要重新定位原始记录。
- 作者顺序:仅第二、第三作者互换,可能是引用时手抄顺序出错;末尾作者增减,常见于版本更新或合著范围变化。
- 年份:相差一年,多为在线发表年与印刷年之间的差别,可以先确认后再决定写哪一个;相差两年以上,按字段错误处理。
- 副标题与文献类型:标题被截断且文献类型不符,基本可以判定引文描述的不是页面上这一条记录。
# 同一性打分示意,阈值需结合自己的文献库调整
same = 0
same += 3 if cited.doi and cited.doi == meta.doi else 0
same += 2 if cited.volume == meta.volume and cited.issue == meta.issue else 0
same += 1 if cited.first_author == meta.first_author else 0
same += 1 if cited.year == meta.year else 0
# >=4 视为同一篇;2-3 需人工查看版本;<=1 按疑似不同文献处理
给这一条引文下处置结论
核验要落到一个可执行的动作上,不要停在“看起来像”。建议只允许三档结论,每档都写清保留哪些证据字段:
| 结论 | 适用情形 | 动作 | 需保留的证据字段 |
|---|---|---|---|
| 可引用 | DOI 或卷期页码与作者组合同时对上;页码差异能由版本解释 | 保持引文不变,补齐 DOI 与访问日期 | DOI、卷、期、页码、作者顺序、文献类型 |
| 改写后引用 | 同一性成立,但年份取在线发表年或印刷年、页码取文章号、作者顺序待确认 | 按页面元数据修正字段,并在备注写明修正依据 | 原字段、新字段、差异类型、判定依据来源页 |
| 弃用 | 作者集合不重叠、年份差两年以上、文献类型不符,或无法定位到任何可核验记录 | 从当前段落移除,或换成能找到原始记录的文献 | 原引文、命中标题、失败判据、检索时间 |
{
"cited": {"title": "...", "authors": ["A", "B", "C"], "year": 2019, "pages": "112-130"},
"matched": {"doi": "10.xxxx/xxxxx", "volume": "12", "issue": "3", "pages": "e02134", "type": "journal-article"},
"decision": "rewrite",
"evidence": ["doi_match", "page_is_article_number", "author_order_diff_tail"]
}
这套记录格式的价值在于回查:当同一批引文里有若干条出现类似偏移时,可以根据 evidence 里的差异类型判断是整体来源有问题,还是个别条目抄错,而不必逐条重新检索。至于阈值和取舍规则,需要结合所在团队对引文严格程度的要求来定;上面给的分数只是示意,建议先在小样本上跑一遍,再决定是否并入批量核验流程。