图谱结构
页面讲故事;库存节点和边。下面是 v1 约定——加新东西时按这个挂,不要另起炉灶。实现以 schema.sql + api.py 为准。概念层见 本体;整站分层见 全局。
底座
三张表
不按内容类型分表;用 nodes.type 区分种类。
| 表 | 作用 |
|---|---|
nodes | 一切事物:决策、目标、选项、人、主题… |
edges | 有向关系:src -rel-> dst,可带 note |
sources | 节点的出处(url / file / session) |
决策怎么映到图上
问 → 限 → 比 → 定
人读故事顺序;机器存的是图。页面不要再按 type 平铺一长串等价字段。
-
1 · 问题
Decision 正文 + Goal(边
asks) -
2 · 限制
Constraint(
constrained_by)+ Risk(opposed_by) -
3 · 比较
Option(
considers);有利supported_by,不利opposed_by -
4 · 拍板
chooses/rejects+because
节点种类(已启用)
可以长什么样
| type | 中文 | 在决策故事里的位置 |
|---|---|---|
Decision | 决策 | 整页的中心 |
Goal | 目标 | 1 · 问题 |
Constraint | 约束 | 2 · 限制 |
Risk | 风险 | 2 · 限制 |
Option | 选项 | 3 · 比较 |
Evidence | 证据 | 嵌在选项下(有利/不利)或 4 · 拍板理由 |
Outcome | 结果 | 拍板后的结果摘要(meta 可挂) |
Topic | 主题 | 页眉标签;跨决策枢纽 |
尚未做页面、但结构预留可扩:Person / Note / Org / Project(要加时改 NODE_TYPES 并写录入页)。
边(已启用)
可以怎么连
| rel | 含义 | 典型方向 |
|---|---|---|
asks | 决策追问的目标 | Decision → Goal |
constrained_by | 受约束 | Decision → Constraint |
opposed_by | 被反对 / 受威胁 | Decision→Risk 或 Option→Evidence/Risk |
considers | 考虑过该选项 | Decision → Option |
supported_by | 被证据支持 | Option → Evidence |
chooses | 最终选了 | Decision → Option |
rejects | 明确没选 | Decision → Option |
because | 拍板理由 | Decision → Evidence |
about | 关于某主题/实体 | Decision → Topic |
hasOutcome | 决策的结果摘要 | Decision → Outcome |
supersedes | 新决策取代旧决策 | Decision → Decision |
计划补但未写进录入 UI:related_to / involves / supports(跨类型弱关联)。
加别的东西时
三条规矩
- 先成节点有 type 和标题
- 再画一条边接到已有 Topic 或 Decision 上
- 不许孤立每个实体度数 ≥ 1(桥接执法;网页同规)
- 关系名要在表里没有就先改结构再录入
- 改主意新建 Decision +
supersedes,不原地改历史边
站点入口
人从哪进来
| URL | 作用 |
|---|---|
/ | 品牌与「决策怎么读」 |
/system.html | 全局分层(库 / 本体 / 桥接) |
/decisions.html | 决策列表 |
/d/<id> | 决策故事页(SSR) |
/new.html | 新建决策(写入图) |
/structure.html | 本结构说明书 |