一种基于访问控制权限的ASP知识库增量式验证方法与流程

文档序号:12748546阅读:388来源:国知局
一种基于访问控制权限的ASP知识库增量式验证方法与流程

本发明涉及模型检测领域,特别是涉及软件系统的性质验证和逻辑程序的应用技术,具体为一种基于访问控制权限的ASP知识库增量式验证方法。



背景技术:

知识库(KB)是一种特殊数据库,其用于知识的管理,以为用户提供知识服务为目的。根据推论关系是否为单调递增,可将知识库划分为单调知识库与非单调知识库。单调知识库的推论随着知识的增长而增长。非单调知识库则不同,向知识库中加入新的知识后,原有的推论可能会被推翻,即非单调知识库的推论不随着知识的增长而增长。

非单调知识库能够胜任缺省推理、溯因推理等各种任务,因而已被广泛地应用于人工智能等领域。目前对于非单调知识库研究的重点主要集中在非单调知识库的管理、维护、验证等方面。在非单调知识库的验证方面,主要受到关注的是知识库的正确性、完整性和一致性的验证,其主要采用的方法有分布式验证与基于决策表的验证等。

增量式验证方法是通过将性质验证限定在系统结构发生改变的部分,或者限定在未验证及需要重新验证的性质部分,从而避免对系统或性质的整体进行验证,以此来提高验证效率。从公开发表的文献来看,在软件验证方面已有大量采用增量式验证方法的研究。例如,Y.Papakonstantic等人通过使用B-树的变体作为辅助存储结构,提出了一种基于分治策略的增量式验证方法,完成了对XML文档的增量式验证;JI.Shunhui等人利用可扩展控制流图的形式化模型,提出了一种基于BPEL演变的增量式验证方法,完成了对Web服务软件的增量式验证;J.Julliand等人通过对组件的集成,提出了一种基于时间自动机的增量式验证方法,完成了对时间系统的增量式验证。上述增量式验证的一个共同特点是仅考虑将系统验证限定在系统结构发生改变的部分,而未对仅验证部分性质的增量式验证进行研究。

目前逻辑程序LP(Logic.Programming)是主流的设计语言,ASP(Answer Set Programming)是逻辑程序的回答集编程中的一种。ASP可以方便地用于非单调知识库的表示和推理,具有很强的声明性,已被应用于工业生产中非单调知识库的构造。选择利用ASP构建系统知识库具有以下优势:首先,ASP 使用方便且具有强大的模型表达能力;其次,ASP具有众多高效的ASP回答集求解器如DLV、Smodels等,这些求解器具有较强的推理能力,能够胜任对知识库推理的需求。以ASP为知识表示语言的知识库被称作ASP知识库。

在ASP知识库的性质验证方面,Heljanko等人通过PETRI网的有界模型检测技术,给出了一种把PETRI网描述的系统模型和待验证的LTL公式转化为ASP规则,并在此基础上进行系统性质验证的方法。对基于ASP的CSP并发系统验证的问题也已有研究,即将CSP并发进程转化为ASP程序,相当于把CSP系统转化为ASP知识库,从而通过ASP知识库的推理来实现CSP并发系统性质验证。

但ASP知识库的增量式验证问题尚未解决。为了避免对系统中已验证性质不必要的重新验证,提高性质验证的效率,需要设计一种新的ASP知识库增量式验证方法,其用于非单调知识库中,仅需要对部分系统性质进行增量式验证。



技术实现要素:

本发明的目的是提出一种基于访问控制权限的ASP知识库增量式验证方法,以避免对知识库中已验证性质进行不必要的重新验证,提高知识库性质验证效率。

本发明提出一种基于访问控制权限的ASP知识库增量式验证方法,所述ASP知识库为P,其具有性质f和f1,f为已验证性质,f1为待验证性质,f2是f1中的未验证性质。本发明为对待验证性质f1的增量式验证方法,首先将访问控制权限引入知识库P中,然后在访问控制权限基础上分析f与f2之间的关系,若f的性质规则权限集与f2的性质规则权限集的交集为空,则f1不成立,反之,将性质f1的验证转化为对f2的验证,利用f中得出的信息简化对f2的验证,最终完成待验证性质f1的增量式验证。

本发明的基于访问控制权限的ASP知识库增量式验证方法包括以下三个步骤:

步骤1、构造基于访问控制权限的ASP知识库模型

向ASP知识库中的规则加入访问控制权限,实现对ASP知识库的构建。

