本体推理的局限:

    主要实现了基于本体概念描述的推理,无法支持规则性知识的推理。

    用户无法定义自己的推理过程。

引入规则推理:

    可以根据特定的场景定制规则,以实现用户自定义的推理过程。

    Datalog语言可以结合本体推理和规则推理。

    Datalog是面向知识库和数据库设计的逻辑语言,表达能力与OWL相当,支持递归,同时用于撰写规则,实现规则推理。

Datalog基本语法:

    组成:

        原子(Atom):p(t1,t2,...tn),其中p是谓词,n是目数,ti是项(变量或者常量),如has_child(X,Y)

        规则(Rule):H:-B1,B2...Bm;由原子构成,其中H是头部原子, B1,B2...Bm是体部原子,如has_child(X,Y):-has_son(X,Y)

        事实(Fact):F(c1,c2,c3….cn):-    没有体部且没有变量的规则,如:has_child(Alice,Bob):-

    Datalog程序是规则的集合:

        程序:has_child(X,Y):-has_son(X,Y).

                 has_child(Alice,Bob):-

Datalog推理过程样例:

    规则集:

        1path(x,y):-edge(x,y).

        2path(x,y):-path(x,z),path(z,y).

    事实集:

        1edge(a,b).

        2edge(b,c).

    结果:

        通过1可以得到path(a,b)即ab有path

        通过2可以得到path(b,c)即bc有path

        通过结果1,2得到path(a,c).即ac有边

支持Datalog推理工具举例:

    KAON2(Java)、RDFox(Python)

基于产生式规则的推理:

    产生式规则推理最早出现在专家系统中。

   

    产生式系统:

        一种前向推理系统,可以按照一定机制执行规则从而达到某些目标,与一阶逻辑类似,也有区别。应用方向:自动规划、专家系统。

    产生式系统的组成:

        事实集合;产生式/规则集合;推理引擎

    事实集/运行内存(Working Memory,WM):事实的集合,用于存储当前系统中所有的事实。

    事实(Working Memory Element,WME):

        描述对象:形如(type attr1:val1 attr2:val2...attrn:valn)其中type,attr,val均为原子(常量),如student name:Alice age:24

        描述关系(Refication):如(basicFact relation:olderThan firstArg:John secondArg:Alice)

简称(olderThan John Alice)

   

    产生式集合(Production Memory,PM):

        产生式规则的集合

    产生式:IF conditions THEN actions,其中,conditions是条件组成的集合,称为LHS;actions是由动作组成的序列,称为RHS

    LHS:

        条件的集合,各个条件之间是且的关系。当LHS所有条件均被满足则该规则触发。

每个条件形如(type attr1:spec1 att2:sppec2...attrn:specn),其中spec表示对attr的约束,形式可以采用以下中的一种:

            原子:如Alice(Person name:Alice);

            变量,如x(斜体的)(person name:x);

            表达式:如n+4 (person age:[n+4])

            布尔测试:如{>10} (person age:{>10});

            约束的与或非操作。

    RHS:

        动作的序列,执行时依次执行,动作的种类如下:

            ADD pattern:向WM中加入形如pattern的WME

            REMOVE i:从WM中移除当前规则第i个条件匹配的WME。

            MODIFY i(attr spec):对于当前规则第i个条件匹配的WME将其对应于attr属性的值改为spec。

产生式系统举例:

    IF(Student name:x)

    Then ADD(Person name:x)

    也可以写成(Student name:x)=>ADD(person name :x)如果有一个学生名为x那么向事实集中加入一个事实,表示有一个名为x的人。

产生式系统的组成:

    产生式系统=事实集+产生式集合+推理引擎

   

    推理引擎:控制系统的执行:

        1.模式匹配:用规则的条件部分匹配事实集中的事实,整个LHS都被满足的规则被处罚,并加入议程(agenda)。

        2.解决冲突:按照一定的策略从被触发的多条规则中选择一条。

        3.执行动作:执行被选择出来的规则的RHS,从而对WM进行一定的操作。

产生式规则中常用的算法:

    RETE算法

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