mcpField
C
citation-management

citation-management

github.com/hkphysics生産性047 回インストール19 週間前に更新
リポジトリ

citation-management について

論文検索、引用メタデータの抽出と補完、検証済み BibTeX 書誌の作成を支援する研究・執筆向けスキルです。論文、学位論文、文献レビューの準備に使えます。

主な機能

  1. 01Google Scholar と PubMed で検索
  2. 02DOI、PMID、arXiv ID からメタデータを抽出
  3. 03不足する引用情報を補完
  4. 04BibTeX の整形と検証
  5. 05重複する参考文献を確認

活用シーン

  1. 01論文や学位論文の書誌を作成
  2. 02論文識別子を BibTeX に変換
  3. 03分野内の論文を検索して確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/hkphysics/scientific-agent-skills --skill citation-management

インストール後、Claude Code で/citation-managementを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
bibtex_template.bib
citation_checklist.md
references/
bibtex_formatting.md
citation_validation.md
google_scholar_search.md
metadata_extraction.md
pubmed_search.md
scripts/
doi_to_bibtex.py
extract_metadata.py
format_bibtex.py
generate_schematic_ai.py
generate_schematic.py
search_google_scholar.py
search_pubmed.py
validate_citations.py

詳細

引用管理

概要

研究と執筆のプロセス全体を通じて、引用を体系的に管理します。このスキルは、学術データベース(Google Scholar、PubMed)の検索、複数のソース(CrossRef、PubMed、arXiv)からの正確なメタデータの抽出、引用情報の検証、適切に書式化された BibTeX エントリの生成のためのツールと戦略を提供します。

引用の正確性を維持し、参照エラーを回避し、再現可能な研究を確保するために重要です。包括的な研究ワークフローのために literature-review スキルとシームレスに統合されます。

このスキルを使用するタイミング

次の場合にこのスキルを使用してください:

  • Google Scholar または PubMed で特定の論文を検索するとき
  • DOI、PMID、または arXiv ID を適切に書式化された BibTeX に変換するとき
  • 引用の完全なメタデータ(著者、タイトル、雑誌、年など)を抽出するとき
  • 既存の引用の正確性を検証するとき
  • BibTeX ファイルをクリーニングおよび書式化するとき
  • 特定の分野で被引用数の多い論文を見つけるとき
  • 引用情報が実際の出版物と一致することを確認するとき
  • 原稿または論文のための参考文献リストを作成するとき
  • 重複する引用を確認するとき
  • 一貫した引用書式を確保するとき

Scientific Schematics による視覚的強化

このスキルで文書を作成する際は、視覚的な伝達を強化するために、科学的な図やスキーマティックの追加を必ず検討してください。

文書にスキーマティックや図がまだ含まれていない場合:

  • scientific-schematics スキルを使用して、AI を活用した出版品質の図を生成します
  • 希望する図を自然言語で説明するだけです
  • Nano Banana Pro が自動的にスキーマティックを生成、レビュー、洗練します

新規文書の場合: テキストで説明された主要な概念、ワークフロー、アーキテクチャ、または関係を視覚的に表現するために、科学的なスキーマティックをデフォルトで生成する必要があります。

スキーマティックの生成方法:

python scripts/generate_schematic.py "your diagram description" -o figures/output.png

AI は自動的に次を行います:

  • 適切な書式を備えた出版品質の画像を作成
  • 複数の反復を通じてレビューと洗練を実施
  • アクセシビリティを確保(色覚に配慮、高コントラスト)
  • figures/ ディレクトリに出力を保存

スキーマティックを追加するタイミング:

  • 引用ワークフローの図
  • 文献検索の方法論のフローチャート
  • 参考文献管理システムのアーキテクチャ
  • 引用スタイルの決定木
  • データベース統合の図
  • 視覚化の恩恵を受けるあらゆる複雑な概念

スキーマティックの作成に関する詳細なガイダンスについては、scientific-schematics スキルのドキュメントを参照してください。


コアワークフロー

引用管理は体系的なプロセスに従います:

フェーズ 1: 論文の発見と検索

目標: 学術検索エンジンを使用して関連する論文を見つけます。

Google Scholar 検索

Google Scholar は、分野を横断して最も包括的なカバレッジを提供します。

基本検索:

# Search for papers on a topic
python scripts/search_google_scholar.py "CRISPR gene editing" \
  --limit 50 \
  --output results.json

# Search with year filter
python scripts/search_google_scholar.py "machine learning protein folding" \
  --year-start 2020 \
  --year-end 2024 \
  --limit 100 \
  --output ml_proteins.json

高度な検索戦略(references/google_scholar_search.md を参照):

  • 完全一致のフレーズには引用符を使用: "deep learning"
  • 著者で検索: author:LeCun
  • タイトルで検索: intitle:"neural networks"
  • 用語を除外: machine learning -survey
  • 並べ替えオプションを使用して被引用数の多い論文を見つける
  • 日付範囲で絞り込み、最新の研究を取得

ベストプラクティス:

  • 具体的で的を絞った検索語を使用する
  • 主要な技術用語や略語を含める
  • 変化の速い分野では最近の年で絞り込む
  • 「Cited by」を確認して重要な論文を見つける
  • さらなる分析のために上位の結果をエクスポートする
