把数学知识当作可维护的数据
Math Idea Graph 不是问答系统。它把数学概念整理成一张有类型、有来源、可校验的知识网络, 页面只是这份数据的一种呈现方式。
四条原则
网站不调用任何大模型、不做 RAG、不使用 embedding。所有数学解释都来自data/ 下的 Markdown 与 JSON 文件;搜索是本地倒排索引,关系图由本地数据绘制。
一个 Concept 可以有多条 Definition,每条定义有独立 ID、页面与来源。 例如「同伦等价」同时拥有标准定义与同伦范畴中的同构刻画。
不存在笼统的 related_to。逻辑依赖、学习顺序、推广、应用、思想联系与历史影响 分别记录,页面与关系图都按类型区分。
没有把握的年表、卷期或人物归属会标记为「待审核」,并给出复核说明。 当前知识库共有 23 个概念、26 条定义, 其中 6 个条目处于待审核状态。
数据模型
所有实体共享同一个 ID 命名空间,ID 只使用小写字母、数字与连字符。
| 实体 | 目录 | 关键字段 |
|---|---|---|
| Concept 概念 | data/concepts/*.md | id, name_zh, name_en, aliases, domain, summary, motivation, main_idea, extensions, sources |
| Definition 定义 | data/definitions/*.md | id, concept_id, statement, latex, applies_to, conditions, explanation, prerequisites, sources |
| Relation 关系 | data/relations/*.json | id, source, target, type, note, conditions, sources, review_status |
| History 历史事件 | data/history/*.md | id, title, year, precision, people, concept_ids, sources |
| Source 文献 | data/sources.json | id, authors, title, year, venue, type, url, locator |
| Domain 领域 | data/domains.json | id, name_zh, name_en, summary, order |
关系类型(全部有独立语义)
| type | 含义 | 分组 |
|---|---|---|
requires | source 的严格定义在逻辑上使用了 target;没有 target 就无法陈述 source。 | logical |
learning_prerequisite | 教学建议:先学 target 再学 source,但两者之间不一定存在逻辑依赖。 | learning |
generalizes | source 是 target 的严格推广:target 的每个实例都是 source 的实例。 | logical |
special_case_of | source 是 target 在附加条件下的特例(与 generalizes 方向相反)。 | logical |
equivalent_to | 两种表述在给定条件下刻画同一个数学对象;不是「相似」,而是可互相推出。 | logical |
constructed_from | source 的对象由 target 的数据/结构构造出来(如基本群由道路同伦类构造)。 | logical |
applies_to | 把 source 的工具用于研究 target 的结构,但 target 不依赖于 source 的定义。 | application |
invariant_under | source 在 target 所代表的变换下保持不变,因此可用于区分等价类。 | application |
conceptual_connection | 两者在思想方法上互相照亮,但不构成可形式化的依赖或推广。 | conceptual |
inspired_by | source 的问题意识或方法来自 target,但两者不是同一理论的分支。 | conceptual |
historical_influence | target 的提出在历史上直接推动了 source 的形成(史实关系,需文献支持)。 | historical |
延伸探索的分组
direct_generalization— 直接数学推广:把当前定义的条件放宽、对象替换或维度提升后得到的理论。application— 理论应用:把这里的工具用到其他数学分支中的方向。conceptual_connection— 思想联系:问题意识或方法论上的呼应,不一定是形式化依赖。modern_development— 现代发展:当代研究中的活跃方向,通常需要更多预备知识。
校验与审核
npm run validate 会检查:字段完整性与类型、全实体 ID 唯一、关系两端存在、 定义与历史事件的概念引用存在、来源已登记、延伸条目与相关定义不断链、关系类型合法、自环与重复关系、 LaTeX 是否可被 KaTeX 解析,以及空字段、日期格式、未使用来源与关系图连通性。
每条内容都带有 review_status:approved 表示所列文献已核对;pending 表示尚未完成核对,页面会显示「待审核」徽标。 本知识库优先保留不确定性,而不是用看似确定的叙述填补空白。
引用与来源
每页底部列出该条目的文献来源(作者、标题、年份、出版信息、章节或页码)。 历史事件的描述必须至少关联一条来源,否则校验脚本会报错。 对于手稿、未正式出版材料或卷期待核的条目,来源本身也会标注待审核。
引用文献的版权归原出版方所有;本站只提供书目信息与必要的简短转述。
如何添加内容
- 新增概念:在
data/concepts/添加一个<id>.md,填写 YAML frontmatter 与可选正文。 - 新增定义:在
data/definitions/添加文件,concept_id指向已有概念。 - 新增关系:在
data/relations/的 JSON 数组中追加对象,source/target必须存在。 - 新增历史事件:在
data/history/添加文件,并至少关联一条已登记的来源。 - 新增或复用文献:在
data/sources.json登记。 - 运行
npm run validate与npm run build;页面与搜索索引会自动更新,无需改页面代码。
完整字段说明、部署步骤与目录结构见仓库根目录的 README.md。
技术实现
| 站点框架 | Astro(纯静态输出,无 SSR、无后端) |
| 语言 | TypeScript + HTML/CSS |
| 公式 | KaTeX,在构建期渲染为静态 HTML |
| 搜索 | MiniSearch,索引在构建期生成,中文按单字 + 二元组切分 |
| 关系图 | Cytoscape.js,局部图与全局图共用同一份图数据 |
| 部署 | GitHub Pages(子路径通过 BASE_URL 处理) |
已知限制
- 知识库目前以代数拓扑与几何群论为主,覆盖面有限。
- 部分历史条目的卷期页码仍待核对(见各来源条目的「待审核」说明)。
- 关系图不做自动布局优化,节点很多时需要手动拖动或按类型筛选。
- 搜索为字面匹配 + 中文二元组,不理解同义词;别名需要在数据中显式登记。