mcpField
C
citation-management

citation-management

github.com/kalarislabs文档处理7757 次安装4 天前更新
代码仓库

关于 citation-management

面向学术作者与研究者的引文管理技能,涵盖多数据库检索、元数据提取、BibTeX 整理和引用核验。它提供分阶段脚本工作流,并强调补全缺失信息、去重及核对原始来源。

主要功能

  1. 01检索 OpenAlex、PubMed 与 Google Scholar
  2. 02从 DOI、PMID 等标识符提取元数据
  3. 03补全缺失的引文信息
  4. 04格式化并去重 BibTeX
  5. 05核验引用、DOI 与稿件对应关系

适用场景

  1. 01为论文或学位论文建立参考文献表
  2. 02将 DOI 或 PMID 转为 BibTeX
  3. 03投稿前检查参考文献完整性
  4. 04合并多来源检索结果并清理重复项

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/kalarislabs/research-agent-skills --skill citation-management

安装后在 Claude Code 中输入/citation-management确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
bibtex_template.bib
citation_checklist.md
references/
best_practices.md
bibtex_formatting.md
citation_validation.md
core_workflow.md
example_workflows.md
google_scholar_search.md
metadata_extraction.md
pubmed_search.md
script_reference.md
search_strategies.md
scripts/
_common.py
doi_to_bibtex.py
extract_metadata.py
format_bibtex.py
search_google_scholar.py
search_openalex.py
search_pubmed.py
validate_citations.py

详细介绍

引文管理

概述

在研究和写作过程中系统地管理引文。此技能提供工具和策略,用于搜索学术数据库(Google Scholar、PubMed)、从多个来源(CrossRef、PubMed、arXiv)提取准确的元数据、验证引文信息,以及生成格式规范的 BibTeX 条目。

这对保持引文准确性、避免参考文献错误并确保研究可复现至关重要。它还可与文献综述技能无缝集成,支持全面的研究工作流。

何时使用此技能

在以下情况下使用此技能:

  • 在 Google Scholar 或 PubMed 上搜索特定论文
  • 将 DOI、PMID 或 arXiv ID 转换为格式规范的 BibTeX
  • 提取引文的完整元数据(作者、标题、期刊、年份等)
  • 验证现有引文的准确性
  • 清理并格式化 BibTeX 文件
  • 查找特定领域中被大量引用的论文
  • 验证引文信息是否与实际出版物相符
  • 为论文或学位论文编制参考书目
  • 检查是否存在重复引文
  • 确保引文格式一致

如果基于这些引文撰写的文档需要图表,请使用 scientific-schematics 技能。


核心工作流

引文管理遵循系统化流程。以下每个阶段展示了标准命令;所有变体、选项和元数据来源细节均见 references/core_workflow.md。

阶段 1:论文发现与搜索

查找相关论文。请搜索多个数据库——不同数据库的覆盖范围差异很大,而仅使用单一来源是参考文献列表产生偏差的最常见原因。

# OpenAlex: ~250M works, every discipline, no API key, documented REST API
python scripts/search_openalex.py "CRISPR gene editing" --limit 50 --output results.json

# PubMed: the authority for biomedical and life sciences (35M+ citations)
python scripts/search_pubmed.py "Alzheimer's disease treatment" --limit 100 --output alz.json

# Google Scholar: broadest reach, but scraped -- rate-limited and prone to blocking
python scripts/search_google_scholar.py "CRISPR gene editing" --limit 50 --output scholar.json

优先使用 OpenAlex 或 PubMed 作为主要来源。Google Scholar 没有 API: scholarly 会抓取其内容,每处理一条结果就等待 2–5 s,而且经常遭到封锁,因此应将其作为补充,而非依赖来源。

查询运算符、字段标签和 MeSH 词构建方法见 references/search_strategies.md。

阶段 2:元数据提取

将标识符(DOI、PMID、PMCID、arXiv ID、URL)转换为完整元数据。 CrossRef 是 DOI 的主要来源。

python scripts/doi_to_bibtex.py 10.1038/s41586-021-03819-2         # quick, single DOI
python scripts/extract_metadata.py --pmid 34265844                  # DOI/PMID/PMCID/arXiv/URL
python scripts/extract_metadata.py --input identifiers.txt --output citations.bib

