citation-management について
論文検索、引用メタデータの抽出と補完、検証済み BibTeX 書誌の作成を支援する研究・執筆向けスキルです。論文、学位論文、文献レビューの準備に使えます。
主な機能
- 01Google Scholar と PubMed で検索
- 02DOI、PMID、arXiv ID からメタデータを抽出
- 03不足する引用情報を補完
- 04BibTeX の整形と検証
- 05重複する参考文献を確認
活用シーン
- 01論文や学位論文の書誌を作成
- 02論文識別子を BibTeX に変換
- 03分野内の論文を検索して確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hkphysics/ scientific-agent-skills --skill citation-managementインストール後、Claude Code で/citation-managementを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/bibtex_template.bibcitation_checklist.mdreferences/bibtex_formatting.mdcitation_validation.mdgoogle_scholar_search.mdmetadata_extraction.mdpubmed_search.mdscripts/doi_to_bibtex.pyextract_metadata.pyformat_bibtex.pygenerate_schematic_ai.pygenerate_schematic.pysearch_google_scholar.pysearch_pubmed.pyvalidate_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 を参照):
-
CrossRef API:DOI の主要なソース
- 学術誌論文の包括的なメタデータ
- 出版社が提供する情報
- 著者、タイトル、学術誌名、巻、ページ、日付を含みます
- 無料で、API キーは不要です
-
PubMed E-utilities:生物医学文献
- NCBI の公式メタデータ
- MeSH 用語、抄録を含みます
- PMID および PMCID 識別子
- 無料です。大量に利用する場合は API キーを推奨します
-
arXiv API:物理学、数学、コンピューターサイエンス、定量生物学のプレプリント
- プレプリントの完全なメタデータ
- バージョン追跡
- 著者の所属
- 無料で、オープンアクセスです
-
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 ファイルを確認し、重要なフィールドが不足しているエントリーを探します。
エントリータイプごとに確認するフィールド:
| エントリータイプ | 必須項目 | あることが望ましい項目 |
|---|---|---|
| @article | author、title、journal、year | volume、pages、number、doi |
| @inproceedings | author、title、booktitle、year | pages、doi |
| @book | author/editor、title、publisher、year | isbn、doi |
| @misc | author、title、year | doi または 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 エントリを更新する
不足しているメタデータが見つかったら:
references.bibを開きます- 不完全なエントリに不足しているフィールドを追加します
- 見つかったメタデータが既存のフィールドと一致していることを確認します(著者、タイトル、年が同じであること)
- 修正内容を記録します:
[HH:MM:SS] METADATA ENRICHED: [CitationKey] - added volume={X}, pages={Y--Z}, doi={10.XXX/YYY} ✅
ステップ 4:見つからないメタデータに対処する
ウェブ検索を行ってもメタデータがどうしても見つからない場合(非常に古い論文、知名度の低い学会など):
- 欠落を説明する
noteフィールドを BibTeX エントリに追加します:note = {Volume and pages not available — published online only} - 例外を記録します:
[HH:MM:SS] METADATA INCOMPLETE: [CitationKey] - pages unavailable (online-only publication) ⚠️ - こうした例外はまれであるべきです。最近の論文のほとんどは、ウェブ検索で完全なメタデータを見つけられます。
クイックリファレンス:よく不足しているフィールドと確認先
| 不足フィールド | 効果的な検索方法 |
|---|---|
| DOI | parallel-cli search で「AUTHOR TITLE DOI」を検索します |
| Volume | DOI ページから取得するか、「JOURNAL YEAR TITLE volume」で検索します |
| Pages | DOI ページまたは出版社のウェブサイトから取得します |
| Issue/Number | DOI ページまたは 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 を参照):
-
DOI の確認:
- DOI が doi.org で正しく解決される
- BibTeX と CrossRef の間でメタデータが一致する
- 壊れた DOI や無効な DOI がない
-
必須フィールド:
- エントリタイプに必要なフィールドがすべて存在する
- 重要な情報に空欄や欠落がない
- 著者名の書式が正しい
-
データの整合性:
- 年が有効である(4 桁で妥当な範囲内)
- 巻号が数値である
- ページ番号の書式が正しい(例:123--145)
- URL にアクセスできる
-
重複の検出:
- 同じ DOI が複数回使われていない
- 類似したタイトルがない(重複の可能性)
- 著者、年、タイトルの組み合わせが重複していない
-
書式の準拠:
- 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> を使用して、これらの基準をプログラムで適用してください。
執筆後に必須となる参考文献の確認(必須)
科学レポートまたは論文全体の草稿を作成したら、最終成果物をまとめる前に、すべての引用を包括的に検証してください。
- 欠落または未解決の引用がないことを確認する:草稿またはコンパイル済みドキュメントを確認し、本文中のすべての引用が
references.bib内の参考文献に正しく対応していることを確かめます。壊れた引用キー、識別子の欠落、未解決の参照([?]や[citation needed]など)があってはなりません。 - 未使用の(宙に浮いた)参考文献項目がないことを確認する:
references.bib内のすべての項目がレポート本文で引用されていることを確認します。参考文献一覧を完全に整理された状態に保つため、未使用の項目は削除してください。 - 目標基準に対する引用数を確認する:最終的な引用数が、選択または推奨される掲載先の高い基準(上の表を参照)を満たしているか、それを上回っているか確認します。基準を下回る場合は、まず追加の文献調査を行い、質の高い論文を見つけて適切な節に組み込んでください。
- メタデータが完全であることを確認する:引用したすべての項目に、完全かつ検証済みのフィールド(すべての著者名、学術誌/学会の正式名称、正確な年、巻、号、ページ範囲、有効な 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 スキルを補完します。
文献レビューのスキル → 体系的な検索と統合 引用管理スキル → 技術的な引用処理
統合ワークフロー:
- 包括的な複数データベース検索には
literature-reviewを使用します - すべての引用の抽出と検証には
citation-managementを使用します - テーマ別の知見の統合には
literature-reviewを使用します - 最終的な参考文献一覧の正確性の確認には
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)は、精度の高い検索に使える統制語彙を提供します。
- https://meshb.nlm.nih.gov/search でMeSH 用語を確認します
- クエリで使用します:
"Diabetes Mellitus, Type 2"[MeSH] - キーワードと組み合わせて網羅的に検索します
フィールドタグ:
[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
ベストプラクティス
検索戦略
-
広く始めてから絞り込みます:
- 一般的な用語から始めて、その分野の概要を把握します
- 具体的なキーワードやフィルターを使って絞り込みます
- 同義語や関連用語を活用します
-
複数の情報源を使います:
- 幅広く網羅するには Google Scholar を使用します
- 生物医学分野に特化するには PubMed を使用します
- プレプリントを探すには arXiv を使用します
- 網羅性を高めるため、検索結果を組み合わせます
-
引用を活用します:
- 重要な論文を見つけるには「Cited by」を確認します
- 主要な論文の参考文献を確認します
- 引用ネットワークを使って関連研究を見つけます
-
検索内容を記録します:
- 検索クエリと日付を保存します
- 検索結果の件数を記録します
- 適用したフィルターや制限事項を記録します
メタデータの抽出
-
DOI がある場合は必ず使用します:
- 最も信頼性の高い識別子です
- 出版物への恒久的なリンクです
- CrossRef を介して最適なメタデータを取得できます
-
抽出したメタデータを確認します:
- 著者名が正しいことを確認します
- 学術誌名/会議名を確認します
- 出版年を確認します
- ページ番号と巻号を確認します
-
例外的なケースに対応します:
- プレプリント:リポジトリと ID を記載します
- 後に出版されたプレプリント:出版版を使用します
- 会議論文:会議名と開催地を記載します
- 書籍の章:書名と編集者を記載します
-
一貫性を保ちます:
- 著者名の形式を統一します
- 学術誌の略称を統一します
- DOI の形式を統一します(URL 形式を推奨)
BibTeX の品質
-
慣例に従います:
- 意味のある引用キーを使用します(FirstAuthor2024keyword)
- タイトルの大文字表記を保持するには {} で囲みます
- ページ範囲には単一のハイフンではなく -- を使用します
- 最新の出版物にはすべて DOI フィールドを含めます
-
すっきりと保ちます:
- 不要なフィールドを削除します
- 重複する情報を記載しません
- 書式を統一します
- 構文を定期的に検証します
-
体系的に整理します:
- 年またはトピック別に並べ替えます
- 関連する論文をグループ化します
- プロジェクトごとに別々のファイルを使用します
- 重複を避けるため、慎重に統合します
検証
-
早めに、こまめに検証します:
- 引用を追加する際に確認します
- 提出前に参考文献全体を検証します
- 手動で編集した後は再検証します
-
問題は速やかに修正します:
- DOI が無効な場合:正しい識別子を探します
- フィールドが不足している場合:元の情報源から抽出します
- 重複している場合:最適な版を選び、ほかを削除します
- 書式に誤りがある場合:安全なときは自動修正を使用します
-
重要な引用は手動で確認します:
- 重要な論文が正しく引用されていることを確認します
- 著者名が出版物と一致していることを確認します
- ページ番号と巻号を確認します
- URL が最新であることを確認します
避けるべきよくある落とし穴
-
単一ソースへの偏り:Google Scholar または PubMed だけを使用する
- 解決策:網羅的に調査するため、複数のデータベースを検索します
-
メタデータを無条件に受け入れる:抽出した情報を検証しない
- 解決策:抽出したメタデータを原典と照合して、抜き取り検査を行います
-
DOI の誤りを無視する:参考文献に無効または誤った DOI がある
- 解決策:最終提出の前に検証を実行します
-
書式の不統一:引用キーのスタイルや書式が混在している
- 解決策:format_bibtex.py を使用して標準化します
-
重複したエントリー:同じ論文が異なるキーで複数回引用されている
- 解決策:検証時に重複検出を使用します
-
必須フィールドの欠落:BibTeX エントリーが不完全(巻、ページ、DOI が欠落)
- 解決策:先に進む前に、フェーズ 2.5 のメタデータ補完を実行します。欠落しているフィールドごとにウェブ検索を行ってください。volume、pages、DOI のない @article エントリーを絶対に残さないでください。
-
古いプレプリント:出版済みのバージョンがあるのにプレプリントを引用する
- 解決策:プレプリントが出版済みかを確認し、ジャーナル版に更新します
-
特殊文字の問題:文字が原因で LaTeX のコンパイルに失敗する
- 解決策:BibTeX で適切なエスケープまたは Unicode を使用します
-
提出前の検証不足:引用エラーがあるまま提出する
- 解決策:最終確認として、必ず検証を実行します
-
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
他のスキルとの連携
文献レビューのスキル
引用管理は、文献レビューの技術的な基盤を提供します。
- 文献レビュー:複数データベースを対象とした体系的な検索と統合
- 引用管理:メタデータの抽出と検証
連携ワークフロー:
- 体系的な検索手法には literature-review を使用します
- 引用の抽出と検証には citation-management を使用します
- 調査結果の統合には literature-review を使用します
- 参考文献リストの正確性を確保するには 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:品質保証チェックリスト
外部リソース
検索エンジン:
- Google Scholar:https://scholar.google.com/
- PubMed:https://pubmed.ncbi.nlm.nih.gov/
- PubMed Advanced Search:https://pubmed.ncbi.nlm.nih.gov/advanced/
メタデータ API:
- CrossRef API:https://api.crossref.org/
- PubMed E-utilities:https://www.ncbi.nlm.nih.gov/books/NBK25501/
- arXiv API:https://arxiv.org/help/api/
- DataCite API:https://api.datacite.org/
ツールとバリデーター:
- MeSH Browser:https://meshb.nlm.nih.gov/search
- DOI Resolver:https://doi.org/
- BibTeX Format:http://www.bibtex.org/Format/
引用スタイル:
- BibTeX のドキュメント:http://www.bibtex.org/
- LaTeX の参考文献管理:https://www.overleaf.com/learn/latex/Bibliography_management
依存関係
必須 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
概要
引用管理スキルでは、以下の機能を利用できます。
- Google Scholar と PubMed の包括的な検索機能
- DOI、PMID、arXiv ID、URL からのメタデータの自動抽出
- DOI の検証と完全性チェックによる引用情報の検証
- 標準化およびクリーニングツールによるBibTeX のフォーマット
- 検証とレポートによる品質保証
- 科学論文執筆ワークフローとの統合
- 文書化された検索・抽出方法による再現性
このスキルを活用して、研究全体を通じて引用情報の正確性と完全性を保ち、出版可能な参考文献リストを作成してください。