第10章 知识结构
第8章重新定义了知识,第9章进一步建立了:
Object→Attribute→Condition→MethodObject \rightarrow Attribute \rightarrow Condition \rightarrow Method
但是,如果知识只被理解为单一的对象—属性—方法映射,仍然不足以描述现实世界。
现实中的知识同时包含:
- 对象是什么;
- 对象具有什么属性;
- 对象之间有什么关系;
- 对象当前处于什么状态;
- 在什么条件下可以采用什么方法。
因此,本章进一步建立完整的结构化知识结构(Structured Knowledge Structure)。
10.1 知识结构的定义
在 WSaiOS 理论中:
知识结构,是由对象知识、属性知识、关系知识、状态知识和方法知识,以及它们之间的结构关系和映射关系共同组成的可计算知识体系。
可以表示为:
K=(O,A,R,S,M,C,P)\boxed{ K=(O,A,R,S,M,C,P) }
其中:
- OO:Object Knowledge
- AA:Attribute Knowledge
- RR:Relation Knowledge
- SS:State Knowledge
- MM:Method Knowledge
- CC:Condition
- PP:Mapping
其中:
P(O,A,R,S,C)→MP(O,A,R,S,C)\rightarrow M
构成知识结构的核心映射。
因此:
Knowledge
│
┌──────────────┼──────────────┐
↓ ↓ ↓
Object Relation Method
│ │ │
↓ ↓ ↓
Attribute State Condition
│ │ │
└──────────────┼──────────────┘
↓
Mapping
10.2 对象知识
**对象知识(Object Knowledge)**描述一个对象是什么,以及它具有什么身份、类别、组成和边界。
例如:
Object:
Robot01
Type:
IndustrialRobot
Class:
Robot
Components:
Arm
Gripper
Controller
Sensor
对象知识回答:
“它是什么?”
其基本结构可以表示为:
KO=(I,Class,Type,Composition,Boundary)K_O=(I,Class,Type,Composition,Boundary)
其中:
- II:Identity
- ClassClass:类别
- TypeType:类型
- CompositionComposition:组成
- BoundaryBoundary:边界
例如:
Robot01∈RobotRobot01\in Robot
说明 Robot01 是 Robot 类的一个实例。
对象知识并不等于对象本身。
对象是现实实体:
Robot01
对象知识则是系统关于这个对象类别、身份和结构的知识:
Robot
├── Type
├── Components
├── Properties
└── Capabilities
因此:
Object≠ObjectKnowledgeObject\neq ObjectKnowledge
对象是现实中的实体;
对象知识是对该实体结构的机器化表示。
10.3 属性知识
**属性知识(Attribute Knowledge)**描述对象具有什么特征,以及这些特征具有什么可能取值、单位、范围和约束。
例如:
Object:
Battery
Attributes:
Capacity
Voltage
Temperature
Charge
属性知识可以表示:
KA=(Object,Attribute,Type,Range,Unit,Constraint)K_A=(Object,Attribute,Type,Range,Unit,Constraint)
例如:
Battery.Capacity∈[0,100]%Battery.Capacity\in[0,100]\%
属性知识的重要作用是把:
Object
进一步展开为:
Object
│
├── Attribute A
├── Attribute B
├── Attribute C
└── Attribute D
属性知识可以是:
静态属性
例如:
Material = Steel
Color = Black
动态属性
例如:
Temperature = 80°C
Speed = 20km/h
Battery = 60%
因此:
A=A(t)A=A(t)
属性知识不仅描述属性名称,还描述:
这个属性是什么、如何取值、如何变化以及如何参与计算。
10.4 关系知识
对象之间并不是孤立存在的。
**关系知识(Relation Knowledge)**描述对象之间可能存在的结构联系。
例如:
Robot01
│
├── Controls → Arm01
├── Near → Box01
├── Uses → Gripper01
└── LocatedIn → Factory01
可以定义:
KR=(Type,Entity,Direction,Condition,Constraint)K_R=(Type,Entity,Direction,Condition,Constraint)
例如:
Near(Robot01,Box01)Near(Robot01,Box01)
或者:
Controls(Robot01,Arm01)Controls(Robot01,Arm01)
关系知识的重要意义在于:
它描述的不是对象本身,而是对象之间的结构。
因此:
Object Knowledge
↓
“是什么”
Relation Knowledge
↓
“与什么存在什么关系”
关系知识还可以具有:
- 方向性
- 对称性
- 传递性
- 条件性
- 时间性
- 动态性
例如:
Near(A,B,t)Near(A,B,t)
可能在下一时刻变成:
Far(A,B,t+1)Far(A,B,t+1)
因此关系本身也是知识结构中的动态组成部分。
10.5 状态知识
**状态知识(State Knowledge)**描述对象、关系或场景在特定条件和时间下可能处于什么状态,以及状态如何变化。
例如:
Battery
Charge = 15%
State:
Low
状态知识进一步告诉系统:
Charge < 20%
↓
Battery State = Low
因此:
State=F(Attribute,Value,Context,Constraint)State=F(Attribute,Value,Context,Constraint)
状态知识可以表示:
KS=(StateVariable,Condition,Transition,Time)K_S=(StateVariable,Condition,Transition,Time)
例如:
Battery
│
Charge < 20%
↓
Low
↓
RechargeRequired
状态知识还包括状态转移:
St→EventSt+1S_t \xrightarrow{Event} S_{t+1}
例如:
Low→RechargeNormalLow \xrightarrow{Recharge} Normal
因此状态知识不仅回答:
“当前是什么状态?”
还回答:
“什么条件形成这个状态,以及状态可以如何变化?”
10.6 方法知识
前面的对象、属性、关系和状态知识最终需要进入可处理结构。
这就形成:
方法知识(Method Knowledge)。
方法知识描述:
针对某类对象、属性、关系或状态,在特定条件下可以采用什么方法,以及该方法需要什么输入、产生什么输出。
可以定义:
KM=(Method,Input,Condition,Process,Output)K_M=(Method,Input,Condition,Process,Output)
例如:
Method:
RechargeBattery
Input:
Battery
Charger
Power
Condition:
BatteryState = Low
ChargerAvailable = True
Output:
BatteryState = Charging
方法知识因此包含:
Method
├── Applicable Object
├── Required Attributes
├── Required State
├── Required Relations
├── Conditions
├── Inputs
├── Process
└── Outputs
方法知识与普通程序代码不同。
代码通常描述:
如何执行。
而方法知识同时描述:
什么时候可以执行、对什么执行、需要什么输入、执行后会产生什么结构变化。
10.7 五类知识的关系
至此,可以建立完整结构:
Knowledge
│
┌────────────┼────────────┐
↓ ↓ ↓
Object Knowledge Relation Knowledge
│ │
↓ ↓
Attribute Knowledge
│
↓
State Knowledge
│
↓
Condition
│
↓
Method Knowledge
但它们并不是严格的单向层级。
实际上,它们之间存在双向关系:
Object↔AttributeObject\leftrightarrow Attribute Object↔RelationObject\leftrightarrow Relation Attribute↔StateAttribute\leftrightarrow State Relation↔StateRelation\leftrightarrow State State↔MethodState\leftrightarrow Method
最终:
Object+Attribute+Relation+State→Method\boxed{ Object+Attribute+Relation+State \rightarrow Method }
10.8 五类知识不是五个数据库表
这里需要特别强调:
对象知识、属性知识、关系知识、状态知识和方法知识,不应该被理解成五种彼此独立的数据。
它们共同构成一个知识结构。
例如:
Object:
Glass01
对象知识:
Class = Glass
属性知识:
Fragility = High
Temperature = 80°C
关系知识:
On(Glass01,Table01)
状态知识:
Hot = True
Fragile = True
方法知识:
HandleCarefully
它们共同形成:
Glass01
│
├── Class → Glass
├── Fragility → High
├── Temperature → 80°C
├── On → Table01
├── State → Hot + Fragile
└── Method → HandleCarefully
这才是完整知识。
10.9 知识结构中的条件
条件是连接状态与方法的重要中间层。
例如:
Temperature > 60°C
+
Fragility = High
形成:
Condition = CarefulHandlingRequired
然后:
Condition
↓
Method
因此:
Condition=F(Attribute,State,Relation,Context)Condition=F(Attribute,State,Relation,Context)
方法适用:
Applicable(M)=F(Condition)Applicable(M)=F(Condition)
所以完整结构应该是:
Object+Attribute+Relation+State→Condition→Method\boxed{ Object + Attribute + Relation + State \rightarrow Condition \rightarrow Method }
10.10 知识结构中的映射
第9章提出 Mapping。
本章进一步明确:
Mapping 不是知识结构中的一个普通字段,而是连接各类知识的结构机制。
例如:
Object
↓
Attribute
↓
State
↓
Condition
↓
Method
同时:
Object
↓
Relation
↓
Scene Condition
↓
Method
因此,一个完整知识结构可能存在大量映射:
POA:Object→AttributeP_{OA}:Object\rightarrow Attribute POR:Object→RelationP_{OR}:Object\rightarrow Relation PAS:Attribute→StateP_{AS}:Attribute\rightarrow State PRS:Relation→StateP_{RS}:Relation\rightarrow State PSM:State→MethodP_{SM}:State\rightarrow Method
最终:
P:(O,A,R,S,C)→M\boxed{ P: (O,A,R,S,C) \rightarrow M }
10.11 知识结构的实例化
知识结构还存在一个重要区别:
知识模板与知识实例。
例如通用知识:
Object Class:
Glass
Attribute:
Fragility
State:
Hot
Method:
HandleCarefully
实际现实中:
Glass01
Glass02
Glass03
都可以实例化。
例如:
Glass01
Fragility = High
Temperature = 80°C
于是:
KnowledgeTemplate→KnowledgeInstanceKnowledgeTemplate \rightarrow KnowledgeInstance
这与第9章的方法参数化直接连接。
10.12 知识结构的动态性
知识结构本身也不是永恒不变的。
现实变化:
Scenet→Scenet+1Scene_t\rightarrow Scene_{t+1}
可能产生:
Statet→Statet+1State_t\rightarrow State_{t+1}
进一步产生:
Experience→KnowledgeUpdateExperience \rightarrow KnowledgeUpdate
因此:
Reality
↓
Scene
↓
State
↓
Method
↓
Result
↓
Experience
↓
Knowledge Update
最终:
Kt+1=F(Kt,Experience)K_{t+1}=F(K_t,Experience)
这为后面的:
- 知识实例
- 知识计算
- 知识动态性
- 经验
- 学习
建立基础。
10.13 结构化知识统一模型
综合本章,可以建立 WSaiOS 的第一版知识结构模型:
STRUCTURED KNOWLEDGE
│
┌───────────────────────┼───────────────────────┐
↓ ↓ ↓
Object Knowledge Relation Knowledge Method Knowledge
│ │ │
↓ ↓ ↓
Attribute Knowledge Relation State Input / Output
│ │ │
└───────────────┬───────┘ │
↓ │
State Knowledge │
│ │
↓ │
Condition │
│ │
└──────────→ Mapping ───────────┘
可以进一步压缩成:
K=(O,A,R,S,C,M,P)\boxed{ K= (O,A,R,S,C,M,P) }
其运行关系:
O+A+R→S→C→M\boxed{ O+A+R \rightarrow S \rightarrow C \rightarrow M }
其动态关系:
Kt→Cognitiont→Actiont→Experiencet→Kt+1\boxed{ K_t \rightarrow Cognition_t \rightarrow Action_t \rightarrow Experience_t \rightarrow K_{t+1} }
10.14 知识结构与结构化智能
到这里,知识已经不再是传统意义上的静态“知识库”。
在 WSaiOS 理论中,知识结构同时承担几个作用:
知识结构
│
├── 描述现实
├── 表示对象
├── 表示属性
├── 表示关系
├── 表示状态
├── 判断条件
├── 映射方法
├── 支持计算
├── 支持能力匹配
└── 支持认知与行为
因此:
结构化知识是连接现实结构与智能行为的中间结构。
形成:
Reality→Scene→Knowledge→Capability→Cognition→Method→Behavior→ActionReality \rightarrow Scene \rightarrow Knowledge \rightarrow Capability \rightarrow Cognition \rightarrow Method \rightarrow Behavior \rightarrow Action
知识因此不再是智能系统中的静态存储区域,而成为智能运行的结构基础。
10.15 本章核心结论
本章建立五个基本命题:
第一,对象知识描述“是什么”;属性知识描述“具有什么”;关系知识描述“与什么关联”;状态知识描述“当前处于什么情况”;方法知识描述“在什么条件下可以如何处理”。
第二,五类知识不是彼此独立的信息集合,而是通过结构关系和映射关系形成统一知识结构。
第三,Condition 是连接状态与方法的重要中间结构。
第四,Mapping 是知识结构中连接对象、属性、关系、状态与方法的核心机制。
第五,结构化知识不仅能够描述现实,而且能够参与计算、方法匹配和能力实例化。
最终形成:
StructuredKnowledge=Object+Attribute+Relation+State+Condition+Method+Mapping\boxed{ StructuredKnowledge = Object + Attribute + Relation + State + Condition + Method + Mapping }
以及:
Object
↓
Attribute
↓
Relation
↓
State
↓
Condition
↓
Method
↓
Capability
↓
Cognition
至此,第二篇“结构化知识理论”已经从第8章的知识重新定义,经过第9章的对象—属性—方法映射,进入第10章的完整知识结构。
下一章 第11章 知识实例 将进一步解决一个非常关键的问题:
通用知识结构如何对应现实中的具体对象、具体属性、具体状态和具体方法?
即从:
Knowledge StructureKnowledge\ Structure
进一步进入:
Knowledge Template→Knowledge Instance\boxed{ Knowledge\ Template \rightarrow Knowledge\ Instance }