PubMed 検索

PubMed は生物医学およびライフサイエンス分野の文献に特化しています(引用文献は 3,500 万件以上)。

基本検索:

# Search PubMed
python scripts/search_pubmed.py "Alzheimer's disease treatment" \
  --limit 100 \
  --output alzheimers.json

# Search with MeSH terms and filters
python scripts/search_pubmed.py \
  --query '"Alzheimer Disease"[MeSH] AND "Drug Therapy"[MeSH]' \
  --date-start 2020 \
  --date-end 2024 \
  --publication-types "Clinical Trial,Review" \
  --output alzheimers_trials.json

PubMed の高度なクエリ(references/pubmed_search.md を参照):

  • MeSH 用語を使用:"Diabetes Mellitus"[MeSH]
  • フィールドタグ:"cancer"[Title]、"Smith J"[Author]
  • ブール演算子:AND、OR、NOT
  • 日付フィルター:2020:2024[Publication Date]
  • 出版物の種類:"Review"[Publication Type]
  • E-utilities API と組み合わせて自動化

ベストプラクティス:

  • MeSH Browser を使用して適切な統制語彙を見つけます
  • まず PubMed Advanced Search Builder で複雑なクエリを作成します
  • 複数の類義語を OR で指定します
  • メタデータを簡単に抽出できるよう、PMID を取得します
  • JSON にエクスポートするか、BibTeX に直接エクスポートします
フェーズ 2:メタデータの抽出

目標:論文識別子(DOI、PMID、arXiv ID)を、完全で正確なメタデータに変換します。

DOI から BibTeX へのクイック変換

単一の DOI には、クイック変換ツールを使用します。

# Convert single DOI
python scripts/doi_to_bibtex.py 10.1038/s41586-021-03819-2

# Convert multiple DOIs from a file
python scripts/doi_to_bibtex.py --input dois.txt --output references.bib

# Different output formats
python scripts/doi_to_bibtex.py 10.1038/nature12345 --format json
包括的なメタデータ抽出

DOI、PMID、arXiv ID、または URL の場合:

# Extract from DOI
python scripts/extract_metadata.py --doi 10.1038/s41586-021-03819-2

# Extract from PMID
python scripts/extract_metadata.py --pmid 34265844

# Extract from arXiv ID
python scripts/extract_metadata.py --arxiv 2103.14030

# Extract from URL
python scripts/extract_metadata.py --url "https://www.nature.com/articles/s41586-021-03819-2"

# Batch extraction from file (mixed identifiers)
python scripts/extract_metadata.py --input identifiers.txt --output citations.bib

メタデータのソース(references/metadata_extraction.md を参照):

  1. CrossRef API:DOI の主要なソース

    • 学術誌論文の包括的なメタデータ
    • 出版社が提供する情報
    • 著者、タイトル、学術誌名、巻、ページ、日付を含みます
    • 無料で、API キーは不要です
  2. PubMed E-utilities:生物医学文献

    • NCBI の公式メタデータ
    • MeSH 用語、抄録を含みます
    • PMID および PMCID 識別子
    • 無料です。大量に利用する場合は API キーを推奨します
  3. arXiv API:物理学、数学、コンピューターサイエンス、定量生物学のプレプリント

    • プレプリントの完全なメタデータ
    • バージョン追跡
    • 著者の所属
    • 無料で、オープンアクセスです
  4. DataCite API:研究データセット、ソフトウェア、その他のリソース

    • 従来とは異なる学術成果のメタデータ
    • データセットやコードの DOI
    • 無料で利用できます

抽出される情報:

  • 必須フィールド:author、title、year
  • 学術誌論文:journal、volume、number、pages、DOI
  • 書籍:publisher、ISBN、edition
  • 会議論文:booktitle、会議の開催地、pages
  • プレプリント:リポジトリ(arXiv、bioRxiv)、プレプリント ID
  • 追加情報:抄録、キーワード、URL
フェーズ 2.5:Web 検索によるメタデータの補完(必須)

目標:Web 検索を使用して、不足しているメタデータフィールドを検出し、補完します。このフェーズは抽出の後、フォーマットの前に実行し、すべての BibTeX エントリーが完全であることを確認します。

重要な理由:API(CrossRef、PubMed、arXiv)からのメタデータ抽出では、巻、ページ、号、DOI が欠けているなど、不完全なレコードが返されることがあります。文献目録を完成とみなす前に、これらの不足を補う必要があります。

ステップ 1:不完全なエントリーを確認する

メタデータの抽出後、BibTeX ファイルを確認し、重要なフィールドが不足しているエントリーを探します。

エントリータイプごとに確認するフィールド:

エントリータイプ必須項目あることが望ましい項目
@articleauthor、title、journal、yearvolume、pages、number、doi
@inproceedingsauthor、title、booktitle、yearpages、doi
@bookauthor/editor、title、publisher、yearisbn、doi
@miscauthor、title、yeardoi または url

volume、pages、または doi が欠けている @article エントリーは不完全とみなされ、補完する必要があります。

ステップ 2:Web 検索で不足しているメタデータを探す

不完全なエントリーごとに、parallel-web skill を使用して不足している情報を検索します。

オプション A — タイトルと著者で検索(DOI の検索に最適):

parallel-cli search "FIRST_AUTHOR TITLE JOURNAL_NAME volume pages DOI" \
  --json --max-results 10 \
  -o sources/search_citation_CITATIONKEY.json

オプション B — DOI ページから抽出(DOI は判明しているが巻やページが不足している場合に最適):

parallel-cli extract "https://doi.org/10.XXXX/YYYY" --json \
  --objective "extract complete citation metadata: volume, issue, pages, publication date" \
  -o sources/extract_doi_CITATIONKEY.json

オプション C — CrossRef API を直接検索(プログラムによる高速な方法):

parallel-cli search "crossref DOI metadata FIRST_AUTHOR TITLE" \
  --json --max-results 10 \
  -o sources/search_crossref_CITATIONKEY.json

オプション D — Google Scholar を検索(見つけにくい論文を探す場合の代替手段):

parallel-cli search "google scholar FIRST_AUTHOR TITLE YEAR complete citation" \
  --json --max-results 10 \
  -o sources/search_scholar_CITATIONKEY.json
ステップ 3:BibTeX エントリを更新する

不足しているメタデータが見つかったら:

  1. references.bib を開きます
  2. 不完全なエントリに不足しているフィールドを追加します
  3. 見つかったメタデータが既存のフィールドと一致していることを確認します(著者、タイトル、年が同じであること)
  4. 修正内容を記録します:
    [HH:MM:SS] METADATA ENRICHED: [CitationKey] - added volume={X}, pages={Y--Z}, doi={10.XXX/YYY} ✅
    
ステップ 4:見つからないメタデータに対処する

ウェブ検索を行ってもメタデータがどうしても見つからない場合(非常に古い論文、知名度の低い学会など):

  1. 欠落を説明する note フィールドを BibTeX エントリに追加します:
    note = {Volume and pages not available — published online only}
    
  2. 例外を記録します:
    [HH:MM:SS] METADATA INCOMPLETE: [CitationKey] - pages unavailable (online-only publication) ⚠️
    
  3. こうした例外はまれであるべきです。最近の論文のほとんどは、ウェブ検索で完全なメタデータを見つけられます。
クイックリファレンス:よく不足しているフィールドと確認先
不足フィールド効果的な検索方法
DOIparallel-cli search で「AUTHOR TITLE DOI」を検索します
VolumeDOI ページから取得するか、「JOURNAL YEAR TITLE volume」で検索します
PagesDOI ページまたは出版社のウェブサイトから取得します
Issue/NumberDOI ページまたは CrossRef から取得します
Publisher「JOURNAL publisher」で検索するか、学術誌のウェブサイトを確認します

フェーズ 3:BibTeX の書式設定

目標:整然とした適切な書式の BibTeX エントリを生成します。

BibTeX エントリタイプについて

詳細なガイドについては、references/bibtex_formatting.md を参照してください。

よく使われるエントリタイプ:

  • @article:学術誌論文(最も一般的)
  • @book:書籍
  • @inproceedings:学会論文
  • @incollection:書籍の章
  • @phdthesis:博士論文
  • @misc:プレプリント、ソフトウェア、データセット

タイプごとの必須フィールド:

@article{citationkey,
  author  = {Last1, First1 and Last2, First2},
  title   = {Article Title},
  journal = {Journal Name},
  year    = {2024},
  volume  = {10},
  number  = {3},
  pages   = {123--145},
  doi     = {10.1234/example}
}

@inproceedings{citationkey,
  author    = {Last, First},
  title     = {Paper Title},
  booktitle = {Conference Name},
  year      = {2024},
  pages     = {1--10}
}

@book{citationkey,
  author    = {Last, First},
  title     = {Book Title},
  publisher = {Publisher Name},
  year      = {2024}
}
書式設定とクリーニング

フォーマッターを使用して、BibTeX ファイルの書式を統一します:

# Format and clean BibTeX file
python scripts/format_bibtex.py references.bib \
  --output formatted_references.bib

# Sort entries by citation key
python scripts/format_bibtex.py references.bib \
  --sort key \
  --output sorted_references.bib

# Sort by year (newest first)
python scripts/format_bibtex.py references.bib \
  --sort year \
  --descending \
  --output sorted_references.bib

# Remove duplicates
python scripts/format_bibtex.py references.bib \
  --deduplicate \
  --output clean_references.bib

# Validate and report issues
python scripts/format_bibtex.py references.bib \
  --validate \
  --report validation_report.txt

書式設定の操作:

  • フィールドの順序を統一する
  • インデントと間隔を統一する
  • タイトルの大文字表記を適切に設定する({} で保護する)
  • 著者名の書式を統一する
  • 引用キーの書式を統一する
  • 不要なフィールドを削除する
  • よくあるエラー(カンマや波括弧の不足)を修正する
フェーズ 4:引用の検証

目標:すべての引用が正確かつ完全であることを確認します。

総合的な検証
# Validate BibTeX file
python scripts/validate_citations.py references.bib

# Validate against a venue standard (e.g., Nature, NeurIPS, Literature Review)
python scripts/validate_citations.py references.bib --venue nature
python scripts/validate_citations.py references.bib --venue neurips
python scripts/validate_citations.py references.bib --venue review

# Validate with custom minimum citation count
python scripts/validate_citations.py references.bib --min-count 40

# Check references against a written manuscript file (detect missing or unused citations)
python scripts/validate_citations.py references.bib --manuscript paper.md

# Generate detailed validation report
python scripts/validate_citations.py references.bib \
  --venue nature \
  --manuscript paper.md \
  --report validation_report.json \
  --verbose

検証項目(references/citation_validation.md を参照):

  1. DOI の確認:

    • DOI が doi.org で正しく解決される
    • BibTeX と CrossRef の間でメタデータが一致する
    • 壊れた DOI や無効な DOI がない
  2. 必須フィールド:

    • エントリタイプに必要なフィールドがすべて存在する
    • 重要な情報に空欄や欠落がない
    • 著者名の書式が正しい
  3. データの整合性:

    • 年が有効である(4 桁で妥当な範囲内)
    • 巻号が数値である
    • ページ番号の書式が正しい(例:123--145)
    • URL にアクセスできる
  4. 重複の検出:

    • 同じ DOI が複数回使われていない
    • 類似したタイトルがない(重複の可能性)
    • 著者、年、タイトルの組み合わせが重複していない
  5. 書式の準拠:

    • BibTeX の構文が有効である
    • 波括弧と引用符が適切に使われている
    • 引用キーが一意である
    • 特殊文字が正しく処理されている

検証結果:

{
  "total_entries": 150,
  "valid_entries": 145,
  "errors": [
    {
      "citation_key": "Smith2023",
      "error_type": "missing_field",
      "field": "journal",
      "severity": "high"
    },
    {
      "citation_key": "Jones2022",
      "error_type": "invalid_doi",
      "doi": "10.1234/broken",
      "severity": "high"
    }
  ],
  "warnings": [
    {
      "citation_key": "Brown2021",
      "warning_type": "possible_duplicate",
      "duplicate_of": "Brown2021a",
      "severity": "medium"
    }
  ]
}
分野別の引用数基準

引用数は、選択または推奨する分野の学術誌や学会の掲載基準に基づき、常に多くする必要があります。 参考文献が少ない状態で済ませず、引用を豊富に盛り込んだ、権威ある確かな文脈を構築してください。

分野の種類目標引用数
影響力の大きい総合学術誌(Nature、Science、Cell)35-50+
ML / CS 学会(NeurIPS、ICML、ICLR、CVPR、ACL)30-45+
包括的な文献レビュー/市場調査レポート40-65+
医学誌(NEJM、Lancet、JAMA)30-45+

掲載先の一般的な引用数や慣行に応じて、引用数の目標を常に引き上げてください。「手抜き」のように同じ引用を繰り返すのは避け、複数の無関係な主張の裏付けとして同じ1、2本の論文を何度も引用せず、信頼性の高い多様な参考文献を活用してください。

validate_citations.py --venue <venue> または --min-count <N> を使用して、これらの基準をプログラムで適用してください。

執筆後に必須となる参考文献の確認(必須)

科学レポートまたは論文全体の草稿を作成したら、最終成果物をまとめる前に、すべての引用を包括的に検証してください。

  1. 欠落または未解決の引用がないことを確認する:草稿またはコンパイル済みドキュメントを確認し、本文中のすべての引用が references.bib 内の参考文献に正しく対応していることを確かめます。壊れた引用キー、識別子の欠落、未解決の参照([?] や [citation needed] など)があってはなりません。
  2. 未使用の(宙に浮いた)参考文献項目がないことを確認する:references.bib 内のすべての項目がレポート本文で引用されていることを確認します。参考文献一覧を完全に整理された状態に保つため、未使用の項目は削除してください。
  3. 目標基準に対する引用数を確認する:最終的な引用数が、選択または推奨される掲載先の高い基準(上の表を参照)を満たしているか、それを上回っているか確認します。基準を下回る場合は、まず追加の文献調査を行い、質の高い論文を見つけて適切な節に組み込んでください。
  4. メタデータが完全であることを確認する:引用したすべての項目に、完全かつ検証済みのフィールド(すべての著者名、学術誌/学会の正式名称、正確な年、巻、号、ページ範囲、有効な DOI)が含まれていることを確認します。

これらすべての確認を、1つのコマンドで実行します。

python scripts/validate_citations.py references.bib \
  --venue <venue> \
  --manuscript paper.md \
  --report post_writing_check.json
フェーズ 5:執筆ワークフローとの統合
原稿の参考文献を作成する

参考文献一覧を作成するための完全なワークフロー:

# 1. Search for papers on your topic
python scripts/search_pubmed.py \
  '"CRISPR-Cas Systems"[MeSH] AND "Gene Editing"[MeSH]' \
  --date-start 2020 \
  --limit 200 \
  --output crispr_papers.json

# 2. Extract DOIs from search results and convert to BibTeX
python scripts/extract_metadata.py \
  --input crispr_papers.json \
  --output crispr_refs.bib

# 3. Add specific papers by DOI
python scripts/doi_to_bibtex.py 10.1038/nature12345 >> crispr_refs.bib
python scripts/doi_to_bibtex.py 10.1126/science.abcd1234 >> crispr_refs.bib

