mcpField
S
semantic-scholar

semantic-scholar

github.com/allenai生産性43261 回インストール今日更新
リポジトリ

semantic-scholar について

`asta papers` を使い、Semantic Scholar APIで論文や著者を対象を絞って検索するスキルです。メタデータ、引用関係、キーワード検索、本文スニペットの確認に向いており、網羅的な文献レビューには適しません。

主な機能

  1. 01IDによる論文メタデータ取得
  2. 02キーワードと日付による論文検索
  3. 03本文スニペット検索
  4. 04引用論文の取得
  5. 05著者と著作の検索

活用シーン

  1. 01論文の著者、掲載誌、被引用数の確認
  2. 02特定論文を引用する作品の追跡
  3. 03著者の論文一覧の検索
  4. 04主張や手法に一致する箇所の特定

インストール

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

$npx skills add https://github.com/allenai/asta-plugins --skill semantic-scholar

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

詳細

Semantic Scholar Lookup

`asta papers` コマンドを使い、Semantic Scholar API 経由で論文のメタデータ、引用、著者をすばやく的確に検索します。

このスキルを使う場面

  • 特定の論文について詳細を知りたい場合(タイトル、DOI、arXiv ID などで指定)
  • ある研究を引用している論文を確認したい場合
  • 著者の論文について知りたい場合
  • キーワードですばやく検索したい場合(包括的なレポートではなく)
  • 論文の全文から特定の主張、手法、根拠を見つけたい場合(snippet-search を使用)
  • 特定の論文メタデータや引用グラフが必要な場合

包括的なレポートには適していません。その場合は Literature Report Generation スキルを使用してください。

関連:Find Literature スキル

asta papers ...(このスキル)は、Semantic Scholar API に対する機械的で的を絞った検索に使用します。既知の論文の取得、引用の一覧表示、タイトル/要旨/本文を対象にしたキーワード検索、著者の検索ができます。S2 独自のキーワードランキングを超えるエージェントによる推論は行いません。

Find Literature スキル(asta literature find / asta literature interactive)は、トピック主導で条件に基づく検索に使用します。システムがクエリから関連性の条件を抽出し、候補を取得して、それらの条件に照らしてランク付けし、論文ごとの関連性の概要を提示します。キーワード一致よりも「評価付きの文献検索」に近い機能です。

次の場合はこのスキル(asta papers)を使用してください。

  • ユーザーが特定の論文、著者、ID、または正確な語句を指定して検索を依頼している
  • 生のメタデータ(引用、掲載誌、研究分野、openAccessInfo)が必要
  • 引用グラフをたどっている(何が何を引用しているか、ある著者が何を引用したか)
  • 論文本文内で特定の文字列を grep したい(snippet-search)
  • 網羅性よりも速さを優先する

次の場合は、代わりに Find Literature スキルを使用してください。

  • ユーザーが「X に関する論文を探して」「Y について文献では何が述べられているか」「Z を論じている論文」と依頼している
  • クエリが文字列の一致ではなく研究トピックであり、説明付きの関連度ランキングが重要
  • 作業セッションが探索的である:以前の結果を絞り込み、集約し、複数ターンにわたって関連性をたどる(asta literature interactive --thread-dir <dir> を使用)
  • 検証を伴う find 形式の単発処理、または interactive 形式の複数ターンにわたるエージェントループの方が、生のキーワード検索より適切にランク付けされた結果を返せる

この2つは互いに補完し合います。よくある使い方は、Find Literature でトピックに関連する論文を見つけ、その後 asta papers get / asta papers citations で特定の論文を詳しく調べる方法です。

セッション全体に適用する目安: セッション全体が文献検索/探索に関するものである場合(たとえば、最初のユーザー発話が「X に関する論文を探して」など)、個々のクエリが単純に見える場合でも、論文を見つける作業には asta literature interactive をデフォルトで使用してください。セッションの主題が別にあり、手順の一部としてメタデータや引用をすばやく検索する場合は asta papers を使用してください。

使用できるコマンド

論文の詳細を取得する

asta papers get - ID を指定して単一の論文のメタデータを取得します

asta papers get ARXIV:2005.14165

asta papers get "DOI:10.18653/v1/N18-3011" --fields title,year,authors,abstract

asta papers get CorpusId:215416146 --format text

対応する ID 形式:

  • ARXIV:2106.15928
  • DOI:10.18653/v1/N18-3011
  • CorpusId:215416146
  • PMID:19872477
  • URL:https://arxiv.org/abs/2106.15928

