Reality · 对象与关于对象的主张
机器人型号、企业和部件是实体;供货关系、产品参数、量产声明和生命周期状态是关于实体的主张。名字、文章和页面不是独立身份的充分证据。
Model · 核心语义
| 概念 | 当前表达 | 不应推断 |
|---|---|---|
| Robot / Identity | 详情的 identity.canonicalId、canonicalSlug、canonicalUrl,以及 ambiguous / candidates | 名称查询即唯一身份;展示名变化即新产品 |
| Company / Alias | identity 与 profile.canonicalName、aliases;canonical name 经过现有 alias 治理 | 同一别名应建多家公司;公司一定已有统一 UUID |
| Part / Series | Part 有 UUID;有 MPN 时身份键以规范厂商 + normalized_mpn 约束;Series 用于组织变体 | 系列名、相似型号或不同 SKU 是同一个 Part |
| Relation | subject → predicate → object,带有效期、证据与审核状态 | 文章共现就是供应、投资或合作关系 |
| Event | 时间范围、关联实体、Evidence 与审核状态 | 发布时间或录入时间就是发生时间 |
| State | subjectType + canonicalId + dimension;由已批准来源事件产生,带 Evidence 与有效期 | 空查询结果就是明确的“停止经营”或 unknown 断言 |
| Evidence / Source | 具体摘录或观察 → 来源及时间;证据支持特定主张 | 一个官方链接能证明整页所有规格 |
Phase 1 的 World 事件与关系采用 entity_type + canonical_name 引用实体;World State 中公司 canonicalId 使用规范名称,机器人使用既有规范 ID。不同领域 ID 不可互换。
Time 与 Lifecycle
World Timeline 返回 occurredFrom / occurredTo;World State 返回 validFrom / validTo、observedAt、sourceEventId,历史接口返回 fromValue / toValue。有效时间、观察时间和记录更新时间分别保留。时间端点为空时,不自行填今天或文章发布日期,也不要在未确认领域语义前解释为“永久有效”。
企业详情的 profile.lifecycle 使用生命周期断言,包含 state、statusConfidence、effectiveFrom、effectiveTo 和 evidenceCount。没有断言时返回 state: unknown;inactive、bankrupt、dissolved 派生 historical: true,被收购并不自动成为历史实体。该视图按最新批准记录读取,不能当作任意时刻的状态查询。
World State 是另一条由事件推导的读取链,支持显式 stateStatus: unknown/conflict 与 unknownReason;它与企业生命周期视图没有自动等价关系。
Null 与 Authority
null ≠ false ≠ 0。缺少规格行表示未知;空集合只说明查询结果为空。数值、单位、条件、来源任一缺失,都应在比较结果中保留。旧字段未必处处提供显式 unknown,不能补出比源数据更强的结论。
知识语义协议 将 assertionKind 与审核状态分开:factual_claim + approved 派生 accepted_fact;subject_claim + approved 是 attributed_claim,只确认谁作出了声明;观点获批仍是观点。commercialIntent 独立于事实审核,confidence 也不赋予写入权。
公共产品资料经受控维护与同步形成读取投影,World 主张经过审核。外部贡献只进入待审流程,不能直接改 canonical 事实。
Interface · 读取现有契约
Robot 字段目录 · 知识语义 · REST 实体与状态接口 · 部件能力。机器人字段目录目前只覆盖部分字段,完整身份与溯源以详情响应为准。
Agent behavior · 保留身份与时间边界
优先保存规范 ID 与来源;遇到歧义、冲突或未知时不要自动归并、覆盖历史或生成确定结论。通用处理顺序见 Agent Guide。
实现依据:emibot-rs/src/routes/robots.rs、emibot-rs/src/routes/companies.rs、emibot-rs/src/routes/world_state.rs、docs/adr/0002-world-model-phase1-identity-and-time.md、docs/adr/0005-parts-bom-domain-schema.md。