# 4. Format and clean the BibTeX file
python scripts/format_bibtex.py crispr_refs.bib \
  --deduplicate \
  --sort year \
  --descending \
  --output references.bib

# 5. Validate all citations
python scripts/validate_citations.py references.bib \
  --auto-fix \
  --report validation.json \
  --output final_references.bib

# 6. Review validation report and fix any remaining issues
cat validation.json

# 7. Use in your LaTeX document
# \bibliography{final_references}
文献レビューのスキルとの統合

このスキルは literature-review スキルを補完します。

文献レビューのスキル → 体系的な検索と統合 引用管理スキル → 技術的な引用処理

統合ワークフロー:

  1. 包括的な複数データベース検索には literature-review を使用します
  2. すべての引用の抽出と検証には citation-management を使用します
  3. テーマ別の知見の統合には literature-review を使用します
  4. 最終的な参考文献一覧の正確性の確認には citation-management を使用します
# After completing literature review
# Verify all citations in the review document
python scripts/validate_citations.py my_review_references.bib --report review_validation.json

# Format for specific citation style if needed
python scripts/format_bibtex.py my_review_references.bib \
  --style nature \
  --output formatted_refs.bib

検索戦略

Google Scholar のベストプラクティス

代表的かつ影響力の大きい論文を見つける(重要):

引用数、掲載先の質、著者の評価に基づいて、常に論文を優先してください。

引用数の基準:

論文の経過年数引用数分類
0~3年20件以上注目に値する
0~3年100件以上非常に影響力が大きい
3~7年100件以上重要
3~7年500件以上画期的な論文
7年以上500件以上代表的な研究
7年以上1000件以上基礎となる研究

掲載先の質の段階:

  • Tier 1(優先): Nature、Science、Cell、NEJM、Lancet、JAMA、PNAS
  • Tier 2(優先度高): インパクトファクターが10を超える掲載先、主要な学会(NeurIPS、ICML、ICLR)
  • Tier 3(良好): 専門誌(IF 5~10)
  • Tier 4(限定的に利用): 影響力の低い査読付き掲載先

著者の評価を示す指標:

  • h-indexが40を超えるシニア研究者
  • Tier 1の掲載先での複数の出版実績
  • 評判の高い機関でのリーダーシップ
  • 受賞歴や編集職

影響力の大きい論文を探すための検索戦略:

  • 引用数順(最も引用されたものから)に並べ替える
  • 概要を把握するため、Tier 1のジャーナルに掲載されたレビュー論文を探す
  • 影響力や最近の関連研究を確認するため、「Cited by」を確認する
  • 主要な論文への新たな引用を追跡するため、引用アラートを使用する
  • source:Natureやsource:Scienceを使って主要な掲載先に絞り込む
  • author:LastNameを使い、その分野の著名な研究者の論文を検索する

高度な演算子(全一覧はreferences/google_scholar_search.mdを参照):

"exact phrase"           # Exact phrase matching
author:lastname          # Search by author
intitle:keyword          # Search in title only
source:journal           # Search specific journal
-exclude                 # Exclude terms
OR                       # Alternative terms
2020..2024              # Year range

検索例:

# Find recent reviews on a topic
"CRISPR" intitle:review 2023..2024

# Find papers by specific author on topic
author:Church "synthetic biology"

# Find highly cited foundational work
"deep learning" 2012..2015 sort:citations

# Exclude surveys and focus on methods
"protein folding" -survey -review intitle:method
PubMed のベストプラクティス

MeSH 用語の使用: MeSH(Medical Subject Headings)は、精度の高い検索に使える統制語彙を提供します。

  1. https://meshb.nlm.nih.gov/search でMeSH 用語を確認します
  2. クエリで使用します:"Diabetes Mellitus, Type 2"[MeSH]
  3. キーワードと組み合わせて網羅的に検索します

フィールドタグ:

[Title]              # Search in title only
[Title/Abstract]     # Search in title or abstract
[Author]             # Search by author name
[Journal]            # Search specific journal
[Publication Date]   # Date range
[Publication Type]   # Article type
[MeSH]              # MeSH term

複雑なクエリの作成:

# Clinical trials on diabetes treatment published recently
"Diabetes Mellitus, Type 2"[MeSH] AND "Drug Therapy"[MeSH] 
AND "Clinical Trial"[Publication Type] AND 2020:2024[Publication Date]

# Reviews on CRISPR in specific journal
"CRISPR-Cas Systems"[MeSH] AND "Nature"[Journal] AND "Review"[Publication Type]

# Specific author's recent work
"Smith AB"[Author] AND cancer[Title/Abstract] AND 2022:2024[Publication Date]

自動化のための E-utilities: スクリプトは、プログラムからアクセスするためにNCBI E-utilities APIを使用します。

  • ESearch:PMIDを検索して取得します
  • EFetch:完全なメタデータを取得します
  • ESummary:概要情報を取得します
  • ELink:関連論文を見つけます

APIの詳細なドキュメントについては、references/pubmed_search.mdを参照してください。

ツールとスクリプト

search_google_scholar.py

Google Scholarを検索し、結果をエクスポートします。

