引用管理
概要
研究および執筆プロセス全体を通じて、引用を体系的に管理します。このスキルは、学術データベース(Google Scholar、PubMed)の検索、複数の情報源(CrossRef、PubMed、arXiv)からの正確なメタデータ抽出、引用情報の検証、および適切にフォーマットされたBibTeXエントリの生成のためのツールと戦略を提供します。
引用の正確性を維持し、参照エラーを回避し、再現可能な研究を保証するために重要です。文献レビュースキルとシームレスに統合し、包括的な研究ワークフローを実現します。
このスキルを使用するタイミング
以下の場合にこのスキルを使用します:
- Google ScholarまたはPubMedで特定の論文を検索する
- DOI、PMD、またはarXiv IDを適切にフォーマットされたBibTeXに変換する
- 引用の完全なメタデータ(著者、タイトル、ジャーナル、年など)を抽出する
- 既存の引用の正確性を検証する
- BibTeXファイルのクリーニングとフォーマット
- 特定の分野で高被引用論文を見つける
- 引用情報が実際の出版物と一致することを確認する
- 原稿や論文の参考文献リストを作成する
- 重複する引用を確認する
- 一貫した引用フォーマットを確保する
これらの引用から構築されたドキュメントに図が必要な場合は、科学図式スキルを使用してください。
コアワークフロー
引用管理は体系的なプロセスに従います。以下の各フェーズは標準的なコマンドを示しています。すべてのバリエーション、オプション、メタデータソースの詳細は、references/core_workflow.mdにあります。
フェーズ1: 論文の発見と検索
関連する論文を見つけます。複数のデータベースを検索してください。データベースごとにカバレッジが大きく異なり、単一の情報源に依存することが、偏った参考文献リストの最も一般的な原因です。
# OpenAlex: 学際的なREST API。オプションのOPENALEX_API_KEYでアカウントクォータ
python scripts/search_openalex.py "CRISPR遺伝子編集" --limit 50 --output results.json
# PubMed: 生物医学および生命科学の権威ある情報源(3500万件以上の引用)
python scripts/search_pubmed.py "アルツハイマー病治療" --limit 100 --output alz.json
# Google Scholar: 最も広範囲をカバーするが、スクレイピングベースでレート制限があり、ブロックされやすい
python scripts/search_google_scholar.py "CRISPR遺伝子編集" --limit 50 --output scholar.json
プライマリソースとしてはOpenAlexまたはPubMedを優先してください。Google ScholarにはAPIがありません。scholarlyはスクレイピングを行い、結果間に2~5秒のインターバルを置きますが、ブロックされる頻度が高いため、補助的な手段として使用し、依存すべきではありません。
クエリ演算子、フィールドタグ、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 # 単一のDOIを素早く変換
python scripts/extract_metadata.py --pmid 34265844 # DOI/PMID/PMCID/arXiv/URLから抽出
python scripts/extract_metadata.py --input identifiers.txt --output citations.bib
パス内にDOIを含まないURLは、出版社が記事ページに埋め込むcitation_doiメタタグを介して解決され、CrossRefに渡されます。プロデューサーは共有の引用キースキームを使用しますが、メタデータの違いにより異なるキーが生成される可能性があります。DOIと書誌的同一性に基づいて重複を確認してください。
フェーズ2.5: Web検索によるメタデータのエンリッチメント(必須)
APIは日常的に不完全なレコードを返します。これは抽出後かつフォーマット前に実行してください。欠落している書誌フィールドについて出版社のレコードを調査し、各情報源をログに記録します。オンラインファーストの記事には巻・ページがない場合があり、記事番号を使用するものやDOIがないものもあります。実際の出版状態を保持し、スタイルに適した記事番号フィールドを使用し、ページ、巻、DOIを決して創作しないでください。利用不可/該当なしのフィールドを監査ログに記録し、読者にとって有用であるか、引用スタイルで要求される場合にのみ、レンダリングされたnoteを追加します。
まずはコストの低い情報源を確認します。OpenAlexやCrossRefのレコードには、PubMedが省略したフィールドが含まれていることがよくあります。
python scripts/search_openalex.py "<正確なタイトル>" --limit 1
抽出されたメタデータは信頼できないものとして扱ってください。 著者、タイトル、ジャーナルの文字列は、出版社が管理するレコードからそのまま取得されます。
$(...)、バッククォート、引用符を含むタイトルは、コマンドに貼り付けられた瞬間にシェル構文になります。メタデータはシェル文字列を構築するのではなく、subprocessの引数リストとして渡してください。シェルを使用する必要がある場合は、すべての置換値をシングルクォートで囲み、埋め込まれた引用符を'\''のようにエスケープしてください。パスに到達する前に、引用キーが^[A-Za-z0-9]+$に一致することを検証してください。
フィールドごとの検索戦略、4つの検索オプション、およびログ形式については、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)なしの場合、結果は標準出力に送られ、入力ファイルはそのまま残ります。複数のソースからの結果をマージする場合は--rekeyを使用すると、同じ論文が1つのエントリにまとめられます。
フェーズ4: 引用の検証
完全性、対象会場への準拠、および原稿との一致をチェックします。
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 # 遅い;CrossRefにアクセス
必須フィールドの欠落、不正な年、未解決の引用、または明示的な--min-countを下回る数など、重大度の高いエラーがある場合、スクリプトはゼロ以外のステータスで終了します。会場の参考文献数の数値は編集上の経験則であり、投稿要件ではないため、数値に達していなくても警告のみです。
検証ルールと会場標準については、references/citation_validation.mdを参照してください。
フェーズ5: 執筆ワークフローとの統合
検索、抽出、フォーマット、検証、そして引用。エンドツーエンドのシーケンス(文献レビューおよびZotero/pyzoteroエクスポートパスを含む)については、references/core_workflow.mdおよびreferences/example_workflows.mdを参照してください。
API契約は2026年9月30日時点の公式ドキュメントに照らしてレビュー済みです。エンドポイント、認証、ページネーション、および検証制限については、references/api_contracts.mdを参照してください。リファレンス内のネットワーク例は、そこでライブスモークテストとして記録されていない限り、参考用です。
リファレンスファイル
- references/core_workflow.md: 全5フェーズの完全版。
- references/search_strategies.md: OpenAlex、Google Scholar、PubMedのクエリ構築。
- references/script_reference.md: バンドルされているすべてのスクリプトの引数と例。
- references/best_practices.md: 検索、抽出、BibTeX品質、検証。
- references/example_workflows.md: 4つのエンドツーエンドの実例。
- references/google_scholar_search.md, references/pubmed_search.md: 高度な検索構文。
- references/metadata_extraction.md, references/bibtex_formatting.md, references/citation_validation.md: トピックごとの詳細。
避けるべき一般的な落とし穴
-
単一情報源バイアス: 1つのデータベースのみを使用する
- 解決策: 少なくともOpenAlexとPubMedを検索し、
format_bibtex.py --rekey --deduplicateでマージする
- 解決策: 少なくともOpenAlexとPubMedを検索し、
-
メタデータを盲目的に受け入れる: 抽出された情報を検証しない
- 解決策: 抽出されたメタデータを元の情報源とスポットチェックする
-
DOIエラーを無視する: 参考文献内の壊れた、または正しくないDOI
- 解決策: 最終提出前に検証を実行する
-
フォーマットの不一致: 引用キーのスタイルやフォーマットが混在している
- 解決策: format_bibtex.pyを使用して標準化する
-
重複エントリ: 同じ論文が異なるキーで複数回引用されている
- 解決策: 検証で重複検出を使用する
-
必須フィールドの欠落: 不完全なBibTeXエントリ(巻、ページ、DOIがない)
- 解決策: 出版社のレコードを確認し、欠落と該当なし/未割り当てを区別し、メタデータを創作せずに未解決フィールドをログに記録する。
-
古いプレプリント: 公開版が存在するのにプレプリントを引用している
- 解決策: プレプリントが公開されているか確認し、ジャーナル版に更新する
-
特殊文字の問題: 文字が原因でLaTeXのコンパイルが壊れる
- 解決策: BibTeXで適切なエスケープまたはUnicodeを使用する
-
提出前の検証漏れ: 引用エラーがある状態で提出する
- 解決策: 最終チェックとして必ず検証を実行する
-
手動BibTeX入力: エントリを手で入力する
- 解決策: スクリプトを使用して常にメタデータソースから抽出する
他のスキルとの統合
文献レビュースキル
引用管理は文献レビューに技術的基盤を提供します:
- 文献レビュー: 複数データベースの系統的検索と統合
- 引用管理: メタデータの抽出と検証
組み合わせワークフロー:
- 文献レビューを使用して系統的検索方法論を適用
- 引用管理を使用して引用を抽出・検証
- 文献レビューを使用して結果を統合
- 引用管理を使用して参考文献の正確性を確保
科学執筆スキル
引用管理は科学執筆のための正確な参考文献を保証します:
- LaTeX原稿で使用するために検証済みのBibTeXをエクスポート
- 引用が出版基準に一致することを確認
- ジャーナルの要件に従って参考文献をフォーマット
会場テンプレートスキル
引用管理は会場テンプレートと連携し、投稿準備が整った原稿を作成します:
- 異なる会場では異なる引用スタイルが必要
- 適切にフォーマットされた参考文献を生成
- 引用が会場の要件を満たしているか検証
リソース
バンドルリソース
リファレンス(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: 品質保証チェックリスト
外部リソース
検索エンジン:
- OpenAlex: https://openalex.org/
- Google Scholar: https://scholar.google.com/
- PubMed: https://pubmed.ncbi.nlm.nih.gov/
- PubMed Advanced Search: https://pubmed.ncbi.nlm.nih.gov/advanced/
メタデータAPI:
- OpenAlex API: https://docs.openalex.org/
- 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 documentation: http://www.bibtex.org/
- LaTeX bibliography management: https://www.overleaf.com/learn/latex/Bibliography_management
依存関係
必須のPythonパッケージ
uv pip install requests # CrossRef、PubMed、OpenAlex、arXivへのHTTPアクセス
BibTeXのパース、レンダリング、重複排除、検証は標準ライブラリ(scripts/_common.py)です。format_bibtex.pyはサードパーティパッケージを必要としません。validate_citations.pyは、ローカルのみの検証も含め、requestsをインポートします。
オプション
uv pip install scholarly # search_google_scholar.pyのみ
認証情報の送信先
キーは基本的な使用にはオプションです。各認証情報は対応するサービスのみに送信され、環境変数をまとめて送信するスクリプトはありません。OpenAlexは、ドキュメント化されたアカウント予算を使用し、約束されたメールベースのクォータ増加は使用しません。取得に失敗したページはエラーで終了し、部分的な検索を完了としてエクスポートしません。
| 変数 | 送信先のみ | 目的 |
|---|---|---|
NCBI_API_KEY | eutils.ncbi.nlm.nih.gov | Entrezのレート制限を引き上げます |
NCBI_EMAIL | eutils.ncbi.nlm.nih.gov, pmc.ncbi.nlm.nih.gov | NCBIから要求される呼び出し元の識別 |
OPENALEX_EMAIL | api.openalex.org | オプションの連絡先識別子 |
OPENALEX_API_KEY | api.openalex.org | オプションのアカウントクォータ。Authorizationヘッダーで送信 |
api.openalex.org、api.crossref.org、api.datacite.org、export.arxiv.org、pmc.ncbi.nlm.nih.gov、doi.org、eutils.ncbi.nlm.nih.govは、これらが設定されていない場合、認証情報なしでクエリされます。
まとめ
引用管理スキルは以下を提供します:
- 包括的な検索機能: OpenAlex、PubMed、Google Scholar向け
- 自動メタデータ抽出: DOI、PMID、PMCID、arXiv ID、URLから
- 引用検証: DOIの確認と比較
…
[翻訳のため一部省略]