mcpField
W
wikipedia-research

wikipedia-research

github.com/joshuaroll生産性073 回インストール39 週間前に更新
リポジトリ

wikipedia-research について

Wikipedia から構造化された検証可能な情報を抽出するリサーチスキルです。研究者や AI ワークフロー向けに、引用確認、不確実性や矛盾の検出、エンティティ関係、年表の作成を支援します。

主な機能

  1. 01構造化された調査結果
  2. 02引用の抽出と検証
  3. 03不確実性と矛盾の検出
  4. 04エンティティと関係の抽出
  5. 05時系列の作成
  6. 06情報源の品質と確信度のスコア

活用シーン

  1. 01調査テーマの情報源収集
  2. 02DOI と PMID の引用確認
  3. 03不確実性が示された主張の確認
  4. 04人物、組織、出来事の関係整理

インストール

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

$npx skills add https://github.com/joshuaroll/wikipedia-research-skill --skill wikipedia-research

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

同梱ファイル

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

README.md
LICENSE
assets/
example_asset.txt
references/
output_schema.md
api_reference.md
citation_templates.md
scripts/
example.py
research_collector.py
entity_extractor.py
citation_extractor.py
source_verifier.py
wikipedia_client.py

詳細

Wikipedia リサーチスキル

AI が利用できるよう、検証可能な調査情報を、出典の完全な引用来歴、エンティティ間の関係、年表、検証レポートとともに Wikipedia から抽出します。

このスキルを使う理由

スキルなしスキルあり
構造化されていない文章スキーマに沿った構造化 JSON
「さまざまな出典」DOI、PMID を含む 12 件以上の引用
主張の出典が不明すべての主張を引用文献に対応付け
検証できないDOI/PMID の検証を含む
信頼性が不明Admiralty Code による品質評価
関係性がないエンティティと関係性を抽出
年表がない時系列でイベントをマッピング
リンク切れを検出できないアーカイブへのフォールバックを含む

調査ワークフロー全体

フェーズ 1:抽出
from scripts.citation_extractor import CitationExtractor

extractor = CitationExtractor()
research = extractor.extract_article("Subject_Name")
フェーズ 2:検証
from scripts.source_verifier import SourceVerifier

verifier = SourceVerifier()

# Verify all citations (DOI, PMID, URL checks)
citation_results = verifier.verify_citations(research['citations'])

# Detect inconsistencies
inconsistencies = verifier.detect_inconsistencies(research)

# Extract Wikipedia uncertainty flags ({{citation needed}}, etc.)
flags = verifier.extract_uncertainty_flags(wikitext)

# Generate verification report
report = verifier.generate_verification_report(
    research, citation_results, inconsistencies, flags
)
フェーズ 3:拡充
from scripts.entity_extractor import EntityExtractor

entity_extractor = EntityExtractor()

# Extract people, organizations, publications mentioned
entities = entity_extractor.extract_entities(research)

# Map relationships (collaborators, employers, etc.)
relationships = entity_extractor.extract_relationships(
    research, entities, "Subject Name"
)

# Build chronological timeline
timeline = entity_extractor.build_timeline(research)

# Generate knowledge graph
graph = entity_extractor.generate_knowledge_graph(
    "Subject Name", entities, relationships, timeline
)
フェーズ 4:出力
from scripts.research_collector import ResearchCollector

collector = ResearchCollector()
collector.save_research({
    **research,
    'verification': report,
    'knowledge_graph': graph
}, "output.json")

出力スキーマ(拡張版)

{
  "article": {
    "title": "Subject Name",
    "url": "https://en.wikipedia.org/wiki/...",
    "revision_id": "1234567890",
    "extracted_at": "2026-02-03T10:30:00Z"
  },
  "sections": [{
    "heading": "Section Name",
    "content": "Text content...",
    "claims": [{
      "text": "Specific factual claim",
      "citation_ids": ["ref_1", "ref_2"],
      "confidence": 0.92
    }]
  }],
  "citations": [{
    "id": "ref_1",
    "type": "article-journal",
    "title": "Paper Title",
    "author": [{"family": "Smith", "given": "John"}],
    "DOI": "10.1234/example",
    "PMID": "12345678",
    "URL": "https://...",
    "issued": {"date-parts": [[2024, 1, 15]]}
  }],
  "verification": {
    "verification_summary": {
      "total_citations": 15,
      "verified_count": 12,
      "verification_score": 0.80,
      "dead_links": 2,
      "archived_recoveries": 1,
      "reliability_assessment": "high"
    },
    "citation_details": {
      "ref_1": {
        "status": "verified",
        "doi_valid": true,
        "pmid_valid": true,
        "url_accessible": true
      }
    },
    "inconsistencies": [],
    "uncertainty_flags": [{
      "section": "Early Life",
      "type": "citation_needed",
      "context": "..."
    }]
  },
  "knowledge_graph": {
    "nodes": [
      {"id": "Subject", "type": "subject"},
      {"id": "Harvard", "type": "organization"},
      {"id": "Collaborator Name", "type": "person"}
    ],
    "edges": [
      {"source": "Subject", "target": "Harvard", "type": "employment"},
      {"source": "Subject", "target": "Collaborator", "type": "collaborator"}
    ],
    "timeline": [
      {"date": "2010", "type": "education", "description": "PhD from..."},
      {"date": "2016", "type": "award", "description": "Received..."}
    ]
  },
  "provenance": {
    "source": "Wikipedia",
    "extraction_method": "MediaWiki API + wikitext parsing",
    "skill_version": "2.0",
    "verification_performed": true
  },
  "metadata": {
    "total_citations": 15,
    "verified_citations": 12,
    "total_claims": 24,
    "entities_extracted": 8,
    "timeline_events": 6,
    "source_quality": {
      "rating": "A",
      "score": 0.85
    }
  }
}