步骤2、排除知识库P中不成立的待验证性质f1

根据权限依赖关系获得f的性质规则权限集M和f1中未验证性质f2的 性质规则权限集N,判断集合M与N的关系,排除f1不成立的情况。

步骤3、利用已验证性质f中的信息简化验证待验证性质f2

在f1无法排除不成立的情况下,通过对f2的验证来判定f1是否成立,若f2成立,则f1成立;反之则f1不成立。

所述步骤1中,基于访问控制权限的ASP知识库模型需要的访问控制权限包含谓词访问控制权限、CWA访问控制权限与规则访问控制权限。

谓词访问控制权限:知识库P中的任意谓词p对应谓词访问控制权限,记作access(p),如果拥有权限access(p),即有权访问所有定义该谓词的规则。知识库P中所有的谓词权限的集合记作Ap。对于性质f:-Pos(f)∪not(Neg(f)),将Pos(f)中的任意谓词对应的谓词权限集记作且

CWA访问控制权限:知识库P中任意形的文字l,如“not l”,对应CWA访问控制权限,记为CWA(l)。知识库P中所有CWA权限的集合合记作Ac。对于性质f:-Pos(f)∪not(Neg(f)),则Neg(f)中的任意文字对应的CWA权限集记作且

规则访问控制权限:知识库P中的任意规则r对应规则访问控制权限,记作access(r)。如果拥有规则权限access(r),即有权访问该规则头和规则体中出现的所有谓词权限,并拥有该规则体中负文字对应的CWA权限。知识库P中所有规则权限的集合记作Ar

已知ASP知识库P=(EDB,NDB,CDB),通过向P中加入谓词权限和规则权限后得到的新的知识库P’=(EDB,NDB,CDB)。

所述步骤1基于访问控制权限ASP知识库模型的具体构建步骤如下:

步骤11、初始化EDBNDB为空。

步骤12、对于EDB中的任意谓词事实“p”,EDB:=EDB∪{p:=access(p)}。

步骤13、对于NDB中的每一个任意规则,

NDB:=NDB∪{head(r):-access(r),Pos(r)}。

所述步骤2具体步骤如下:

步骤21、判断已验证性质f是待验证性质f1的子公式。若判断不成立,则直接验证f1;若判断成立,则进行以下步骤;

步骤22、通过已有的Justification技术得到f的性质规则权限集M;

根据步骤1构建的基于访问控制权限ASP知识库模型获得知识库P中的权限依赖关系。

在ASP知识库P中,L1→L2表达权限依赖关系,其中L1∈Ap∪Ac,L2∈Ar,此式表示仅当拥有L1权限时,才可能拥有L2权限。

若l是知识库P中的任意谓词,r,r’∈P,谓词p∈Pos(r),则以下依赖关系成立:

221、对任意l∈Pos(r)且access(r)∈SP,access(l)→access(r);

表示对于任意一条规则r,当拥有访问规则体中任意正文字的权限时,才有可能拥有访问r的规则权限;

222、对任意l∈Neg(r)且access(r)∈SP,CWA(l)→access(r);

表示当某一规则包含负文字not l时,仅当拥有与l对应的CWA权限,才有可能拥有访问r的规则权限;

223、对任意l∈H(r),access(r)∈SP且access(p)→access(r’),则access(l)→access(r),其中access(r)包含access(r’)∪access(r)

表示对于任意一条规则r,当拥有访问r规则头部权限时,才有可能拥有访问r的规则权限和访问r的体部正文字对应的规则权限。

为了更加方便地获得谓词权限对应的规则权限,上述权限依赖关系通过依赖关系图的概念直观表示。

已知知识库P=(EDB,NDB,CDB),SP是权限集,P中的依赖关系集合R表示为权限依赖关系图(V,E),其中V,E满足:

V=SP,并且,如果L1→L2∈R,则<L1,L2>∈E。

在知识库P中,由依赖关系图获得P中的任意谓词权限对应的谓词规则权限集。

在知识库P中,SP是权限集,(SP,E)是P的权限依赖关系图,对于任意谓词权限L1对应的谓词规则权限集γ(L1)表示为:

γ(L1)={L2|L1∈Ap∪Ac∧<L1,L2>∈E}

根据谓词规则权限集确定性质所拥有的性质规则权限集。已知知识库P和待验证性质f1,{r1,…,rn}是支撑规则集,则对应的规则权限{access(r1),…,access(rn)}称为性质规则权限集,记作