機能:

  • レート制限付きの自動検索
  • ページネーション対応
  • 年の範囲による絞り込み
  • JSONまたはBibTeXへのエクスポート
  • 引用数情報

使い方:

# Basic search
python scripts/search_google_scholar.py "quantum computing"

# Advanced search with filters
python scripts/search_google_scholar.py "quantum computing" \
  --year-start 2020 \
  --year-end 2024 \
  --limit 100 \
  --sort-by citations \
  --output quantum_papers.json

# Export directly to BibTeX
python scripts/search_google_scholar.py "machine learning" \
  --limit 50 \
  --format bibtex \
  --output ml_papers.bib
search_pubmed.py

E-utilities APIを使ってPubMedを検索します。

機能:

  • 複雑なクエリに対応(MeSH、フィールドタグ、ブール演算)
  • 日付範囲による絞り込み
  • 出版物の種類による絞り込み
  • メタデータ付きの一括取得
  • JSONまたはBibTeXへのエクスポート

使い方:

# Simple keyword search
python scripts/search_pubmed.py "CRISPR gene editing"

# Complex query with filters
python scripts/search_pubmed.py \
  --query '"CRISPR-Cas Systems"[MeSH] AND "therapeutic"[Title/Abstract]' \
  --date-start 2020-01-01 \
  --date-end 2024-12-31 \
  --publication-types "Clinical Trial,Review" \
  --limit 200 \
  --output crispr_therapeutic.json

# Export to BibTeX
python scripts/search_pubmed.py "Alzheimer's disease" \
  --limit 100 \
  --format bibtex \
  --output alzheimers.bib
extract_metadata.py

論文識別子から完全なメタデータを抽出します。

機能:

  • DOI、PMID、arXiv ID、URLに対応
  • CrossRef、PubMed、arXivのAPIに問い合わせ
  • 複数の識別子タイプに対応
  • 一括処理
  • 複数の出力形式に対応

使い方:

# Single DOI
python scripts/extract_metadata.py --doi 10.1038/s41586-021-03819-2

# Single PMID
python scripts/extract_metadata.py --pmid 34265844

# Single arXiv ID
python scripts/extract_metadata.py --arxiv 2103.14030

# From URL
python scripts/extract_metadata.py \
  --url "https://www.nature.com/articles/s41586-021-03819-2"

# Batch processing (file with one identifier per line)
python scripts/extract_metadata.py \
  --input paper_ids.txt \
  --output references.bib

# Different output formats
python scripts/extract_metadata.py \
  --doi 10.1038/nature12345 \
  --format json  # or bibtex, yaml
validate_citations.py

BibTeXエントリの正確性、完全性、引用数基準への準拠、および原稿との整合性を検証します。

機能:

  • doi.orgおよびCrossRefを介したDOI検証
  • 必須フィールドの確認
  • 重複の検出
  • 書式の検証
  • 出版基準の引用数チェック。指定された掲載先(Nature、NeurIPS、レビューなど)またはカスタムのしきい値に照らして確認します。
  • 必須の執筆後チェック。原稿中の引用(MarkdownまたはLaTeX)と定義済みのBibTeXエントリを照合し、解決されていない参照や欠落している参照、使用されていない参照を検出します。
  • 詳細なレポート

使い方:

# Basic validation
python scripts/validate_citations.py references.bib

# Validate against a venue standard (e.g., Nature, NeurIPS, Literature Review)
python scripts/validate_citations.py references.bib --venue nature
python scripts/validate_citations.py references.bib --venue neurips
python scripts/validate_citations.py references.bib --venue review

# Validate with custom minimum citation count
python scripts/validate_citations.py references.bib --min-count 40

# Check references against a written manuscript file (detect missing or unused citations)
python scripts/validate_citations.py references.bib --manuscript paper.md

# Combined full validation
python scripts/validate_citations.py references.bib \
  --venue nature \
  --manuscript paper.md \
  --report validation_report.json \
  --verbose
format_bibtex.py

BibTeXファイルの書式を整え、不要な要素を整理します。

機能:

  • 書式の標準化
  • エントリの並べ替え(キー、年、著者順)
  • 重複の削除
  • 構文の検証
  • よくあるエラーの修正
  • 引用キーの規則の適用

使い方:

# Basic formatting
python scripts/format_bibtex.py references.bib

# Sort by year (newest first)
python scripts/format_bibtex.py references.bib \
  --sort year \
  --descending \
  --output sorted_refs.bib

# Remove duplicates
python scripts/format_bibtex.py references.bib \
  --deduplicate \
  --output clean_refs.bib

# Complete cleanup
python scripts/format_bibtex.py references.bib \
  --deduplicate \
  --sort year \
  --validate \
  --auto-fix \
  --output final_refs.bib
doi_to_bibtex.py

DOI をすばやく BibTeX に変換します。

機能:

  • DOI をすばやく 1 件変換
  • 一括処理
  • 複数の出力形式
  • クリップボードに対応

使い方:

# Single DOI
python scripts/doi_to_bibtex.py 10.1038/s41586-021-03819-2

# Multiple DOIs
python scripts/doi_to_bibtex.py \
  10.1038/nature12345 \
  10.1126/science.abc1234 \
  10.1016/j.cell.2023.01.001