一般的なフィールド:title,abstract,authors,year,venue,citationCount,publicationDate,url,isOpenAccess,fieldsOfStudy

論文を検索する

asta papers search - キーワードに基づいて論文を検索します

asta papers search "transformers attention mechanism"

asta papers search "RLHF" --date 2023- --limit 10

asta papers search "neural networks" --fields title,year,abstract,authors

asta papers search "LLM safety" --date 2024-01-01:2024-12-31

オプション:

  • --fields:返すフィールドをカンマ区切りで指定します
  • --limit:結果数(デフォルトは 20、最大 100)
  • --date:出版日または出版年のフィルターです。年(2020、2020-2024、2020-)または日付範囲(2024-01-01:2024-12-31)を指定できます。S2 の publicationDateOrYear パラメーターに対応します。
  • --format:json または text 形式で出力します
スニペット検索

asta papers snippet-search - S2 の snippet/search API を使用して、論文の全文(タイトル、要約、本文)を検索します。一致するテキストの抜粋と論文のメタデータを返します。

asta papers snippet-search "in-context learning emerges at scale"

asta papers snippet-search "RLHF reward hacking" --date 2023- --limit 10

asta papers snippet-search "sparse mixture of experts" --fields snippet.text,snippet.snippetKind,snippet.section

# Pin results to papers indexed before a date (useful for reproducible benchmarks)
asta papers snippet-search "chain-of-thought" --inserted-before 2024-01-01

--fields オプションでは、スニペットのフィールドを指定できます。

  • snippet.text - 一致したテキストの抜粋(約 500 語)
  • snippet.snippetKind - 出典の種類(例:タイトル、要約、本文)
  • snippet.section - スニペットの出典となった論文のセクション
  • snippet.snippetOffset - 文字位置のデータ(start、end)
  • snippet.annotations - 参考文献への言及や文の境界を含むマークアップ

--fields を省略した場合、デフォルトは snippet.text,snippet.snippetKind です。論文のメタデータ(corpusId、title、authors、openAccessInfo)と関連度スコアは、--fields にかかわらず常に返されます。

オプション:

  • --fields:返すスニペットのフィールドをカンマ区切りで指定します
  • --date:日付/年のフィルター。標準検索と同じです
  • --limit:結果の最大数(デフォルト 20、最大 1000。標準検索より上限が高く設定されています)
  • --inserted-before:指定した日付より前にインデックス登録された論文のみを対象にします(YYYY-MM-DD、YYYY-MM、または YYYY)。通常、ベンチマークの一貫性を保つために使用します。カットオフ日を固定すると、新しい論文が継続的にインデックス登録されていても、繰り返し実行したときに同じ論文群が返されます。
  • --format:出力形式として json または text を指定します
引用の取得

asta papers citations - 指定した論文を引用している論文

asta papers citations ARXIV:2005.14165

asta papers citations CorpusId:218487638 --limit 20 --format text

オプション:

  • --fields:引用している論文のフィールド
  • --limit:結果の最大数(デフォルト 50、最大 1000)
  • --format:出力形式として json または text を指定します
著者の検索と論文の取得

asta papers author search - 名前で著者を検索します

asta papers author search "Yoav Goldberg"

asta papers author search "Hinton" --limit 5 --format text

asta papers author papers - 著者の論文を取得します

# First, get author ID from search
asta papers author search "Yoav Goldberg"

# Then get their papers using the author ID
asta papers author papers 1741101 --limit 50

asta papers author papers 1741101 --fields title,year,venue,citationCount

オプション:

  • --fields:論文について返すフィールド
  • --limit:結果の最大数(デフォルト 50、最大 1000)
  • --format:出力形式として json または text を指定します

出力形式

すべてのコマンドで、次の 2 つの出力形式を使用できます。

JSON 形式(デフォルト):

  • 機械可読
  • 完全なデータ構造
  • フィルタリングには jq にパイプで渡します
  • プログラムからの利用に最適です

テキスト形式(--format text):

  • 人間が読みやすい形式
  • 整形済みの出力
  • 手早く内容を確認するのに最適です
  • ユーザーに結果を示す場合に使用します

使用上のヒント

効率的なフィールド選択

応答を速くするため、必要なフィールドだけをリクエストします。

# Good - minimal fields for quick browse
asta papers search "deep learning" --fields title,year,authors,citationCount

# Less efficient - many fields slow down response
asta papers search "deep learning" --fields title,abstract,authors,year,venue,citations,references
日付フィルタリング

