首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第34章 EOM 模型

第34章 EOM 模型

本章大纲

  1. EOM 定义
  2. Element
  3. Object
  4. Relation
  5. Method
  6. EOM 数据结构
  7. EOM 创建
  8. EOM 查询
  9. EOM 匹配
  10. EOM 更新
  11. EOM 完整案例

34.1 EOM 定义

EOM 是 SAI Framework 中用于把基础元素组织成对象、关系和对象操作能力的一种核心结构模型。

EOM:

E = Element(元素)
O = Object(对象)
M = Method(方法)

而 Relation 是连接 E、O、M 的关系结构。

因此,本章所说的 EOM,不只是简单的三个名词,而是一种从信息元素逐步形成可操作对象的组织模型:

Element
   ↓
Object
   ├── Property
   ├── State
   ├── Relation
   └── Method

进一步可以表示:

Element
   ↓
Object
   ↓
Relation
   ↓
Method

EOM 的核心思想

前面第29~33章分别建立了:

Element
Object
Property
Method
Relation

现在把这些结构统一起来:

        Element
           ↓
        Object
       ↙  ↓  ↘
Property State Relation
           ↓
         Method

其中:

  • Element:最基础的信息单元
  • Object:由元素组织形成的实体
  • Relation:连接实体及其组成部分
  • Method:对象可以执行的操作

所以 EOM 的目标不是“保存数据”,而是:

把分散的信息元素组织成具有身份、属性、关系、状态和操作能力的对象结构。


34.2 Element

Element 是 EOM 的基础输入。

前一章已经定义:

Element 是信息中可以被独立识别、描述、比较、匹配和进一步组织的最基础信息单元。

例如从场景中获得:

temperature
32
person
present
fan
off
living-room

可以形成:

Element
├── temperature
├── 32
├── person
├── present
├── fan
├── off
└── living-room

这些元素本身还不是完整对象。

例如:

fan

只能说明存在一个“fan”元素。

而:

fan
off
living-room
speed = 0

经过组织后才能形成:

Object
Fan

所以:

Element
→ 基础信息单元

是 EOM 的起点。


34.2.1 Element 的结构

可以统一为:

Element
{
    id
    type
    value
    source
    state
    time
    metadata
}

例如:

Element
id     = element-000001
type   = property
value  = temperature
source = sensor-001
state  = valid

另一个:

Element
id     = element-000002
type   = value
value  = 32
source = sensor-001
state  = valid

34.2.2 Element 的作用

Element 主要负责:

识别
描述
保存
比较
匹配
组织

但 Element 本身不负责:

完整对象组织
复杂关系管理
决策
行为

因此:

Element
   ↓
EOM Object Construction

才进入对象层。


34.3 Object

Object 是 EOM 的核心实体。

定义:

Object 是由相关 Element 组织形成的、具有明确身份、类型、属性、状态、关系和方法的实体。

例如:

Element
├── fan
├── off
├── speed
├── 0
└── living-room

组织后:

Object
ID   = fan-001
Type = fan

并拥有:

Property
├── speed = 0
└── location = living-room

State
└── off

Method
├── turnOn()
├── turnOff()
└── setSpeed()

34.3.1 Element → Object

这是 EOM 最关键的转换。

Element
   ↓
识别共同对象
   ↓
组织
   ↓
Object

例如:

Element A
fan

Element B
speed

Element C
0

Element D
living-room

通过对象标识和关联关系:

fan
 ├── speed → 0
 └── location → living-room

形成:

Object
fan-001

34.3.2 Object 不等于 Element

例如:

Element
fan

只是一个元素。

而:

Object
fan-001
├── Type = fan
├── speed = 0
├── location = living-room
├── state = off
└── Method = turnOn()

是完整对象。

所以:

Element → 局部
Object  → 整体

34.4 Relation

Relation 是 EOM 中的连接结构。

如果没有 Relation:

Person
Fan
Room
Sensor

彼此只是独立对象。

加入 Relation:

Person
   │
   └── located_at → Room

