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

第47章 Rule

第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(推理) 的核心结构中。

Leave a Reply

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