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

第69章 属性认知

第69章 属性认知

69.1 属性认知的提出背景

在ICAI通用核心理论中,对象是机器认知的基本实体,而属性是描述对象结构和特征的基本信息单元。

机器确定一个对象之后,还必须进一步回答:

这个对象具有什么特征?

例如,对于一个无人飞机对象,仅仅知道:

对象:UAV001
类型:无人飞机

还不能支持后续认知。机器还需要知道:

重量:5kg
高度:100m
速度:20m/s
电量:80%
温度:35℃
位置:(100,200)

这些信息构成对象的属性。

因此:

对象→属性对象\rightarrow属性

是对象认知向进一步状态认知发展的基础。

属性认知(Attribute Cognition)是指机器个体针对对象的属性进行识别、分类、读取、表示、比较、计算、更新和判断的过程。

其基本过程为:

属性识别→属性分类→属性取值→属性状态→属性变化→属性比较→属性计算属性识别 \rightarrow 属性分类 \rightarrow 属性取值 \rightarrow 属性状态 \rightarrow 属性变化 \rightarrow 属性比较 \rightarrow 属性计算

因此:

属性认知=属性定义+属性类型+属性值+属性状态+属性变化+属性比较+属性计算\boxed{ 属性认知 = 属性定义 + 属性类型 + 属性值 + 属性状态 + 属性变化 + 属性比较 + 属性计算 }


69.2 属性定义

**属性(Attribute)**是描述对象某一特征、参数、结构、能力、条件或可计算信息的数据结构。

对象回答:

“是什么?”

属性回答:

“具有什么特征?”

例如:

对象:Device001

属性:
型号 = D100
重量 = 50kg
功率 = 1000W
温度 = 75℃
状态码 = 2

属性可以表示对象的:

名称
尺寸
重量
颜色
数量
速度
温度
位置
功率
容量
价格
型号
等级
类别
参数

属性基本模型:

A={ID,ObjectID,Name,Type,Value,Unit,Source,Time}A=\{ID,ObjectID,Name,Type,Value,Unit,Source,Time\}

其中:

  • AA:属性;
  • IDID:属性唯一标识;
  • ObjectIDObjectID:属性所属对象;
  • NameName:属性名称;
  • TypeType:属性类型;
  • ValueValue:属性值;
  • UnitUnit:属性单位;
  • SourceSource:属性来源;
  • TimeTime:属性时间。

因此:

Attribute⊂ObjectStructureAttribute\subset ObjectStructure

一个完整对象可以表示为:

O={ID,Type,A,S,R,H}O=\{ID,Type,A,S,R,H\}

其中 AA 就是对象的属性集合。


69.3 属性类型

**属性类型(Attribute Type)**是对属性的数据形式、语义类别和计算方式进行分类的结构。

不同属性具有不同的数据类型。

例如:

姓名 → 字符串
年龄 → 整数
重量 → 浮点数
是否在线 → 布尔值
位置 → 坐标结构
时间 → 时间结构
温度 → 数值+单位
状态 → 枚举

因此可以建立:

AttributeType={String,Integer,Float,Boolean,Enum,DateTime,Coordinate,Object,Collection}AttributeType= \{ String, Integer, Float, Boolean, Enum, DateTime, Coordinate, Object, Collection \}

从认知用途来看,还可以进一步划分:

69.3.1 身份属性

用于描述对象身份。

例如:

ID
编号
序列号
名称

69.3.2 分类属性

用于确定对象属于什么类型。

例如:

设备类型
产品类型
车辆类型
飞机类型

69.3.3 结构属性

用于描述对象组成。

例如:

长度
宽度
高度
部件数量
组件结构

69.3.4 参数属性

用于描述对象的技术或业务参数。

例如:

额定功率
最大速度
容量
价格
重量

69.3.5 动态属性

会随着时间和运行过程发生变化的属性。

例如:

当前位置
当前速度
当前温度
当前电量
当前负载