Fan
   │
   └── located_at → Room

Sensor
   │
   └── detects → Temperature

对象世界就建立起来了。


34.4.1 Relation 的基本形式

Subject
   ↓
Relation
   ↓
Object

例如:

person-001
   ↓
located_at
   ↓
room-001

34.4.2 Relation 连接 Element

Relation 不一定只能连接 Object。

例如:

Element A
temperature

Element B
room

可以:

temperature
   ↓
property_of
   ↓
room

所以 EOM 中 Relation 可以参与:

Element → Element
Element → Object
Object → Object
Object → Property
Property → Property
State → Object

34.5 Method

Method 是 Object 的操作能力。

例如:

Object
Fan

拥有:

Method
├── turnOn()
├── turnOff()
└── setSpeed(speed)

因此:

Object
   ↓
Method

表示:

这个对象能够执行什么操作。


34.5.1 Method 与 Object 的关系

例如:

fan-001
   │
   ├── turnOn()
   ├── turnOff()
   └── setSpeed()

Method 并不是独立于 Object 的行为。

它属于对象能力结构的一部分。


34.5.2 Method 与 Property 的关系

Method 执行后可能改变 Property:

setSpeed(1200)
       ↓
Property
speed = 1200

也可能改变 State:

turnOn()
   ↓
State
off → on

所以:

Method
   ↓
改变
   ├── Property
   └── State

34.6 EOM 数据结构

EOM 可以建立统一的数据结构。

EOM
{
    elements
    objects
    relations
    methods
}

更完整:

EOM
{
    elements: {},
    objects: {},
    relations: {},
    methods: {}
}

34.6.1 Element 数据

elements
{
    element-000001:
    {
        type: "object",
        value: "fan"
    },

    element-000002:
    {
        type: "property",
        value: "speed"
    },

    element-000003:
    {
        type: "value",
        value: 1200
    }
}

34.6.2 Object 数据

objects
{
    fan-001:
    {
        type: "fan",
        properties:
        {
            speed: 1200
        },
        state: "on"
    }
}

34.6.3 Relation 数据

relations
{
    relation-001:
    {
        type: "located_at",
        subject: "fan-001",
        object: "room-001"
    }
}

34.6.4 Method 数据

methods
{
    fan-001:
    {
        turnOn,
        turnOff,
        setSpeed
    }
}

34.7 EOM 创建

EOM 创建可以从 Element 开始。

基本流程:

Information
      ↓
Element
      ↓
Element Organization
      ↓
Object
      ↓
Property / State
      ↓
Relation
      ↓
Method

34.7.1 创建 Element

例如:

$fanElement = new Element(
    'element-000001',
    'object',
    'fan',
    'scene-001'
);

创建:

Element
type  = object
value = fan

34.7.2 创建 Object

$fan = new Object(
    'fan-001',
    'fan'
);

34.7.3 添加 Property

$fan->setProperty(
    'speed',
    0
);

$fan->setProperty(
    'location',
    'living-room'
);

形成:

Fan
├── speed = 0
└── location = living-room

34.7.4 设置 State

$fan->setState(
    'off'
);

34.7.5 添加 Method

$fan->addMethod(
    'turnOn',
    $turnOn
);

$fan->addMethod(
    'turnOff',
    $turnOff
);

$fan->addMethod(
    'setSpeed',
    $setSpeed
);

34.7.6 创建 Relation

$relation = new Relation(
    'relation-000001',
    'located_at',
    'fan-001',
    'room-001',
    'scene-001'
);

最终:

Fan
   │
   └── located_at
             ↓
          Room

34.8 EOM 查询

EOM 建立之后,需要能够查询。

例如:

查询:
fan-001

返回:

Object
ID = fan-001
Type = fan
State = off
Property:
    speed = 0
    location = living-room

34.8.1 按 ID 查询

$fan = $objectManager->get(
    'fan-001'
);

34.8.2 按 Type 查询

例如:

查询 type = fan

得到:

fan-001
fan-002
fan-003

34.8.3 按 Property 查询

例如:

查询:
speed = 1200

可能得到:

fan-001
fan-003

34.8.4 按 State 查询

例如:

查询:
state = on

得到:

fan-001
fan-002

34.8.5 按 Relation 查询

例如:

查询:
located_at = room-001

得到:

fan-001
person-001
sensor-001

于是:

EOM Query
├── ID Query
├── Type Query
├── Property Query
├── State Query
└── Relation Query

34.9 EOM 匹配

EOM Matching 用于判断一个 EOM 结构是否符合另一个结构或者指定条件。

例如:

Object A
type = fan
speed = 1200
state = on

条件:

type = fan
state = on

结果:

Match = true

34.9.1 Element Matching

例如:

Element A
type = temperature
value = 32
Element B
type = temperature
value = 32

可以:

Match = true

34.9.2 Object Matching

例如:

Object A
type = fan
Object B
type = fan

可以匹配。

如果:

Object B
type = door

则:

Match = false

34.9.3 Property Matching

例如:

speed = 1200

条件:

speed > 1000

得到:

Match = true

34.9.4 Relation Matching

例如:

fan-001
located_at
room-001

查询条件:

fan
located_at
room-001

匹配:

true

34.9.5 EOM 综合匹配

例如条件:

Object Type = fan
Property speed > 1000
State = on
Relation located_at room-001

目标对象:

Fan
speed = 1200
state = on
located_at = room-001

结果:

Match = true

这里的匹配依然是结构、值、条件和关系的离散匹配,不需要引入 Embedding、Vector Search 或其他大模型机制。


34.10 EOM 更新

EOM 不是静态结构。

外部世界发生变化后:

External World
      ↓
Information
      ↓
Element
      ↓
EOM Update

34.10.1 Property 更新

原来:

Fan
speed = 0

收到新信息:

speed = 1200

更新:

speed
0 → 1200

34.10.2 State 更新

原来:

Fan
state = off

收到:

fan turned on

更新:

off → on

34.10.3 Relation 更新

原来:

Fan
located_at
Room-001

移动后:

Fan
located_at
Room-002

则关系需要更新:

Room-001
   ↓
located_at
   ↑
删除旧关系

Fan
   ↓
located_at
   ↓
Room-002

34.10.4 Element 更新驱动 Object 更新

完整过程:

Sensor
   ↓
Information
   ↓
Element
   ↓
Element Changed
   ↓
Object Property / State Changed
   ↓
Relation Changed

这使 EOM 能够持续反映外部世界变化。


34.11 EOM 完整案例

下面建立一个完整的客厅场景。


第一步:获得 Elements

Element
├── room
├── living-room
├── temperature
├── 32
├── person
├── present
├── fan
├── off
└── speed

第二步:组织 Room Object

Object
ID   = room-001
Type = room

加入 Property:

temperature = 32
name = living-room

State:

occupied

形成:

Room
├── Property
│   ├── name = living-room
│   └── temperature = 32
│
└── State
    └── occupied

第三步:组织 Person Object

Object
ID   = person-001
Type = person

Property:

location = living-room

State:

present

第四步:组织 Fan Object

Object
ID   = fan-001
Type = fan

Property:

speed = 0
location = living-room

State:

off

Method:

turnOn()
turnOff()
setSpeed()

第五步:建立 Relation

person-001
   │
   └── located_at → room-001
fan-001
   │
   └── located_at → room-001

形成:

              room-001
             /        \
            /          \
     person-001       fan-001
                         │
                         ├── speed = 0
                         ├── state = off
                         └── Method
                             ├── turnOn
                             ├── turnOff
                             └── setSpeed

34.12 EOM 完整 PHP 示例

下面把核心结构组合起来:

<?php

$elements = array();

$objects = array();

$relations = array();

$elements[] = new Element(
    'element-000001',
    'object',
    'room',
    'scene-001'
);

$elements[] = new Element(
    'element-000002',
    'object',
    'fan',
    'scene-001'
);

$elements[] = new Element(
    'element-000003',
    'property',
    'temperature',
    'sensor-001'
);