スクリプト一覧

スクリプト用途
wikipedia_client.pyキャッシュ機能を備えたコア API クライアント
citation_extractor.py引用文献を抽出し、CSL-JSON に解析
research_collector.py複数記事にまたがる調査を統括
source_verifier.py新規: DOI、PMID を検証し、リンク切れを検出
entity_extractor.py新規: エンティティ、関係性、年表を抽出

検証機能

引用文献の検証
verifier = SourceVerifier()
result = verifier.verify_citations(citations)

# Each citation gets:
# - status: 'verified', 'accessible', 'dead_link', 'archived'
# - doi_valid: True/False (checked against doi.org)
# - pmid_valid: True/False (checked against PubMed)
# - archive_url: Wayback Machine fallback if dead
不確実性の検出

Wikipedia の不確実性を示すテンプレートに自動でフラグを付けます。

  • {{citation needed}} - 出典のない主張
  • {{disputed}} - 異論のある情報
  • {{original research}} - 出典が不足している可能性
  • {{outdated}} - 情報が古くなっている可能性
  • {{who}} / {{when}} - 曖昧な出典表記
不整合の検出

調査内の主張を相互に照合します。

  • 日付の食い違い(PhD 取得年がセクション間で異なる)
  • 名前の表記ゆれ
  • 矛盾する事実

エンティティと関係性の抽出

エンティティの種類
種類例
person共同研究者、メンター、同僚
organization大学、企業、研究機関
publication_venue学術誌、学会
concept研究分野、手法
関係性の種類
種類意味
collaborator研究上の協力
employment勤務先との関係
education学位・研修
publication掲載された媒体
award_from受賞した賞の授与元

年表の作成

時系列のイベントを自動で抽出します。

{
  "timeline": [
    {"date": "2005", "type": "education", "description": "BSc from University of Manchester"},
    {"date": "2010", "type": "education", "description": "PhD from Humboldt University"},
    {"date": "2011", "type": "publication", "description": "Published protein structure paper"},
    {"date": "2016", "type": "award", "description": "Received Overton Prize"}
  ]
}

品質指標

出典の品質(Admiralty Code)
評価スコア意味
A0.80+完全に信頼できる - ほとんどの引用文献を検証済み
B0.60-0.79通常は信頼できる
C0.40-0.59かなり信頼できる
D0.20-0.39通常は信頼できない
E<0.20信頼できない
信頼度スコア

方法: 引用文献のメタデータの有無に基づく加算式のヒューリスティックです。

各主張の信頼度は、裏付けとなる引用文献のスコアの平均であり、次のように計算します。

Base score:                 0.50
+ DOI present:             +0.20  (indicates peer-reviewed)
+ PMID present:            +0.15  (indexed in PubMed)
+ ISBN present:            +0.10  (published book)
+ URL present:             +0.05  (verifiable link)
+ Author info present:     +0.10  (attributable)
+ Publication venue named: +0.05  (traceable)
─────────────────────────────────
Maximum possible:           1.00

一般的なスコア:

引用文献の種類スコア
学術誌論文(DOI + PMID + 著者)0.95-1.0
学術誌論文(DOI + 著者)0.85
書籍(ISBN + 著者)0.75
ウェブページ(URL + 著者)0.65
URL のみ0.55
引用文献が見つからない0.30

この方法の限界:

  • 出典が実際に主張を裏付けているかは検証しません
  • 出典の内容を意味解析しません
  • DOI があれば査読済みとみなします(プレプリントでは必ずしも正しくありません)
  • 学術誌の評判や被引用数による重み付けはありません

より高い信頼度で検証するには: source_verifier.py を使用して DOI/PMID の存在を検証し、重要な事実については主張と出典の対応関係を手動で確認してください。

ベストプラクティス

  1. 必ず検証する - すべての調査で source_verifier を実行します
  2. 不確実性フラグを確認する - Wikipedia では、根拠が弱い箇所が示されていることがよくあります
  3. 時系列を作成する - 時系列を整理すると、矛盾が明らかになります
  4. 関係性を抽出する - 理解するには文脈が重要です
  5. revision_id を保存する - Wikipedia は変更されるため、再現性を確保できます
  6. DOI を使用する - 最も信頼性の高い引用識別子です
  7. アーカイブを確認する - リンク切れのページは、Wayback に保存されていることがよくあります

リファレンスドキュメント

  • references/output_schema.md - JSON スキーマの全容
  • references/api_reference.md - Wikipedia API の詳細
  • references/citation_templates.md - 解析ガイド

コメント