因此:

AttributeType=StaticAttribute+DynamicAttributeAttributeType= StaticAttribute+DynamicAttribute

属性类型直接影响后续属性的比较和计算方式。


69.4 属性值

**属性值(Attribute Value)**是属性在特定时间和条件下所对应的具体数据。

例如:

属性:重量
属性值:5
单位:kg

或者:

属性:速度
属性值:20
单位:m/s

属性值可以表示为:

V=(Value,Unit,Time,Source)V=(Value,Unit,Time,Source)

其中:

  • ValueValue:实际数值或数据;
  • UnitUnit:单位;
  • TimeTime:获得时间;
  • SourceSource:数据来源。

因此完整属性:

A={Name,Type,V}A=\{Name,Type,V\}

例如:

Aspeed={Speed,Float,(20,m/s,t)}A_{speed}= \{Speed,Float,(20,m/s,t)\}

属性值不是永远固定的。

对于动态属性:

Vt≠Vt+1V_t\neq V_{t+1}

例如无人飞机速度:

Speedt=20m/sSpeed_{t}=20m/s

经过加速后:

Speedt+1=25m/sSpeed_{t+1}=25m/s

因此:

属性≠固定常量属性 \neq 固定常量

而是可以成为持续变化的机器数据结构。


69.5 属性状态

属性值描述的是“属性当前是多少”,而属性状态进一步描述:

当前属性值处于什么状态。

例如:

温度 = 85℃

仅仅知道数值85℃还不够。

根据设备规则:

0~60℃:正常
60~80℃:偏高
80℃以上:过热

机器可以进一步得到:

温度值:85℃
温度状态:过热

因此:

AttributeValue→AttributeStateAttributeValue\rightarrow AttributeState

属性状态可以表示为:

AS={Attribute,Value,Condition,State,Time}AS=\{Attribute,Value,Condition,State,Time\}

其中:

  • AttributeAttribute:属性;
  • ValueValue:属性值;
  • ConditionCondition:判断条件;
  • StateState:属性状态;
  • TimeTime:判断时间。

例如:

Temperature=85Temperature=85

并且:

Temperature>80Temperature>80

则:

State(Temperature)=OverheatState(Temperature)=Overheat

因此:

AttributeState=f(AttributeValue,Condition,Rule)AttributeState=f(AttributeValue,Condition,Rule)

属性状态是属性认知进入状态认知的重要桥梁。


69.6 属性变化

**属性变化(Attribute Change)**是属性值在不同时间或不同条件下发生变化的过程。

基本形式:

At→At+1A_t\rightarrow A_{t+1}

或者:

Vt→Vt+1V_t\rightarrow V_{t+1}

例如:

电量:
80%
↓
75%
↓
70%
↓
65%

机器不仅可以保存当前值,还可以保存属性变化历史:

时间T1:80%
时间T2:75%
时间T3:70%
时间T4:65%

属性变化可以计算:

ΔV=Vt+1−Vt\Delta V=V_{t+1}-V_t

其中:

  • ΔV\Delta V:属性变化量;
  • VtV_t:当前属性值;
  • Vt+1V_{t+1}:下一时刻属性值。

如果:

ΔV>0\Delta V>0

表示属性值增加。

如果:

ΔV<0\Delta V<0

表示属性值减少。

如果:

ΔV=0\Delta V=0

表示属性值没有变化。

进一步可以计算变化率:

Rate=Vt+1−VtΔtRate=\frac{V_{t+1}-V_t}{\Delta t}

其中:

  • RateRate:属性变化率;
  • Vt+1−VtV_{t+1}-V_t:属性变化量;
  • Δt\Delta t:时间间隔。

例如电量从80%下降到70%,经过10分钟:

Rate=70−8010=−1%/minRate=\frac{70-80}{10}=-1\%/min

机器由此可以得到:

电量正在下降
下降速度:1%/分钟

