第40章 世界—类—对象理论
40.1 提出背景
前面的理论已经逐步建立了元素、对象、属性、状态、关系、场景、知识、方法、行为和动作等基本认知结构。
在这些结构之上,还存在一个更高层次的问题:
如果认知系统同时面对大量对象,这些对象属于不同类别,具有不同属性和状态,并且彼此之间存在复杂关系,那么系统如何把这些对象统一组织起来?
仅仅建立“对象”还不够。
例如,在一个维修场景中,可以存在:
- 一台设备;
- 一个电机;
- 一个轴承;
- 一个故障;
- 一个维修人员;
- 一个维修工具;
- 一个维修方法;
- 一个维修任务。
这些对象不是孤立存在的。
它们具有共同特征,因此可以归入不同的类(Class);它们又通过属性、状态和关系形成具体结构;大量对象进一步共同构成一个可以被认知、计算和操作的世界(World)。
因此,需要建立:
世界 → 类 → 对象
这一基础层级。
其基本结构为:
世界
↓
类
↓
对象
↓
属性
↓
状态
↓
关系
↓
场景
↓
知识
↓
方法
↓
行为
↓
动作
这里的“世界”不是哲学意义上的抽象世界,而是认知系统能够表示、组织、计算和操作的结构化对象空间。
40.2 世界的定义
**世界(World)**是由一组类、对象、属性、状态、关系、场景以及其他认知结构按照一定规则组织形成的整体结构。
可以形式化表示为:
W={C,O,A,S,R,Sc,K,M,B,Act}W=\{C,O,A,S,R,Sc,K,M,B,Act\}
其中:
- WW:World,世界;
- CC:Class,类集合;
- OO:Object,对象集合;
- AA:Attribute,属性集合;
- SS:State,状态集合;
- RR:Relation,关系集合;
- ScSc:Scene,场景集合;
- KK:Knowledge,知识集合;
- MM:Method,方法集合;
- BB:Behavior,行为集合;
- ActAct:Action,动作集合。
世界因此不是一个单独的对象,而是一个结构容器。
可以表示为:
World
├── Class
│ ├── Device
│ ├── Person
│ ├── Tool
│ ├── Fault
│ └── Method
│
├── Object
│ ├── Device#001
│ ├── Motor#001
│ ├── Person#001
│ └── Tool#001
│
├── Attribute
├── State
├── Relation
├── Scene
├── Knowledge
├── Method
├── Behavior
└── Action
因此:
世界是认知对象及其结构关系的总体集合。
40.3 类的定义
**类(Class)**是对具有共同结构、共同属性、共同状态特征或者共同功能的一组对象进行抽象形成的认知分类结构。
例如:
设备类
人员类
工具类
故障类
维修方法类
车辆类
动物类
建筑物类
类不是某一个具体对象。
例如:
汽车
可以是一个类。
而:
Toyota Camry #001
则是这个类的一个具体对象实例。
因此:
类
↓ 实例化
对象
类解决的是:
“这种东西是什么类型?”
对象解决的是:
“具体是哪一个东西?”
40.4 对象的定义
**对象(Object)**是世界中可以被独立识别、描述、关联、操作和计算的具体实体。
对象可以来自现实世界,也可以来自认知系统内部。
例如:
设备
电机
轴承
人员
工具
故障
任务
维修记录
维修方法
对象通常具有:
对象
├── ID
├── Class
├── Attribute
├── State
├── Relation
└── Context
因此可以表示:
Oi=(id,class,A,S,R)O_i=(id,class,A,S,R)
其中:
- OiO_i:第 ii 个对象;
- idid:对象唯一标识;
- classclass:对象所属类;
- AA:对象属性;
- SS:对象状态;
- RR:对象关系。
40.5 世界—类—对象三级结构
世界、类和对象形成三个不同的抽象层。
World
↓
Class
↓
Object
三者分别承担不同作用。
| 层级 | 核心问题 | 作用 |
|---|---|---|
| 世界 | 有什么整体结构? | 建立总体空间 |
| 类 | 有哪些类型? | 建立分类结构 |
| 对象 | 具体是什么? | 建立实例结构 |
例如:
世界
↓
设备世界
↓
电机类
↓
电机#001
↓
属性
功率=5KW
转速=1450RPM
↓
状态
运行
↓
关系
属于设备#001
这就形成了一个完整的结构链。
40.6 类与对象的实例关系
类与对象之间最基本的关系是:
Object→InstanceOf→ClassObject \rightarrow InstanceOf \rightarrow Class
例如:
电机#001
↓
InstanceOf
↓
电机类
表示:
电机#001是“电机类”的一个实例。
多个对象可以属于同一个类:
电机类
├── 电机#001
├── 电机#002
├── 电机#003
└── 电机#004
因此:
Class→{Object1,Object2,⋯ ,Objectn}Class \rightarrow \{Object_1,Object_2,\cdots,Object_n\}
类提供共同结构,对象提供具体实例。
40.7 类的层次结构
类本身也可以形成层次结构。
例如:
对象
↓
设备
↓
动力设备
↓
电机
↓
交流电机
↓
三相交流电机
形成:
C1→C2→C3→⋯→CnC_1 \rightarrow C_2 \rightarrow C_3 \rightarrow \cdots \rightarrow C_n
这种结构表示类之间存在分类层次关系。
例如:
设备类
├── 电气设备
│ ├── 电机
│ ├── 变压器
│ └── 配电柜
│
└── 机械设备
├── 泵
├── 压缩机
└── 风机
这样,系统就能够从一般类别逐渐进入具体类别。
40.8 类的继承结构
如果一个类继承另一个类的共同结构,则可以形成继承关系。
例如:
设备类
↓
电机类
↓
三相电机类
如果:
设备类
属性:
名称
编号
型号
状态
那么电机类可以在此基础上增加:
功率
转速
电压
电流
因此:
Classchild=Classparent+SpecificStructureClass_{child}=Class_{parent}+SpecificStructure
这意味着类结构可以逐层扩展。
40.9 类不是对象集合的简单名称
类不仅仅是对象的名称集合。
例如:
电机类
不能简单理解成:
所有名字叫电机的东西
而应该理解为:
电机类
=
共同属性
+
共同状态
+
共同关系
+
共同结构
+
共同能力
+
共同规则
因此:
Class=Structure+Attribute+State+Relation+RuleClass= Structure+Attribute+State+Relation+Rule
类实际上承担了结构模板的作用。
40.10 世界中的对象组织
一个世界可以包含大量不同类型的对象:
World
│
├── Person
│ ├── Person#001
│ └── Person#002
│
├── Device
│ ├── Device#001
│ └── Device#002
│
├── Tool
│ ├── Tool#001
│ └── Tool#002
│
├── Fault
│ ├── Fault#001
│ └── Fault#002
│
└── Method
├── Method#001
└── Method#002
这些对象共同组成世界的对象空间:
OW={O1,O2,⋯ ,On}O_W=\{O_1,O_2,\cdots,O_n\}
其中 OWO_W 表示世界 WW 中全部对象的集合。
40.11 世界中的对象关系
对象之间不是孤立的。
例如:
维修人员
↓维修
设备
↓包含
电机
↓存在
故障
↓需要
维修方法
↓使用
工具
可以形成:
R(Oi,Oj,type)R(O_i,O_j,type)
其中:
- OiO_i:关系主体对象;
- OjO_j:关系目标对象;
- typetype:关系类型。
例如:
Person#001
↓ repairs
Device#001
表示:
人员#001维修设备#001。
40.12 世界结构不是静态对象集合
世界不是:
Object + Object + Object
而是一个动态结构。
对象可能出现:
创建
↓
存在
↓
变化
↓
消失
状态也会变化:
设备
正常
↓
异常
↓
故障
↓
维修
↓
恢复
关系也可能变化:
人员
↓
维修
设备
维修结束后:
人员
↓
完成维修
设备
因此世界可以表示为动态函数:
W(t)W(t)
表示时间 tt 时的世界状态。
40.13 世界状态
世界状态由世界中对象及其状态共同决定。
可以定义:
State(W,t)={State(O1,t),State(O2,t),…,State(On,t)}State(W,t)=\{State(O_1,t),State(O_2,t),…,State(O_n,t)\}
例如:
World(t1)
设备#001 → 正常
设备#002 → 故障
人员#001 → 空闲
人员#002 → 维修中
经过一段时间:
World(t2)
设备#001 → 故障
设备#002 → 已修复
人员#001 → 维修中
人员#002 → 空闲
于是:
W(t1)→W(t2)W(t_1)\rightarrow W(t_2)
这构成世界的动态变化。
40.14 世界与场景的关系
世界是总体结构,场景是世界在特定条件下的局部结构。
因此:
Scene⊂WorldScene \subset World
例如:
世界
│
├── 工厂
├── 设备
├── 人员
├── 仓库
├── 维修区
└── 办公区
当系统关注:
维修人员
+
故障设备
+
维修工具
+
维修任务
就可以从世界中抽取一个维修场景:
World
↓
Scene
↓
维修场景
所以场景不是脱离世界独立产生的,而是:
世界结构在特定目标、对象、关系和状态条件下形成的局部结构。
40.15 世界与知识的关系
世界描述:
有什么。
知识描述:
这些东西之间有什么规律。
例如世界中存在:
电机#001
故障#001
维修人员#001
工具#001
知识可以表示:
电机过热
+
轴承异常
→
检查轴承
因此:
World→KnowledgeWorld \rightarrow Knowledge
世界提供知识计算的对象基础,知识则提供对世界结构的解释和操作规则。
40.16 世界—类—对象的认知过程
认知系统面对一个对象时,可以逐层确定:
输入
↓
识别对象
↓
确定对象实例
↓
确定所属类
↓
读取类结构
↓
读取对象属性
↓
读取对象状态
↓
读取对象关系
↓
确定所在场景
↓
形成世界结构中的位置
例如发现一个具体设备:
设备#001
↓
是什么?
↓
设备类
↓
属于什么?
↓
生产设备
↓
具体类型?
↓
电机
↓
当前状态?
↓
运行
↓
与谁相关?
↓
连接生产线#01
最终形成:
世界
↓
生产设备类
↓
电机类
↓
电机#001
↓
运行状态
↓
连接生产线#01
这就是世界结构中的对象定位。
40.17 世界结构的基础模型
综合上述关系,可以建立:
World
│
┌────────────┴────────────┐
↓ ↓
Class Object
│ │
┌──────┴──────┐ ┌───────┼───────┐
↓ ↓ ↓ ↓ ↓
Parent Structure Attribute State Relation
│
↓
Child Class
│
↓
Object Instance
进一步扩展:
World
↓
Class
↓
Object
↓
Attribute
↓
State
↓
Relation
↓
Scene
↓
Knowledge
↓
Method
↓
Behavior
↓
Action
↓
Feedback
这成为后续认知工程的重要基础结构。
40.18 世界模型
可以进一步把世界定义为一个多层结构:
World=⟨C,O,A,S,R,Sc,K,M,B,Act,F⟩World= \langle C,O,A,S,R,Sc,K,M,B,Act,F\rangle
其中:
- CC:类;
- OO:对象;
- AA:属性;
- SS:状态;
- RR:关系;
- ScSc:场景;
- KK:知识;
- MM:方法;
- BB:行为;
- ActAct:动作;
- FF:反馈。
因此,世界模型不再只是“对象模型”,而是:
对象、结构、状态、关系、场景、知识和行为共同构成的统一认知世界模型。
40.19 世界结构中的对象定位
每一个对象都应该能够在世界中获得结构位置。
可以定义:
Location(O)=⟨Class,Parent,Relation,Scene,State⟩Location(O)=\langle Class,Parent,Relation,Scene,State\rangle
例如:
电机#001
Class:
电机类
Parent:
设备#001
Relation:
连接生产线#01
Scene:
生产运行场景
State:
运行
这样,系统不只是知道:
“这是一个电机。”
而是知道:
“这是哪个电机、属于什么类、属于哪个设备、处于什么场景、具有什么状态、与哪些对象存在关系。”
这才是真正的世界结构认知。
40.20 工程映射
世界—类—对象理论可以直接映射到面向对象工程。
例如:
World
↓
World Object
Class
↓
PHP Class
Object
↓
PHP Object
Attribute
↓
Object Property
State
↓
State Object
Relation
↓
Relation Object
Scene
↓
Scene Object
一个基础工程结构可以表示为:
class World
{
protected $classes = array();
protected $objects = array();
protected $scenes = array();
}
class CognitiveClass
{
protected $id;
protected $name;
protected $attributes = array();
protected $states = array();
}
class CognitiveObject
{
protected $id;
protected $classId;
protected $attributes = array();
protected $state;
protected $relations = array();
}
这里的核心不是代码本身,而是:
理论中的世界、类、对象必须能够转化为系统中的可存储、可读取、可匹配、可计算对象。
40.21 世界结构的数据库映射
数据库可以进一步建立:
worlds
classes
class_relations
objects
object_attributes
object_states
object_relations
scenes
scene_objects
knowledge
methods
behaviors
actions
feedback
其基本关系:
worlds
↓
classes
↓
objects
↓
object_attributes
object_states
object_relations
例如:
worlds
World#001
↓
classes
Device
Motor
Tool
Person
↓
objects
Motor#001
Tool#001
Person#001
↓
relations
Person#001
↓ repairs
Motor#001
于是数据库成为世界结构的持久化载体。
40.22 世界结构与认知匹配
世界—类—对象理论还为第14章之后的认知匹配理论提供了基础。
认知匹配不再只是:
对象 ↔ 对象
还可以扩展为:
世界 ↔ 世界
类 ↔ 类
对象 ↔ 对象
属性 ↔ 属性
状态 ↔ 状态
关系 ↔ 关系
场景 ↔ 场景
形成:
Match(W1,W2)Match(W_1,W_2)
进一步分解:
Match(W1,W2)=Match(C)+Match(O)+Match(A)+Match(S)+Match(R)+Match(Sc)Match(W_1,W_2) = Match(C)+Match(O)+Match(A)+Match(S)+Match(R)+Match(Sc)
因此,世界结构为更高层次的认知匹配提供了基础。
40.23 世界结构与复杂行为
第39章建立了复杂行为的一般模型:
目标
+
基础类
+
对象实例
+
属性
+
状态
+
关系
+
场景
+
知识
+
方法
+
行为
+
动作
+
动态参数
+
反馈
↓
复杂行为
第40章进一步说明:
这些元素并不是散乱存在的,而是统一存在于:
World
之中。
因此可以进一步得到:
World
↓
Class
↓
Object
↓
Attribute
↓
State
↓
Relation
↓
Scene
↓
Knowledge
↓
Method
↓
Behavior
↓
Action
↓
Feedback
↓
World Change
于是复杂行为最终形成一个闭环:
Worldt→Cognition→Behavior→Action→Feedback→Worldt+1World_t \rightarrow Cognition \rightarrow Behavior \rightarrow Action \rightarrow Feedback \rightarrow World_{t+1}
这意味着:
行为不是发生在世界之外,而是发生在世界结构之中,并且能够改变世界结构。
40.24 世界结构的形成与消解
世界中的对象不是永久固定的。
对象可以:
产生
↓
进入世界
↓
建立类归属
↓
建立属性
↓
建立关系
↓
进入场景
↓
发生状态变化
↓
退出场景
↓
消失
因此世界本身也具有生命周期:
Worldt→Worldt+1→Worldt+2World_{t} \rightarrow World_{t+1} \rightarrow World_{t+2}
世界结构的变化来源包括:
对象增加
对象删除
对象属性变化
对象状态变化
关系增加
关系删除
场景形成
场景消解
知识更新
方法变化
行为执行
40.25 世界—类—对象理论的核心原则
本章可以归纳为以下原则。
第一,世界是总体结构
World = 总体认知空间
第二,类是分类结构
Class = 对象共同结构的抽象
第三,对象是具体实例
Object = 世界中的具体实体
第四,类决定共同结构
Class
↓
共同属性
共同状态
共同关系
共同规则
第五,对象承载具体状态
Object
↓
具体属性
具体状态
具体关系
第六,场景是世界的局部结构
World
↓
Scene
第七,行为改变世界
Cognition
↓
Behavior
↓
Action
↓
World Change
40.26 世界结构基础模型
最终可以建立本章的核心模型:
世界 World
│
┌──────────────┼──────────────┐
↓ ↓ ↓
类 Class 对象 Object 场景 Scene
│ │ │
↓ ↓ ↓
类结构 属性 Attribute 场景对象
类关系 状态 State 场景关系
│ │ │
└──────────────┼──────────────┘
↓
关系 Relation
↓
知识 Knowledge
↓
方法 Method
↓
行为 Behavior
↓
动作 Action
↓
反馈 Feedback
↓
世界状态变化
↓
World(t+1)
由此得到一个更加完整的世界循环:
Worldt→Cognition→Decision→Behavior→Action→Feedback→Worldt+1World_t \rightarrow Cognition \rightarrow Decision \rightarrow Behavior \rightarrow Action \rightarrow Feedback \rightarrow World_{t+1}
40.27 本章总结
世界—类—对象理论建立了结构化认知系统的世界基础。
世界解决的是总体空间问题;类解决的是分类问题;对象解决的是实例问题;属性解决的是对象描述问题;状态解决的是对象当前条件问题;关系解决的是对象之间连接问题;场景解决的是局部结构问题;知识、方法、行为和动作则建立了世界结构与认知、执行之间的联系。
因此可以把本章核心理论压缩为:
世界
↓
分类
↓
类
↓
实例化
↓
对象
↓
属性 + 状态 + 关系
↓
场景
↓
知识
↓
方法
↓
行为
↓
动作
↓
反馈
↓
世界变化
其最核心的理论关系是:
World→Class→Object\boxed{World\rightarrow Class\rightarrow Object}
而完整的动态认知关系是:
Worldt→Cognition→Behavior→Action→Feedback→Worldt+1\boxed{ World_t \rightarrow Cognition \rightarrow Behavior \rightarrow Action \rightarrow Feedback \rightarrow World_{t+1} }
由此,第40章实际上完成了一个重要提升:前面的理论主要描述“认知系统中的结构元素”,本章开始把这些元素统一放入一个“世界结构”中。
下一步自然可以进入第41章《世界模型与世界状态理论》,进一步解决“世界如何被表示、世界状态如何计算、世界如何变化、世界状态如何被认知系统读取与更新”的问题。