第47章 Rule
Rule(规则)是 ICAI Reasoning 推理体系中的核心逻辑结构,用于规定在什么条件下,根据已有事实、对象、关系和状态执行什么逻辑行为,并得到什么结果。
第46章 Reasoning 解决的是:
“根据已知信息,可以推导出什么?”
第47章 Rule 进一步定义:
“什么条件成立时,系统应该按照什么规则进行处理?”
因此:
Facts
+
Objects
+
Relations
+
Conditions
↓
Rule
↓
Action
↓
Result
Rule 本身不是推理结果,而是推理所使用的逻辑结构。
1. Rule 定义
Rule 是由条件、行为、优先级、状态和结果定义组成的结构化逻辑单元。
最基本形式:
IF Condition
THEN Action
例如:
IF battery.level < 30
THEN charge
表示:
条件:
battery.level < 30
行为:
charge
更完整的规则:
Rule
{
Condition
Action
Priority
State
Result
}
因此:
Rule
=
Condition
+
Action
+
Priority
+
State
+
Result
Rule 的核心作用是把:
已知条件
转换为:
规定行为或逻辑结论
2. Rule Condition
Rule Condition(规则条件)是判断规则是否可以被触发的依据。
基本形式:
Condition
例如:
battery.level < 30
如果条件成立:
30 > 20
则:
Condition = TRUE
规则可以继续执行。
单条件
IF
battery.level < 30
THEN
battery.state = low
多条件
多个条件可以通过逻辑运算符组合:
AND
OR
NOT
例如:
IF
battery.level < 30
AND
device.state = active
THEN
device.state = needs_charge
其结构:
Condition_1
+
Condition_2
↓
AND
↓
Condition_Result
条件状态
Condition 不应该只有 TRUE / FALSE。
ICAI 可以使用:
TRUE
FALSE
UNKNOWN
CONFLICT
例如:
battery.level = 20
判断:
20 < 30
得到:
TRUE
如果系统不知道电池电量:
battery.level = UNKNOWN
则:
battery.level < 30
结果应该是:
UNKNOWN
而不是强行判断为 FALSE。
Condition 结构
可以定义:
RuleCondition
{
object
property
operator
value
}
例如:
{
"object": "Battery_A",
"property": "level",
"operator": "<",
"value": 30
}
表示:
Battery_A
↓
level
↓
< 30
3. Rule Action
Rule Action(规则行为)是条件成立后规则规定执行的逻辑行为。
基本结构:
IF Condition
THEN Action
例如:
IF
battery.level < 30
THEN
charge
这里:
Condition
↓
battery.level < 30
Action
↓
charge
Action 可以包括:
设置属性
改变状态
创建对象
建立关系
删除关系
记录事实
调用方法
触发其他规则
产生推理结果
例如:
改变状态
IF battery.level < 30
THEN battery.state = low
创建事实
IF order.state = completed
THEN create Fact(order_completed)
建立关系
IF Customer_A uses Service_A
THEN create Relation(Customer_A, has_history, Service_A)
触发方法
IF device.state = needs_charge
THEN device.charge()
因此 Action 不只是“执行外部动作”,也可以是 ICAI 内部认知结构的改变。
4. Rule Priority
Rule Priority(规则优先级)用于解决:
多个规则同时满足条件时,应该先处理哪个规则?
例如:
Rule_001
battery < 30
→ low
Rule_002
battery < 10
→ critical
Rule_003
battery < 5
→ emergency
如果:
battery = 4
那么三个规则都可能满足。
这时候需要 Priority:
Rule_003 → Priority 30
Rule_002 → Priority 20
Rule_001 → Priority 10
执行顺序:
Rule_003
↓
Rule_002
↓
Rule_001
Priority 的作用
Priority 可以解决:
多个规则同时满足
↓
规则排序
↓
优先处理重要规则
例如安全类规则:
Emergency
可以高于普通状态规则:
Normal
但 Priority 本身不是“智能程度”。
它只是:
规则冲突或同时触发时的处理顺序参数。
Priority 示例
Rule_A
priority = 10
Rule_B
priority = 50
Rule_C
priority = 30
排序:
Rule_B
↓
Rule_C
↓
Rule_A
也可以根据系统设计使用从低到高执行,但必须在规则管理中统一定义。
5. Rule State
Rule State(规则状态)表示规则自身当前是否可以使用。
规则状态与对象状态、Memory 状态不同。
例如:
Object State:
active
而:
Rule State:
enabled
表示完全不同的概念。
Rule 可以定义:
ACTIVE
INACTIVE
DISABLED
EXPIRED
INVALID
CONFLICT
TEST
ARCHIVED
其中常用状态:
ACTIVE
表示规则正常运行。
DISABLED
表示规则暂时禁止执行。
EXPIRED
表示规则已经超过有效时间。
INVALID
表示规则本身经过验证后被判定无效。
CONFLICT
表示规则与其他规则存在冲突。
例如:
Rule_A:
IF temperature > 30
THEN state = hot
如果规则有效:
Rule_A.state = ACTIVE
系统才能正常使用。
如果规则被停用:
Rule_A.state = DISABLED
即使条件满足:
temperature = 35
也不能执行该规则。
6. Rule Result
Rule Result(规则结果)是规则执行后产生的结果。
基本过程:
Condition
↓
Evaluate
↓
Rule Activated
↓
Action
↓
Result
例如:
Fact:
battery.level = 20
规则:
IF battery.level < 30
THEN battery.state = low
结果:
RuleResult
{
rule: "Rule_001",
condition: "true",
action: "set_state",
result: {
object: "Battery_A",
state: "low"
},
state: "success"
}
Rule Result 可以包括:
SUCCESS
FAILED
SKIPPED
UNKNOWN
CONFLICT
例如条件未知:
battery.level = UNKNOWN
则:
RuleResult.state = UNKNOWN
如果两个规则产生相互冲突的结果:
Rule_A
→ state = available
Rule_B
→ state = unavailable
则可以:
RuleResult.state = CONFLICT
然后交给后续的 Conflict Handling。
7. Rule 管理
Rule 管理负责规则的:
创建
读取
修改
启用
禁用
验证
排序
删除
归档
可以建立:
RuleManager
基本结构:
RuleManager
{
create()
read()
update()
enable()
disable()
validate()
prioritize()
execute()
archive()
}
Rule 创建
RuleManager
↓
create()
↓
Rule
例如:
Rule_001
{
condition:
battery.level < 30
action:
battery.state = low
priority:
10
state:
active
}
Rule 查询
可以按照:
id
object
property
condition
action
priority
state
查询。
例如:
state = ACTIVE
得到所有当前可用规则。
Rule 验证
新规则不能直接进入运行状态。
应该:
新 Rule
↓
结构检查
↓
Condition 检查
↓
Action 检查
↓
逻辑检查
↓
冲突检查
↓
验证结果
例如:
IF battery.level < 30
THEN battery.state = low
结构正确:
Condition ✓
Action ✓
Object ✓
Property ✓
Operator ✓
Value ✓
可以:
Rule.state = ACTIVE
Rule 冲突
例如:
Rule_A:
IF temperature > 30
THEN state = hot
同时:
Rule_B:
IF temperature > 30
THEN state = normal
相同条件:
temperature > 30
产生不同结果:
hot
normal
则:
Rule Conflict
系统不能简单随机选择。
应该进入:
Conflict Detection
↓
Rule Priority
↓
Condition Specificity
↓
Source / Validity
↓
Conflict Resolution
如果无法解决:
Result = CONFLICT
将冲突保留下来,而不是伪造一个确定结果。
8. Rule 示例
建立一个完整规则:
电池电量低于 30%,设备处于运行状态,则设备需要充电。
Rule 定义
Rule_001
Condition:
battery.level < 30
AND
device.state = active
Action:
device.state = needs_charge
Priority:
20
State:
ACTIVE
完整结构:
Rule_001
{
id: 1001,
conditions: [
{
object: "Battery_A",
property: "level",
operator: "<",
value: 30
},
{
object: "Device_A",
property: "state",
operator: "=",
value: "active"
}
],
operator: "AND",
action: {
object: "Device_A",
property: "state",
value: "needs_charge"
},
priority: 20,
state: "ACTIVE"
}
执行过程
已有 Facts:
Battery_A.level = 20
Device_A.state = active
Condition 1:
20 < 30
得到:
TRUE
Condition 2:
active = active
得到:
TRUE
组合:
TRUE AND TRUE
↓
TRUE
Rule 被激活:
Rule_001
↓
ACTIVE
↓
Action
执行:
Device_A.state = needs_charge
最终:
RuleResult
{
rule: "Rule_001",
condition: "TRUE",
action: "set_state",
result: "needs_charge",
state: "SUCCESS"
}
形成完整推理链:
Fact_001
Battery_A.level = 20
↓
Condition_001
level < 30
↓
TRUE
↓
Rule_001
↓
Condition_002
Device_A.state = active
↓
TRUE
↓
Action
Device_A.state = needs_charge
↓
RuleResult
SUCCESS
Rule 与 Reasoning 的关系
第46章 Reasoning 与第47章 Rule 必须保持明确分工:
Rule
=
规定逻辑
Reasoning
=
使用逻辑
也就是:
Facts
Objects
Relations
Experience
↓
Conditions
↓
Rules
↓
Reasoning
↓
Results
更准确地说:
Rule
↓
提供推理规则
Reasoning
↓
选择并应用规则
RuleResult
↓
产生规则执行结果
ReasoningResult
↓
形成完整推理结论
因此:
Rule ≠ Reasoning
Rule 是知识化、结构化的逻辑规则;
Reasoning 是利用这些规则进行推导的过程。
Rule核心模型
第47章可以最终归纳为:
Rule
│
├── Condition
│ ↓
│ 是否满足?
│
├── Action
│ ↓
│ 满足后做什么?
│
├── Priority
│ ↓
│ 多规则时谁优先?
│
├── State
│ ↓
│ 当前规则是否有效?
│
└── Result
↓
执行产生什么结果?
完整运行模型:
Facts
+
Objects
+
Relations
+
Current State
+
Experience
↓
Rule Conditions
↓
Condition Match
↓
Rule Priority
↓
Active Rule
↓
Action
↓
Result
↓
Reasoning Result
本章核心定义
Rule 是 ICAI 中用于描述条件、逻辑行为、优先级、规则状态和预期结果的结构化逻辑单元;当 Rule Condition 满足且 Rule 处于有效状态时,ICAI 可以按照 Rule Action 进行处理,并形成 Rule Result,供 Reasoning、Decision 和后续认知过程使用。
最终形成:
Condition
↓
Rule
↓
Action
↓
Result
而在 ICAI 的整体推理体系中:
Fact
+
Object
+
Relation
+
Experience
+
Rule
↓
Reasoning
↓
Conclusion
↓
Decision
这就把 **Rule(规则)**正式嵌入了第十三篇 Reasoning(推理) 的核心结构中。