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

第6章 对象关系理论

第6章 对象关系理论

6.1 提出背景

前面的章节已经建立了世界、基础类、对象实例以及类关系理论。

目前已经形成:

世界
↓
基础类
↓
类关系
↓
对象实例

但是,现实世界并不是由相互孤立的对象构成的。

一个苹果可能位于桌面上,一个人可能拿着手机,一只手可能操作一个工具,一个鸡蛋可能放在锅中,一个机械臂可能抓取一个物体。

因此,机器真正面对的不是:

对象A
对象B
对象C

而是:

对象A
↓
关系
↓
对象B

对象关系因此成为机器理解现实世界的重要结构。

**对象关系(Object Relationship)**是指两个或多个具体对象之间,在空间、所属、操作、使用、因果以及其他现实条件下形成的具体联系。

对象关系与类关系具有明显的层次区别:

类关系
↓
描述类别之间的结构联系

对象关系
↓
描述具体对象之间的现实联系

例如:

类层:
人类 → 使用 → 手机类

而现实中:

张三 → 使用 → 手机01

前者是类关系,后者是对象关系。

因此,本章研究的核心问题是:

机器如何从类结构进入具体对象结构,并通过对象之间的关系建立现实世界的动态场景。


6.2 对象之间的关系

对象关系首先表现为具体对象之间的连接。

基本形式为:

对象A
↓
关系
↓
对象B

例如:

苹果01
↓ 位于
桌面01

又例如:

机械臂01
↓ 抓取
鸡蛋01

再例如:

鸡蛋01
↓ 位于
锅01

这些关系都发生在对象层,而不是抽象类层。

对象关系可以具有方向:

A → 使用 → B

也可以具有对称性:

A ↔ 相邻 ↔ B

还可以具有时间条件:

T1:A与B分离
T2:A接触B
T3:A离开B

因此,对象关系不是简单的数据连接,而是具有:

对象
+
关系类型
+
方向
+
时间
+
条件
+
状态

的动态结构。


6.3 对象关系的基本结构

一个对象关系至少包含:

source_object
relation_type
target_object

即:

起始对象
↓
关系类型
↓
目标对象

例如:

机械臂01
↓ 抓取
鸡蛋01

可以表示为:

source = 机械臂01
relation = 抓取
target = 鸡蛋01

进一步,如果需要描述动态关系,还可以增加:

时间
空间位置
关系状态
关系强度
作用条件

于是:

对象A
↓
关系
├── 类型
├── 方向
├── 时间
├── 空间
├── 条件
└── 状态
↓
对象B

这种结构可以支持机器对现实关系进行持续跟踪。


6.4 对象关系与类关系

类关系与对象关系具有上下层对应关系,但二者不能混淆。

类关系:

人类
↓ 使用
手机类

对象关系:

张三
↓ 使用
手机01

因此可以建立:

类A
↓
类关系
↓
类B

对应:

对象A
↓
对象关系
↓
对象B

但这种对应不是简单复制。

例如:

人类 → 使用 → 手机类

只是表示人类可以使用手机这一类别的对象。

并不意味着:

所有人
↓
使用
↓
所有手机

现实中的对象关系需要结合当前:

对象身份
+
属性
+
状态
+
位置
+
时间
+
场景

进行确定。

因此:

类关系提供对象关系的结构可能性,对象关系则表示现实中的具体实现。


6.5 类关系向对象关系的实例化

可以把类关系理解为对象关系的上层结构依据。

例如:

机械臂类
↓ 操作
物体类

现实中可以出现:

机械臂01
↓ 操作
鸡蛋01

另一个场景可能出现:

机械臂01
↓ 操作
螺丝01

因此:

类关系
↓
对象关系候选
↓
场景条件匹配
↓
具体对象关系

这就是类关系向对象关系的实例化过程。

但是,对象关系还会受到实际条件约束。

例如机械臂类理论上可以操作物体类,但机械臂01当前可能距离鸡蛋01很远,那么“操作”关系在当前场景中并未真正成立。

所以:

类关系表达可能性,对象关系表达现实性。


6.6 空间关系

**空间关系(Spatial Relationship)**描述对象在空间中的位置、距离、方向、接触和包含等结构关系。

空间关系是机器理解现实场景最基础的关系之一。

例如:

苹果01
↓ 位于
桌面01

又如:

鸡蛋01
↓ 在……里面
锅01

还可以表示:

机械臂01
↓ 靠近
鸡蛋01

常见空间关系包括:

左侧
右侧
上方
下方
前方
后方
内部
外部
包含
接触
相邻
远离
重叠

因此空间关系可以表示为:

对象A
↓ 空间关系
对象B

例如:

鸡蛋01
↓ 左侧
锅01

这使机器能够理解对象不仅“是什么”,还知道对象“在哪里”。


6.7 空间关系的动态性

空间关系不是固定属性,而是可以随着对象运动发生变化。

例如:

机械臂01
↓ 远离
鸡蛋01

机械臂移动:

机械臂01
↓ 接近
鸡蛋01

继续移动:

机械臂01
↓ 接触
鸡蛋01

最终:

机械臂01
↓ 抓取
鸡蛋01

因此:

空间变化
↓
关系变化
↓
场景变化
↓
认知变化

空间关系是动态场景的重要基础。


6.8 所属关系

**所属关系(Belonging Relationship)**表示对象属于某个对象、组织、集合、结构或空间范围。

例如:

苹果01
↓ 属于
水果箱01

或者:

员工01
↓ 属于
公司01

还可以:

零件01
↓ 属于
设备01

所属关系表达:

对象A属于对象B所代表的组织、集合或结构范围。

因此:

对象A
↓ 所属
对象B

它与空间包含存在联系,但并不完全相同。

例如:

苹果01
↓ 位于
箱子01

强调空间位置。

而:

苹果01
↓ 属于
水果集合01

强调分类或组织归属。

因此:

空间包含 ≠ 所属关系

机器需要根据关系语义进行区分。


6.9 操作关系

**操作关系(Operation Relationship)**表示一个对象对另一个对象执行某种操作。

例如:

机械臂01
↓ 抓取
鸡蛋01

又例如:

刀具01
↓ 切割
西红柿01

或者:

人01
↓ 打开
门01

操作关系通常具有明确方向:

操作者
↓ 操作
目标对象

它还可以进一步与动作联系:

机械臂01
↓
抓取动作
↓
鸡蛋01

因此:

操作关系
=
操作主体
+
操作动作
+
操作目标

操作关系是机器行为形成的重要对象层结构。


6.10 操作关系与对象状态

操作通常会造成目标对象状态变化。

例如:

机械臂01
↓ 抓取
鸡蛋01

抓取以后:

鸡蛋01
状态:
桌面静止
↓
被抓取

因此:

操作关系
↓
动作发生
↓
目标对象变化
↓
状态更新

进一步:

状态变化
↓
关系变化
↓
场景变化

例如机械臂把鸡蛋放入锅中:

机械臂01
↓ 搬运
鸡蛋01
↓ 放入
锅01

鸡蛋的空间关系由:

鸡蛋01 → 位于 → 桌面01

变成:

鸡蛋01 → 位于 → 锅01

这说明操作关系能够驱动对象关系变化。


6.11 使用关系

**使用关系(Usage Relationship)**表示一个对象利用另一个对象所提供的工具、资源或能力完成任务。

例如:

人01
↓ 使用
手机01

又例如:

厨师01
↓ 使用
锅01

或者:

机械臂01
↓ 使用
夹具01

使用关系可以表示:

使用主体
↓ 使用
工具 / 资源 / 设备

使用关系与操作关系有明显区别。

例如:

机械臂01
↓ 使用
夹具01

表示机械臂使用夹具。

而:

夹具01
↓ 抓取
鸡蛋01

表示夹具实际作用于鸡蛋。

因此:

使用关系
↓
建立能力利用结构

操作关系
↓
建立具体作用结构

6.12 因果关系

**因果关系(Causal Relationship)**表示一个对象的行为、状态变化或事件对另一个对象产生结果性影响。

基本形式:

原因
↓
结果

例如:

加热器01
↓ 加热
鸡蛋01
↓
温度升高

这里:

加热动作
↓
温度变化

形成因果关系。

再例如:

机械臂01
↓ 释放
鸡蛋01
↓
鸡蛋01
↓
位置改变

因果关系使机器能够理解:

为什么对象发生变化。


6.13 因果关系与状态变化

对象状态变化可以表示为:

State(t) → Action → State(t+1)

如果进一步描述产生变化的原因:

原因对象 / 动作
↓
状态变化

