# 标记 ## 定义 标记是附加在系统对象上的一段轻量元信息,用来表达对象的来源、性质或用户自己的分类。所有标记统一存放,而不是在碎片等表结构里为每一种标记各加一个字段。 一条标记至少包含: - **对象**:对象类型与对象标识(例如某条知识碎片、某个学习任务)。 - **标记名与标记值**:例如「来源 = 学习引导」「标签 = 英语」。 - **种类**:系统标记或用户标签。 - **建立信息**:建立者(系统或用户)与建立时间。 ## 设计意图 - 新增一种标记时不需要改动各功能表结构,避免碎片、报告等表被标记字段逐渐撑开。 - 跨功能检索统一:按标记找对象只查一处。 - 让「来源」「标签」这类弱信息有唯一的存放位置,语义清晰,不再散落在各功能里。 ## 边界 标记不是状态,也不是归属: - 会话状态、报告能否修订、导图是否待更新这类会影响流程判断的信息,留在各自主体上,不进标记表。用标记表达状态会让流程判断变得不可枚举。 - 标记只被读取和展示,不参与聚合口径,也不改变内容归属。 - 内容归属是唯一的结构归属,标记不能用来表达第二归属。 ## 现有与预期的标记 - **标签**(用户标签):用户自由建立的分类,多个、可为空、可变,只影响检索。 - **来源标记**:例如「来自学习引导」。系统标记,由系统在产出时写入,用户不可编辑。 ## 相关概念 - 知识碎片:最常见的标记对象。 - 内容归属:与标签互补——归属是唯一结构归属,标签是弱关联。 - 学习引导:产出的碎片带来源标记。 - 学习任务:标签也可以挂在任务上用于检索。 ## 待决问题 1. 标记可以挂在哪些对象上(知识碎片 / 学习报告 / 学习任务 / 学习会话)? 2. 标记名的受控方式:系统标记用固定词表、用户标签自由输入;是否允许用户在系统标记上叠加自己的值。 3. 标记值是否只在需要时使用(布尔开关 / 枚举 / 自由文本)。 4. 是否需要按标记检索的入口(例如“找出所有来自学习引导的碎片”),以及需要哪些索引。 5. 标记名如何治理(能否重命名或废弃),以及哪些标记对用户展示。