在知识库P中,性质fm的性质规则权限集的获得途径是:已知知识库P与待验证性质fm:-Pos(f)∪not(Neg(f)),对于任意权限i≥1,Li对应的谓词规则权限集是γ(Li),则fm的性质规则权限集

步骤23、获得待验证性质f1中未验证性质f2的性质规则权限集N。

步骤24、判断若判断成立,则f1一定不成立,反之,则进行以下步骤。

所述步骤3已知知识库P和已验证性质f与待验证性质f1,对f1的验证转化为对未验证性质f2的验证,由于f在f1中成立,利用f中得出的信息简化验证f2。具体步骤如下:

步骤31、获得已验证性质f成立时变量的取值I;

为了获得f成立时变量的实例集,在验证f的过程中将f写成带变量的形式f(X,..,Y),通过ASP回答集的DLV求解器得出满足f成立时变量的取值I,即I={(X,…,Y)|(X,…,Y)是f(X,…,Y)中对应变量的实例}。

步骤32、对未验证性质f2实例化;

根据f成立时变量的取值I,将f2实例化,其中,f2中变量的取值(X,..,Y)∈I。

步骤33、获得变量(X,…,Y)∈I的谓词实例集IV;

对知识库进行实例化,直接存储满足变量(X,…,Y)∈I的谓词实例集IV。

直接存储实例集IV将带来的存储空间浪费。为了避免存储空间过大,本发明采用了标记索引的方法,通过标记函数(labeling)标记谓词变量中变量(X,…,Y)∈I的实例集,然后通过索引函数(indexing)返回对应的标记函数中的实例,有效降低存储空间。其中标记函数(labeling)与索引函数(indexing)的定义如下:

标记函数的定义为:已知有限集合B其中ni∈B,满足ni→2D。即标记函数是ni标记以D的一个子集。

索引函数的定义为:已知有限集合A,其中ai∈A,通过ai返回指定的单元格式或单元格数组的数值。

标记索引步骤如下:

步骤331、初始化集合E为空;

步骤332、通过求解器得出f成立时变量的取值I,I={(X,..,Y)|(X,…,Y)是f(X,…,Y)中对应变量的实例}。遍历搜索知识库P中的所有实例,若实例pi中变量的取值i∈I,则标记此实例且在IV中记录pi的索引ai∈YES,表示pi是需要标记的实例;反之ai∈NO,表示pi是不需要标记的实例。

步骤333、将每个实例pi对应的索引ai∈YES记录到M中。

根据标记索引的输出集合M,可以快速获得实例集IV,避免了对IV的直接存储,降低了存储空间。

步骤34、验证待验证性质f1中的未验证性质f2。

将f2的实例化验证限定在IV中,验证f2是否成立。若f2成立,则f1成立;若f2不成立,则f1不成立。

与现有技术相比,本发明一种基于访问控制权限的ASP知识库增量式验证方法的优点为:1、通过设置访问控制权限避免了对已验证性质不必要的重新验证,仅需对部分ASP知识库P进行增量式性质验证,缓解性质验证中的状态爆炸问题,有效地提高了性质验证效率;2、可以一次性验证多条性质,避免多次运行验证工具造成的大量上下文切换的开销。

附图说明

图1本基于访问控制权限的ASP知识库增量式验证方法实施例流程图。

图2本基于访问控制权限的ASP知识库增量式验证方法实施例依赖关系图。

具体实施方式

本基于访问控制权限的ASP知识库增量式验证方法实施例,本实施例已知知识库P,P包含了六个谓词:master(X):X是硕士生;doctor(X):X是博士生;praised(X,Y):X被Y表扬了;punished(X,Y):X被Y惩罚了;P(X,N):表示X获得了N元奖金。其中,事实有doctor(dong)、doctor(zhang)、doctor(zhao)、doctor(li)、doctor(wang)、master(yang)、punished(dong,yang)、punished(yang,zhang)、praised(zhao,yang)、praised(yang,li)。规则有:

r1≡p(X,800):-doctor(X),master(Y),punished(X,Y).

r2≡p(X,700):-doctor(X),master(Y),punished(Y,X).

r3≡p(X,900):-doctor(X),master(Y),praised(X,Y).

r4≡p(X,1000):-doctor(X),master(Y),praised(Y,X).

r5≡p(X,900):-doctor(X),master(Y),not punished(X,Y),not praised(X,Y),not punished(Y,X),not praised(Y,X).