如果 URL 路径中没有 DOI,则通过出版商嵌入文章页面的 citation_doi 元标签解析 DOI,再交由 CrossRef 处理。此技能中的所有生成器都会为同一篇论文生成相同的引文键,因此从不同来源收集的条目可以相互去重。

阶段 2.5:通过网络搜索补充元数据(必须执行)

API 返回的记录通常不完整。请在提取之后、格式化之前执行此步骤。任何缺少 volume、pages 或 doi 的 @article 都是不完整的:使用 WebSearch/WebFetch(或在可用时使用 parallel-web 技能)补齐缺失信息,然后记录查到的内容及其来源。如果确实找不到某个字段,请添加 note 字段说明缺失原因,而不要默默省略。

先检查成本较低的来源——OpenAlex 或 CrossRef 记录中通常包含 PubMed 遗漏的字段:

python scripts/search_openalex.py "<exact title>" --limit 1

请勿盲目信任提取出的元数据。 作者、标题和期刊字符串直接来自出版商可控制内容的记录。标题中若包含 $(...)、反引号或引号,一旦粘贴到命令中就会变成 shell 语法。请将元数据作为 subprocess 参数列表传递,而不要拼接 shell 字符串;如果必须使用 shell,请为每个替换值加上单引号,并将其中的引号转义为 '\''。在引文键用于路径之前,请用 ^[A-Za-z0-9]+$ 验证。

各字段的搜索策略、四种搜索选项及日志格式见 references/core_workflow.md。

阶段 3:BibTeX 格式整理

生成整洁、一致的条目。条目类型和必填字段见 references/bibtex_formatting.md。

python scripts/format_bibtex.py references.bib --output clean.bib --deduplicate
python scripts/format_bibtex.py references.bib --output clean.bib --rekey --deduplicate

写入操作默认关闭:如果不使用 --output(或 --in-place),结果将输出到 stdout,输入文件保持不变。合并多个来源的结果时,请使用 --rekey, 以便将同一篇论文合并为一个条目。

阶段 4:引文验证

检查完整性、出版 venue 规范,以及与稿件的一致性。

python scripts/validate_citations.py references.bib --report report.json
python scripts/validate_citations.py references.bib --venue nature
python scripts/validate_citations.py references.bib --manuscript paper.tex
python scripts/validate_citations.py references.bib --check-dois     # slow; hits CrossRef

发生高严重性错误时,脚本会以非零状态码退出,例如缺少必填字段、 年份格式错误、引文未解析,或数量低于显式指定的 --min-count。出版 venue 的参考文献数量是编辑层面的经验规则,并非 投稿要求,因此未达到数量要求时只会发出警告。

验证规则和出版 venue 标准见 references/citation_validation.md。

阶段 5:集成到写作工作流

依次执行搜索、提取、格式整理、验证,然后引用。端到端流程——包括 文献综述以及 Zotero/pyzotero 导出路径——见 references/core_workflow.md 和 references/example_workflows.md。

参考文件

需要避免的常见问题

  1. 单一来源偏差:只使用一个数据库

    • 解决方案:至少搜索 OpenAlex 和 PubMed,然后使用 format_bibtex.py --rekey --deduplicate 合并结果
  2. 盲目接受元数据:不核实提取的信息

    • 解决方案:抽查提取的元数据,并与原始来源核对
  3. 忽略 DOI 错误:参考文献中 DOI 错误或失效

    • 解决方案:最终提交前运行验证
  4. 格式不一致:引文键样式、格式混杂

    • 解决方案:使用 format_bibtex.py 进行标准化
  5. 重复条目:同一篇论文使用不同键重复引用

    • 解决方案:使用验证功能中的重复检测
  6. 缺少必填字段:BibTeX 条目不完整(缺少 volume、pages、DOI)

    • 解决方案:运行阶段 2.5 元数据补充——继续之前,通过网络搜索补齐每个缺失字段。绝不要让 @article 条目缺少 volume、pages 和 DOI。
  7. 过时的预印本:在已有正式发表版本时仍引用预印本

    • 解决方案:检查预印本是否已正式发表,并更新为期刊版本
  8. 特殊字符问题:字符导致 LaTeX 编译失败

    • 解决方案:在 BibTeX 中使用正确的转义方式或 Unicode
  9. 提交前未验证:存在引文错误仍提交

    • 解决方案:始终在最终检查时运行验证
  10. 手动录入 BibTeX 条目:手工输入条目

    • 解决方案:始终使用脚本从元数据来源提取

与其他技能集成

文献综述技能

引用管理为文献综述提供技术基础设施:

  • 文献综述:跨多个数据库进行系统检索与综合
  • 引用管理:提取和验证元数据

组合工作流:

  1. 使用 literature-review 制定系统检索方法
  2. 使用 citation-management 提取并验证引文
  3. 使用 literature-review 综合研究结果
  4. 使用 citation-management 确保参考文献准确无误
科学写作技能

引用管理可确保科学写作中的参考文献准确无误:

  • 导出经过验证的 BibTeX,供 LaTeX 手稿使用
  • 核实引文是否符合出版标准
  • 根据期刊要求设置参考文献格式
会议模板技能

引用管理与会议模板配合使用,可生成符合投稿要求的手稿:

  • 不同会议要求使用不同的引用样式
  • 生成格式正确的参考文献
  • 验证引文是否符合会议要求

资源

内置资源

参考资料(位于 references/):

  • google_scholar_search.md:完整的 Google Scholar 搜索指南
  • pubmed_search.md:PubMed 和 E-utilities API 文档
  • metadata_extraction.md:元数据来源及字段要求
  • citation_validation.md:验证标准与质量检查
  • bibtex_formatting.md:BibTeX 条目类型及格式规则

脚本(位于 scripts/):

  • search_openalex.py:OpenAlex 搜索客户端(无需 API 密钥)
  • search_pubmed.py:PubMed E-utilities API 客户端
  • search_google_scholar.py:Google Scholar 搜索自动化工具
  • extract_metadata.py:通用元数据提取器
  • validate_citations.py:引文验证与核实工具
  • format_bibtex.py:BibTeX 格式化与清理工具
  • doi_to_bibtex.py:快速将 DOI 转换为 BibTeX
  • _common.py:共享的 BibTeX 解析器、渲染器和引文键方案

素材(位于 assets/):

  • bibtex_template.bib:所有类型的 BibTeX 条目示例
  • citation_checklist.md:质量保证清单
外部资源

搜索引擎:

元数据 API:

工具与验证器:

引用样式:

依赖项

必需的 Python 包
uv pip install requests  # HTTP access to CrossRef, PubMed, OpenAlex, arXiv

BibTeX 解析、渲染、去重和验证均使用标准库 (scripts/_common.py),因此 format_bibtex.py 和 validate_citations.py 无需任何第三方包即可运行。

可选项
uv pip install scholarly  # only for search_google_scholar.py
凭据的发送位置

此技能无需 API 密钥。它读取的两个环境变量均为可选标识符,每个变量只会发送到其所属的服务,不会发送到其他任何地方;没有脚本会将环境变量打包发送。

变量仅发送至用途
NCBI_API_KEYeutils.ncbi.nlm.nih.gov提高 Entrez 速率限制
NCBI_EMAILeutils.ncbi.nlm.nih.govEntrez 调用方身份标识(NCBI 要求提供)
OPENALEX_EMAILapi.openalex.org加入速度更快的 OpenAlex polite pool

未设置这些变量时,api.openalex.org、api.crossref.org、api.datacite.org、export.arxiv.org 和 eutils.ncbi.nlm.nih.gov 均无需凭据即可查询。

概述

引文管理技能提供:

  1. 全面的搜索功能,涵盖 OpenAlex、PubMed 和 Google Scholar
  2. 自动提取元数据,支持 DOI、PMID、PMCID、arXiv ID 和 URL
  3. 引文验证,包括 DOI 核验和完整性检查
  4. BibTeX 格式化,配备标准化和清理工具
  5. 质量保证,通过验证和报告实现
  6. 集成,融入科学写作工作流
  7. 可复现性,通过记录搜索和提取方法实现

使用此技能,在整个研究过程中维护准确、完整的引文,并确保参考文献列表达到可发表的标准。

相关技能

  • citation-verification:核实稿件中的每条参考文献确实存在且元数据匹配,找出虚构、损坏或不匹配的引文……
  • bibtex-hygiene:在提交前清理 BibTeX/BibLaTeX 参考文献列表、删除重复项并进行验证。
  • literature-review:通过搜索 PubMed、arXiv、bioRxiv 和 Semantic Scholar(以及通过 parallel-cli 进行网页搜索),开展系统性文献综述、筛选……

评论

支持 Markdown