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. 02核验 DOI 和 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 研究技能

从 Wikipedia 中提取可验证的研究信息,包含完整的引文来源、实体关系、时间线和供 AI 使用的验证报告。

为什么使用此技能?

不使用技能使用技能
无结构的散文符合架构的结构化 JSON
“各种来源”12 条以上引文,包含 DOI、PMID
论断彼此孤立每条论断都对应引文
无法验证包含 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}} - 归属信息含糊
不一致性检测

交叉核对研究中的论断:

  • 日期冲突(不同章节中的博士学位年份不一致)
  • 姓名变体
  • 相互矛盾的事实

实体和关系提取

实体类型
类型示例
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
仅有裸 URL0.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 - 解析指南

评论

支持 Markdown