例如:

锅01
↓ 加热
鸡蛋01
↓
状态:
生
↓
熟

因此:

加热动作
↓
温度变化
↓
鸡蛋状态变化

这构成因果链。

因果关系让机器能够建立:

过去发生了什么
↓
当前为什么这样
↓
下一步可能发生什么

因此,因果关系不仅用于解释过去,也可以成为预测和行为选择的基础。


6.14 对象关系与行为

对象关系不是静态描述。

不同对象关系会直接影响机器可以采取什么行为。

例如:

机械臂01
↓ 靠近
鸡蛋01

机器可能形成:

可接近

当关系变化为:

机械臂01
↓ 接触
鸡蛋01

则可能形成:

可抓取

当关系进一步变化为:

机械臂01
↓ 持有
鸡蛋01

则可能形成:

可移动

因此:

对象关系
↓
场景理解
↓
行为可能性
↓
动作选择

这说明对象关系是行为形成的重要条件。


6.15 对象关系与场景

场景本质上不是对象的简单集合。

例如:

机械臂01
鸡蛋01
锅01
炉具01

只是对象集合。

如果增加关系:

机械臂01 → 接近 → 鸡蛋01
鸡蛋01 → 位于 → 桌面01
锅01 → 位于 → 炉具01
机械臂01 → 使用 → 夹具01

才开始形成真正的场景结构:

对象
+
状态
+
关系
+
空间
+
时间
↓
场景

因此:

对象关系是场景形成的骨架。

没有关系,机器只能看到多个对象;建立关系以后,机器才能理解这些对象共同构成什么现实结构。


6.16 对象关系的动态变化

现实中的关系会不断变化。

例如:

T1
机械臂01 → 远离 → 鸡蛋01

经过运动:

T2
机械臂01 → 接近 → 鸡蛋01

接触:

T3
机械臂01 → 接触 → 鸡蛋01

抓取:

T4
机械臂01 → 抓取 → 鸡蛋01

移动:

T5
机械臂01 → 搬运 → 鸡蛋01

释放:

T6
机械臂01 → 释放 → 鸡蛋01

于是对象关系形成:

远离
↓
接近
↓
接触
↓
抓取
↓
搬运
↓
释放

这实际上已经构成一个动态行为过程。

因此:

复杂行为可以表现为对象关系随时间发生的连续变化。


6.17 对象关系网络

当对象数量增加以后,对象关系会形成动态网络。

例如:

机械臂01
├── 使用 → 夹具01
├── 控制 → 夹具01
└── 操作 → 鸡蛋01

鸡蛋01
├── 位于 → 桌面01
├── 接近 → 锅01
└── 属于 → 食材集合01

锅01
├── 位于 → 炉具01
└── 包含 → 鸡蛋01

此时机器获得的是:

对象
↓
对象关系
↓
关系网络
↓
场景结构

对象关系网络比单一对象识别具有更强的信息表达能力。

因为机器可以通过关系理解:

对象在哪里
对象属于什么
对象与谁关联
对象正在操作谁
对象使用什么
对象为什么发生变化

6.18 对象关系与认知匹配

机器认知一个场景时,需要同时进行对象匹配和关系匹配。

例如:

对象:
机械臂01
鸡蛋01
锅01

仅仅识别对象是不够的。

机器还需要识别:

机械臂01 → 接近 → 鸡蛋01
鸡蛋01 → 位于 → 桌面01
锅01 → 位于 → 炉具01

然后将当前关系结构与已有知识进行匹配:

对象匹配
+
属性匹配
+
状态匹配
+
关系匹配
↓
场景匹配
↓
认知

因此:

认知匹配不仅是“对象是什么”的匹配,也是“对象之间发生了什么”的匹配。

这为后续的场景认知理论和复杂行为理论建立基础。


6.19 对象关系与类关系的统一模型

现在可以把类关系和对象关系放在两个层次中:

类层
↓
类关系
↓
类别结构

对应:

对象层
↓
对象关系
↓
现实结构

完整表示为:

类A
↓ 类关系
类B
↓
对象A
↓ 对象关系
对象B

进一步:

类结构
↓
对象结构
↓
对象关系
↓
场景结构

由此形成从抽象世界到现实世界的结构映射。


6.20 对象关系的工程表示

在工程系统中,可以建立统一的对象关系结构:

ObjectRelation
{
    id
    source_object_id
    target_object_id
    relation_type
    direction
    start_time
    end_time
    state
    parameters
}

其中:

  • source_object_id:关系起始对象;
  • target_object_id:关系目标对象;
  • relation_type:关系类型;
  • direction:关系方向;
  • start_time:关系开始时间;
  • end_time:关系结束时间;
  • state:关系当前状态;
  • parameters:关系参数。

关系类型可以定义为:

SPATIAL
BELONG
OPERATE
USE
CAUSE

也可以继续扩展:

CONTACT
CONTAIN
NEAR
FAR
CONTROL
SUPPORT
TRANSFER

这样,机器可以通过统一的数据结构表示不同类型的对象关系。


6.21 对象关系数据库结构

可以进一步建立:

objects
├── id
├── class_id
├── attributes
└── states

以及:

object_relations
├── id
├── source_object_id
├── target_object_id
├── relation_type
├── direction
├── start_time
├── end_time
└── status

这样:

objects
      ↓
object_relations
      ↓
objects

形成:

对象 → 关系 → 对象

例如:

机械臂01
↓
object_relations
↓
鸡蛋01

关系记录:

source = 机械臂01
relation = OPERATE
target = 鸡蛋01

这种结构可以支持:

  • 对象关系查询;
  • 场景构建;
  • 关系变化追踪;
  • 行为条件判断;
  • 状态更新;
  • 历史关系记录。

6.22 对象关系运行模型

对象关系进入机器运行过程后,可以形成:

感知
↓
对象发现
↓
对象实例
↓
对象关系识别
↓
空间关系
↓
所属关系
↓
操作关系
↓
使用关系
↓
因果关系
↓
场景形成
↓
认知
↓
行为
↓
动作
↓
对象关系变化
↓
再认知

这使对象关系从静态知识转变为动态运行结构。


6.23 对象关系理论的核心原则

本章可以归纳为七项基本原则。

第一,对象关系原则

现实对象不是孤立存在的,而是通过各种关系形成结构。

对象A
↓
关系
↓
对象B

第二,层次对应原则

类关系位于抽象层,对象关系位于现实实例层。

类关系
↓
对象关系

第三,空间原则

对象通过位置、方向、距离、接触、包含等空间关系形成空间结构。

第四,所属原则

对象可以属于某个对象集合、结构、组织或空间范围。

第五,操作原则

对象可以对其他对象执行动作,形成操作关系。

第六,使用原则

对象可以使用其他对象提供的工具、资源或能力。

第七,因果原则

对象行为和状态变化之间可以形成因果关系。

最终形成:

空间
+
所属
+
操作
+
使用
+
因果
↓
对象关系结构

6.24 本章总结

本章从对象层建立了机器世界中的对象关系理论。

如果第5章解决的是:

“类与类之间是什么关系?”

那么第6章解决的是:

“具体对象与对象之间是什么关系?”

对象关系可以表示为:

对象A
↓
关系
↓
对象B

其中主要包括:

空间关系
所属关系
操作关系
使用关系
因果关系

这些关系共同把孤立对象组织成为现实场景。

类关系与对象关系则形成上下层结构:

类关系
↓
定义类别之间的结构可能性
↓
对象关系
↓
表现具体对象之间的现实联系

因此:

类
↓
类关系
↓
对象
↓
对象关系
↓
场景

对象关系又具有动态性:

关系建立
↓
关系变化
↓
对象状态变化
↓
场景变化
↓
认知变化
↓
行为变化

最终,本章形成一个重要理论结论:

对象不是孤立存在的实体,而是通过空间、所属、操作、使用、因果等关系相互连接,并在时间和场景中形成动态结构。类关系规定类别之间的抽象结构,对象关系则把这些结构具体展开为现实世界中的对象联系;对象关系的持续变化构成场景变化的重要基础,而场景变化进一步推动机器认知和行为变化。

至此,第1章至第6章已经形成:

世界
↓
基础类
↓
对象实例
↓
类—对象结构
↓
类关系
↓
对象关系
↓
场景

下一章自然进入一个更重要的问题:

对象具有属性、状态,类具有结构,类之间有关系,对象之间也有关系,那么这些对象和关系在特定时间、空间和状态条件下如何共同形成一个完整的“场景”?

这将进入第7章 场景结构理论

Leave a Reply

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