第12章 对象属性
对象是“什么”,属性回答的是对象“具有什么”。
在前面的章节中,我们讨论了对象的形成。认知系统通过感知元素以及元素之间的关系,将连续变化的感知信息组织成为相对稳定的对象。
但是,仅仅知道“这是一个对象”还远远不够。
当人看到一个鸡蛋时,真正参与后续认知的并不是“鸡蛋”这个名称本身,而是这个对象所表现出来的大量属性:
- 它是硬的还是软的;
- 它是光滑的还是粗糙的;
- 它有多重;
- 它能承受多大的压力;
- 它是否容易滑动;
- 它是否正在移动;
- 它当前是否完整;
- 它受到压力后是否发生形变;
- 它与手之间的摩擦是否正在变化。
因此,认知系统真正需要处理的不是简单的:
Object = Egg
而是:
Object
↓
Attributes
↓
Attribute Values
↓
Attribute States
↓
Attribute Changes
↓
Object State
对象属性由此成为对象进入认知过程的重要桥梁。
12.1 从“对象是什么”到“对象具有什么”
在自然语言中,人们通常使用名称识别对象。
例如:
鸡蛋
杯子
玻璃
手机
桌子
这些名称可以帮助我们快速指向一个对象。
但是,名称本身并没有完整描述对象。
例如:
鸡蛋
只是告诉认知系统:
当前存在一个被称为“鸡蛋”的对象。
它没有告诉系统:
重量是多少?
硬度是多少?
表面摩擦如何?
能够承受多大压力?
当前是否完整?
当前是否移动?
是否受到外力?
受到外力后发生了什么变化?
所以:
对象名称主要解决对象识别问题,而对象属性解决对象描述与认知问题。
可以表示为:
对象身份
↓
对象属性
↓
对象状态
↓
对象变化
对象回答:
“它是谁?”
属性回答:
“它具有什么?”
状态回答:
“它现在怎么样?”
变化回答:
“它正在发生什么?”
这四个层次不能混为一谈。
12.2 属性是对象的组成信息
一个对象并不是只有一个属性。
例如,一个鸡蛋可以具有:
Object = Egg
Material = Shell
Shape = Oval
Weight = 50g
Surface = Smooth
Friction = x
Hardness = x
Temperature = x
Position = x
Velocity = x
Pressure = x
Deformation = x
Integrity = x
因此可以抽象为:
Object
{
Attribute_1
Attribute_2
Attribute_3
...
Attribute_n
}
这里的关键不是属性数量,而是:
属性是对象能够被进一步认知的基本描述单位。
如果只有对象:
Egg
系统只能知道“有一个鸡蛋”。
如果拥有属性:
Egg
├── Weight
├── Shape
├── Surface
├── Friction
├── Pressure
├── Deformation
└── Integrity
系统才开始拥有对这个对象进行进一步判断的基础。
12.3 属性不是对象本身
必须明确区分:
Object ≠ Attribute
例如:
Egg
是对象。
Weight
是属性。
50g
是属性值。
因此:
Egg
↓
Weight
↓
50g
不是三个对象,而是:
对象
↓
属性
↓
属性值
同样:
Egg
↓
Surface
↓
Smooth
表示:
鸡蛋这个对象具有“表面”属性,而当前该属性的值表现为“光滑”。
所以一个完整的属性描述至少可以表示为:
Object + Attribute + Value
即:
对象 + 属性 + 值
12.4 属性值不是固定不变的
这是对象属性理论中非常重要的一点。
传统的数据结构很容易把属性理解成一个固定字段:
weight = 50
temperature = 25
pressure = 0
这种表达适合描述某一个时刻的数据。
但现实世界中的对象并不是静态数据库记录。
例如一个鸡蛋被机器人抓取:
t1:
Pressure = 0
t2:
Pressure = 2
t3:
Pressure = 4
t4:
Pressure = 6
t5:
Pressure = 7
压力属性一直在变化。
因此:
Pressure = 7
只是某一个时间点的值。
更加准确的表示应该是:
Pressure(t)
即:
属性值是时间函数,而不是永恒固定的常数。
于是:
Attribute
↓
Value(t)
成为动态认知的重要基础。
12.5 属性可以是静态属性
并不是所有属性都会快速变化。
例如:
颜色
材质
形状
品牌
型号
尺寸
这些属性在一定时间范围内可以认为相对稳定。
例如:
Object = Egg
Shape = Oval
Material = Shell
Color = White
这些属性可以称为:
相对静态属性。
这里的“静态”并不意味着绝对不会变化。
例如鸡蛋破裂以后:
Shape
Integrity
Material State
都可能发生变化。
所以所谓静态属性,本质上是:
在当前认知时间尺度内变化可以忽略,或者变化速度远低于当前认知任务所需要的处理速度。
这是一个非常重要的区别。
12.6 属性可以是动态属性
另一类属性天然具有明显的动态变化。
例如:
Position
Velocity
Pressure
Temperature
Force
Deformation
Friction
Contact
这些属性不能只使用一个固定值描述。
例如:
Position(t)
Velocity(t)
Pressure(t)
Temperature(t)
更重要的是:
动态属性本身不是孤立变化的。
例如抓取鸡蛋时:
Pressure ↑
可能导致:
Deformation ↑
而:
Pressure ↓
又可能导致:
Slip Risk ↑
于是:
Pressure
↓
Deformation
↓
Integrity
以及:
Pressure
↓
Friction
↓
Slip
形成动态关系。
这就意味着:
属性不仅具有值,而且具有变化关系。
12.7 属性可以描述对象的能力
对象属性不仅描述“对象是什么样”,还可以描述:
对象能够承受什么、产生什么、完成什么。
例如一个鸡蛋具有:
Maximum Safe Pressure
Deformation Threshold
Break Threshold
Friction Characteristics
这些属性不是简单描述外观。
它们描述的是对象与环境交互时的能力边界。
例如:
压力 < 安全阈值
可能表示:
对象保持完整
而:
压力 > 破坏阈值
可能表示:
对象损伤
因此属性开始从:
描述对象
进入:
描述对象行为
这一步非常重要。
因为认知系统最终不是为了知道:
“这个鸡蛋是椭圆形。”
而是为了知道:
“在当前情况下,这个鸡蛋能够承受多大的作用。”
12.8 属性之间存在关系
如果把属性看成孤立字段:
Pressure
Friction
Deformation
Integrity
认知系统仍然无法形成完整判断。
真正重要的是这些属性之间的关系。
例如:
Pressure ↑
↓
Deformation ↑
↓
Damage Risk ↑
同时:
Grip Force ↑
↓
Stability ↑
但继续增加:
Grip Force ↑↑
↓
Deformation ↑
↓
Damage Risk ↑
因此存在一个非常重要的问题:
不是某一个属性达到最大或最小,而是多个属性之间存在一个动态平衡。
这正是后面的动态认知匹配理论需要解决的问题。
12.9 属性具有上下文
同一个属性,在不同环境和任务中,其认知意义可能完全不同。
例如:
Pressure = 5
这个数字本身没有完整意义。
必须知道:
谁施加的压力?
施加在什么对象上?
对象当前状态是什么?
持续了多久?
对象是否移动?
对象是否正在滑动?
任务目标是什么?
因此属性不能脱离上下文。
可以表示为:
Attribute
+
Object
+
Context
+
Time
共同构成属性当前的认知意义。
例如:
Pressure = 5
和:
Egg + Pressure = 5
再和:
Egg + Pressure = 5 + Current State + Time + Grip Task
已经是三个不同层次的信息。
所以:
属性值本身不是认知,属性在对象、时间和情境中的关系才逐渐形成认知依据。
12.10 属性状态
属性不仅可以有值,还可以有状态。
例如:
Pressure
可以有:
Zero
Increasing
Stable
Decreasing
Excessive
因此:
Pressure = 5
与:
Pressure = 5 + Increasing
并不相同。
前者描述数值。
后者描述:
当前压力为5,并且压力正在增加。
进一步:
Pressure = 5
Rate = +2/s
Trend = Increasing
系统就可以开始预测下一状态。
因此可以建立:
Attribute
├── Value
├── State
├── Change
├── Rate
└── Trend
这也为后面的动态属性理论建立基础。
12.11 属性变化才是认知的重要信息
如果一个属性永远不变化,那么它主要承担的是描述功能。
而一旦属性发生变化,就开始产生新的认知信息。
例如:
Pressure = 3
只是当前状态。
但是:
Pressure:
2 → 3 → 4 → 5
说明压力正在持续增加。
如果同时观察:
Deformation:
0 → 0 → 1 → 2
那么系统可以发现:
压力增加正在伴随形变增加。
如果再观察:
Integrity:
100 → 100 → 98 → 95
系统就进一步发现:
当前作用可能正在损伤对象。
因此:
属性值
提供状态,
而:
属性变化
提供过程。
最终:
状态 + 变化
才为动态认知提供真正的信息。
12.12 属性不是越多越好
认知系统不能简单地认为:
属性越多,认知越准确。
如果一个对象拥有:
1000个属性
但当前任务只需要:
Pressure
Friction
Deformation
Integrity
那么大量无关属性反而会增加认知计算负担。
因此必须引入:
任务相关属性。
例如:
任务:识别鸡蛋
可能重点关注:
Shape
Color
Size
Surface
任务:抓取鸡蛋
则重点变成:
Position
Contact
Friction
Pressure
Deformation
Integrity
任务:运输鸡蛋
又可能重点关注:
Position
Acceleration
Stability
Impact
Integrity
于是:
Object
↓
All Attributes
↓
Task Relevant Attributes
↓
Current Cognitive Attributes
认知系统真正处理的是:
当前任务下具有认知价值的属性。
12.13 属性的认知价值
属性并不是简单的数据字段。
一个属性是否重要,取决于它对当前认知任务的贡献。
例如抓鸡蛋时:
颜色
可能几乎没有作用。
而:
压力
摩擦
形变
完整性
具有很高的认知价值。
因此可以定义:
Attribute Cognitive Value
即:
属性在当前任务和当前状态下,对认知结果产生影响的程度。
于是:
Attribute
↓
Relevance
↓
Weight
↓
Cognitive Contribution
这一步会直接连接到后面的:
认知匹配与动态权重。
12.14 属性与对象状态
对象状态不是凭空产生的。
它通常是多个属性共同作用的结果。
例如鸡蛋:
Pressure = 2
Deformation = 0
Integrity = 100
可以认知为:
Stable
当状态变为:
Pressure = 7
Deformation = 2
Integrity = 95
对象可能进入:
Risk
进一步:
Pressure = 10
Deformation = 8
Integrity = 60
可能进入:
Damage
因此:
属性
↓
属性状态
↓
属性组合
↓
对象状态
对象状态实际上是属性系统综合作用后的结果之一。
12.15 对象属性的层次结构
到这里,可以建立一个更完整的对象属性模型:
Object
│
├── Identity
│
├── Attributes
│ │
│ ├── Static Attribute
│ │
│ ├── Dynamic Attribute
│ │
│ ├── State Attribute
│ │
│ └── Capability Attribute
│
├── Attribute Value
│
├── Attribute State
│
├── Attribute Change
│
├── Attribute Relation
│
└── Attribute Context
于是,一个对象不再只是:
Object = Name
而成为:
Object
=
Identity
+
Attributes
+
Values
+
States
+
Changes
+
Relations
+
Context
这已经从传统的数据对象进入了认知对象。
12.16 从对象属性走向认知
现在回到本章最开始的问题:
对象为什么需要属性?
因为认知系统不能直接从一个名称获得完整认知。
它必须通过属性逐渐建立判断。
例如:
Object = Egg
↓
Friction = High
Pressure = Increasing
Deformation = Increasing
Integrity = Decreasing
↓
系统发现:
当前作用正在增加对象损伤风险
这已经不是单纯的对象识别。
而是:
对象状态认知。
再进一步,如果系统发现:
Pressure ↓
Deformation ↓
Integrity Stable
Slip Risk Acceptable
则可以形成另一种认知:
当前抓取方式更安全
于是:
对象
↓
属性
↓
属性变化
↓
属性关系
↓
对象状态
↓
认知
这条链路非常重要。
12.17 对象属性不是静态数据库字段
传统软件经常这样定义对象:
Object {
name;
color;
weight;
}
这种结构当然有工程价值。
但对于认知系统来说仍然不够。
因为真实世界中的属性是:
属性
+
时间
+
变化
+
上下文
+
关系
所以认知工程中的属性更接近:
Attribute {
value;
state;
change;
rate;
trend;
confidence;
context;
relation;
}
这里的重点不是规定一个唯一的数据结构,而是提出一个理论原则:
对象属性必须能够表达对象在时间和环境中的变化。
否则,系统最终仍然会退化成静态数据匹配。
12.18 从属性到动态认知
本章可以形成第一条重要理论链:
对象
↓
属性
↓
属性值
↓
属性状态
↓
属性变化
↓
属性关系
↓
对象状态
↓
认知依据
而下一阶段还需要解决一个更关键的问题:
当多个属性同时变化时,认知系统究竟应该如何进行综合判断?
例如抓取鸡蛋:
压力
+
摩擦
+
滑移
+
形变
+
完整性
+
抓取稳定性
这些数据不是简单相加。
更不是:
Pressure = X
然后直接做一个固定判断。
真正的问题是:
多个动态属性
↓
同时变化
↓
相互影响
↓
权重变化
↓
综合匹配
↓
当前认知
这就从对象属性理论进入了下一阶段:
动态属性与认知匹配。
12.19 本章核心结论
本章建立了几个基础观点。
第一:
对象回答“是什么”,属性回答“具有什么”。
第二:
属性不是对象本身,而是描述对象状态、特征、能力和变化的认知信息。
第三:
属性值不是永恒固定的,动态对象的属性必须能够随时间变化。
第四:
属性不仅具有值,还具有状态、变化、趋势和关系。
第五:
多个属性共同决定对象状态,单一属性通常不能完整代表对象的当前认知状态。
第六:
属性的认知价值取决于当前任务、环境和对象状态。
第七:
对象属性是从对象识别走向对象认知的关键桥梁。
因此可以形成:
对象是什么
↓
对象具有什么
↓
这些属性现在是什么状态
↓
这些属性正在怎样变化
↓
这些变化之间有什么关系
↓
对象当前处于什么状态
↓
系统形成什么认知
最终,本章最核心的理论表达可以概括为:
对象是认知结构,属性是对象可被认知的具体维度;属性通过值、状态、变化和关系描述对象,而对象的认知状态则来源于多个属性在特定时间、环境和任务条件下的综合变化。
下一章将进一步讨论: