910 lines
45 KiB
Markdown
910 lines
45 KiB
Markdown
# Large Graph Global/Community Interaction Design
|
|
|
|
日期:2026-06-18
|
|
状态:待用户复核
|
|
当前分支:`codex/graph-performance-optimization`
|
|
视觉稿:[`docs/spark/mockups/2026-06-18-large-graph-global-community-flow.html`](mockups/2026-06-18-large-graph-global-community-flow.html)
|
|
|
|
## 目的
|
|
|
|
这份设计确定 llm-wiki 图谱在 5000+ / 10000+ 节点规模下的产品交互方向。
|
|
|
|
目标不是把当前图谱做成一个更复杂的自动模式系统,也不是照搬 `graphify` 或 `nashsu/llm_wiki`。目标是明确一条长期路线:
|
|
|
|
**全局图谱负责看结构,社区聚焦负责读内容。**
|
|
|
|
当前图谱已经有社区色块、社区图例、筛选、搜索、右侧抽屉、Pin、社区聚焦和密度模式。后续性能优化应围绕这些既有用户动作收敛,而不是增加一套让用户难以理解的自动模式切换。
|
|
|
|
## 设计结论
|
|
|
|
采用“全局降级,社区聚焦升级”的双层体验。
|
|
|
|
1. 全局视角的正式目标是支持 5000+ / 10000+ 节点,但只显示地图级信息;当前 DOM/SVG 全局图不再被要求硬撑万级。
|
|
2. 普通节点点击只触发轻量查看,不改变全局视角。
|
|
3. 社区色块或社区图例点击先选中社区并显示社区摘要,用户再通过按钮进入社区聚焦。
|
|
4. 全局节点的“打开详情 / 阅读”进入所属社区,并自动选中该节点。
|
|
5. 社区聚焦后完整社区必须在场:全部节点轻量可见,核心/选中/搜索命中/Pin 节点升级为卡片。
|
|
6. 搜索和筛选不创建新模式,只改变当前全局或社区视角里的可见范围。
|
|
7. 缩放只调整细节密度,不自动切换全局/社区主模式。
|
|
8. 返回全图以可见按钮为主,双击空白只作为辅助快捷方式。
|
|
9. 社区质量不好时不打断用户,但要降低社区边界的视觉确定感,并提供轻量的核心结构辅助查看。
|
|
|
|
一句话规则:
|
|
|
|
**单击决定当前检查什么;按钮决定是否深入;缩放只决定当前画多少细节。**
|
|
|
|
## 审查后修订决定
|
|
|
|
文档审查后,本设计补充以下硬规则。它们优先于早期草案里的含糊表述。
|
|
|
|
1. 全局不承担完整阅读。用户在全局节点摘要里点“打开详情 / 阅读”后,进入所属社区,并自动选中该节点。
|
|
2. 社区摘要保留“查看核心节点列表”,它是进入社区前的预览:在抽屉内展开列表,悬停列表项时图上轻微高亮,点击列表项切到节点轻量摘要,但不自动进入社区。
|
|
3. 搜索或筛选把当前选中对象排除时,不自动清空选择;抽屉保留对象并提示它不在当前结果中,同时提供“清除选择”和“显示该对象”。
|
|
4. 核心节点、重要边和强关系由系统自动排序,规则必须可解释;Pin 是强信号,但不是唯一标准。
|
|
5. 社区聚焦不是截断社区。完整社区都在场,表达层按点、标签、卡片和子主题逐级增强。
|
|
6. 超大社区才启用子主题 / 子社区;普通社区不额外增加层级。
|
|
7. 社区质量不好时,保留社区主视图和轻提示;第一阶段只提供“核心结构 / 连接度”这一个轻量辅助查看,不把类型、来源、时间做成完整备用模式。
|
|
8. 大图交互降级必须保持视觉连续性:弱信息淡出淡入,核心锚点、选中对象、搜索命中和 Pin 不消失。
|
|
9. 设计验收使用产品可感知标准:拖动不跟手、缩放卡住、抽屉慢开、搜索高亮迟迟不出现、画面大跳变,都算失败。
|
|
10. 性能测试分三档:真实图谱、压力图谱、极限图谱;每档必须记录节点数、边数、社区数、最大社区规模、搜索命中数和 Pin 数。
|
|
11. 社区聚合节点必须强区分,要看起来像“装着很多节点的容器”,不能像普通内容节点;聚合后也必须提示内部的选中、搜索命中和 Pin。
|
|
12. 第一阶段只保证核心键盘路径可用,不做完整键盘漫游。
|
|
13. 本次主打图谱体验。Agent 提问、边单击关系检查、移动端专项、完整键盘漫游和桌面版专项方案记录为后续探索,不进入第一阶段。
|
|
14. 旧交互直接切到新规则,不做旧主路径兼容。
|
|
15. 抽屉缺少信息时直接显示空状态和下一步动作,不隐藏,也不用推荐内容伪装成真实关系。
|
|
16. 搜索、筛选、抽屉变化默认只更新高亮、淡化、列表和摘要,不重排整张图;重新组织布局必须来自用户明确动作。
|
|
17. 重要性排序拆成稳定结构评分和临时上下文加权,避免核心节点和关键标签频繁跳变。
|
|
18. 第一阶段按桌面宽屏体验设计,移动端和窄屏只保证基础查看,不作为大图主验收目标。
|
|
|
|
## 第一阶段范围
|
|
|
|
第一阶段的目标是把图谱体验和性能规则定硬,并完成可测量的优化路径,不是一次性完成所有未来能力。
|
|
|
|
第一阶段包含:
|
|
|
|
- 固定全局地图和社区阅读的分层规则。
|
|
- 把全局节点、社区、搜索、筛选、Pin、右侧抽屉和返回全图的交互规则写清楚。
|
|
- 补齐大图降级规则:节点、边、标签、卡片、社区聚合、搜索命中和 Pin 的显示预算。
|
|
- 补齐社区聚焦的规模规则:完整社区在场,但点、标签、卡片和子主题按规模分层。
|
|
- 补齐性能测量项和测试图谱数据要求。
|
|
- 明确当前 DOM/SVG 继续服务小图、社区阅读和离线细节;全局万级体验必须经过新的大图渲染或聚合方案验证。
|
|
|
|
第一阶段不包含:
|
|
|
|
- Agent 提问入口。
|
|
- 边单击关系检查。
|
|
- 类型、来源、时间等多套备用组织方式。
|
|
- 移动端或窄屏专项体验。
|
|
- 桌面版专项技术方案。
|
|
- 完整键盘漫游整张图谱。
|
|
- 基于长期阅读历史的智能排序系统。
|
|
|
|
## 为什么不做自动切换
|
|
|
|
不建议根据缩放自动在“全局大图”和“局部阅读”之间切换。
|
|
|
|
原因:
|
|
|
|
- 当前已有社区入口和筛选入口,用户意图已经足够明确。
|
|
- 自动切换容易让用户迷失:只是缩放一下,界面突然换成另一套阅读状态。
|
|
- 大图性能优化需要稳定的规则,不能让细节组件在缩放边界反复出现和消失。
|
|
- 现有社区色块点击已经是自然的社区检查入口,应继续强化它;真正深入社区由明确按钮承接。
|
|
|
|
允许的自动行为只有信息密度变化:
|
|
|
|
- 缩远时隐藏普通标签、弱边和复杂效果。
|
|
- 放近时显示更多关键标签。
|
|
- 手势进行中进一步降级,手势停止后补回允许显示的细节。
|
|
- 降级必须渐进,弱信息淡出淡入,不能突然切成另一张图。
|
|
- 核心锚点、选中对象、搜索命中和 Pin 节点在交互中不能消失。
|
|
|
|
## 交互规则
|
|
|
|
### 1. 全局视角
|
|
|
|
全局视角是地图,不是阅读界面。
|
|
|
|
显示:
|
|
|
|
- 节点点位。
|
|
- 社区颜色。
|
|
- 少量关键节点标签,不显示普通节点文字。
|
|
- 重要边或社区间骨架关系。
|
|
- 搜索命中和选中节点高亮。
|
|
- 社区图例和筛选入口。
|
|
|
|
隐藏或降级:
|
|
|
|
- 普通节点卡片。
|
|
- 大段文本摘要。
|
|
- 全量节点标签。
|
|
- 全量边。
|
|
- 复杂阴影、动画和长时间运行的动态布局。
|
|
|
|
全局视角点击普通节点:
|
|
|
|
- 保持图谱视角不变。
|
|
- 高亮该节点和少量直接邻居。
|
|
- 右侧打开轻量查看抽屉。
|
|
- 不自动进入社区聚焦。
|
|
- 不自动打开完整阅读内容。
|
|
- 用户在轻量抽屉里点“打开详情 / 阅读”后,进入所属社区,并自动选中该节点。
|
|
|
|
全局选中和抽屉优先级:
|
|
|
|
- 节点命中优先于社区色块。用户点到具体节点时,抽屉显示节点摘要。
|
|
- 点社区色块、社区图例或社区背景,但没有点中具体节点时,抽屉显示社区摘要。
|
|
- 悬停只做临时提示,不接管右侧抽屉。
|
|
- 搜索和筛选可以改变高亮范围,但不抢占已选中的节点或社区。
|
|
- Pin 是持久标记,不等于当前选中对象,也不自动切换抽屉。
|
|
- 单击全局空白处只清空当前选中对象,抽屉回到全局概览或搜索结果列表;不改变缩放,也不返回全图。
|
|
|
|
### 2. 全局轻量查看抽屉
|
|
|
|
当前代码里点击节点会打开右侧抽屉。这个方向保留,但抽屉需要重新定义为“轻量查看”,不要变成图上大卡片的替代品。
|
|
|
|
这里不是两个抽屉,而是一个抽屉、两种内容层级:
|
|
|
|
- 点社区色块或社区图例时,抽屉显示社区摘要。
|
|
- 点社区里的具体节点时,抽屉切到节点摘要。
|
|
- 如果社区和节点同时存在,节点是主对象,社区只做上下文。
|
|
|
|
轻量抽屉显示:
|
|
|
|
- 节点名称。
|
|
- 类型。
|
|
- 所属社区。
|
|
- 连接数。
|
|
- 3-5 个最重要相邻节点。
|
|
- 1-2 条最强关系。
|
|
- “进入所属社区”动作。
|
|
- “打开详情 / 阅读”动作,进入所属社区并选中该节点;全局图谱不承载完整阅读。
|
|
|
|
节点动作落点:
|
|
|
|
- “打开详情 / 阅读”是主动作:进入所属社区,自动选中该节点,并打开社区阅读抽屉里的节点内容。
|
|
- “进入所属社区”是次动作:进入所属社区的概览状态,不自动打开节点阅读;该节点可作为上下文轻高亮。
|
|
- 如果节点没有可读详情,只显示“进入所属社区”。
|
|
|
|
社区摘要时,这些字段会换成:
|
|
|
|
- 社区名称。
|
|
- 节点总量。
|
|
- 核心节点概览。
|
|
- 关键桥接关系。
|
|
- “进入社区”动作。
|
|
- “查看核心节点列表”动作。
|
|
|
|
“查看核心节点列表”的行为:
|
|
|
|
- 在抽屉内展开核心节点列表。
|
|
- 悬停列表项时,图上对应节点轻微高亮。
|
|
- 点击列表项时,抽屉切到该节点轻量摘要。
|
|
- 点击列表项不自动进入社区。
|
|
|
|
轻量抽屉不显示:
|
|
|
|
- 长正文。
|
|
- 大量相邻节点列表。
|
|
- 复杂 Markdown 阅读内容。
|
|
- 会迫使全局图谱重排的大组件。
|
|
|
|
轻量抽屉的定位:
|
|
|
|
- 它是全局地图的检查面板。
|
|
- 它帮助用户决定是否深入。
|
|
- 它不承担完整阅读。
|
|
- 它的文案和按钮要随“社区”或“节点”这两个对象切换,而不是固定不变。
|
|
- 没有选中对象时,它可以显示全局概览、搜索结果或空状态,但不混进节点/社区摘要。
|
|
|
|
### 3. 社区入口
|
|
|
|
社区色块和社区图例点击继续作为“选择社区”的主入口。
|
|
|
|
这个设计是合理的,因为用户点击社区本身就是明确动作:我要先看这个社区是什么,再决定是否深入。
|
|
|
|
点击社区色块或社区图例后:
|
|
|
|
- 全局视角保持不变。
|
|
- 高亮该社区和它的少量跨社区关系。
|
|
- 右侧轻量抽屉显示社区摘要。
|
|
- 不立刻进入社区聚焦。
|
|
- 抽屉里的“进入社区”按钮才触发社区聚焦。
|
|
- “查看核心节点列表”只在抽屉内展开列表;列表悬停可以轻微高亮图上节点,但不改变主图视角。
|
|
|
|
进入社区聚焦后:
|
|
|
|
- 图谱视角 fit 到该社区。
|
|
- 该社区内全部节点都在场,默认以点显示。
|
|
- 核心、选中、搜索命中、Pin 节点升级为卡片。
|
|
- 其他社区退出主要视野或降为背景。
|
|
- 显示卡片、更多标签、阅读抽屉和社区摘要。
|
|
|
|
普通节点也可以进入社区,但必须通过明确动作:
|
|
|
|
- 在轻量抽屉里点“进入所属社区”。
|
|
- 不建议单击节点直接进入社区。
|
|
- 不把双击作为社区入口。
|
|
|
|
### 4. 社区聚焦视角
|
|
|
|
社区聚焦是阅读和理解模式。
|
|
|
|
显示:
|
|
|
|
- 社区标题和返回全局入口。
|
|
- 社区完整节点分布。
|
|
- 核心节点卡片。
|
|
- 核心关系。
|
|
- 社区摘要。
|
|
- 关键节点列表。
|
|
- 与其他社区的桥接关系。
|
|
- 阅读抽屉或详情抽屉。
|
|
|
|
规模控制:
|
|
|
|
- 小社区可以全部卡片化。
|
|
- 中大型社区全部节点以点显示,核心、选中、搜索命中、Pin 节点卡片化。
|
|
- 超大社区才启用子主题 / 子社区;普通社区不额外加层级。
|
|
- 其余节点通过缩放、筛选、搜索、一跳邻居或“展开更多”逐步升级显示。
|
|
- 不在社区聚焦里一次性把所有节点恢复成卡片。
|
|
|
|
### 5. 搜索和筛选
|
|
|
|
搜索和筛选是对当前视角的收窄,不是模式切换。
|
|
|
|
全局视角中:
|
|
|
|
- 搜索命中节点强高亮。
|
|
- 命中节点的少量相邻节点轻高亮。
|
|
- 非命中节点降淡。
|
|
- 如果没有选中节点或社区,右侧轻量抽屉可以显示搜索命中列表。
|
|
- 如果用户点中某个搜索结果,抽屉切到该节点摘要。
|
|
- 清空搜索后,保留当前选中对象;如果没有选中对象,则回到全局概览。
|
|
- 如果当前选中对象被搜索或筛选排除,不自动清空选择。
|
|
- 抽屉继续显示该对象,并提示“当前对象不在筛选结果中”。
|
|
- 抽屉提供“清除选择”和“显示该对象”动作。
|
|
- 图上可以用很淡的位置提示保留该对象的上下文。
|
|
- “显示该对象”不清空搜索或筛选,而是临时把该对象和必要的一跳上下文作为例外显示出来。
|
|
- 临时显示时,搜索和筛选条件仍保留,并提示“正在临时显示筛选外对象”。
|
|
- 用户可以清除临时显示,回到纯搜索或筛选结果。
|
|
- 如果对象已被数据刷新移除,只显示“当前对象已不可用”,不再提供临时显示。
|
|
|
|
社区视角中:
|
|
|
|
- 搜索只在当前社区内优先匹配。
|
|
- 可提供“扩展到全局搜索”的动作。
|
|
|
|
筛选规则:
|
|
|
|
- 第一阶段筛选保持轻量,只使用已有且稳定的字段,例如社区、节点类型、Pin 状态、是否有连接。
|
|
- 多个筛选条件默认同时满足。
|
|
- 搜索和筛选都显示结果数量。
|
|
- 用户可以清除单个条件,也可以一键清空。
|
|
- 社区聚焦中的筛选默认只作用于当前社区;扩展到全局必须是明确动作。
|
|
|
|
筛选后如果剩余节点少,系统可以逐步恢复更多标签和边,但仍遵守当前视角的主规则。
|
|
|
|
搜索、筛选和抽屉变化不得重排整张图:
|
|
|
|
- 搜索默认只改变高亮、淡化和结果列表,不重新计算全局布局。
|
|
- 筛选默认隐藏或淡化不符合条件的内容,不自动重新组织全图。
|
|
- 抽屉打开、关闭或切换内容,不得触发图谱重排。
|
|
- 只有用户明确点击“重置布局”或“核心结构辅助查看”这类动作时,才允许重新组织图。
|
|
- 搜索索引、社区摘要和核心节点列表应预先准备或缓存,避免每次交互从头计算。
|
|
|
|
### 6. 返回全图与双击
|
|
|
|
返回全图是导航动作,必须有可见入口,不依赖用户记住手势。
|
|
|
|
主规则:
|
|
|
|
- “回全图”按钮是主入口。
|
|
- 双击真正的图谱空白背景可以作为快捷回全图。
|
|
- 单击空白只取消当前选中,不改变当前视角。
|
|
- 在社区聚焦里,单击空白只清空当前节点或社区选择,仍留在当前社区;关系选择留到边单击关系检查阶段再定义。
|
|
- 从社区聚焦回全局,需要点“回全图”按钮,或双击真正的空白背景。
|
|
|
|
回全图后的状态:
|
|
|
|
- 视角回到全局并 fit 全图。
|
|
- 搜索、筛选和 Pin 保留。
|
|
- 如果当前选中节点仍存在,回全图后继续选中该节点,右侧抽屉显示全局轻量节点摘要。
|
|
- 如果当前只选中社区,回全图后继续选中该社区,右侧抽屉显示社区摘要。
|
|
- 如果选中对象已不存在,抽屉显示对象不可用状态,并提供清除选择。
|
|
|
|
双击限制:
|
|
|
|
- 双击节点不返回全图,不进入社区。
|
|
- 双击社区色块不返回全图,不进入社区。
|
|
- 双击社区图例、搜索框、工具栏、右侧抽屉不触发图谱导航。
|
|
- 双击边不应作为回全图入口。
|
|
- 现有“节点双击取消固定位置”的旧能力不作为新规则保留。固定/取消固定应改为节点轻量抽屉或节点工具里的明确动作。
|
|
|
|
关系边第一阶段规则:
|
|
|
|
- 第一阶段图上的边不作为可点击对象。
|
|
- 边只承担视觉结构:连接、强弱、跨社区关系。
|
|
- 节点和社区抽屉中保留强关系、桥接关系等摘要,因为这是对象摘要的一部分。
|
|
- 边单击后的关系详情和证据检查进入后续探索。
|
|
|
|
键盘规则:
|
|
|
|
- Escape 先关闭搜索、工具栏或临时提示。
|
|
- 如果当前有选中节点/社区,Escape 清空选中对象。
|
|
- 如果已经在社区聚焦且没有选中对象,Escape 可以返回全图。
|
|
- Escape 不清除 Pin,不重置布局。
|
|
|
|
第一阶段不做完整键盘漫游,但核心路径必须可用:
|
|
|
|
- 搜索结果可以用上下键选择。
|
|
- Enter 打开当前结果的轻量摘要。
|
|
- Tab 可以进入抽屉按钮、搜索结果、“核心结构辅助查看”和“回全图”按钮。
|
|
- 抽屉里的“进入社区”“打开详情 / 阅读”“清除选择”“显示该对象”都可以聚焦和触发。
|
|
- 选中对象、进入社区、返回全图等状态变化应有可感知反馈。
|
|
- 第一阶段不要求用户用键盘逐个遍历几千个图谱节点。
|
|
|
|
## 大规模降级规则
|
|
|
|
全局图谱的目标规模按 5000+ / 10000+ 设计。
|
|
|
|
这不意味着万级图谱要完整显示全部细节。参考 `graphify` 的实际策略,大规模流畅来自降级和聚合,而不是硬画所有内容。
|
|
|
|
第一阶段已经补入预算口径:任何视角都有标签预算、边预算和卡片预算。当前 DOM/SVG 路线用于小图、社区阅读和离线细节;万级全局图的正式流畅目标进入后续 Sigma/Graphology 集成计划验收。
|
|
|
|
当前预算口径:
|
|
|
|
| 场景 | 节点 | 边 | 标签 | 卡片 | 交互中可更新对象 |
|
|
|---|---:|---:|---:|---:|---:|
|
|
| 全局地图 | 10000 | 1000 | 40 | 0 | 1200 |
|
|
| 小社区阅读 | 2500 | 1500 | 160 | 80 | 1800 |
|
|
| 中社区阅读 | 2500 | 1500 | 60 | 40 | 1800 |
|
|
| 大社区阅读 | 2500 | 1200 | 80 | 20 | 1500 |
|
|
| 超大社区内部地图 | 2500 | 800 | 40 | 0 | 1200 |
|
|
|
|
这些数字是第一阶段的安全预算,不是长期上限。后续全局大图换到 Sigma/Graphology 后,可以继续用真实测量调高或调低,但不能取消预算机制。
|
|
|
|
### 节点
|
|
|
|
- 5000+:全局默认点位为主,只显示核心标签。
|
|
- 10000+:进一步减少标签,只保留搜索命中、选中、核心节点和社区代表节点。
|
|
- 节点大小按重要性变化,但普通节点不变成卡片。
|
|
- 普通节点默认不显示文字;只有搜索命中、选中、Pin、社区代表节点和少数高连接节点显示标签。
|
|
- 全局视角不显示节点卡片。
|
|
- 搜索命中、Pin 和选中节点可以提升显示优先级,但不能突破当前视角的预算上限。
|
|
- 超出预算的节点进入右侧抽屉列表或搜索结果列表,不继续堆在画布上。
|
|
|
|
### 边
|
|
|
|
- 默认只显示重要边、强关系边、社区间骨架边。
|
|
- 弱边默认隐藏或极淡。
|
|
- 拖动、缩放、平移过程中隐藏更多边。
|
|
- 停止交互后再补回允许显示的边。
|
|
- 边数量必须受当前视角预算控制。
|
|
- 搜索、筛选和选中对象可以提高相关边的优先级,但不能恢复全量边。
|
|
|
|
### 标签
|
|
|
|
- 标签预算按当前可见节点数控制。
|
|
- 标签优先级:搜索命中 > 选中节点 > Pin 节点 > 社区代表节点 > 高连接节点。
|
|
- 普通节点标签只能在悬停、轻量抽屉或社区聚焦中出现。
|
|
- 搜索命中可以全部高亮,但不能全部显示标签。
|
|
- Pin 节点可以提高标签优先级,但 Pin 数量超过预算时,超出的 Pin 进入抽屉里的固定列表。
|
|
|
|
### 卡片
|
|
|
|
- 全局视角不显示节点卡片。
|
|
- 社区聚焦允许卡片,但必须有卡片预算。
|
|
- 卡片优先级:当前选中节点 > 打开的阅读节点 > 搜索命中 > Pin > 核心节点。
|
|
- 超出预算的卡片降级为点或标签,并进入抽屉列表。
|
|
- 卡片数量不能因为搜索命中或 Pin 数量增加而无限增长。
|
|
|
|
### 重要性排序
|
|
|
|
核心节点、重要边、强关系由系统自动排序,排序规则必须可解释。排序分为稳定结构评分和临时上下文加权。
|
|
|
|
稳定结构评分决定长期核心节点、社区代表节点和骨架边。默认信号包括:
|
|
|
|
- 连接数和局部中心性。
|
|
- 跨社区桥接能力。
|
|
- 社区代表性。
|
|
|
|
临时上下文加权只影响当前交互下的短期高亮和显示优先级。默认信号包括:
|
|
|
|
- 与当前搜索或筛选条件的相关度。
|
|
- Pin。
|
|
- 最近访问、最近选中或当前阅读路径。
|
|
- 与当前选中对象的一跳关系强度。
|
|
|
|
Pin 是强信号,但不是唯一标准。没有足够信号时,系统优先选择结构上能解释社区的节点和边,而不是随机展示。核心节点和社区代表节点不应因为一次搜索、筛选或阅读路径变化而频繁改写。
|
|
|
|
### 社区
|
|
|
|
- 社区是全局大图的主要组织单位。
|
|
- 当总节点超过性能阈值时,全局优先展示社区结构。
|
|
- 如果完整节点图会影响流畅度,必须进入社区聚合或强降级显示,不能继续硬画全量细节。
|
|
- 社区聚合视图中,社区本身是节点,社区之间的连接代表跨社区关系强度。
|
|
- 社区聚合是全局视角的一种渲染层级,不是新的产品模式;点击后仍然先进入社区摘要,再由按钮进入社区聚焦。
|
|
- 社区聚合节点必须强区分,呈现为装着很多节点的容器,而不是普通内容节点。
|
|
- 聚合节点应显示社区名、节点数量、边界或内部点阵提示。
|
|
- 聚合容器必须承载内部选中、搜索命中和 Pin 的可见提示。
|
|
- 当前选中节点在聚合容器内时,抽屉继续显示该节点,容器显示选中标记。
|
|
- 搜索命中在聚合容器内时,容器显示命中数量。
|
|
- Pin 节点在聚合容器内时,容器显示 Pin 标记或数量。
|
|
- 用户点击聚合容器后,先看社区摘要;如果容器内部有搜索命中或 Pin,抽屉直接列出这些内部对象。
|
|
|
|
### 社区聚焦规模
|
|
|
|
社区聚焦必须保留完整社区的空间轮廓和节点存在感,但完整在场不等于所有节点都升级成卡片、标签或阅读内容。
|
|
|
|
- 小社区:可以显示更多卡片和标签,进入后接近阅读状态。
|
|
- 中社区:全部节点在场,大部分以点显示,核心、选中、搜索命中和 Pin 节点升级为卡片。
|
|
- 大社区:保留完整轮廓和节点点位,严格限制卡片和标签数量,更多内容进入右侧抽屉列表。
|
|
- 超大社区:先显示社区内部地图,包括子主题、核心节点和主要关系;用户再进入子主题继续阅读。
|
|
- 超大社区不是回到全局,而是社区内部的第二层组织。
|
|
- 当前分界值:40 个节点以内按小社区处理,250 个以内按中社区处理,1000 个以内按大社区处理,超过 1000 个进入超大社区内部地图。
|
|
- 后续可按真实图谱继续校准,但调整时必须同时参考节点数、边数、最大连通密度和卡片预算。
|
|
|
|
### 社区质量兜底
|
|
|
|
社区仍是默认组织方式,但系统需要识别社区结构不清晰的情况。
|
|
|
|
触发信号包括:
|
|
|
|
- 单个社区过大。
|
|
- 很多社区过小。
|
|
- 社区之间关系混杂。
|
|
- 社区命名或主题弱。
|
|
- 社区数量异常。
|
|
|
|
出现这些情况时:
|
|
|
|
- 不自动切换视图。
|
|
- 不弹窗打断用户。
|
|
- 在组织区域给轻提示:当前社区结构不够清晰,可用核心结构辅助查看。
|
|
- 第一阶段只提供“核心结构 / 连接度”这一种轻量辅助查看,不新增完整备用状态。
|
|
- 类型、来源、时间等组织方式依赖数据质量,进入后续探索,不进第一阶段。
|
|
- 社区质量一般时,只给轻提示。
|
|
- 社区质量很差时,弱化社区色块、边界和命名的视觉确定感,突出核心结构和连接关系。
|
|
- 抽屉中说明社区划分可信度较低,避免把不可靠社区包装成确定结论。
|
|
|
|
### 动画与物理布局
|
|
|
|
- 全局图谱不应持续运行高消耗动态布局。
|
|
- 初始布局稳定后应停下来。
|
|
- 拖动时只更新必要对象。
|
|
- 社区聚焦可以允许更丰富的局部动画,但仍要受节点数量限制。
|
|
- 拖动、缩放、平移时可以临时弱化普通标签、弱边和复杂效果。
|
|
- 降级必须保持视觉连续性,使用淡出淡入,不突然跳变。
|
|
- 交互中核心锚点、选中对象、搜索命中和 Pin 不消失。
|
|
- 选中对象、搜索命中、Pin 和核心节点是视觉锚点;切换、聚合、展开和降级时必须尽量保持可追踪。
|
|
- 聚合时,普通节点应表现为收进社区容器,而不是瞬间消失。
|
|
- 从聚合进入社区时,社区容器应展开为内部地图。
|
|
- 如果必须换布局,右侧抽屉仍保留当前对象和上下文,避免用户丢失正在看的内容。
|
|
- 动画追求不迷路,不追求炫技。
|
|
|
|
## 技术方向
|
|
|
|
本设计不在这一阶段锁死具体库,但锁死技术主线:
|
|
|
|
**一个图谱数据底座,一个全局大图渲染器,一套社区/筛选/搜索规则,细节阅读由抽屉和社区聚焦承接。**
|
|
|
|
当前图谱仍是 DOM/SVG 渲染:节点是按钮,边是 SVG path。这个方向不适合继续承担万级全局大图,但仍适合承接社区阅读、小图、离线细节和界面化内容。
|
|
|
|
技术边界:
|
|
|
|
- 全局大图:后续通过 Canvas / WebGL / 聚合渲染方案验证,目标是承接 5000+ / 10000+ 地图级浏览。
|
|
- 社区阅读:继续保留现有 DOM/SVG 和界面组件路线,重点是卡片、标签、抽屉和阅读体验。
|
|
- 产品语义:图谱数据、社区、搜索、筛选、Pin、抽屉状态和阅读路径保持同一套,不因为全局渲染方案变化而重做。
|
|
- 坐标和选择:全局渲染器和社区阅读层必须共享同一套对象 id、社区 id、选中状态和搜索结果。
|
|
|
|
可评估的全局大图渲染方向:
|
|
|
|
- `Sigma + Graphology`:已通过本轮试验,选为后续唯一全局大图主线。
|
|
- `vis-network`:已完成对照试验,作为备选记录,但不进入下一步主线。
|
|
- 聚合降级:保留为全局大图的结构总览和降级策略,不作为第二套长期产品。
|
|
- 当前 DOM/SVG:继续用于小图、社区阅读或离线细节模式,不再要求硬撑万级全局图。
|
|
|
|
明确不做:
|
|
|
|
- 不同时引入 `Sigma` 和 `vis-network` 两套全局渲染器。
|
|
- 不做三套坐标、三套点击、三套筛选。
|
|
- 不把卡片和长文本塞进万级全局画布。
|
|
- 不因为引入大图渲染器而丢掉现有阅读抽屉和社区体验。
|
|
|
|
后续探索记录:
|
|
|
|
- Agent 提问入口不进入第一阶段,后续单独讨论。
|
|
- 边单击关系检查不进入第一阶段,后续作为关系理解能力讨论;节点和社区抽屉中的强关系、桥接关系摘要保留。
|
|
- 桌面版专项方案不进入第一阶段,后续单独讨论。
|
|
- 桌面版方向应保持同一套图谱语义:图谱数据、社区检测、搜索和阅读抽屉不另起一套产品逻辑。
|
|
- 当前设计必须避免绑定只能在浏览器网页里成立的交互和数据结构;未来桌面版复用同一套图谱语义,只替换外壳、存储和性能执行层。
|
|
|
|
## 与参考项目的关系
|
|
|
|
### graphify
|
|
|
|
借鉴:
|
|
|
|
- 大图全局降级。
|
|
- 超大图社区聚合。
|
|
- 只给关键节点显示标签。
|
|
- 交互时隐藏部分边。
|
|
- 稳定后停止高消耗布局。
|
|
|
|
不照搬:
|
|
|
|
- 不把 llm-wiki 做成静态 HTML 图谱工具。
|
|
- 不把完整阅读体验交给图谱画布。
|
|
- 不让社区聚合替代社区阅读。
|
|
|
|
### nashsu/llm_wiki
|
|
|
|
借鉴:
|
|
|
|
- 桌面应用方向。
|
|
- 成熟图谱库承接大图。
|
|
- 布局计算后台化。
|
|
- 节点数越大,标签和边越克制。
|
|
- 图谱洞察面板的产品思路。
|
|
|
|
不照搬:
|
|
|
|
- 不放弃 llm-wiki 现有的社区聚焦、Pin、离线图谱和阅读抽屉。
|
|
- 不把图谱只做成结构浏览器。
|
|
|
|
### 当前 llm-wiki graph-engine
|
|
|
|
保留:
|
|
|
|
- 社区色块和社区图例。
|
|
- 社区聚焦。
|
|
- 筛选和搜索。
|
|
- Pin。
|
|
- 右侧抽屉。
|
|
- 离线 HTML 图谱能力。
|
|
- 现有图谱数据语义。
|
|
|
|
调整:
|
|
|
|
- 全局视角减少卡片化表达。
|
|
- 点击节点的右抽屉改成轻量查看。
|
|
- 社区聚焦作为细节阅读主入口。
|
|
- 大规模场景引入更强的降级和聚合规则。
|
|
|
|
## 产品状态机
|
|
|
|
核心状态只有四类:
|
|
|
|
1. `global`
|
|
- 全局地图。
|
|
- 支持筛选、搜索、全局概览、节点轻量查看、社区摘要。
|
|
|
|
2. `global + selected community`
|
|
- 全局地图保持不变。
|
|
- 右侧轻量抽屉显示社区摘要。
|
|
- 可以查看核心节点列表或进入社区聚焦。
|
|
|
|
3. `global + selected node`
|
|
- 全局地图保持不变。
|
|
- 右侧轻量抽屉显示节点信息。
|
|
- 可以进入所属社区。
|
|
- “打开详情 / 阅读”进入所属社区,并自动选中该节点。
|
|
|
|
4. `community focus`
|
|
- 聚焦社区。
|
|
- 完整社区节点都在场。
|
|
- 核心、选中、搜索命中、Pin 节点升级为卡片。
|
|
- 承接社区阅读抽屉。
|
|
- 支持返回全局。
|
|
|
|
不新增“自动阅读模式”或“缩放触发模式”。
|
|
|
|
辅助查看不是核心状态:
|
|
|
|
- “核心结构 / 连接度”只改变当前图的视觉强调和排序,不创建新的产品模式。
|
|
- 辅助查看不拥有独立抽屉逻辑,不替代社区摘要或节点摘要。
|
|
- 类型、来源、时间等备用组织如果后续进入设计,需要另补状态和抽屉规则。
|
|
|
|
高级选区不是核心状态:
|
|
|
|
- Shift+点击、多选、邻居扩展可以继续存在,但它是高级分析选区。
|
|
- 高级选区也使用右侧抽屉显示摘要和动作,不改变全局或社区主模式。
|
|
- 如果它影响大图流畅度,优先降级它的视觉表达,而不是让普通单击变复杂。
|
|
|
|
## 当前实现对齐结论
|
|
|
|
当前图谱已有一些旧交互,其中一部分可以保留,一部分需要在后续实现时改语义。
|
|
|
|
保留:
|
|
|
|
- 滚轮/触控板在图谱区域内缩放图谱。
|
|
- 拖动空白处平移图谱。
|
|
- 工具栏里的“回全图”作为返回全图主入口。
|
|
- 双击空白回全图,作为辅助快捷方式。
|
|
- 节点优先于社区命中。
|
|
|
|
需要调整:
|
|
|
|
- 社区色块和社区图例的单击不应直接进入社区聚焦,应先显示社区摘要。
|
|
- 单击空白不应退出社区聚焦,只应取消当前选中。
|
|
- 节点单击在全局视角不应直接打开完整阅读,应先打开轻量节点摘要。
|
|
- 节点双击取消固定位置不应继续作为主设计,应改成明确按钮或菜单动作。
|
|
- 边的双击不应承担回全图,因为边未来可能需要轻量关系查看。
|
|
- 旧交互直接切到新规则,不做旧主路径兼容。
|
|
|
|
需要区分命名:
|
|
|
|
- “回全图”是视角导航:回到全局地图并 fit 全图。
|
|
- “重置布局”是布局操作:清除用户拖动形成的固定位置。
|
|
- 这两个动作不应共用同一文案或图标暗示。
|
|
|
|
## 旧交互调整方式
|
|
|
|
这一节用于把当前已有交互和新设计对齐。后续实现时,应按用户心智调整,不为了迁就旧行为保留隐蔽或多义的手势。
|
|
|
|
### 从“单击直接进入”改成“先检查,再深入”
|
|
|
|
社区色块和社区图例:
|
|
|
|
- 旧行为:单击后直接进入社区聚焦。
|
|
- 新行为:单击后只选中社区,右侧抽屉显示社区摘要,全局图谱保持原视角。
|
|
- 深入动作:用户在抽屉里点“进入社区”后,才进入社区聚焦。
|
|
- 辅助动作:“查看核心节点列表”只在抽屉内展开列表;悬停列表项时轻微高亮图上节点,不改变主图视角。
|
|
|
|
普通节点:
|
|
|
|
- 旧行为:单击后偏完整阅读。
|
|
- 新行为:单击后只显示节点轻量摘要,全局图谱保持原视角。
|
|
- 深入动作:用户在抽屉里点“进入所属社区”或“打开详情 / 阅读”,都进入所属社区;“打开详情 / 阅读”会自动选中该节点。
|
|
- 不建议把节点双击作为进入社区或打开详情的主入口。
|
|
|
|
关系边:
|
|
|
|
- 旧行为:边双击可能承担回全图。
|
|
- 新行为:边不承担导航动作。
|
|
- 后续方向:边单击可以显示关系检查,例如关系强度、两端节点、所属社区和相关证据;这个方向不进入第一阶段。
|
|
|
|
### 从“空白处改变模式”改成“空白处只清选择”
|
|
|
|
空白单击:
|
|
|
|
- 在全局视角,只清空当前选中的节点或社区。
|
|
- 在社区聚焦里,只清空当前选中的节点或社区,仍留在当前社区;关系选择留到后续边单击关系检查再定义。
|
|
- 不退出社区聚焦,不返回全图,不改变缩放。
|
|
|
|
空白双击:
|
|
|
|
- 只在真正点到图谱空白背景时,作为回全图快捷方式。
|
|
- 不在节点、社区色块、边、图例、搜索框、工具栏或右侧抽屉上触发。
|
|
- 它是快捷方式,不是主路径;主路径仍然是可见的“回全图”按钮。
|
|
|
|
### 从“隐藏手势”改成“明确按钮或菜单”
|
|
|
|
固定 / 取消固定:
|
|
|
|
- 旧行为:节点双击取消固定位置。
|
|
- 新行为:在节点轻量抽屉或节点工具菜单里提供“固定位置 / 取消固定位置”。
|
|
- 旧的双击取消固定不作为第一阶段主路径保留。
|
|
|
|
回全图:
|
|
|
|
- 使用明确的“回全图”按钮。
|
|
- 行为是回到全局地图并重新 fit 全图。
|
|
- 不清除 Pin,不清除用户固定的位置。
|
|
|
|
重置布局:
|
|
|
|
- 使用明确的“重置布局”按钮。
|
|
- 行为是清除用户拖动形成的固定位置,让布局重新整理。
|
|
- 不承担返回全图或退出社区聚焦。
|
|
|
|
### 抽屉内容随选中对象变化
|
|
|
|
全局视角共用一个右侧轻量抽屉,但内容和动作必须跟随选中对象变化:
|
|
|
|
- 选中社区:显示社区摘要、核心节点、桥接关系、“进入社区”、“查看核心节点列表”。
|
|
- 选中节点:显示节点摘要、所属社区、重要邻居、强关系、“进入所属社区”、“打开详情 / 阅读”。
|
|
- 没有选中对象:显示全局概览、搜索结果或空状态。
|
|
- 选中对象被筛选排除:显示该对象摘要、提示不在当前结果中,并提供“清除选择”“显示该对象”。
|
|
|
|
这能避免用户误以为“点社区”和“点节点”进入的是同一个详情逻辑。抽屉可以是同一个位置、同一个组件,但用户看到的内容层级和动作必须不同。
|
|
|
|
## 抽屉设计
|
|
|
|
右侧抽屉分两个使用场景,不必一定是两套组件,但用户感知要清楚:
|
|
|
|
- 全局轻量抽屉:在全局地图里检查当前选中的节点、社区、搜索结果或全局概览。
|
|
- 社区阅读抽屉:进入社区聚焦后承接更完整的阅读和理解。
|
|
|
|
### 全局轻量抽屉
|
|
|
|
目的:检查当前选中的对象,不打断地图。
|
|
|
|
选中节点时的推荐结构:
|
|
|
|
1. 标题区:节点名、类型、所属社区、连接数。
|
|
2. 关系区:最强关系 1-2 条。
|
|
3. 邻居区:最重要相邻节点 3-5 个。
|
|
4. 动作区:进入所属社区、打开详情。
|
|
|
|
选中社区时的推荐结构:
|
|
|
|
1. 标题区:社区名、节点数量、核心节点数量。
|
|
2. 摘要区:社区主题和主要内容范围。
|
|
3. 结构区:核心节点、桥接到其他社区的关系。
|
|
4. 动作区:进入社区、查看核心节点列表。
|
|
|
|
视觉要求:
|
|
|
|
- 窄、轻、信息克制。
|
|
- 不使用大段正文。
|
|
- 不撑大图谱布局。
|
|
- 同一个抽屉根据选中对象换内容,不额外弹第二层面板。
|
|
|
|
空状态要求:
|
|
|
|
- 没有强关系时,直接显示“暂无强关系”,并给“进入所属社区”或“查看邻居”动作。
|
|
- 没有邻居时,直接显示“暂无相邻节点”,不使用推荐内容伪装。
|
|
- 搜索无结果时,显示“没有搜索结果”,并给“清空搜索”动作。
|
|
- 社区摘要缺失时,显示“暂无社区摘要”,但仍显示节点数量、核心节点和进入社区动作。
|
|
- 数据刷新后选中对象不存在时,显示“当前对象已不可用”,并给“清除选择”动作。
|
|
|
|
慢操作和失败状态:
|
|
|
|
| 状态 | 用户看到什么 | 仍可做什么 | 恢复动作 |
|
|
|---|---|---|---|
|
|
| 大图初次加载 | 先显示轻量骨架或加载中的地图区域,不显示空白页 | 可以看到加载进度 | 加载完成后进入全局地图 |
|
|
| 布局整理中 | 显示正在整理的轻提示,结构逐步稳定 | 可以缩放、查看已出现对象 | 整理完成后停止高消耗布局 |
|
|
| 搜索进行中 | 搜索框和图谱给轻反馈,旧结果先保留 | 可以继续输入或清空搜索 | 新结果完成后替换高亮和列表 |
|
|
| 抽屉内容加载中 | 抽屉先打开,再显示加载态 | 可以关闭抽屉或切换对象 | 内容完成后填入摘要 |
|
|
| 进入社区中 | 当前对象和社区容器保持可见,显示过渡提示 | 可以取消或等待 | 完成后进入社区聚焦 |
|
|
| 性能降级中 | 提示已切到轻量显示,不作为错误处理 | 可以继续浏览、搜索、点选 | 停止交互后恢复预算内细节 |
|
|
| 数据缺失 | 直接显示缺失原因和下一步动作 | 可以清除选择或返回全局 | 数据恢复后重新选择 |
|
|
| 硬错误 | 显示错误状态,不伪装成空结果 | 可以重试或返回全局 | 重试成功后恢复当前视角 |
|
|
|
|
### 社区阅读抽屉
|
|
|
|
目的:帮助理解一个社区。
|
|
|
|
推荐结构:
|
|
|
|
1. 社区标题和摘要。
|
|
2. 核心节点列表。
|
|
3. 内部强关系。
|
|
4. 桥接到其他社区的关系。
|
|
5. 可进一步展开一跳邻居或打开节点详情。
|
|
|
|
视觉要求:
|
|
|
|
- 信息可以比全局轻量抽屉更重。
|
|
- 允许阅读型内容。
|
|
- 仍避免一次塞满所有节点。
|
|
|
|
## 验收标准
|
|
|
|
设计层验收:
|
|
|
|
1. 用户能清楚理解:全局是地图,社区是阅读。
|
|
2. 普通节点点击不会让用户突然丢失全局上下文。
|
|
3. 社区色块/图例点击作为社区检查入口合理保留,进入社区聚焦需要再点明确按钮。
|
|
4. 右侧抽屉不再被定义为完整阅读入口,而是根据状态承担轻量查看或社区阅读。
|
|
5. 5000+ / 10000+ 大图有明确降级规则。
|
|
6. 方案没有同时引入多套全局图谱渲染主线。
|
|
7. 选中优先级清楚:节点 > 社区 > 搜索列表 > 全局概览。
|
|
8. 社区聚合被定义为全局渲染层级,而不是额外产品模式,但聚合节点在视觉上必须强区分。
|
|
9. 返回全图有可见按钮,双击空白只是辅助快捷方式。
|
|
10. 单击空白不承担返回全图或退出社区聚焦。
|
|
11. 全局“打开详情 / 阅读”会进入所属社区并选中节点,不在全局承载完整阅读。
|
|
12. 社区聚焦里完整社区都在场,只有重点节点升级为卡片。
|
|
13. 社区质量不好时不打断用户,但要降低不可靠社区边界的视觉确定感。
|
|
14. 核心键盘路径可用。
|
|
15. 第一阶段范围和暂缓范围清楚,不把长期探索混进立即实现。
|
|
|
|
分阶段实现验收:
|
|
|
|
### 阶段一:测量和现有体验降级
|
|
|
|
1. 1000 节点只作为回归基线,不作为目标上限。
|
|
2. 固化性能测量,覆盖真实图谱、压力图谱、极限图谱。
|
|
3. 每档测试图谱记录节点数、边数、社区数、最大社区规模、搜索命中数、Pin 数、是否存在超大社区。
|
|
4. 1000 节点全局缩放、平移、悬停、节点点击保持流畅。
|
|
5. 当前 DOM/SVG 全局图只要求完成可测量降级,不承诺直接达到 5000+ / 10000+ 正式目标。
|
|
6. 全局节点点击只打开轻量抽屉,不自动进入社区。
|
|
7. 全局节点的“打开详情 / 阅读”进入所属社区并选中该节点。
|
|
8. 社区色块/图例点击先显示社区摘要,点击“进入社区”后进入社区聚焦。
|
|
9. 社区摘要里的“查看核心节点列表”只展开抽屉列表,点击列表项不自动进入社区。
|
|
10. 社区聚焦后完整社区节点都在场,但按点、标签、卡片和子主题分层表达。
|
|
11. 交互过程中弱边、普通标签和复杂效果可以临时淡出,停止后淡入预算内细节。
|
|
12. 交互中核心锚点、选中对象、搜索命中和 Pin 不消失。
|
|
13. 全局图谱不能因为抽屉内容变化而重排大图。
|
|
14. 全局中点击空白处能清空当前选中对象,抽屉回到全局概览或搜索结果列表。
|
|
15. 搜索、筛选、Pin 不应自动覆盖用户当前选中的节点或社区。
|
|
16. 已选对象被筛选排除时,抽屉保留对象并提供“清除选择”“显示该对象”。
|
|
17. “显示该对象”采用临时例外显示,不清空搜索或筛选。
|
|
18. 社区聚焦中单击空白不返回全图;点“回全图”或双击空白才返回全图。
|
|
19. 回全图后视角 fit 全图,搜索、筛选、Pin 和当前选择保留。
|
|
20. 节点双击不进入社区,不返回全图;固定/取消固定应有明确按钮或菜单入口。
|
|
21. 边第一阶段不可点,但抽屉保留强关系和桥接关系摘要。
|
|
22. “回全图”和“重置布局”在文案和行为上保持区分。
|
|
23. 抽屉缺少信息时显示明确空状态和下一步动作。
|
|
24. 搜索结果、抽屉按钮、“核心结构辅助查看”和“回全图”支持基本键盘操作。
|
|
|
|
### 阶段二:全局大图方案验证
|
|
|
|
1. 用同一份数据验证候选全局大图方案。
|
|
2. 验证对象包括全局打开、拖动、缩放、搜索高亮、节点点选、社区摘要、聚合容器提示。
|
|
3. 只保留一个全局大图渲染主线。
|
|
4. 全局大图方案必须能和现有社区阅读、抽屉、搜索、Pin 共享同一套对象语义。
|
|
5. 通过验证后,才把 5000+ / 10000+ 作为正式实现验收目标。
|
|
|
|
### 阶段三:5000+ / 10000+ 正式验收
|
|
|
|
1. 5000+ 节点全局视角能稳定浏览。
|
|
2. 10000+ 节点至少能通过社区聚合或强降级视图流畅浏览。
|
|
3. 真实图谱、压力图谱、极限图谱都必须有性能记录。
|
|
4. 必测动作:打开图谱、拖动、平移、缩放、节点点击、抽屉打开、搜索高亮、进入社区、返回全图。
|
|
5. 必测风险:内存是否持续上涨、画面是否大跳变、当前对象是否丢失、搜索结果是否迟迟不出现。
|
|
6. 产品可感知失败包括:拖动不跟手、缩放卡住、抽屉慢开、搜索高亮迟迟不出现、画面大跳变。
|
|
7. 当前 DOM/SVG 已测出 5000 节点存在平移或抽屉超时风险,10000 节点和超大社区缩放帧率明显不足;这些结果不作为失败遮掩,而是作为后续 Sigma/Graphology 集成的依据。
|
|
8. 后续 Sigma/Graphology 集成计划必须继续记录打开、拖动、缩放、搜索、点选、抽屉、进入社区、返回全图等动作的时间和流畅度。
|
|
|
|
## 后续实现建议
|
|
|
|
下一步不应让当前 DOM/SVG 全局图直接硬撑万级,也不应再同时推进多套全局渲染方案。本轮测量和选型已经完成,后续应围绕 Sigma/Graphology 写单一路线集成计划。
|
|
|
|
已完成的前置工作:
|
|
|
|
- 固化性能测量:覆盖真实代理图、1000、5000、10000、超大社区、很多小社区、很多搜索命中和很多 Pin 节点。
|
|
- 定义降级策略:全局卡片为零、标签和边受预算约束,搜索命中、选中和 Pin 通过优先级保留。
|
|
- 定义重要性排序:稳定结构评分和临时上下文加权分开。
|
|
- 选型试验:Sigma/Graphology、vis-network 和聚合降级均已测量;下一步集成 Sigma/Graphology,聚合只作为降级策略。
|
|
|
|
下一步实现计划应只集成 Sigma/Graphology 这一条全局大图路线,并继续保留 DOM/SVG 作为小图、离线细节和社区阅读路线。
|
|
|
|
## 后续探索停车场
|
|
|
|
这些议题保留,但不进入第一阶段。
|
|
|
|
### Agent 提问入口
|
|
|
|
- 暂缓原因:需要先稳定图谱对象、社区摘要和关系摘要,否则 Agent 无法可靠理解当前上下文。
|
|
- 后续讨论:Agent 如何基于当前选中节点、社区、搜索结果提出问题或生成探索建议。
|
|
- 触发条件:全局轻量抽屉、社区阅读抽屉和对象选中语义稳定后再讨论。
|
|
|
|
### 边单击关系检查
|
|
|
|
- 暂缓原因:第一阶段边只承担视觉结构,避免把关系详情、证据和选择优先级一次性做复杂。
|
|
- 后续讨论:点击一条边后如何展示关系强度、两端节点、所属社区和相关证据。
|
|
- 触发条件:节点/社区抽屉中的强关系和桥接关系摘要稳定后再讨论。
|
|
|
|
### 多套备用组织方式
|
|
|
|
- 暂缓原因:类型、来源、时间依赖数据质量,过早加入会变成第二套图谱系统。
|
|
- 后续讨论:类型、来源、时间等组织方式在什么数据覆盖率下可用,以及是否拥有独立摘要。
|
|
- 触发条件:核心结构辅助查看验证有效,并且图谱数据字段覆盖率稳定后再讨论。
|
|
|
|
### 移动端和窄屏专项
|
|
|
|
- 暂缓原因:第一阶段主体验是桌面宽屏大图探索,移动端交互、抽屉和手势需要单独设计。
|
|
- 后续讨论:窄屏下抽屉位置、手势冲突、搜索和社区阅读如何重排。
|
|
- 触发条件:桌面大图主路径稳定后再讨论。
|
|
|
|
### 桌面版专项方案
|
|
|
|
- 暂缓原因:桌面版需要单独讨论外壳、存储、本地缓存、后台布局和导入导出。
|
|
- 后续讨论:如何复用同一套图谱语义,同时替换性能执行层和本地能力。
|
|
- 触发条件:全局大图渲染路线确定后再讨论。
|
|
|
|
### 完整键盘漫游
|
|
|
|
- 暂缓原因:第一阶段只保证核心键盘路径,不让键盘承担遍历万级节点的主任务。
|
|
- 后续讨论:如何在不低效遍历大量节点的前提下提供可访问的图谱探索方式。
|
|
- 触发条件:核心路径稳定,并且需要面向更完整的无障碍验收时再讨论。
|
|
|
|
### 智能阅读路径排序
|
|
|
|
- 暂缓原因:长期阅读历史、最近访问和 Agent 推荐容易让核心节点排序变得不稳定。
|
|
- 后续讨论:如何把长期行为信号作为辅助,而不破坏稳定结构评分。
|
|
- 触发条件:稳定结构评分和临时上下文加权验证清楚后再讨论。
|