名称: 引用验证器 描述: | 验证科学文档中的引用和参考文献,以检测虚假或无效的来源。 从 Markdown、LaTeX、org-mode 和纯文本中提取 DOIs、URLs、arXiv IDs、PubMed IDs 和 ISBNs, 然后使用 API 查询和网络获取进行验证。
使用此技能时:
- 审查 AI 生成内容的引用准确性
- 验证论文、报告或文档中的参考文献
- 检查 DOIs/URLs 是否解析到实际论文
- 审核文档中的断裂或虚假引用
允许工具:
- 读取
- 网络获取
- 网络搜索
- Grep
- Glob
- 待办事项写入
引用验证器
检测和验证科学文档中的引用,以识别虚假、断裂或无效的参考文献。
目的
AI 生成内容有时包含看似合理但虚假的引用。此技能系统地从文档中提取所有引用标识符,并根据权威源验证每个标识符,生成详细的验证报告,包括验证状态和修复无效引用的建议。
何时使用
应调用此技能时:
- 用户请求“验证文档中的引用”或“检查参考文献”
- 用户怀疑 AI 生成内容中的虚假引用
- 用户想验证论文中的 DOIs、URLs 或其他标识符
- 用户请求审核文档中的断裂链接或虚假引用
- 用户提到“引用验证”、“参考文献检查”或“DOI 验证”
支持的文档格式
- Markdown (.md):内联链接
[文本](url)、引用链接[文本][引用]、裸 URL、DOIs - LaTeX/BibTeX (.tex, .bib):
\cite{}、@article{}、DOI 字段、URL 字段 - Org-mode (.org):
[[url][文本]]链接、#+BIBLIOGRAPHY、引用链接 - 纯文本 (.txt):裸 URL、DOIs、arXiv IDs、作者-年份模式
检测的引用标识符
DOIs (数字对象标识符)
- 模式:
10.\d{4,}/[^\s]+或doi.org/10.\d{4,}/[^\s]+ - 示例:
10.1038/nature12373、https://doi.org/10.1126/science.abc1234 - 验证:CrossRef API 在
https://api.crossref.org/works/{doi}
论文的 URLs
- 模式:指向已知出版商和存储库的链接
- 域名:nature.com、science.org、sciencedirect.com、springer.com、wiley.com、acs.org、rsc.org、pnas.org、cell.com、plos.org、mdpi.com、frontiersin.org、academic.oup.com、tandfonline.com
- 验证:HTTP HEAD/GET 请求,检查 200 状态和论文元数据
arXiv IDs
- 模式:
arXiv:\d{4}\.\d{4,5}(v\d+)?或arxiv.org/abs/\d{4}\.\d{4,5} - 示例:
arXiv:2301.07041、https://arxiv.org/abs/2301.07041v2 - 验证:arXiv API 或直接 URL 检查
PubMed IDs (PMIDs)
- 模式:
PMID:\s*\d+或pubmed.ncbi.nlm.nih.gov/\d+ - 示例:
PMID: 12345678 - 验证:PubMed URL
https://pubmed.ncbi.nlm.nih.gov/{pmid}/
ISBNs
- 模式:
ISBN[:\s]*[\d-]{10,17}(ISBN-10 或 ISBN-13) - 示例:
ISBN: 978-0-13-468599-1 - 验证:Open Library API
https://openlibrary.org/isbn/{isbn}.json
作者-年份引用
- 模式:
([A-Z][a-z]+(?:\s+(?:et\s+al\.?|and|&)\s+[A-Z][a-z]+)?,?\s*\d{4}) - 示例:
(Smith et al., 2023)、(Johnson and Lee, 2022) - 验证:网络搜索以找到匹配论文(低置信度)
验证程序
步骤 1: 读取和解析文档
使用读取工具加载文档。使用模式匹配提取所有引用标识符:
DOI 模式:
- https?://(?:dx\.)?doi\.org/(10\.\d{4,}/[^\s\])"'>]+)
- doi:\s*(10\.\d{4,}/[^\s\])"'>]+)
- (10\.\d{4,9}/[-._;()/:A-Z0-9]+) (裸 DOI)
arXiv 模式:
- arXiv:(\d{4}\.\d{4,5}(?:v\d+)?)
- arxiv\.org/abs/(\d{4}\.\d{4,5}(?:v\d+)?)
PubMed 模式:
- PMID:\s*(\d+)
- pubmed\.ncbi\.nlm\.nih\.gov/(\d+)
URL 模式:
- https?://[^\s\])"'<>]+ (过滤学术域名)
ISBN 模式:
- ISBN[:\s-]*((?:\d[-\s]?){9}[\dXx]|(?:\d[-\s]?){13})
步骤 2: 去重和分类
创建唯一标识符列表,按类型分类:
- DOIs
- arXiv IDs
- PubMed IDs
- ISBNs
- URLs (学术)
- 作者-年份引用 (基于文本)
步骤 3: 验证每个标识符
对每个标识符,按可靠性顺序执行验证:
DOI 验证
- 构建 CrossRef API URL:
https://api.crossref.org/works/{doi} - 使用网络获取检查 API
- 如果成功,提取:标题、作者、期刊、年份
- 如果 404 或错误:标记为无效
arXiv 验证
- 构建 URL:
https://arxiv.org/abs/{arxiv_id} - 使用网络获取验证页面存在
- 提取:标题、作者、摘要片段
- 如果 404:标记为无效
PubMed 验证
- 构建 URL:
https://pubmed.ncbi.nlm.nih.gov/{pmid}/ - 使用网络获取验证
- 提取:标题、作者、期刊
- 如果 404:标记为无效
ISBN 验证
- 构建 URL:
https://openlibrary.org/isbn/{isbn}.json - 使用网络获取检查
- 提取:标题、作者、出版商
- 如果 404:标记为无效
URL 验证
- 使用网络获取访问 URL
- 检查 HTTP 200 和学术内容指标
- 查找:论文标题、作者、页面上的 DOI
- 如果不可访问或非学术:标记为可疑
作者-年份验证 (最低置信度)
- 使用网络搜索,查询:
"{作者}" "{年份}" 论文 - 在结果中查找匹配论文
- 如果找到:标记为可能有效,并附上源
- 如果未找到:标记为未验证
步骤 4: 生成报告
生成结构化验证报告:
# 引用验证报告
**文档:** [文件名]
**日期:** [日期]
**找到的引用总数:** [数量]
## 摘要
- 有效: [数量]
- 无效: [数量]
- 可疑: [数量]
- 未验证: [数量]
## 详细结果
### 有效引用
| ID | 类型 | 标题 | 来源 |
|----|------|-------|--------|
| 10.1038/xxx | DOI | 论文标题 | CrossRef |
### 无效引用 (虚假)
| ID | 类型 | 错误 | 建议 |
|----|------|-------|------------|
| 10.9999/fake | DOI | 404 未找到 | 删除或找到正确的 DOI |
### 可疑引用
| ID | 类型 | 问题 | 建议 |
|----|------|-------|----------------|
| https://... | URL | 超时 | 手动验证 |
### 未验证引用
| 引用 | 类型 | 备注 |
|----------|------|-------|
| (Smith, 2023) | 作者-年份 | 通过搜索未找到匹配论文 |
验证状态定义
- 有效:标识符解析到真实论文,并有匹配的元数据
- 无效:标识符不存在或返回 404 (可能虚假)
- 可疑:无法完全验证;可能是受速率限制、付费墙或暂时不可用
- 未验证:基于文本的引用无法确认 (保守方法)
最佳实践
- 批量类似请求:将 DOI 检查分组以减少 API 调用
- 尊重速率限制:如果达到速率限制,添加请求之间的延迟
- 交叉引用:如果 URL 包含 DOI,直接验证 DOI
- 上下文重要:注意引用出现的位置 (方法与主张)
- 报告不确定性:始终区分“确认无效”和“无法验证”
无效引用的输出建议
对每个无效引用,提供可操作的建议:
- 错误 DOI 格式:“DOI 格式错误。检查是否有拼写错误或额外字符。”
- 不存在的 DOI:“未找到论文。这可能是虚假的。搜索实际论文标题。”
- 死链 URL:“URL 返回 404。尝试在 Google Scholar 上搜索论文标题。”
- 可疑期刊:“出版商不被识别。验证这是合法来源。”
- 作者-年份未找到:“无法验证。添加 DOI 或 URL 进行确认。”
示例验证会话
用户请求: “验证 my-paper.md 中的引用”
预期行为:
- 读取 my-paper.md
- 提取所有 DOIs、URLs、arXiv IDs 等
- 报告:“找到 15 个引用:8 DOIs、5 URLs、2 arXiv IDs”
- 使用适当的 API/获取验证每个标识符
- 生成报告显示:
- 10 个有效引用,带有元数据
- 3 个无效引用 (404 错误),标记为可能虚假
- 2 个可疑引用 (超时),需要手动检查
- 提供修复无效引用的建议
限制
- 速率限制:CrossRef 和其他 API 可能限制请求速率
- 付费墙内容:无法验证付费墙后的完整内容
- 新论文:非常新的论文可能尚未被索引
- 作者-年份引用:没有额外标识符时置信度低
- 非英语来源:对非英语引用格式支持有限
- 私有/机构 URLs:无法访问认证内容
相关技能
- literature-review: 用于进行系统文献搜索
- scientific-reviewer: 用于审查科学文档质量
- scientific-writing: 用于使用适当引用进行写作