forming / System Design Archive

Knowledge Runtime

Knowledge Runtime 把高亮、批注、阅读记忆、印章、贴纸和 Graph 关系从 UI 状态提升为可查询、可回访、可连接的知识对象。

Reader MemoryHighlightsAnnotationsSealsStickersKnowledge Graph
Inspiration

借鉴对象

  • Obsidian Graph
  • Readwise
  • Are.na channels
  • Arc Spaces
Rejected

拒绝的方案

  • 把 Graph 当成装饰图,因为它应当成为导航系统而不是背景效果。
  • 把高亮只存颜色和文本,因为没有 anchor、对象关系和时间戳就无法进入检索与时间线。
  • 让每个内容类型各写一套状态模型,因为文章、书籍、项目和视觉素材需要互相连接。
Runtime

运行方式

  • reader_memory 记录 objectId、objectType、location、progress、updatedAt。
  • reader_highlights 记录文本、颜色、note、anchor_json,并关联知识对象。
  • Graph 当前由 KnowledgeObject 派生的静态内容元数据和关系构建,/data/knowledge-index.json、首页 knowledgeDocs、/knowledge graph relationSources 共享 apps/web/src/lib/knowledge/objects.ts;RuntimeMarkdownObject 的 wikilinks、backlinks、assets 会经 buildExplicitKnowledgeRelations 转成 linked / references 边,asset 节点在 /knowledge 限量展示以避免图谱过载。
  • OpenList books-index 已进入 KnowledgeObject projection:bookToKnowledgeObject 保留 book:* drawerId、作者、分类、状态、sourceType、openlistPath 和 asset reference,让书籍同时参与搜索、Graph、Reader Drawer 和后续阅读记忆关系。
  • localStorage 只保留设置、迁移前缓存和离线偏好,不再作为动态知识真源。
Tradeoff

取舍

  • P0 先只落 reader_memory 和 highlights,避免一次性迁移所有动态状态导致边界失控。
  • Graph 自动生成能快速形成关系,但人工策展和阅读痕迹会提供更高质量的连接。
  • 高亮进入 Graph 会增加数据模型复杂度,但这是知识系统从展示走向理解的关键。
Future Direction

后续方向

  • 新增 annotations、stickers、seals、knowledge_links 表。
  • 做 Timeline:今天读了什么、标了什么、连接了什么。
  • 让每个 Graph 节点 hover / click 都能回到 Drawer 和具体阅读位置。