Skip to content

v6.23.0 StateSemantics — AtomicFact bi-temporal supersession

Choose a tag to compare

@Neocher Neocher released this 01 Oct 07:14
· 33 commits to main since this release

P3: AtomicFact 事实 supersession (bi-temporal 作废)

  • 写侧: create_atomic_fact 落库前查同 (subject, predicate) 的 active fact, object 不同 → 旧 fact 打 superseded_at + superseded_by, 新 fact 记 supersedes 血缘 (多条旧 fact 记 created_at 最近一条)
  • 读侧: get_atomic_facts_by_subject 默认 active-only (排除已作废) + 新增 get_active_facts_by_sp 精确查
  • 检索: _fact_retrieve 仲裁改基于 supersession (同 S+P 去重), 不再依赖 valid_time 非空
  • 开关: SHM_FACT_SUPERSEDE=0 一键关 (默认开)
  • 设计: 复用 PropertyVersion bi-temporal 思路 (supersedes/superseded_by 双挂链) 独立实现; 纯 GQL 层不碰向量/FAISS; 标记作废非删节点, 血缘可回溯
  • 门: 10 新用例 + 全量 1467 passed 零回归; 生产探针: REST 写端口 1080→2080, active-only 只回新值, 三向血缘核验一致

同期 (v6.22.7 → v6.22.9)

  • v6.22.7 CJK 兜底分词 + 判别打分 (char 2-gram + 匹配度打分)
  • v6.22.8 兜底同步到 REST 主路径 (双副本陷阱)
  • v6.22.9 P1 生产写路径懒抽取 SPO 事实落库 (AtomicFact 从 0 累积)