$elements[] = new Element(
    'element-000004',
    'value',
    32,
    'sensor-001'
);

$room = new Object(
    'room-001',
    'room'
);

$room->setProperty(
    'name',
    'living-room'
);

$room->setProperty(
    'temperature',
    32
);

$room->setState(
    'occupied'
);

$fan = new Object(
    'fan-001',
    'fan'
);

$fan->setProperty(
    'speed',
    0
);

$fan->setProperty(
    'location',
    'living-room'
);

$fan->setState(
    'off'
);

$objects['room-001'] = $room;
$objects['fan-001'] = $fan;

$relations[] = new Relation(
    'relation-000001',
    'located_at',
    'fan-001',
    'room-001',
    'scene-001'
);

得到:

EOM
│
├── Elements
│   ├── room
│   ├── fan
│   ├── temperature
│   └── 32
│
├── Objects
│   ├── room-001
│   └── fan-001
│
└── Relations
    └── fan-001
        located_at
        room-001

34.13 EOM 的完整运行链

现在把第29~34章连接起来:

External World
      ↓
InformationSource
      ↓
Sensor
      ↓
InformationReceiver
      ↓
Information
      ↓
SceneCollector
      ↓
Scene
      ↓
Central
      ↓
Dispatcher
      ↓
Coordinator
      ↓
Perception
      ↓
Element
      ↓
EOM

EOM 内部:

Element
   ↓
Object
   ├── Property
   ├── State
   ├── Relation
   └── Method

然后进入:

Cognition
   ↓
Understanding
   ↓
Reasoning
   ↓
Decision
   ↓
Behavior
   ↓
Method
   ↓
Object

形成完整闭环:

信息
 ↓
元素
 ↓
对象
 ↓
关系
 ↓
理解
 ↓
推理
 ↓
决策
 ↓
行为
 ↓
方法
 ↓
对象状态/属性变化
 ↓
反馈
 ↓
信息

34.14 EOM 的核心意义

EOM 最重要的价值是把:

“信息”

转换成:

“结构化对象世界”

例如最初只有:

32
person
fan
off
living-room

通过 EOM:

Room
├── temperature = 32
│
├── Person
│
└── Fan
    ├── state = off
    └── speed = 0

再通过 Relation:

Person → located_at → Room
Fan → located_at → Room

再通过 Method:

Fan
├── turnOn()
├── turnOff()
└── setSpeed()

于是 SAI 获得:

实体
+
属性
+
状态
+
关系
+
操作能力

这才构成后续认知处理所需要的基本对象世界。


本章小结

第34章建立了 EOM 模型

EOM 的核心:

E = Element
O = Object
M = Method

同时由 Relation 将这些结构连接起来:

Element
   ↓
Object
   ├── Property
   ├── State
   ├── Relation
   └── Method

核心过程:

Element
   ↓
识别
   ↓
组织
   ↓
Object
   ↓
Relation
   ↓
Method

核心操作:

EOM
├── 创建
├── 查询
├── 匹配
└── 更新

核心数据结构:

EOM
├── Elements
├── Objects
├── Relations
└── Methods

最重要的概念关系:

Element → 信息基础单元
Object  → 实体
Property → 实体特征
State   → 实体状态
Relation → 实体联系
Method  → 实体操作能力

因此:

EOM 是 SAI Framework 从“元素级信息”进入“对象级结构”的核心组织模型。

到第34章结束,SAI 已经完成:

Information
   ↓
Scene
   ↓
Element
   ↓
EOM
   ↓
Object
├── Property
├── State
├── Relation
└── Method

下一章 第35章:从 Information 到 Object 将把前面的 Information、Scene、Element、EOM、Object 全部串联起来,完整说明一条信息是如何逐步转换成 SAI 可理解和可操作的对象结构。

说明:以上 PHP 代码是本章的设计示例,用于说明 SAI Framework 的 OOP 结构,未作为实际项目代码执行验证。

Leave a Reply

Your email address will not be published. Required fields are marked *