两千年来我们读《史记》,现在让机器帮我们"看见"隐藏的知识网络。
在线阅读: https://baojie.github.io/shiji-kb | 报告问题: 提交Issue (推荐截屏+paste) 许可证: CC BY-NC-SA 4.0
一句话介绍:用AI将《史记》57万字转化为可交互、可探索的知识图谱,让两千年前的文字像代码一样可以语法高亮、跳转、搜索、推理。
核心成果:
- 17,571个实体,84,502次标注(19类名词+4类动词)
- 3,198个历史事件,98.7%标注公元纪年
- 7,637条事件关系(9种类型)
- 130条交互式时间线("史记地铁图")
- 2本PDF方法论书籍(425页元技能+438页管线技能)
适合谁?
- 📖 历史爱好者:语法高亮阅读、一键跳转、人物关系图谱
- 🎓 学术研究者:矛盾检测、史料溯源、系统化推理
- 🎮 内容创作者:历史素材引擎、二次创作工具库
- 🤖 AI工程师:古籍知识工程方法论、Agent工作流参考
首页: https://baojie.github.io/shiji-kb | 报告问题: 提交Issue (推荐截屏+paste)
精选章节:
- 23类实体语法高亮:19类名词(人名/地名/官职/时间/朝代/制度/族群/器物/天文/神话/生物/数量/典籍/思想/身份/邦国/氏族/事件/礼仪/刑法)+ 4类动词(军事/刑罚/政治/经济)
- 语法高亮开关:右上角齿轮按钮,可关闭高亮专注阅读(持久化保存偏好)
- 知识索引跳转:17,571个实体词条,别名合并595条,语义消歧644处
- Purple Numbers段落编号:每个段落可精确引用和分享(致敬Doug Engelbart)
- 史记地铁图:130条线路×3,197站点,支持缩放/拖拽/搜索/时间线 (app/metro)
从原始文本到全功能知识库:
原文 → 专名标注 → 语法高亮 → 语义排版 → 关系连线
| 传统本体构建(2001) | Agentic Ontology(2026) | |
|---|---|---|
| 起点 | 专家在Protégé中从空白开始 | AI从原始文本中提取 |
| 方向 | 自上而下设计 | 自下而上涌现 |
| 规模 | 数十个类、数百个实例 | 数千个类、数万个实例 |
| 迭代速度 | 数周一轮 | 数小时一轮 |
| 核心瓶颈 | 2001: 设计 | 2026: 反思/进化 |
核心转变:2001年的难点是"设计本体",2026年的难点是"反思/进化AI提取的本体"。本体不再是专家预先设计的蓝图,而是从数据中生长出来、由人类修剪和校准的有机结构。
详见方法论对标文档:Agentic Ontology 101(英文,对标Noy & McGuinness 2001经典)
总控SKILL - 完整管线操作指南
- 九步管线的执行顺序、依赖关系、质量检查点
- → SKILL_00_管线总览 | 完整SKILL索引
14个元技能(Meta-Skills) - 通用知识工程方法论
- OTF+JIT+Bootstrap、反思循环、冷启动、柳叶刀方法、质量控制、SKILL优化与演化……
- → 下载PDF合集(425页,2.35MB)
56个管线技能(Pipeline Skills) - 古籍处理完整技术栈
- 校勘→结构分析→实体构建→事件构建→关系构建→本体构建→逻辑推理→SKU→应用→项目管理
- → 下载PDF合集(438页,3.01MB)
技术文章 - 方法论实战解读
- 《从历史书中探索知识图谱》(2026-03-19):项目缘起、核心成果、技术架构、元技能体系的完整呈现
- → 下载PDF(14页,1.5MB)
为什么是SKILL而非代码?
四个关键原因:
-
灵活性:每个研究问题都不同。传统代码需要重写,SKILL只需调整提示词。当发现新的错误模式(如"单锚点塌缩"),直接写入SKILL文档,所有后续章节自动获益——无需修改代码逻辑。
-
可读性:学者能直接阅读和验证方法论。事件年代反思的26条错误模式、12条推理逻辑,用自然语言表达比正则表达式或if-else分支更清晰。史学研究者可以挑战、改进这些规则,而不需要懂编程。
-
普适性:同一套SKILL架构可直接迁移。《史记》的实体标注SKILL稍作调整即可用于《汉书》《资治通鉴》;年代推断SKILL可复用到任何编年史料。代码往往与具体数据格式强耦合。
-
可演进性:知识工程本身可以自举。系统从李开元《秦崩》学会30+种史源溯源方法 → 提炼成SKILL → 用这个SKILL分析新案例 → 发现8种新方法 → 更新SKILL。这个闭环用传统代码难以实现。
这套管线的执行,没有人从头写过一行传统程序。每一步对应一份SKILL文档——用结构化自然语言写清楚:输入是什么、处理逻辑是什么、输出是什么、怎么验证。AI读SKILL,执行SKILL,产出结果。
语法高亮是认知辅助的第一步。更深层的突破是:当实体、事件、关系被结构化后,机器能发现人力不可能完成的模式——跨130篇的矛盾检测、跨越2600年的规律归纳、从57万字中自动推断治乱兴衰的深层逻辑。
知识图谱在构建过程中发现了20+个跨章洞见(详见 eureka.md):
- 征服-治理倒转:打天下的手段恰恰是治天下的障碍
- 边缘优势:成功王朝一致从边缘地区起源
- 宽恕悖论:对下属的宽恕创造忠诚,对敌国的宽恕制造灾难
- 冯谖烧券买义的经济学:首次用现代财政分析解读战国债务免除——年利率推算、债务规模估算、免除成本效益分析,揭示孟尝君如何通过3000金换取薛地民心,开创战国贵族财政史研究(详见案例12)
- 沙丘之谋的四层传播链:追溯"赵高-李斯-胡亥密谋"故事从前210年到司马迁时代的百年传播路径,揭示官方史料、野史传说、儒家叙事如何层层叠加,最终形成《史记》版本(详见案例04)
这证明:当知识被充分结构化后,机器辅助的推理能发现人类难以通过线性阅读察觉的深层模式。
史记是个巨大的宝库,知识图谱是产生创见的浓缩咖啡。 它能让我们更快、更自动化地创作出更多更好的播客、短视频、小说、电影、游戏。当然,也能帮我们发现历史真相,进行学术研究。
最新好玩的实验(都是刚刚开始的在进行中的半成品):
- 太史公曰 - AI学太史公写作:三层SKILL架构,把乔布斯、葛底斯堡演说改写成《史记》文风
- 太史公怎么知道 ✨NEW - 史源溯源与历史推理:整合李开元30+种方法 + 《安史之乱》8种新方法,12个深度案例(107,000字)
- 案例11:长平之战财政计算,揭示赵王换将真因
- 案例12:冯谖烧券买义经济学分析,开创战国贵族财政史研究
- 矛盾分析 - 130篇里谁说了假话:AI跨篇章矛盾检测,基于史记常识库发现10个反常案例
- 史记常识库 - 10大类普适性规律知识(108+条目),支持反常检测与真实性推理,首轮反思迭代提取8个高质量常识
- 语义排版 - 文本也能像代码一样高亮:句间关系可视化
→ 更多实验见 labs/ 目录
详见:史记阅读器重构与语义排版
- 文艺二次创造:历史小说/电影/短剧素材引擎,快速检索人物关系、事件脉络、场景细节
- 播客案例:EP02 AI侦探:荆轲死了,秦始皇不说,那谁说的 - 从知识图谱到音频叙事的创作实践
- 游戏化:SKU→技能卡,事件→剧情,实体→角色。一个知识库支撑一百款不同游戏
- 历史探案:年龄/婚姻/家庭一致性自动检验,矛盾自动浮现
- 学术研究:矛盾检测、史料溯源、系统化推理(详见北大考古学生反馈)
- 跨语言历史:波斯文/蒙古文/阿拉伯文史料融合中文知识图谱,边疆史多视角呈现
- 考古应用:16万份甲骨拓片系统性分析,单字研究逻辑并行化
| 类别 | 规模 | 亮点 |
|---|---|---|
| 文本标注 | 130篇,57.7万字 | 23类实体(19类名词+4类动词),100%覆盖 |
| 实体 | 17,571词条,84,502次标注 | 3轮反思审查,累计修正12,000+处 |
| 知识索引 | 19类名词 + 4类动词 + 3类语义关系 | 别名合并595条,语义消歧644处 |
| 事件 | 3,198个,11类事件类型 | 98.7%已标注公元纪年 |
| 事件关系 | 7,637条,9种类型 | 4种自动计算+5种LLM推断,1,876个跨章换乘 |
| 知识单元 | 434事实+241技能 | 7,497个实体关联 |
| 方法论 | 14元技能+56管线技能 | 2本PDF合集(共863页) |
| 技术文章 | 1篇,14页PDF | 《从历史书中探索知识图谱》(2026-03-19) |
事件时间反思(5轮Agent迭代,累计修正~2,100处):
- 第1轮:1,010处(消除系统性错误,建立26条错误模式)
- 第2轮:431处(精细调校,确定性升级)
- 第3轮:465处(收敛验证,格式清理)
- 第4轮:167处(终态验证,仅9%为实质性年份修正)
- 第5轮:21处(跨章节交叉验证,强收敛)
实体标注反思(3轮按章审查,累计修正~12,000处):
- 第1轮:~1,913处(类型边界修正,官职→身份等650+处)
- 第2轮:~9,955处(刑法、礼仪等遗漏补充)
- 第3轮:深度反思(63份章节报告,格式统一)
其他质量保障:
- ✅ CSS渲染升级v5.4:身份标注符号语义修复(8,774处)
- ✅ 文本完整性验证:原文与标注文件逐字相同,100%通过
- 📊 详见 doc/events/ | doc/entities/ | CSS版本历史
结构语义 → 图谱语义 → 知识语义 → 应用语义
每一层回答不同的问题,严格递进:
-
结构语义(第1层):文本怎么组织的?句子间什么关系?
- 校勘、切分、编号、句间关系识别、三家注对齐
-
图谱语义(第2层):谁做了什么?在哪里?什么时候?
- 实体标注、事件提取、关系发现、年代推断
-
知识语义(第3层):怎么分类?遵循什么规律?
- 本体构建、逻辑推理、知识单元化、模式识别
-
应用语义(第4层):历史真相是什么?有哪些矛盾?能发现什么规律?
- 矛盾检测、规律归纳、交互式探索、洞见挖掘
详见:研究方法总则 | 项目初衷、愿景与未来方向
01 校勘 → 02 结构分析 → 03 实体构建
→ [04 事件 / 05 关系 / 06 本体 并行]
→ 07 逻辑推理 → 08 SKU构造 → 09 应用构造
- 校勘:多版本比对,生成定本 (SKILL 01)
- 结构分析:章节切分、Purple Numbers编号、句间语义关系、三家注对齐 (SKILL 02)
- 实体构建:18类NER标注、别名消歧、多轮反思审查 (SKILL 03)
- 事件构建:结构化事件提取、公元纪年推断、十轮反思校正 (SKILL 04)
- 关系构建:9种关系类型、SPO三元组、事件链路 (SKILL 05)
- 本体构建:实体词表→分类树→OWL/RDF (SKILL 06)
- 逻辑推理:矛盾检测、生卒年推断、姓氏推理 (SKILL 07)
- SKU构造:知识单元化(Factual/Procedural/Relational) (SKILL 08)
- 应用构造:阅读器、地铁图、游戏化、问答 (SKILL 09)
- 十表交互式查看器:将年表从静态HTML转为可筛选、可排序的动态表格
- 社会网络分析:基于3,797个人名和已有关系数据,构建跨朝代人物网络
- 时空分析:对接CHGIS(中国历史地理信息系统),构建可按朝代切换底图的交互式历史地图
- 系统化矛盾检测:跨章交叉验证(如007项羽本纪 vs 008高祖本纪的死伤数矛盾)
- Neo4j图数据库:导入知识图谱,支持Cypher查询和图算法分析
近期规划:3月完成史记,4月处理汉书和左传,5月完成通鉴。
项目的方法论(管线架构、SKILL文档、Agent工作流)设计之初就考虑了可移植性:
| 目标 | 规模 | 成本估算 | 适配要点 |
|---|---|---|---|
| 二十六史 | ~4,000万字 | 优化后~5-10万元 | 实体类型扩展、朝代特有制度 |
| 资治通鉴系列 | ~600-700万字 | 优化后~1-2万元 | 编年体结构、与纪传体互参 |
| 先秦诸子 | ~100万字 | 优化后~2千元 | 思想概念为核心实体、论证结构分析 |
关键:不是重复劳动,而是复用已验证的SKILL,让每一部新古籍的处理成本递减。
史记一共60万字,处理成本约千元级别(含试错和方法论探索)。优化后,每10万字成本可降至百元级别。
- 四库全书、佛道经典:总规模约30亿字
- Agent驱动、Skills可复用:方法论本身成为可分发的知识资产
- 从文献到知识到发现:机器不只是帮助阅读,而是帮助发现——跨文献的交叉验证、矛盾识别、规律归纳
- 开放协作:代码和方法论开源,数据以CC BY-NC-SA 4.0发布
最终愿景:建立一个由AI Agent维护和持续进化的中国古典文献知识网络,让任何人都能以问答、可视化、推理的方式探索数千年的历史智慧。
这是一个人+AI协作的大规模知识工程项目。57.7万字、17,571个实体、3,198个事件,全部由AI Agent在有限提示词指导下自动提取。错误不仅不可避免,而且预期之内。
1. AI理解偏差
- 古文歧义性:同一个字在不同语境下可能是人名、地名或普通词汇(如"齐"可以是齐国、齐桓公,也可以表示"相同")
- 多义实体:历史上有多个同名人物(如张良、李斯跨朝代同名)
- 隐性指代:史记中大量使用"公""侯""王"等称谓,需要结合上下文推断具体是谁
2. 标注规范的动态演进
- 项目初期规范不完善,随着数据积累逐步细化
- 例如:身份标注符号语义在v5.4版本才系统修复(8,774处调整)
- 跨章一致性问题:不同章节标注时段不同,规范认知有差异
3. 复杂推理的边界
- 年代推断:史记使用在位纪年,转换到公元年需要多步推理(君主在位年表→在位年数→公元映射)
- 事件关系:因果关系、时序关系等语义判断,AI准确率约85-92%
- 消歧决策:判断两个"韩信"是否是同一人,需要综合地理、时间、职位等多维信息
[AI初始标注] → [规则校验] → [Agent反思] → [批量修正] → [人工抽检] → [规范迭代]
↑ ↓
└─────────────────────── 下一轮反思 ←──────────────────────────┘
| 轮次 | 修正数 | 涉及章节 | 错误率下降 |
|---|---|---|---|
| 第1轮 | 1,010 | 118/130 | 初始基线 |
| 第2轮 | 431 | 105/130 | ↓ 57% |
| 第3轮 | 465 | 70/130 | ↓ 8% (新类型错误) |
| 第4轮 | 167 | 68/130 | ↓ 64% |
| 第5轮 | 46 | 28/130 | ↓ 72% |
关键洞察:90%准确率的AI标注 + 5轮反思,总耗时5天,成本约200元。人工从零标注57万字,估计需要6-12个月。速度提升100倍的代价是接受初始错误并系统性迭代修正。
1. 自动校验工具链
- 原文完整性检验:100%验证标注后字符数与原文匹配
- 符号对称性检验:
〖@人名〗开合标签必须配对 - 实体类型约束:18类实体的合法性检查
- 跨文件引用检查:事件中引用的人名/地名必须存在于知识索引
2. Agent反思审查
- 第一轮实体反思(2026-03-17):130章系统审查,修正1,913处标注错误
- 事件年代审查:5轮迭代,修正2,119处年代推断错误
- 别名消歧:595条别名合并,644处同名消歧
3. 人工抽查与规范修订
- 每完成一批反思,人工抽检5-10%结果
- 根据发现的系统性问题修订SKILL文档
- 重新运行受影响章节的标注
详见 Issues,当前主要问题类型:
- 实体边界模糊:复合词如"汉中王"应该标注为"汉中(地名)+王(身份)"还是整体标注为"职位"?
- 事件粒度不一致:部分章节事件切分过细(一句话多个事件),部分过粗(一段只有一个事件)
- 关系推断过度:某些因果关系是AI过度推理,史记原文未明确表达
- 年代推断空缺:约1.3%的事件无法推断具体公元年(如神话时期、记载过于模糊的事件)
我们非常欢迎社区帮助发现和修正错误!
GitHub Issues: https://github.com/baojie/shiji-kb/issues
报告方式:最简单的方式是直接截图上传,配一句话说明问题即可。我们会从截图中定位章节和具体位置。
- 48小时内响应:标记issue类型、优先级
- 批量修正:累积同类错误,用Agent批量修正而非逐个手工改
- 规范更新:如果是系统性问题,更新SKILL文档并重新运行相关章节
- 贡献者致谢:在commit message和更新日志中致谢报告者
未来计划:
- 公开质量看板:实时展示各章节各类标注的置信度分数
- 众包审校系统:社区成员可以在线提交修正建议,自动生成PR
- 置信度标注:给每个实体/事件/关系标注AI的置信度,低置信度项优先人工复核
- 对抗性验证:用不同模型独立标注同一文本,差异处自动标记为待审查
核心理念:不追求一次性完美,追求可观测、可迭代的渐进完善。开放数据+开放流程+社区协作,让知识库像开源软件一样持续演化。
欢迎各种形式的贡献:
- 知识图谱完善(实体标注修正、事件关系补充)
- 代码改进(渲染器优化、新功能开发)
- 学术讨论(方法论反馈、应用场景探索)
- 可视化设计(阅读器UI改进、数据可视化)
- Bug报告和功能建议
参与指南: resources/help/CONTRIBUTING.md - 详细的贡献流程和规范
GitHub Issues: https://github.com/baojie/shiji-kb/issues
2026-03-30: 北京大学考古学生试用反馈 (#85)
在赵冬梅教授的《中国史学史》课堂上,学生们试用了史记知识库并提出了6点建议:
- ✅ 开关面板 - 已实现语法高亮开关 (#17)
- 📋 文本版本体系 - 版本信息、注释、异文集成展示 (#87)
- 📋 图文对照 - 原始典籍页面与数字文本并列展示 (#88)
- 📋 模糊搜索改进 - 扩展至地名、官职、典故等 (#41)
- 📋 官制词典 - 辅助理解复杂官制体系 (#89)
- 📋 问题驱动数据库 - 史料溯源、作者意图分析 (#60)
详细反馈: resources/community/2026-03-30_北大考古学生反馈_issue85.md
这些来自历史学、考古学专业视角的建议,为项目的学术化方向提供了重要指引。
# 1. 克隆项目
git clone https://github.com/baojie/shiji-kb.git
cd shiji-kb
# 2. 安装依赖
pip install -r requirements.txt
# 3. 生成HTML(单章或全部)
python render_shiji_html.py chapter_md/001_五帝本纪.tagged.md
python generate_all_chapters.py
# 4. 查看结果
# 在线:https://baojie.github.io/shiji-kb
# 本地:打开 docs/chapters/ 下的HTML文件目录结构: PROJECT_STRUCTURE.md
鲍捷 (baojie)
- Email: baojie@gmail.com
- 微信: baojiexigua
- GitHub: @baojie
Claude Code (Anthropic)
- 主力模型:Claude Sonnet 4.5 / Opus 4.6
- 累计消耗:~30亿tokens,约120小时人机协作(截至2026-03-19)
- 分工:AI负责大规模标注、代码开发、文档生成;人负责愿景、审美、质量把控、任务调度
- 原始文本:维基文库《史记》
- 底层AI基础设施:Claude Code、Claude Sonnet 4.5、Claude Opus 4.6 (Anthropic)
- 灵感来源:Doug Engelbart(Purple Numbers)、Noy & McGuinness(Ontology Development 101)
- 标注数据:CC BY-NC-SA 4.0 - 署名-非商业性使用-相同方式共享(可自由用于学术研究和非商业项目,需注明出处,衍生作品需使用相同许可;商业使用请联系作者获取授权)
- 分析脚本:MIT License - 自由使用、修改、分发
- 《史记》原文:公有领域作品
免责声明:本项目由AI辅助生成,标注和知识提取中不可避免地存在错误和疏漏。我们正在与AI一起持续修正和完善。本知识库严格局限于《史记》本身的文本内容,不涉及史实考证。
项目维护者:baojie (上海 / San Jose)· 最后更新:2026-03-30
如果你觉得这个项目有意义,欢迎支持我继续做下去。数额随意,不用超过一杯咖啡钱。