关于 wikipedia-research
用于从 Wikipedia 提取结构化、可核验信息的研究技能,适合研究人员和 AI 工作流;支持引用验证、不确定性与矛盾检测、实体关系提取和时间线整理。
主要功能
- 01结构化研究输出
- 02引用提取与验证
- 03不确定性和矛盾检测
- 04实体与关系提取
- 05按时间构建事件线
- 06来源质量与置信度评分
适用场景
- 01为研究主题收集来源
- 02核验 DOI 和 PMID 引用
- 03审查标记为不确定的论断
- 04梳理人物、组织与事件关系
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ joshuaroll/ wikipedia-research-skill --skill wikipedia-research安装后在 Claude Code 中输入/wikipedia-research确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdLICENSEassets/example_asset.txtreferences/output_schema.mdapi_reference.mdcitation_templates.mdscripts/example.pyresearch_collector.pyentity_extractor.pycitation_extractor.pysource_verifier.pywikipedia_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)
| 评级 | 分数 | 含义 |
|---|---|---|
| A | 0.80+ | 完全可靠——已验证大多数引文 |
| B | 0.60-0.79 | 通常可靠 |
| C | 0.40-0.59 | 比较可靠 |
| D | 0.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 是否存在,然后针对重要事实手动核实论断与来源是否一致。
最佳实践
- 始终验证 - 对所有研究运行 source_verifier
- 检查不确定性标记 - Wikipedia 常会标记薄弱之处
- 构建时间线 - 时间顺序能揭示不一致之处
- 提取关系 - 理解上下文至关重要
- 保存 revision_id - Wikipedia 内容会变化;保存此标识可确保结果可复现
- 使用 DOI - 最可靠的引文标识符
- 检查存档 - 失效链接通常可以在 Wayback 找到副本
参考文档
references/output_schema.md- 完整的 JSON 架构references/api_reference.md- Wikipedia API 详情references/citation_templates.md- 解析指南
评论
支持 Markdown