r6≡:-doctor(X),master(X).

已验证的性质是f:-p(X,900),doctor(X),master(Y).

待验证的性质是f11:-p(X,900),doctor(X),master(Y),punished(X,Y).

f12:-p(X,900),doctor(X),master(Y),praised(X,Y).

本基于访问控制权限的ASP知识库增量式验证方法实施例,对上述知识库P的待验证性质f11或f12进行增量式验证,本方法流程图如图1所示,具体步骤如下:

步骤1、构建基于访问控制权限的ASP知识库

步骤11、初始化EDBNDB为空。

步骤12、对于该例中的谓词事实添加访问控制权限,

EDB集合={doctor(dong):-access(doctor),doctor(zhang):-access(doctor),doctor(zhao):-access(doctor),doctor(li):-access(doctor),doctor(wang):-access(doctor),master(yang):-access(master),punished(dong,yang):-access(punished),punished(yang,zhang):-access(punished),praised(zhao,yang):-access(praised),praised(yang,li):-access(praised)}。

步骤13、对于NDB中的每一个任意规则,则

NDB集合={p(X,800):-access(r1),doctor(X),master(Y),punished(X,Y).p(X,700):-access(r2),doctor(X),master(Y),punished(Y,X).p(X,900):-access(r3),doctor(X),master(Y),praised(X,Y).p(X,1000):-access(r4),doctor(X),master(Y),praised(Y,X).p(X,900):-access(r5),doctor(X),master(Y),not punished(X,Y),not praised(X,Y),not punished(Y,X),not praised(Y,X).}

步骤2:排除本例知识库P中不成立的待验证性质f11、f12

步骤21判断本例已验证性质f是待验证性质f1的子公式,进行以下步骤;

步骤22、通过已有的Justification技术得到已验证性质f的性质规则权限集M

M={access(r3),access(r5)}。

步骤221、对任意l∈Pos(r)且access(r)∈SP,access(l)→access(r);

本例中存在如下依赖关系:

{access(doctor)→access(r1).access(master)→access(r1).access(punished)→access(r1).access(doctor)→access(r2).access(master)→access(r2).access(punished)→access(r2).access(doctor)→access(r3).access(master)→access(r3).access(praised)→access(r3).access(doctor)→access(r4).access(master)→access(r4).access(praised)→access(r4).access(doctor)→access(r5).access(master)→access(r5).}

步骤222、对任意l∈Neg(r)且access(r)∈SP,CWA(l)→access(r);

本例中存在如下依赖关系:

{CWA(punished)→access(r5).CWA(praised)→access(r5).}

步骤223、对任意l∈H(r),access(r)∈SP且access(p)→access(r’),则access(l)→access(r),其中access(r)包含access(r’)∪access(r);

本例存在如下依赖关系:

{access(p)→access(r1).access(p)→access(r2).access(p)→access(r3).access(p)→access(r4).access(p)→access(r5).}

根据上述依赖关系可得出本例的具体依赖关系图,如图2所示。

步骤23、获得待验证性质f1中未验证性质f2的性质规则权限集N。

本例中待验证性质f11中未验证性质的性质规则权限集是N1={access(r1),access(r2)},待验证性质f12中未验证性质的性质规则权限集是N2={access(r3),access(r4)}。

步骤24、判断是否成立

对于待验证性质f11,因此,f11不成立。

对于待验证性质f12,f12需要进一步验证。

步骤3、利用已验证性质中的信息简化验证本例的待验证性质f12。

步骤31、获得已验证性质f成立时变量的取值I

本例中已验证性质成立时变量(X,Y)的取值是(zhao,yang)或是(wang,yang)。

步骤32、未验证性质f2实例化

用步骤31中(X,Y)的取值实例化未验证性质f2,得f2:-praised(zhao,yang).f2:-prised(wang,yang).

步骤33、获得变量(X,…,Y)∈I的谓词实例集IV

本例的谓词实例集IV={doctor(zhao),doctor(wang),doctor(yang),praised(zhao,yang),p(zhao,900),p(wang,900)}。

步骤34、验证待验证性质f12中的未验证性质f2

在IV中验证未验证性质f2。通过DLV求解器得出f2是否成立。若f2成立,则待验证性质f12成立,否则f12不成立。

上述实施例,仅为对本发明的目的、技术方案和有益效果进一步详细说明的具体个例,本发明并非限定于此。凡在本发明的公开的范围之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1