跳到主要内容

本体编写指南

整理按复杂度划分的推荐本体水平和编写指南。

按级别划分的本体水平

复杂度本体水平包含要素示例文件
L1轻量 Schema- 实体定义
- 属性
- 基本不变条件
ontology/user-schema.yaml
L2标准本体- 实体 + 关系
- 服务契约
- Bounded Context
ontology/order-service.yaml
L3完整本体- 事件 Schema
- 事件顺序
- 幂等性键
ontology/order-events.yaml
L4完整本体 + Saga- Saga 步骤
- 补偿逻辑
- 失败场景
ontology/booking-saga.yaml
L5Knowledge Graph- 事件存储
- 投影
- 事件版本管理
ontology/banking-kg.yaml

Level 1-2: 轻量~标准本体

重点

实体和关系定义

编写原则

  • 明确的实体边界
  • 明确必需属性
  • 定义基本不变条件

示例

# 实体定义
entities:
Order:
attributes:
- orderId: string
- customerId: string
- items: list<OrderItem>
invariants:
- orderId must be unique
- items must not be empty

# 关系定义
relationships:
- Customer hasMany Order
- Order hasMany OrderItem

Level 3-4: 完整本体 + Saga

重点

事件 Schema + 补偿逻辑

编写原则

  • 明确事件契约
  • 定义补偿逻辑
  • 超时/重试策略

示例

# 事件契约
events:
OrderCreated:
schema: {...}
producers: [OrderService]
consumers: [InventoryService, NotificationService]
idempotencyKey: orderId

# Saga 定义
saga:
steps:
- action: reserveInventory
compensation: releaseInventory
timeout: 5s

Level 5: Knowledge Graph

重点

Event Sourcing + 投影

编写原则

  • 事件版本管理
  • 明确投影逻辑
  • 事件重放策略

示例

# 事件存储
eventStore:
aggregateRoot: BankAccount
snapshotStrategy: every 100 events

# 投影
projections:
AccountBalanceView:
source: [AccountOpened, MoneyDeposited]
target: read_db.account_balance

SemanticForge 模式(L5 专用)

Level 5 项目应用本体工程的 SemanticForge 模式。

核心特征:

  • 事件 = 领域知识的原子单位
  • 用 Knowledge Graph 表示事件间关系
  • 投影 = Knowledge Graph 查询

参考:本体工程中查看详细指南

下一步