这比单纯保存“当前电量70%”具有更高的认知价值。


69.7 属性比较

**属性比较(Attribute Comparison)**是机器针对两个或多个属性值,根据类型、单位、条件和比较规则进行关系判断的过程。

基本比较:

V1>V2V_1>V_2 V1<V2V_1<V_2 V1=V2V_1=V_2

例如:

设备A温度:70℃
设备B温度:80℃

机器计算:

70<8070<80

得到:

设备A温度低于设备B

属性比较不仅可以进行大小比较,还可以进行:

相等
不等
包含
属于
范围
接近
超过
低于
匹配
不匹配

例如:

V∈[0,100]V\in [0,100]

表示属性值是否处于规定范围。

如果:

V<MinV<Min

则:

低于下限

如果:

V>MaxV>Max

则:

超过上限

如果:

Min≤V≤MaxMin\leq V\leq Max

则:

处于正常范围

因此:

AttributeComparison=ValueComparison+RuleComparison+RangeComparison+RelationComparisonAttributeComparison = ValueComparison + RuleComparison + RangeComparison + RelationComparison

属性比较是属性认知进入规则判断、状态判断和能力匹配的重要计算基础。


69.8 属性计算

**属性计算(Attribute Calculation)**是机器根据一个或多个属性值、规则、公式、条件和历史数据计算新的属性值、属性状态或属性结果的过程。

基本形式:

Vnew=f(V1,V2,⋯ ,Vn)V_{new}=f(V_1,V_2,\cdots,V_n)

其中:

  • V1,…,VnV_1,\dots,V_n:输入属性值;
  • ff:计算规则;
  • VnewV_{new}:计算得到的新属性值。

例如:

长度 = 10m
宽度 = 5m

面积:

Area=Length×WidthArea=Length\times Width

因此:

Area=10×5=50m2Area=10\times5=50m^2

这里:

长度
+
宽度
↓
属性计算
↓
面积

面积并不是直接输入的数据,而是由已有属性计算得到的新属性。


69.9 多属性计算

现实对象通常不是由单一属性决定其状态,而是由多个属性共同参与计算。

例如设备运行状态:

S=f(Temperature,Pressure,Speed,Load)S=f(Temperature,Pressure,Speed,Load)

其中:

  • TemperatureTemperature:温度;
  • PressurePressure:压力;
  • SpeedSpeed:速度;
  • LoadLoad:负载;
  • SS:计算得到的设备状态。

例如:

温度:85℃
压力:正常
速度:正常
负载:95%

机器可以根据规则计算:

设备状态:高负载运行

因此:

多个属性→综合计算→对象状态多个属性 \rightarrow 综合计算 \rightarrow 对象状态

这说明属性认知不仅是数据读取,还具有结构化计算能力。


69.10 属性与对象状态

属性和状态存在直接关系,但二者不能混为一谈。

例如:

对象:
Device001

属性:
Temperature = 85℃

经过规则:

Temperature>80Temperature>80

得到:

状态:
Overheat

因此:

AttributeValue→Rule→AttributeState→ObjectStateAttributeValue \rightarrow Rule \rightarrow AttributeState \rightarrow ObjectState

可以进一步表示:

ObjectState=f(A1,A2,⋯ ,An,R)ObjectState=f(A_1,A_2,\cdots,A_n,R)

其中:

  • A1,…,AnA_1,\dots,A_n:对象属性;
  • RR:状态判断规则;
  • ObjectStateObjectState:对象状态。

因此:

属性≠状态属性\neq状态

但:

属性→状态属性\rightarrow状态

属性是状态计算的重要输入。


69.11 属性与对象关系

属性还可以参与对象之间的关系判断。

例如:

车辆A速度:80km/h
车辆B速度:60km/h

通过速度属性比较:

80>6080>60

可以进一步得到:

车辆A速度高于车辆B

又例如:

对象A位置:(100,100)
对象B位置:(103,104)