# From file (one DOI per line)
python scripts/doi_to_bibtex.py --input dois.txt --output references.bib

# Copy to clipboard
python scripts/doi_to_bibtex.py 10.1038/nature12345 --clipboard

ベストプラクティス

検索戦略
  1. 広く始めてから絞り込みます:

    • 一般的な用語から始めて、その分野の概要を把握します
    • 具体的なキーワードやフィルターを使って絞り込みます
    • 同義語や関連用語を活用します
  2. 複数の情報源を使います:

    • 幅広く網羅するには Google Scholar を使用します
    • 生物医学分野に特化するには PubMed を使用します
    • プレプリントを探すには arXiv を使用します
    • 網羅性を高めるため、検索結果を組み合わせます
  3. 引用を活用します:

    • 重要な論文を見つけるには「Cited by」を確認します
    • 主要な論文の参考文献を確認します
    • 引用ネットワークを使って関連研究を見つけます
  4. 検索内容を記録します:

    • 検索クエリと日付を保存します
    • 検索結果の件数を記録します
    • 適用したフィルターや制限事項を記録します
メタデータの抽出
  1. DOI がある場合は必ず使用します:

    • 最も信頼性の高い識別子です
    • 出版物への恒久的なリンクです
    • CrossRef を介して最適なメタデータを取得できます
  2. 抽出したメタデータを確認します:

    • 著者名が正しいことを確認します
    • 学術誌名/会議名を確認します
    • 出版年を確認します
    • ページ番号と巻号を確認します
  3. 例外的なケースに対応します:

    • プレプリント:リポジトリと ID を記載します
    • 後に出版されたプレプリント:出版版を使用します
    • 会議論文:会議名と開催地を記載します
    • 書籍の章:書名と編集者を記載します
  4. 一貫性を保ちます:

    • 著者名の形式を統一します
    • 学術誌の略称を統一します
    • DOI の形式を統一します(URL 形式を推奨)
BibTeX の品質
  1. 慣例に従います:

    • 意味のある引用キーを使用します(FirstAuthor2024keyword)
    • タイトルの大文字表記を保持するには {} で囲みます
    • ページ範囲には単一のハイフンではなく -- を使用します
    • 最新の出版物にはすべて DOI フィールドを含めます
  2. すっきりと保ちます:

    • 不要なフィールドを削除します
    • 重複する情報を記載しません
    • 書式を統一します
    • 構文を定期的に検証します
  3. 体系的に整理します:

    • 年またはトピック別に並べ替えます
    • 関連する論文をグループ化します
    • プロジェクトごとに別々のファイルを使用します
    • 重複を避けるため、慎重に統合します
検証
  1. 早めに、こまめに検証します:

    • 引用を追加する際に確認します
    • 提出前に参考文献全体を検証します
    • 手動で編集した後は再検証します
  2. 問題は速やかに修正します:

    • DOI が無効な場合:正しい識別子を探します
    • フィールドが不足している場合:元の情報源から抽出します
    • 重複している場合:最適な版を選び、ほかを削除します
    • 書式に誤りがある場合:安全なときは自動修正を使用します
  3. 重要な引用は手動で確認します:

    • 重要な論文が正しく引用されていることを確認します
    • 著者名が出版物と一致していることを確認します
    • ページ番号と巻号を確認します
    • URL が最新であることを確認します

避けるべきよくある落とし穴

  1. 単一ソースへの偏り:Google Scholar または PubMed だけを使用する

    • 解決策:網羅的に調査するため、複数のデータベースを検索します
  2. メタデータを無条件に受け入れる:抽出した情報を検証しない

    • 解決策:抽出したメタデータを原典と照合して、抜き取り検査を行います
  3. DOI の誤りを無視する:参考文献に無効または誤った DOI がある

    • 解決策:最終提出の前に検証を実行します
  4. 書式の不統一:引用キーのスタイルや書式が混在している

    • 解決策:format_bibtex.py を使用して標準化します
  5. 重複したエントリー:同じ論文が異なるキーで複数回引用されている

    • 解決策:検証時に重複検出を使用します
  6. 必須フィールドの欠落:BibTeX エントリーが不完全(巻、ページ、DOI が欠落)

    • 解決策:先に進む前に、フェーズ 2.5 のメタデータ補完を実行します。欠落しているフィールドごとにウェブ検索を行ってください。volume、pages、DOI のない @article エントリーを絶対に残さないでください。
  7. 古いプレプリント:出版済みのバージョンがあるのにプレプリントを引用する

    • 解決策:プレプリントが出版済みかを確認し、ジャーナル版に更新します
  8. 特殊文字の問題:文字が原因で LaTeX のコンパイルに失敗する

    • 解決策:BibTeX で適切なエスケープまたは Unicode を使用します
  9. 提出前の検証不足:引用エラーがあるまま提出する

    • 解決策:最終確認として、必ず検証を実行します
  10. BibTeX エントリーの手入力:エントリーを手作業で入力する

    • 解決策:必ずスクリプトを使用してメタデータソースから抽出します

ワークフローの例

例 1:論文の参考文献リストを作成する
# Step 1: Find key papers on your topic
python scripts/search_google_scholar.py "transformer neural networks" \
  --year-start 2017 \
  --limit 50 \
  --output transformers_gs.json

python scripts/search_pubmed.py "deep learning medical imaging" \
  --date-start 2020 \
  --limit 50 \
  --output medical_dl_pm.json

# Step 2: Extract metadata from search results
python scripts/extract_metadata.py \
  --input transformers_gs.json \
  --output transformers.bib

python scripts/extract_metadata.py \
  --input medical_dl_pm.json \
  --output medical.bib

# Step 3: Add specific papers you already know
python scripts/doi_to_bibtex.py 10.1038/s41586-021-03819-2 >> specific.bib
python scripts/doi_to_bibtex.py 10.1126/science.aam9317 >> specific.bib

# Step 4: Combine all BibTeX files
cat transformers.bib medical.bib specific.bib > combined.bib

# Step 5: Format and deduplicate
python scripts/format_bibtex.py combined.bib \
  --deduplicate \
  --sort year \
  --descending \
  --output formatted.bib

# Step 6: Validate
python scripts/validate_citations.py formatted.bib \
  --auto-fix \
  --report validation.json \
  --output final_references.bib

# Step 7: Review any issues
cat validation.json | grep -A 3 '"errors"'

# Step 8: Use in LaTeX
# \bibliography{final_references}
例 2:DOI のリストを変換する
# You have a text file with DOIs (one per line)
# dois.txt contains:
# 10.1038/s41586-021-03819-2
# 10.1126/science.aam9317
# 10.1016/j.cell.2023.01.001

# Convert all to BibTeX
python scripts/doi_to_bibtex.py --input dois.txt --output references.bib

# Validate the result
python scripts/validate_citations.py references.bib --verbose
例 3:既存の BibTeX ファイルを整理する
# You have a messy BibTeX file from various sources
# Clean it up systematically

# Step 1: Format and standardize
python scripts/format_bibtex.py messy_references.bib \
  --output step1_formatted.bib

# Step 2: Remove duplicates
python scripts/format_bibtex.py step1_formatted.bib \
  --deduplicate \
  --output step2_deduplicated.bib

# Step 3: Validate and auto-fix
python scripts/validate_citations.py step2_deduplicated.bib \
  --auto-fix \
  --output step3_validated.bib

# Step 4: Sort by year
python scripts/format_bibtex.py step3_validated.bib \
  --sort year \
  --descending \
  --output clean_references.bib

# Step 5: Final validation report
python scripts/validate_citations.py clean_references.bib \
  --report final_validation.json \
  --verbose

# Review report
cat final_validation.json
例 4:重要な論文を見つけて引用する
# Find highly cited papers on a topic
python scripts/search_google_scholar.py "AlphaFold protein structure" \
  --year-start 2020 \
  --year-end 2024 \
  --sort-by citations \
  --limit 20 \
  --output alphafold_seminal.json

# Extract the top 10 by citation count
# (script will have included citation counts in JSON)

# Convert to BibTeX
python scripts/extract_metadata.py \
  --input alphafold_seminal.json \
  --output alphafold_refs.bib

# The BibTeX file now contains the most influential papers

他のスキルとの連携

文献レビューのスキル

引用管理は、文献レビューの技術的な基盤を提供します。

  • 文献レビュー:複数データベースを対象とした体系的な検索と統合
  • 引用管理:メタデータの抽出と検証

連携ワークフロー:

  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_google_scholar.py:Google Scholar 検索の自動化
  • search_pubmed.py:PubMed E-utilities API クライアント
  • extract_metadata.py:汎用メタデータ抽出ツール
  • validate_citations.py:引用の検証と確認
  • format_bibtex.py:BibTeX のフォーマッターとクリーナー
  • doi_to_bibtex.py:DOI から BibTeX への簡易変換ツール

アセット(assets/ 内):

  • bibtex_template.bib:すべてのタイプの BibTeX エントリー例
  • citation_checklist.md:品質保証チェックリスト
外部リソース

検索エンジン:

メタデータ API:

ツールとバリデーター:

引用スタイル:

依存関係

必須 Python パッケージ
# Core dependencies
pip install requests  # HTTP requests for APIs
pip install bibtexparser  # BibTeX parsing and formatting
pip install biopython  # PubMed E-utilities access

# Optional (for Google Scholar)
pip install scholarly  # Google Scholar API wrapper
# or
pip install selenium  # For more robust Scholar scraping
オプションのツール
# For advanced validation
pip install crossref-commons  # Enhanced CrossRef API access
pip install pylatexenc  # LaTeX special character handling

概要

引用管理スキルでは、以下の機能を利用できます。

  1. Google Scholar と PubMed の包括的な検索機能
  2. DOI、PMID、arXiv ID、URL からのメタデータの自動抽出
  3. DOI の検証と完全性チェックによる引用情報の検証
  4. 標準化およびクリーニングツールによるBibTeX のフォーマット
  5. 検証とレポートによる品質保証
  6. 科学論文執筆ワークフローとの統合
  7. 文書化された検索・抽出方法による再現性

このスキルを活用して、研究全体を通じて引用情報の正確性と完全性を保ち、出版可能な参考文献リストを作成してください。

コメント