concept-linker — 跨主题统一概念层构建器
解决"每个主题是孤岛"的问题:把分散在各个主题 vault 中的同一个概念汇总到一个概念页, 建立跨主题知识网络,实现知识复利。
0. 核心价值
| 问题 | concept-linker 的解决 |
|---|---|
| 每个主题独立 vault,概念不互通 | 跨主题概念页汇总所有出现位置 |
| 学新知识时关联不到已学的 | 概念关系网络标注前置/后续/关联 |
| 找不到某个概念在哪些笔记里出现 | 概念页按主题分组,wikilink 一键跳转 |
| 知识库越建越乱,没有全局视图 | 概念图谱(Mermaid mindmap+关系图) |
1. 目录结构(固定,不影响现有 vault)
E:\obsidian\rein\_概念层\
├── _概念图谱.md ← 概念层总索引(统计+全景图谱+按学科浏览)
├── concepts/ ← 每个核心概念一个概念页
│ ├── 矩阵.md
│ ├── 特征值与特征向量.md
│ ├── 传递函数.md
│ └── ...
└── entities/ ← 实体页(人物/书籍/工具,预留扩展)
2. 触发指令
指令1:【建立概念层】(首次全量构建)
扫描所有学习类主题 vault,提取核心概念,建立概念层。
# 步骤1:扫描提取高频概念
python scripts/concept_scanner.py --vault "E:\obsidian\rein" --output concepts_index.json
# 步骤2:核心概念种子全文匹配(更准确)
python scripts/concept_matcher.py --vault "E:\obsidian\rein" --output concepts_matched.json
# 步骤3:生成概念页和概念图谱
python scripts/concept_page_builder.py --input concepts_matched.json --output-dir "E:\obsidian\rein\_概念层"
指令2:【更新概念层】(增量更新)
新建知识库后,重新扫描并更新概念层(覆盖式更新概念页)。
指令3:【知识库体检】(P1 已上线)
扫描所有学习类笔记,检测死链/重复/孤儿/矛盾,输出体检报告到 _vault-health/体检报告.md。
python scripts/vault_health.py --vault "E:\obsidian\rein" --output-dir "E:\obsidian\rein\_vault-health"
体检四项:
- 死链检测:wikilink 指向不存在的文件(Obsidian 中显示灰色)
- 重复笔记检测:标题+内容高度相似的笔记(排除同目录,减少视频笔记结构相似的误报)
- 孤儿笔记检测:没有被任何其他笔记引用的笔记(排除导航文件)
- 矛盾标记:同一概念在不同笔记中定义差异较大,标注待人工确认
指令4:【笔记模板】(P2 已上线)
查看8种标准化笔记模板,新建笔记时套用,保持结构一致。
模板位置:E:\obsidian\rein\_templates\
| 模板 | 用途 |
|---|---|
| 01-概念笔记 | 知识点/概念的标准笔记(最常用) |
| 02-视频笔记 | B站/YouTube/抖音视频学习笔记 |
| 03-教材笔记 | 教材原文/讲义提取 |
| 04-项目笔记 | 项目档案(含简历可用描述) |
| 05-每日日志 | 每日学习记录 |
| 06-错题卡点 | 错题和卡点(兼容 personal-twin) |
| 07-洞察心得 | 读书心得和跨学科洞察 |
| 08-工具资源 | 软件/网站/插件/学习资源 |
使用方法:打开 _templates/_模板索引.md,点击对应模板复制,或启用 Obsidian 模板插件一键插入。
指令5:【知识地图】(P3 已上线)
查看8主目录统一信息架构和总仪表盘。
- 总首页:
E:\obsidian\rein\🏠首页.md(Obsidian 启动页,含知识库概览+快速查询) - 8大导航入口:
00-系统导航/(模板/概念层/体检报告)01-上下文/(个人镜像)01-每日日志/(保持不动,personal-twin 依赖)02-学习库/(保持不动)03-项目库/(保持不动)04-简历成长库/(保持不动)05-参考资源/(教材/视频课程/工具索引)06-任务计划/(任务看板)07-知识地图/(学科总览+10个主题索引)
- 设计原则:不物理移动任何现有目录(零风险,不影响 openclaw 链接),新增导航层用 wikilink 链接到现有内容。
指令6:【查看概念图谱】
打开 E:\obsidian\rein\_概念层\_概念图谱.md,查看全景图谱和按学科浏览。
指令7:【更新概念掌握度】
基于 personal-twin 错题卡点日志和项目库,自动推断46个概念的掌握度(待学习/学习中/已掌握/需复习/薄弱),更新概念页 frontmatter,生成掌握度总览。
python scripts/update_mastery.py --vault "E:\obsidian\rein"
推断逻辑:错题卡点≥2次→薄弱,1次→需复习,项目中应用→已掌握,有笔记无卡点→学习中。
指令8:【更新概念层】(一键自动更新)
一键完成:扫描→概念匹配→生成概念页+图谱→更新掌握度。新建知识库后运行此指令即可。
python scripts/auto_update.py --vault "E:\obsidian\rein"
指令9:【实体层】
查看/生成实体层(人物/书籍/工具/组织的跨主题关联页)。
python scripts/entity_builder.py --vault "E:\obsidian\rein"
当前19个实体:6人物(武忠祥/李永乐/汤家凤/胡寿松/3Blue1Brown/唐昕月)+5书籍+6工具+2组织。
指令10:【定时体检】
设置定时任务,每月自动运行知识库体检。
- 方式1(推荐):双击
E:\obsidian\rein\_vault-health\安装定时任务.bat,创建 Windows 任务计划(每月1号09:00体检 + 每周日21:00概念层更新) - 方式2:在 OpenClaw 中说"每月1号早上9点运行知识库体检"(smart-cron 自然语言定时)
指令11:【标记掌握】<概念名>(人工标记,优先于自动推断)
人工标记某个概念为"已掌握",标记后自动推断不会覆盖。
python scripts/mark_mastery.py --concept 矩阵 --level 已掌握
也可以标记其他等级:【标记学习中】【标记需复习】【标记薄弱】【标记待学习】
指令12:【清除标记】<概念名>
清除人工标记,恢复自动推断。
python scripts/mark_mastery.py --concept 矩阵 --clear
指令13:【查看人工标记】
列出所有人工标记的概念。
python scripts/mark_mastery.py --list
指令14:【概念层全自动】
启用每小时自动增量检测(已通过 Windows 任务计划启用,无需手动触发)。
- 每小时自动扫描最近1小时修改的文件
- 有变化则自动更新概念层,无变化则跳过(节省资源)
- 日志:
_vault-health/logs/incremental.log - 手动测试:
python scripts/auto_update.py --incremental --hours 1
3. 概念页标准模板(9段式)
---
concept: "矩阵"
category: "线性代数"
cross_topic_count: 3
occurrence_count: 138
---
# 矩阵
> 学科分类 | 跨主题数 | 出现次数
## 📌 一、核心定义
(基于学科知识结构的准确定义)
## 📚 二、跨主题出现位置
### 线性代数(117篇)
- [[线性代数/知识点/xxx|笔记标题]]
### 考研数学(18篇)
- [[考研数学/04-线性代数要点/xxx|笔记标题]]
## 🔗 三、概念关系网络
| 关系类型 | 相关概念 |
| 前置知识 | [[向量]] [[线性变换]] |
| 后续延伸 | [[行列式]] [[特征值与特征向量]] |
| 关联概念 | [[传递函数]] [[状态空间]] |
## 💡 四、学习建议
(针对该概念的学习方法和重点)
## ✅ 五、掌握检验
- [ ] 能用自己的话解释定义
- [ ] 能举出2个跨主题应用例子
- [ ] 能说清与前置/后续概念的关系
4. 核心概念种子(46个,覆盖7大学科)
| 学科 | 核心概念 |
|---|---|
| 线性代数(14个) | 向量、矩阵、行列式、特征值与特征向量、线性变换、线性组合与张成空间、基与基变换、逆矩阵与秩、列空间与零空间、点积与对偶性、叉积、克莱姆法则、线性代数应用 |
| 高等数学(7个) | 极限与连续、导数与微分、积分、微分方程、级数、多元函数微积分、拉普拉斯变换 |
| 概率论(3个) | 概率论基础、分布与期望、数理统计 |
| 自动控制(9个) | 传递函数、状态空间、根轨迹、PID控制、频率响应、稳定性分析、伯德图、奈奎斯特判据、反馈控制 |
| 神经网络(7个) | 神经网络、梯度下降、反向传播、激活函数、损失函数、卷积神经网络、PyTorch |
| 英语六级(6个) | 英语听力、英语阅读、英语写作、英语翻译、英语词汇、英语语法 |
| 跨学科(1个) | 机器视觉 |
概念种子可在
scripts/concept_matcher.py的CORE_CONCEPTS字典中扩展。
5. 与其他 skill 的配合
| skill | 配合方式 |
|---|---|
| topic-knowledge-base | 新建主题知识库后,运行 concept-linker 更新概念层,新概念自动加入跨主题关联 |
| video-to-knowledge | 视频建库后,视频中的核心概念自动被 concept-linker 扫描并关联 |
| material-to-knowledge-base | 资料包建库后,概念层自动更新 |
| personal-twin | 个人镜像可读取概念层,分析用户的知识覆盖度和薄弱点 |
| resume-builder | 写简历时,先查概念层找到相关项目和知识点,快速定位素材 |
6. 使用场景
场景1:备考检索
"考研数学里的'特征值'和'线性代数'视频里学的'特征值'有什么关联?" → 打开
_概念层/concepts/特征值与特征向量.md,看到它在3个主题的所有出现笔记,一键跳转。
场景2:跨主题学习
学"控制工程"的"状态空间"时,想回忆"矩阵"的相关知识 → 概念页标注了前置知识 [[矩阵]],点击跳转矩阵概念页,再跳转到具体笔记。
场景3:写简历/论文
找"机器视觉"相关的项目和知识点 → 打开机器视觉概念页,看到它在土木跨考控制工程等主题的出现位置,快速定位素材。
场景4:全局知识视图
想知道自己的知识库覆盖了哪些领域、哪些概念还薄弱 → 打开
_概念图谱.md,按学科浏览所有概念,⭐数量表示跨主题深度。
7. 脚本说明
| 脚本 | 用途 |
|---|---|
concept_scanner.py |
扫描所有笔记,从文件名/tags/wikilink提取高频概念(初步扫描) |
concept_matcher.py |
用46个核心概念种子全文匹配,统计跨主题出现位置(准确匹配) |
concept_page_builder.py |
生成概念页(含掌握度+人工标记字段)和概念图谱(Mermaid mindmap+关系图) |
vault_health.py |
知识库体检:死链/重复/孤儿/矛盾四项检测,输出体检报告 |
update_mastery.py |
概念掌握度推断:结合 personal-twin 错题卡点和项目库,人工标记优先 |
auto_update.py |
概念层一键更新:扫描→匹配→生成概念页→更新掌握度,支持 --incremental 增量模式 |
entity_builder.py |
实体层构建:人物/书籍/工具/组织的跨主题关联页 |
mark_mastery.py |
人工标记掌握度:标记/清除/列出,人工标记优先于自动推断 |
8. 红线
- 概念层只在
E:\obsidian\rein\_概念层\下创建/修改文件,不触碰现有主题 vault - 概念定义基于学科知识结构,不编造;具体内容以各主题笔记为准
- 跨主题出现位置的 wikilink 必须指向真实存在的文件
- 概念种子可扩展,但必须是真正有跨主题价值的核心概念
- 更新概念层是覆盖式的,不会删除概念页(只更新内容)
9. 后续优化方向
- Obsidian 启动页配置:把 🏠首页.md 设为 Obsidian 默认启动页(设置→工作区→保存为默认)
- 安装社区插件:Dataview(已用)、Templater、Calendar、Omnisearch(详见
_templates/_Obsidian插件配置指南.md) - 概念层自动触发:topic-knowledge-base / video-to-knowledge 建库完成后自动调用 auto_update.py
- 掌握度人工校准:用户可手动修改概念页 frontmatter 的 mastery 字段,auto_update 不会覆盖人工修改
- 实体扩展:在 entity_builder.py 的 ENTITIES 字典中新增实体,重新运行即可
- 矛盾自动解决:用 LLM 分析矛盾标记,自动判断哪个定义更准确(需人工确认)