可以根据坐标属性计算距离:

d=(x2−x1)2+(y2−y1)2d=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}

其中:

  • dd:两个对象之间的距离;
  • x1,y1x_1,y_1:对象A坐标;
  • x2,y2x_2,y_2:对象B坐标。

如果:

d<Thresholdd<Threshold

则可以建立:

对象A
↓
邻近
↓
对象B

因此:

属性→属性计算→关系判断属性 \rightarrow 属性计算 \rightarrow 关系判断

属性不仅描述对象,还能够参与对象关系形成。


69.12 属性认知与知识

属性认知还需要与知识结构结合。

例如机器已有规则:

温度 > 80℃
→ 高温

当前对象属性:

Temperature = 85℃

机器进行属性匹配:

85>8085>80

得到:

TemperatureState=HighTemperatureState=High

因此:

CurrentAttribute+KnowledgeRule→AttributeConclusionCurrentAttribute + KnowledgeRule \rightarrow AttributeConclusion

知识提供规则,属性提供当前数据,计算过程产生认知结果。

因此:

属性认知≠知识属性认知\neq知识

但是:

属性认知+知识→属性判断属性认知+知识 \rightarrow 属性判断


69.13 属性认知的统一模型

属性认知可以统一表示为:

AC=f(O,A,V,S,Δ,C,K,H)AC= f(O,A,V,S,\Delta,C,K,H)

其中:

  • ACAC:属性认知结果;
  • OO:对象;
  • AA:属性;
  • VV:属性值;
  • SS:属性状态;
  • Δ\Delta:属性变化;
  • CC:属性比较;
  • KK:相关知识;
  • HH:属性历史。

基本过程:

Object→Attribute→Value→StateObject \rightarrow Attribute \rightarrow Value \rightarrow State

动态过程:

Valuet→Valuet+1→ChangeValue_t \rightarrow Value_{t+1} \rightarrow Change

比较过程:

Value1+Value2→ComparisonValue_1 + Value_2 \rightarrow Comparison

计算过程:

Value1+Value2+⋯+Valuen→CalculatedValueValue_1+Value_2+\cdots+Value_n \rightarrow CalculatedValue

最终:

属性→属性值→属性状态→属性变化→属性比较→属性计算\boxed{ 属性 \rightarrow 属性值 \rightarrow 属性状态 \rightarrow 属性变化 \rightarrow 属性比较 \rightarrow 属性计算 }


69.14 属性认知工程模型

在ICAI工程中,属性必须从理论结构转换为实际对象。

对应关系:

属性理论
↓
属性数据结构
↓
Attribute Domain Object
↓
Attribute Class
↓
AttributeEngine
↓
AttributeService
↓
AttributeRepository
↓
MySQL
↓
Runtime

属性领域对象可以设计为:

CognitiveAttribute
│
├── id
├── object_id
├── name
├── type
├── value
├── unit
├── source
├── state
├── time
└── history

69.15 PHP OOP属性模型

可以建立独立的属性领域类:

class CognitiveAttribute
{
    protected $id;
    protected $objectId;
    protected $name;
    protected $type;
    protected $value;
    protected $unit;
    protected $source;
    protected $state;
    protected $time;
    protected $history;

    public function setValue($value)
    {
        $this->value = $value;
    }

    public function getValue()
    {
        return $this->value;
    }

    public function compare($value)
    {
        if ($this->value > $value) {
            return 'greater';
        }

        if ($this->value < $value) {
            return 'less';
        }

        return 'equal';
    }

    public function calculate($operator, $value)
    {
        switch ($operator) {
            case '+':
                return $this->value + $value;

            case '-':
                return $this->value - $value;

            case '*':
                return $this->value * $value;

            case '/':
                return $value != 0
                    ? $this->value / $value
                    : null;
        }

        return null;
    }
}

这个类对应本章中的核心理论:

setValue()
↓
属性值

compare()
↓
属性比较

