- name
- cn-literature
- description
- 当用户需要检索或整理中文文献(CNKI 知网、万方、维普、超星)、把中文数据库 导出的题录文件解析成统一 PaperDocument、或把中文文献与英文检索结果合并去重 时使用。同义场景:中文文献检索、知网导出题录解析、万方检索、Refworks/EndNote 格式转换、"帮我把这份 CNKI 导出的 txt 整理成文献表""中文核心期刊上关于 X 有哪些研究"。
- argument-hint
- [检索主题]
- metadata
- {"domains":["literature","chinese-literature"],"last_reviewed":"2026-08-18"}
# cn-literature:中文文献检索与题录整理工作流
## 目的
把中文文献纳入与英文文献同一套 PaperDocument 产物体系。核心设计原则是
**诚实设计**:各中文数据库的能力边界差异很大,本技能对每个来源如实说明
"能做什么、不能做什么",不假装有接口、不绕过平台限制。
各来源能力边界(必须先读再执行):
- **CNKI(知网)**:无公开 API。本技能**不绕过验证码、不批量抓取**。
推荐工作流是"人工检索 + 题录导出 + 脚本解析":用户在 CNKI 官网检索,
导出 Refworks 或 EndNote 格式题录文件,再用
`scripts/parse_refworks.py` 解析为 PaperDocument。
- **万方**:有官方开放平台(`api.wanfangdata.com.cn`,按点计费)。
已配置 `WANFANG_TOKEN` 环境变量时,可用
`scripts/wanfang_search.py` 直接检索;未配置时走与 CNKI 相同的
人工导出流程。
- **维普 / 超星**:无可用接口,请用户人工检索后把题录粘贴到会话中,
由你手工整理为 PaperDocument。
## 前置检查
1. 网络可用与否决定不了 CNKI 流程(其核心是本地解析),但万方直接
检索需要网络;离线时只做解析类工作。
2. 明确用户手里有什么:是"还没检索"(→ 引导官网检索)、"已有导出
文件"(→ 解析)、还是"已粘贴题录"(→ 手工整理)。
3. 检查 `scripts/parse_refworks.py` 与 `scripts/wanfang_search.py`
存在;`python` 可用。
4. 计算 slug:检索主题规范化(Unicode NFKC 规范化、转小写、去首尾空白、
连续空白折叠为单个空格)后取 sha1 十六进制摘要前 8 位。
## 操作规程
### 1. 按来源选择工作流
| 来源 | 工作流 | 说明 |
| --- | --- | --- |
| CNKI | 人工检索 → 导出题录 → `parse_refworks.py` | 无公开 API,禁止绕过验证码与批量抓取 |
| 万方(已配 WANFANG_TOKEN) | `wanfang_search.py` 直接检索 | 官方开放平台,按点计费 |
| 万方(未配置 token) | 同 CNKI 人工导出流程 | 先告知配置方法,由用户选择 |
| 维普 / 超星 | 人工检索 → 粘贴题录 → 手工整理 | 无接口 |
### 2. CNKI 人工导出引导(未检索时给用户的话术要点)
1. 在 CNKI 官网用检索主题完成检索并勾选目标文献;
2. 选择"导出与分析"→ 导出格式选 **Refworks**(次选 EndNote);
3. 保存为 UTF-8 编码的 `.txt` 文件,放到工作区;
4. 把文件路径交给本技能。
如实告知:CNKI 导出的题录是**仅元数据**(metadata-only),不含全文;
全文需用户凭机构权限自行下载,本技能不代为获取。
### 3. 解析题录文件
```bash
python scripts/parse_refworks.py --input <题录.txt> --format json --origin CNKI
```
- `--origin` 填来源名(CNKI / 万方 / 维普 / 超星),写入每条的 `source`
字段,供下游按 guardrail 第 1 条标注 `[CNKI]`、`[万方]`。
- 脚本容错:未知标签跳过、缺字段留 null;解析结果逐条检查 title 是否
为空,空 title 的条目挑出来交用户核对,不静默丢弃。
- EndNote 格式(%0/%T/%A 标签)与 Refworks 格式(RT/T1/A1 标签)结构
类似;本脚本按 Refworks 标签解析,EndNote 导出文件请用户重新导出为
Refworks,或由你手工整理。
### 4. 万方直接检索(仅已配置 token 时)
```bash
python scripts/wanfang_search.py --query "<检索主题>" --limit 20 --format json
```
- token 从环境变量 `WANFANG_TOKEN` 读取;未配置时脚本输出
`{"error": {"type": "auth_missing", ...}}`,此时回到人工导出流程,
并把配置指引转告用户。
- 接口字段以万方开放平台官方文档为准;上游变更时脚本输出
`upstream_changed` 错误,如实转告用户,不自行猜字段修补结果。
### 5. 统一 PaperDocument 与标注规则
- 全部来源统一为:
`{id, title, authors, year, venue, doi, url, abstract, source, retrieved_at}`
(`source` 为字符串数组)。
- `source` 字段记录来源列表(如 `["CNKI"]`、`["万方"]`);写入任何
产物时按包根 CLAUDE.md guardrail 第 1 条在同句标注 `[CNKI]` / `[万方]`。
- 仅有元数据、无全文/无摘要的条目,在落盘 JSON 之外给用户的汇总中
明确标注 **metadata-only**,下游 literature-survey 引用时不得把
metadata-only 条目当作"已读原文"。
- 中文文献常缺 DOI:id 用 `来源:sha1(标题+首作者)前8位` 形式生成,
保证同批去重稳定。
### 6. 与英文检索结果合并(可选)
- 若同主题已有 literature-search 的 `papers.json`,按同一去重规则合并:
① DOI(统一小写、去 `https://doi.org/` 前缀);② 标题模糊匹配
(小写、去标点、折叠空白)。
- 中英文重复条目(同一工作的不同语言版本)一般不算重复,保留两条并
在 manifest 注明疑似同工作对,交用户判断。
### 7. 落盘
目录 `output/cn-literature/<slug>/latest/`:
- `papers.json`:PaperDocument 数组;
- `manifest.json`:主题、来源与各自条数、工作流类型(parse / api /
manual)、metadata-only 条数、errors、执行时间。
## 输出模板
### papers.json
```json
[
{
"id": "CNKI:a1b2c3d4",
"title": "钠离子电池层状氧化物正极材料研究进展",
"authors": ["张三", "李四"],
"year": 2023,
"venue": "电化学",
"doi": null,
"url": null,
"abstract": "钠离子电池因资源丰富……",
"source": ["CNKI"],
"retrieved_at": "2026-08-18T00:00:00+08:00"
}
]
```
### manifest.json
```json
{
"topic": "钠离子电池 正极材料",
"slug": "1a2b3c4d",
"workflow": {"CNKI": "parse", "万方": "api"},
"counts": {"CNKI": 12, "万方": 8},
"metadata_only": 20,
"errors": [{"connector": "wanfang", "type": "auth_missing", "message": "WANFANG_TOKEN 未配置"}],
"executed_at": "2026-08-18T00:00:00+08:00"
}
```
## 本技能不做什么
- 不绕过 CNKI 验证码、不批量抓取 CNKI 网页;无公开 API 就只用
"人工检索 + 导出 + 解析"流程。
- 不获取付费墙全文;题录为 metadata-only 时如实标注。
- 不在未配置 WANFANG_TOKEN 时假装能直连万方。
- 不处理维普/超星的自动化检索;只整理用户粘贴的题录。
- 不把"某库未检索到"表述为"该研究不存在"——中文库覆盖各有盲区。
- 不做综述分析(交给 literature-survey);与英文结果合并后如需核验
引用,交给 citation-verify。
## 收尾与下一步
1. 汇总:各来源条数、metadata-only 条数、走了哪种工作流、失败及原因,
5 行内说明。
2. 指向 `output/cn-literature/<slug>/latest/papers.json`。
3. 建议下一步:与 literature-search 结果合并后运行 literature-survey;
或把 metadata-only 条目清单交给用户,由其凭机构权限补全文。
4. 若用户在 CNKI 导出环节遇到困难,回到第 2 步话术逐项排查(导出格式
是否选 Refworks、编码是否 UTF-8),不提议任何绕过平台限制的做法。
Auf GitHub ansehen