必要に応じて、最近の論文に絞り込みます。

asta papers search "RLHF" --date 2023-2024  # 2023-2024
asta papers search "RLHF" --date 2023-      # 2023 onwards
asta papers search "RLHF" --date -2020      # Before 2020
asta papers search "RLHF" --date 2024-06-01:2024-12-31  # Specific date range
jq へのパイプ

複雑な JSON 処理を行う場合:

# Extract just titles
asta papers search "transformers" | jq '.data[].title'

# Filter by citation count
asta papers search "neural networks" | jq '.data[] | select(.citationCount > 100)'

# Get author names
asta papers get ARXIV:2005.14165 | jq '.authors[].name'
複数ステップのワークフロー

複雑なクエリでは、コマンドを連結します。

例 1:ある著者による、最近の被引用数が多い論文を検索する

# 1. Find author
asta papers author search "Geoffrey Hinton" --format text

# 2. Get their recent papers
asta papers author papers 1751273 --fields title,year,citationCount --limit 50 | \
  jq '.data[].paper | select(.year >= 2020) | select(.citationCount > 100)'

例 2:引用ネットワークを調べる

# 1. Get paper details
asta papers get ARXIV:2005.14165

# 2. Get who cited it
asta papers citations ARXIV:2005.14165 --limit 20 --format text

# 3. Get details on specific citing papers
asta papers get CorpusId:123456789

ワークフローの例

「arXiv:2005.14165 の詳細を取得する」
asta papers get ARXIV:2005.14165 --format text

出力を読みやすい形式でユーザーに提示します。

「GPT-3 の論文を引用している論文は?」
# GPT-3 paper
asta papers citations ARXIV:2005.14165 --limit 50 --format text

結果から、最近の論文や被引用数が多い論文を表示します。

「RLHF に関する最近の論文」
asta papers search "RLHF reinforcement learning from human feedback" \
  --date 2023- \
  --limit 20 \
  --fields title,abstract,year,authors,venue,citationCount \
  --format text
「Yoav Goldberg による論文」
# Step 1: Find author
asta papers author search "Yoav Goldberg" --format text

# Step 2: Get their papers (using author ID from step 1)
asta papers author papers 1741101 \
  --fields title,year,venue,citationCount \
  --limit 50 \
  --format text
「『chain-of-thought』推論の根拠を探す」
# Snippet search finds mentions in paper bodies, not just titles/abstracts
asta papers snippet-search "chain-of-thought reasoning improves performance" \
  --limit 15

# Or use standard search for paper-level results
asta papers search "chain-of-thought reasoning" \
  --fields title,abstract,year,authors \
  --limit 15

# Then examine specific papers with 'asta papers get'

応答の提示

ユーザーに結果を示す場合:

単一の論文の場合:

**Title** (Year)
Authors: [author list]
Venue: [venue name]
Citations: [count]

[Abstract]

URL: [Semantic Scholar link]

論文の一覧の場合:

Found [N] papers:

1. **Paper Title** - Author et al. (Year) - [Venue] - [X citations]
2. **Another Paper** - ...
...

スニペットの結果の場合(snippet-search):

Found [N] snippet results:

1. **Paper Title** - Author et al.
   Score: 0.95
   Snippet (abstract): "...matching text excerpt..."
2. **Another Paper** - ...
...

引用の場合:

Found [N] papers citing this work:

Recent citations:
1. [Paper 1] (2024) - [citations]
2. [Paper 2] (2023) - [citations]
...

ベストプラクティス

  • 結果をユーザーに直接表示する場合は --format text を使用します
  • 結果を処理またはフィルタリングする必要がある場合は、JSON 出力を使用します
  • 小さな上限から始め、必要に応じて増やします
  • 実際に使用するフィールドだけを取得します
  • 論文本文に含まれる特定の主張、手法、根拠を検索する場合は snippet-search を使用します
  • トピックレベルで論文を探す場合は search を使用します
  • 包括的な調査には、代わりに Literature Report Generation スキルを提案します
  • 必要に応じて Semantic Scholar の URL を提示します。url フィールドをリクエストして使用するか、手元にある ID からリンクを作成します。paperId の場合は https://www.semanticscholar.org/paper/<paperId>、corpus ID の場合は https://api.semanticscholar.org/CorpusID:<corpusId> を使用します

API キー

コマンドでは、利用可能な場合に環境変数 ASTA_TOOL_KEY を使用します。ほとんどのクエリはキーなしで動作しますが、キーがあるとレート制限が緩和されます。

コメント