calculate()
↓
属性计算

69.16 AttributeEngine

属性认知Engine负责属性相关的结构化计算:

AttributeEngine=ValueEngine+StateEngine+ChangeEngine+CompareEngine+CalculateEngineAttributeEngine= ValueEngine + StateEngine + ChangeEngine + CompareEngine + CalculateEngine

运行过程:

对象
↓
读取属性
↓
获取属性值
↓
判断属性状态
↓
读取历史值
↓
计算属性变化
↓
属性比较
↓
属性计算
↓
形成属性认知结果

例如:

对象:
Device001

温度:
75℃

读取历史:
70℃

变化:
+5℃

规则:
>80℃ = 过热

当前状态:
正常

继续运行

当温度变成85℃:

85℃
↓
属性变化 +10℃
↓
属性比较 85>80
↓
属性状态 = 过热
↓
对象状态 = 过热

这就是属性认知进入对象状态认知的实际过程。


69.17 属性数据库模型

属性数据可以独立保存:

cognitive_object_attributes

建议结构:

id
object_id
attribute_name
attribute_type
attribute_value
attribute_unit
attribute_state
source
created_at
updated_at

属性变化可以保存:

cognitive_attribute_history

结构:

id
attribute_id
old_value
new_value
change_value
change_rate
change_time

这样机器可以同时保存:

当前属性当前属性

以及:

属性变化历史属性变化历史

从而形成:

CurrentValue+History\rightarrowAttributeChangeCurrentValue+History\rightarrowAttributeChange


69.18 属性认知Runtime

属性认知进入Runtime后,需要持续执行。

基本过程:

对象进入Runtime
↓
读取对象属性
↓
读取属性值
↓
检查属性类型
↓
检查属性单位
↓
计算属性状态
↓
读取历史属性
↓
计算属性变化
↓
进行属性比较
↓
执行属性计算
↓
形成属性认知结果
↓
更新对象状态
↓
进入关系与场景计算

因此:

ObjectRuntime→AttributeRuntime→StateRuntime→RelationRuntimeObjectRuntime \rightarrow AttributeRuntime \rightarrow StateRuntime \rightarrow RelationRuntime

属性认知是动态机器个体运行中的连续过程,而不是一次性的初始化操作。


69.19 属性认知案例

以一个智能无人飞机为例。

初始属性:

高度 = 100m
速度 = 20m/s
电量 = 80%
温度 = 35℃

经过运行:

高度 = 120m
速度 = 25m/s
电量 = 70%
温度 = 40℃

机器首先计算属性变化:

ΔHeight=120−100=20m\Delta Height=120-100=20m ΔSpeed=25−20=5m/s\Delta Speed=25-20=5m/s ΔBattery=70−80=−10%\Delta Battery=70-80=-10\% ΔTemperature=40−35=5℃\Delta Temperature=40-35=5℃

然后根据属性规则进行判断:

电量下降
温度上升
高度上升
速度上升

如果规则规定:

Battery<20%→LowPowerBattery<20\%\rightarrow LowPower

当前:

70%>20%70\%>20\%

因此:

电量状态:正常

如果后续:

Battery=15%Battery=15\%

则:

15<2015<20

得到:

电量状态:低电量

进一步:

低电量→风险判断→目标调整→方法选择→决策低电量 \rightarrow 风险判断 \rightarrow 目标调整 \rightarrow 方法选择 \rightarrow 决策

由此可以看到,属性认知并不是孤立的数据管理,而是直接参与机器个体后续的认知和行为。


69.20 属性认知与ICAI统一认知链

本章建立的属性认知处于对象认知之后、状态认知之前。

统一关系:

Object→Attribute→State→Relation→Scene→KnowledgeObject \rightarrow Attribute \rightarrow State \rightarrow Relation \rightarrow Scene \rightarrow Knowledge

属性进一步进入目标和行为体系:

