医学科技查新(novelty-search)
零、运行方式(本技能自带 CLI,不依赖任何插件)
所有步骤都通过 scripts/tool.mjs 调用,参数写在一个 JSON 文件里:
node scripts/tool.mjs <工具名> <args.json> [--cases 案件根目录] [--templates 模板目录]
- 案件根目录默认
./novelty-cases,可用--cases或环境变量DSH_NOVELTY_CASES覆盖; - 模板目录默认
assets/templates,可用--templates或DSH_NOVELTY_TEMPLATES覆盖; - 需要 Python 3 +
python-docx(生成 docx 时用),可用DSH_PYTHON指定解释器。
可用工具(12 个,与第五节列表一致):
| 工具 | 作用 |
|---|---|
novelty_parse_commission |
解析委托书,建案件目录 |
novelty_save_rewrite |
保存改写稿(01b),置为待确认 |
novelty_confirm |
确认闸门(rewrite / queries / screening) |
novelty_build_queries |
生成检索式(含术语库与 MeSH 扩展) |
novelty_import_records |
导入 PubMed / SinoMed / 万方题录,去重合并 |
novelty_save_screening |
保存筛选名单与判定 |
novelty_suggest_terms |
按关键词返回同义词候选(术语库) |
novelty_check_report |
机械校验(结构、引用、术语、译文、顺序、并列) |
novelty_build_citations |
题录:中文 GB/T 7714、外文 AMA,写 03_题录.md |
novelty_autofix |
自动修:重排 / 编号同步 / 术语统一(默认 dry-run) |
novelty_finalize_report |
套模板生成 08_report.docx |
novelty_case_status |
查看案件进度 |
三分钟演示
python examples/make_sample_commission.py # 生成虚构委托书
node examples/demo.mjs # 解析→改写→检索式→题录→筛选→出报告
演示产物在运行目录生成的 demo-cases/demo-001/demo_report.docx,用于确认环境与模板是否正常,不含真实数据。
模板
- 随包模板:
assets/templates/reports_templates.docx。包内已带一份,由assets/templates/build_templates.py按结构生成(库表收录截止按月自动推算);若文件缺失,首次出报告时会自动生成。 - 可替换为官方模板:如需以教育部高等学校科学研究发展中心最新发布的《科技查新报告模板》为准,把该文件改名为
reports_templates.docx,覆盖assets/templates/下的同名文件即可。 - 替换后要验一次:渲染器按文字前缀定位(
报告编号、项目名称:、委 托 人:、查新目的、项目的科学技术要点、查新点、查新范围要求、文献检索范围及检索策略、检索结果、查新结论)。官方模板若标签措辞或空格与上面不一致,填充会错位;换模板后先出一份样稿核对。 - 自定义模板三种给法,优先级从高到低:
1.args.json里sections.template_file指向某个.docx;
2. 环境变量DSH_NOVELTY_TEMPLATE;
3.--templates目录下的reports_templates.docx。
委托书 → 报告的字段映射
委托书与报告的前几节高度重合,解析后可直接带入,不必重复录入:
| 报告字段 | 来源 |
|---|---|
| 项目名称(中/英) | 委托书「查新项目名称」 |
| 委 托 人 | 委托书「单位名称」+「负责人」 |
| 委托日期 | 委托书「提交报告日期」或受理日期(缺则手填) |
| 科学技术要点 | 委托书同名字段(改写后) |
| 查新点 | 委托书同名字段(改写后) |
| 检索词 | 委托书「委托人提供的检索词」+ 自动扩展 |
| 查新目的 | 委托书勾选或「其他(…)」括注,需人工核实 |
| 报告编号 / 完成日期 / 查新机构 | 由查新员填写 |
一、定位与边界
做什么:把查新委托书变成可交付的查新报告——改写查新点、拆检索式、处理题录、写对比与结论、套模板。
不做什么:
- 不代替查新员去数据库检索(只给检索式,人工执行后回传题录);
- 不代签结论——结论的责任在查新员与审核员;
- 不为凑篇数引入无关文献;
- 不在证据不足时下"未见报道"的结论。
核心原则:查新是"在限定范围内、可溯源地证明有没有人做过同样的事"。每个结论都必须能指回:哪条检索式、哪一天、哪个库、哪篇文献。
二、流程与闸门
| 步 | 产物 | 闸门(必须人工确认) |
|---|---|---|
| 1 受理与改写 | 01_commission.*、01b_改写建议.md |
G0a 查新目的核实 + G0b 改写稿确认 |
| 2 检索式 | 02_queries.md |
G1 检索式确认 |
| 3 导入去重 | 03_records.*、03_dedupe.md |
— |
| 4 筛选 | 04_筛选预览.md(留档,不外发) |
G2 名单:系统预选并给出判定与理由,篇数与最终取舍由人定 |
| 5 翻译与对比 | 05_对比文献与摘要翻译.md、06_对比分析.md |
G3 对比确认 |
| 6 结论与回修 | 06_对比分析.md(结论段) |
G4 结项类回修查新点(立项跳过) |
| 7 通读与签发 | 07_审核意见.md(仅记实质性修改)→ 查新员通读确认无实质错误 → 08_report.docx |
G5 通读通过即签发 |
审核不是走过场:以审核员视角出意见(🔴必须改 / 🟡建议 / 🟢语言),逐条处理后再跑一次机械校验;签发前的报告必须是"看过、改过、复核过"的版本。审核人可以是同一人换视角,但检查项必须逐条走。
查新目的必须先核实,不能只靠委托书的勾选自动判断。它决定四件事:
① 结项类才启用"按结论回修查新点";② 委托人文献是"佐证"还是"前期基础";③ 结论是否用"除委托项目组的成果外";④ 委托书勾选常为空或勾错,需人工兜底。
立项与结项的分野:立项查新本就是"查它有没有被做过",查新点写得宽、覆盖整个探索方向即可,某子方向查不到也不回修;结项查新是对既有成果作新颖性判断,查新点必须与证据严格对齐。
闸门未确认不得越级,工具会硬拦:改写未确认不能出检索式;检索式未确认不能导入题录;筛选未确认不能出报告。
三、各步要点
1. 改写查新点(最重要)
委托人不懂查新,常把项目简介甚至项目名直接抄成查新点。改写的四条铁律:
- 忠于原意,只做语句润色;
- 第三人称客观叙述,删去"拟开展""探索""首次""填补空白"等主观与评价性表述;
- 不新增任何技术内容;
- 查新点凝练为可检索、可比对的技术特征组合,每个查新点突出一主题或技术特征,且必须与技术要点直接相关。
做法:原文 / 改写 / 说明 三栏并列(novelty_save_rewrite 生成 01b),末尾列"待确认问题"(模型、干预、指标、时间窗等不该由查新员拍板的事项)。改写后请委托人确认。
2. 检索式
- 每个查新点 1–2 条检索式,不要铺太开;
- 每条 2–5 个概念块:少于 2 个等于没限定(工具报错),多于 5 个 AND 必漏;
- 块内同义词 OR,块间 AND;
- 通用式只写关键词,分中英文两行,不带字段名与主题词;
- 另给两两匹配(三大块时生成 3 组),供全匹配命中过少时补检;
- PubMed / SinoMed 的带字段式单独列出,供直接粘贴;
- 检索记录表按 检索式编号 × 库 分行,回填日期与命中数。
常见错误:四个概念块全 AND(近零命中);把整句当检索词;写"详见查新委托书"。
3. 导入与去重
支持 MEDLINE(PubMed)、SinoMed 文本、万方文本、RIS。去重顺序:DOI → PMID → 题名归一化+年份。跨库重复必须留合并记录,不静默删。增量导入与既有题录合并。
4. 筛选(口径见 references/rules.md)
按查新点分组,标:语种、年份、判定类型(相同/实质相同/部分相同/不相关)、入选理由。密切相关 = 单篇即可否定该查新点的文献;只部分否定的是相关文献,进对比但不改结论。
5. 翻译与对比
- 外文摘要全文翻译,仅做专业修正与润色,不压缩字数(方法、结果、统计值一律保留);学位论文可只译与查新点相关的章节,但所译部分不压缩;
- 对比逐篇写,差异落在至少 2 个维度(对象/样本量/技术路线/适用面/创新点);
- 明显同类的文献可合并一句写;
- 差异句式不固定,按内容选;禁"本项目更深入""具有创新性"这类空泛表述;
- 引用一律方括号编号,先中文后外文、按相关度排。
6. 结论与审核
结论三段式:查新点归纳 → 逐点对比 → 结论。开头用模板固定句(综合分析检索到的对比文献,并与委托项目的查新点进行对比分析,得出以下结论:)。每点分别结论,最后总结。
颗粒度规则:结论判断的颗粒度随查新点,对比描述的颗粒度随证据;两者都不足时,用检索范围(库/年限/语种)把结论兜住。查新点笼统而结论写得过细=超出委托;证据只有题录而写出具体数据=造假。
审核五维:结构规范 / 文献准确性 / 差异分析 / 新颖性判断 / 课题组文献处理 / 语言规范。自查后输出问题清单+修正稿(不给说明的纯修正稿只适合机器自用)。
四、口径速查
| 项 | 规则 |
|---|---|
| 单查新点篇数 | 总数 ≤10 |
| 多查新点 | 每点 3–6;某点 1–2 属正常,总量优先,不为单点凑数 |
| 中文文献 | 国内外查新 0–2 篇 |
| 委托人文献(结项) | 每点 1–2 篇,列该点对比段最前,外文只译不比 |
| 委托人文献(立项) | 可作项目基础,语句点明 |
| 共用文献 | 只列一次,另一点用编号引用 |
| 摘要译文 | 全文翻译、不压缩;学位论文摘译相关章节但该章节不压缩 |
| 否定边界 | 可否定查新点的局部;否定全部须先与委托人沟通改写 |
五、工具
共 12 个工具,与上面「零、运行方式」的表一致:novelty_parse_commission / novelty_save_rewrite / novelty_confirm / novelty_build_queries / novelty_import_records / novelty_save_screening / novelty_suggest_terms / novelty_check_report / novelty_build_citations / novelty_autofix / novelty_finalize_report / novelty_case_status。
筛选闸门:novelty_save_screening 逐篇记录判定与取舍(工具只做配额校验),人工确认(stage=screening)后才允许出报告。
术语库自生长:检索式确认(novelty_confirm 且 stage=queries)时,自动把该案确认过的概念块并入术语库(termbase.json)——命中已有概念则补词,否则新建;写前留 .prev.json 备份,重复确认幂等。novelty_suggest_terms 按关键词返回同义词候选,库里没有时返回空,正好提示该补词。
所有步骤都用 node scripts/tool.mjs <tool> <args.json>(见「零、运行方式」)。案件目录结构见 references/pipeline.md。
六、细节规则
- 篇数、判定类型、翻译与对比的具体口径 →
references/rules.md - 报告编号、字体、节次、句式、模板选择 →
references/report-spec.md - 案件目录、闸门状态、工具参数 →
references/pipeline.md