静态数据包规范¶
数据包结构¶
assets/paper-graph-time/
source/ # 手工维护或采集输出的源文件
meta.json # 版本与生成时间
radar-7d.json
radar-30d.json
graph-lite.json
graph-index.json
cluster/
paper/
paths/
trends/
updates-7d.json
data/ # 构建输出(上线发布)
manifest.json # 构建后生成的清单与 hash
...
data/paper-graph-time/
raw/ # 原始抓取数据(例如 arXiv 元数据与 PDF)
metadata.json
pdf/
数据生成入口¶
- 数据源目录:
docs/assets/paper-graph-time/source - 发布目录:
docs/assets/paper-graph-time/data - 构建脚本:
tools/paper_graph_time/build_static_data.py
构建命令¶
python3 tools/paper_graph_time/build_static_data.py \
--source docs/assets/paper-graph-time/source \
--output docs/assets/paper-graph-time/data
数据包检查¶
python3 tools/paper_graph_time/validate_data.py \
--data-dir docs/assets/paper-graph-time/data \
--output docs/assets/paper-graph-time/data/quality-report.json
原始数据抓取(arXiv 示例)¶
python3 tools/paper_graph_time/download_arxiv_papers.py \
--max-results 200 \
--metadata-only \
--out-dir data/paper-graph-time/raw
如需 PDF,将
--metadata-only去掉(注意体积与时间成本)。
PDF 索引构建¶
python3 tools/paper_graph_time/build_pdf_index.py \
--metadata data/paper-graph-time/raw/metadata.json \
--pdf-dir data/paper-graph-time/raw/pdf \
--output docs/assets/paper-graph-time/source/pdf-index.json
自动生成 source 数据¶
python3 tools/paper_graph_time/generate_source_from_arxiv.py \
--metadata data/paper-graph-time/raw/metadata.json \
--output docs/assets/paper-graph-time/source \
--replace
meta.json¶
{
"version": "2026-01-24",
"generated_at": "2026-01-24T08:00:00Z",
"sources": ["arXiv", "OpenReview"]
}
manifest.json¶
{
"version": "2026-01-24",
"generated_at": "2026-01-24T08:00:00Z",
"files": [
{ "path": "radar-7d.json", "bytes": 1234, "sha1": "..." }
]
}
关键文件说明¶
radar-7d.json/radar-30d.json:热点榜单与方法迁移雷达graph-lite.json:用于 Explore 与 Path 的子图(控制体积)graph-index.json:搜索索引(label + keywords)cluster/{id}.json:主题页数据paper/{id}.json+paper/{id}-edges.json:论文详情与证据链paths/recommended.json:推荐路径trends/{cluster_id}.json:趋势回放updates-7d.json:订阅增量
样例导入格式(source 模板)¶
radar-7d.json / radar-30d.json¶
{
"clusters": [
{
"cluster_id": "cluster:method:rag",
"label": "Retrieval-Augmented Generation",
"new_papers_7d": 18,
"new_edges_7d": 42,
"key_papers": ["paper:arxiv:2401.12345"],
"growth_curve": [{ "date": "2026-01-18", "papers": 2, "edges": 5 }],
"score": 0.82,
"evidence_ref": ["edge:rag:001"]
}
],
"method_radar": [
{ "method_id": "method:rag", "new_tasks": ["qa"], "first_seen": "2026-01-20", "score": 0.71 }
]
}
graph-lite.json¶
{
"meta": { "sources": ["arXiv", "OpenReview"] },
"nodes": [
{ "id": "paper:arxiv:2401.12345", "type": "Paper", "label": "RAG with Temporal Memory", "source": "arXiv" }
],
"edges": [
{ "id": "edge:rag:001", "type": "CITES", "from": "paper:arxiv:2401.12345", "to": "paper:arxiv:2402.56789", "evidence": { "type": "citation", "payload": { "source": "Crossref" } } }
]
}
cluster/{id}.json¶
{
"id": "cluster:method:rag",
"label": "Retrieval-Augmented Generation",
"keywords": ["RAG"],
"series": [{ "date": "2026-01-18", "new_papers": 2 }],
"key_papers": [{ "id": "paper:arxiv:2401.12345", "title": "RAG with Temporal Memory", "venue": "arXiv" }],
"representative_tasks": ["qa", "summarization"],
"subclusters": [
{ "id": "subcluster:retrieval", "label": "retrieval", "count": 12, "key_papers": [{"id": "paper:...", "title": "..."}] }
]
}
subcluster/{id}.json¶
{
"id": "subcluster:cluster-category-cs-ai:retrieval",
"label": "retrieval",
"cluster_id": "cluster-category-cs-ai",
"count": 12,
"papers": [{ "id": "paper:arxiv:2401.12345", "title": "RAG with Temporal Memory", "year": 2026 }]
}
paper/{id}.json + paper/{id}-edges.json¶
{
"id": "paper:arxiv:2401.12345",
"title": "RAG with Temporal Memory",
"year": 2026,
"venue": "arXiv",
"keywords": ["retrieval", "memory", "agents"],
"datasets": ["MS MARCO"],
"summary": {
"one_liner": "...",
"method_points": ["...", "...", "..."],
"limitations": "...",
"summary_cards": ["sentence A", "sentence B"]
}
}
{
"id": "paper:arxiv:2401.12345",
"items": [
{ "type": "CITES", "evidence": { "type": "citation", "payload": { "source": "Crossref", "doi": "10.1234/abcd" } } }
]
}
paths/recommended.json¶
{
"paths": [
{
"id": "path-rag-001",
"title": "从 RAG 走到多任务检索",
"length": 7,
"papers": [{ "id": "paper:arxiv:2401.12345", "title": "RAG with Temporal Memory", "year": 2026, "arxiv_id": "2401.12345" }]
}
]
}
trends/{cluster_id}.json¶
{
"id": "cluster:method:rag",
"label": "Retrieval-Augmented Generation",
"window": "2026-01",
"cluster_growth": [{ "date": "2026-01-18", "papers": 2, "edges": 5 }],
"bridge_flow": [{ "date": "2026-01-18", "edges": 1 }]
}
updates-7d.json¶
{
"items": [
{ "type": "新关键论文", "title": "Ramen: Robust Alignment for RAG", "date": "2026-01-24" }
]
}
insights.json¶
{
"top_keywords": [{ "keyword": "retrieval", "count": 12 }],
"top_methods": [{ "method": "Retrieval", "token": "retrieval", "count": 15 }],
"top_datasets": [{ "dataset": "MS MARCO", "count": 5 }],
"category_distribution": [{ "category": "cs.AI", "count": 80 }]
}
method-trends.json / task-trends.json¶
{
"items": [
{ "method": "Retrieval", "token": "retrieval", "series": [{ "date": "2026-01-01", "count": 3 }] }
]
}
keyword-trends.json¶
{
"items": [
{ "keyword": "retrieval", "series": [{ "date": "2026-01-01", "count": 2 }] }
]
}