Attribute→State→Need→Goal→Capability→Matching→Method→Decision→BehaviorAttribute \rightarrow State \rightarrow Need \rightarrow Goal \rightarrow Capability \rightarrow Matching \rightarrow Method \rightarrow Decision \rightarrow Behavior

因此,一个属性变化可能最终导致机器行为变化。

完整链条:

属性变化→状态变化→需求变化→目标变化→能力匹配变化→方法变化→决策变化→行为变化属性变化 \rightarrow 状态变化 \rightarrow 需求变化 \rightarrow 目标变化 \rightarrow 能力匹配变化 \rightarrow 方法变化 \rightarrow 决策变化 \rightarrow 行为变化

这构成属性认知的真正工程意义。


69.21 属性认知的核心原则

第一,属性从属于对象

Attribute⊂ObjectAttribute\subset Object

属性必须具有明确的所属对象。

第二,属性类型决定计算方式

Calculation=f(AttributeType)Calculation=f(AttributeType)

不同类型的属性不能使用完全相同的计算方式。

第三,属性值可以动态变化

Valuet→Valuet+1Value_t\rightarrow Value_{t+1}

第四,属性状态由规则计算形成

AttributeState=f(Value,Condition,Rule)AttributeState = f(Value,Condition,Rule)

第五,属性可以进行比较

V1  Compare  V2V_1\;Compare\;V_2

第六,属性可以产生新的属性

A1+A2+⋯+An→AnewA_1+A_2+\cdots+A_n \rightarrow A_{new}

第七,属性可以参与状态和关系计算

Attribute→StateAttribute \rightarrow State Attribute→RelationAttribute \rightarrow Relation

第八,属性变化必须可以被记录

History={V1,V2,⋯ ,Vn}History= \{V_1,V_2,\cdots,V_n\}

这样机器才能获得属性变化经验。


69.22 本章总结

属性认知是ICAI通用核心理论中连接对象与状态的重要理论。

本章明确:

对象回答“是什么”\boxed{ 对象回答“是什么” } 属性回答“具有什么特征”\boxed{ 属性回答“具有什么特征” }

属性进一步形成:

属性→属性类型→属性值→属性状态→属性变化→属性比较→属性计算\boxed{ 属性 \rightarrow 属性类型 \rightarrow 属性值 \rightarrow 属性状态 \rightarrow 属性变化 \rightarrow 属性比较 \rightarrow 属性计算 }

完整属性模型:

A={ObjectID,Name,Type,Value,Unit,State,Source,Time,History}\boxed{ A= \{ ObjectID, Name, Type, Value, Unit, State, Source, Time, History \} }

属性认知最终形成:

对象→属性→属性值→属性状态→属性变化→属性比较→属性计算→对象状态\boxed{ 对象 \rightarrow 属性 \rightarrow 属性值 \rightarrow 属性状态 \rightarrow 属性变化 \rightarrow 属性比较 \rightarrow 属性计算 \rightarrow 对象状态 }

从ICAI工程角度:

属性理论→属性对象→PHPClass→AttributeEngine→AttributeService→Repository→MySQL→Runtime\boxed{ 属性理论 \rightarrow 属性对象 \rightarrow PHP Class \rightarrow AttributeEngine \rightarrow AttributeService \rightarrow Repository \rightarrow MySQL \rightarrow Runtime }

由此,属性不再只是数据库中的一个字段,而成为ICAI机器个体进行认知、判断、状态计算、关系计算、目标形成、能力匹配和行为决策的重要计算元素。

最终形成:

Object+Attribute+State+Relation→CognitiveStructure\boxed{ Object + Attribute + State + Relation \rightarrow CognitiveStructure }

第68章建立了对象认知,本章建立了属性认知,二者共同构成ICAI机器个体对现实对象进行结构化认知的基础。下一层将进一步进入状态认知,研究对象和属性发生变化后,机器如何形成、识别、比较和计算对象状态。

Leave a Reply

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