一种扩展DL算子的复杂规则推理设计方法与流程

文档序号:16037874发布日期:2018-11-24 10:13阅读:216来源:国知局
本发明涉及海量流式rdf数据推理
技术领域
:,特别是一种扩展dl算子的复杂规则推理设计方法。
背景技术
:现有的基于owl规则的推理方法大多是集中式的处理固定大小的静态数据集,由于集中式处理机制的限制,现有算法在处理海量的实时数据时效率低下。为了响应这种不断增长的需求,不少学者研究并提出自己的rdf流式推理架构:barbieridf[1]等人提出了基于流式和富背景知识的增量推理算法,该算法向每个rdf三元组中添加到期时间信息,当新的流式数据到达时,对新数据进行推理计算,并且终止明确的事实以及删除无效的三元组。idrm[2]算法能够高效可扩展的对增量数据进行rdfs推理。chevalierj[3]等人提出来一种有效的增量推理器(slider),该推理器通过语义数据流中的内在特征对其进行推理,从而实现了针对流式数据的可扩展批处理推理器。叶怡新等人提出了结合伪双向网络的基于spark平台的流式rdf数据并行推理算法pras[4],卢桂芳等人提出了结合树模型的推理算法tcra[5]。现有的rdf数据推理算法大部分都是针对owlhorst推理规则来进行推理分析的,由于horst规则中的算子都是owllite语法中的算子,无法完成复杂情况下的推理。owldl是本体语言中表达能力较强的语法,相比于owllite语法,owldl语法在owllite的基础上扩展了以下几个算子:集合运算交集intersectionof、并集unionof、补集complementof;枚举运算oneof;类运算disjointwith;基数限制运算cardinality、mincardinality、maxcardinality。由于这些描述的复杂性,且要结合使用数据环境,因此w3c没有针对dl的构造算子设计通用的推理规则。这些复杂的语法主要针对类来进行操作,但是仅通过交、并、补运算是无法精确表达某些特殊的、复杂的情况的。其中,参考文献如下:[1]barbieridf,bragad,ceris,etal。incrementalreasoningonstreamsandrichbackgroundknowledge[c]//extendedsemanticwebconference。springerberlinheidelberg,201:1-15。[2]liub,wul,lij,etal。exploitingincrementalreasoninginhealthcarebasedonhadoopandamazoncloud[c]//semanticcitiesworkshopataaaiconferenceonartificialintelligence(aaai’14)。2014。[3]chevalierj,subercazej,gravierc,etal.slider:anefficientincrementalreasoner[c]//proceedingsofthe2015acmsigmodinternationalconferenceonmanagementofdata。acm,2015:1081-1086。[4]叶怡新,汪璟玢。基于spark的分布式并行推理算法[j]。计算机系统应用,2017,26(05):97-104。[5]卢桂芳,汪璟玢.tcra:一种结合本体概念的数据推理算法[j].计算机科学,2014,41(12):234-237+268技术实现要素:有鉴于此,本发明的目的是提出一种扩展dl算子的复杂规则推理设计方法,使得本体语言在清晰地表达复杂的集合概念基础上,完成复杂的条件推理。本发明采用以下方案实现:一种扩展dl算子的复杂规则推理设计方法,包括以下步骤:步骤s1:在并行推理阶段定时获取streaming数据流中的新数据以及前次推理产生的新三元组数据作为本次迭代的输入数据;步骤s2:对输入数据中的的模式数据和实例数据进行归类处理并存储到相应的redis集群;步骤s3:根据衍生规则设计复杂规则连接变量关系表,用以存储推理的中间过程,根据复杂规则连接变量关系表,对衍生规则进行匹配推理并保存推理结果到redis集群中;步骤s4:读取redis集群中衍生规则的推理结果,得出满足条件的实例并输出;步骤s5:将推理生成的数据与下一批流式数据作为输入数据,返回步骤s1,进行下一次的迭代计算。进一步地,步骤s3中,根据衍生规则设计复杂规则连接变量关系表具体为:将衍生规则的每一条规则生成对应的一张表,并存储在redis中,以规则名作为表名,根据每个规则存在的不同的连接变量,分别设计不同的表结构;其中,表结构中包括表名、行键与列值。进一步地,步骤s3中,根据复杂规则连接变量关系表,对衍生规则进行匹配推理具体为:设计match_table表来记录某个衍生规则能否被激活,match_table表中的key值为衍生规则变量,value值为是和否;同时,设计rule_num_table表来储存每个衍生规则的基数限制,rule_num_table表中key值为对应的衍生规则,value值为<k,t>的形式,其中k表示基数限制的数量,t表示限制条件。进一步地,所述基数限制包括最大值限制与最小值限制;t=0表示基数限制条件为最小值限制,t=1表示基数限制条件为最大值限制。进一步地,所述衍生规则为包含扩展dl算子的衍生推理规则,其中,扩展的dl算子的集合基数限制参考owl中属性约束的基数限制,对集合添加下界、上界、区间、固定值的基数限制扩展。与现有技术相比,本发明有以下有益效果:1、本发明设计复杂规则连接变量关系表来存储数据以及推理中产生的新数据,保证了算法的完备性。2、本发明设计了实例三元组的存储方案,结合redis的特性,以空间换时间,实现了实例数据的快速读取。3、本发明扩展了owldl构造算子,设计衍生规则将复杂描述的推理规则化简为多个简单衍生规则,提高了推理的效率。附图说明图1为本发明实施例的方法流程原理示意图。图2为本发明一实施例的表述模型示意图。具体实施方式下面结合附图及实施例对本发明做进一步说明。应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属
技术领域
:的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。如图1所示,本实施例提供了一种扩展dl算子的复杂规则推理设计方法,包括以下步骤:步骤s1:在并行推理阶段定时获取streaming数据流中的新数据以及前次推理产生的新三元组数据作为本次迭代的输入数据;步骤s2:对输入数据中的的模式数据和实例数据进行归类处理并存储到相应的redis集群;步骤s3:根据衍生规则设计复杂规则连接变量关系表,用以存储推理的中间过程,根据复杂规则连接变量关系表,对衍生规则进行匹配推理并保存推理结果到redis集群中;步骤s4:读取redis集群中衍生规则的推理结果,得出满足条件的实例并输出;步骤s5:将推理生成的数据与下一批流式数据作为输入数据,返回步骤s1,进行下一次的迭代计算。在本实施例中,步骤s3中,根据衍生规则设计复杂规则连接变量关系表具体为:将衍生规则的每一条规则生成对应的一张表,并存储在redis中,以规则名作为表名,根据每个规则存在的不同的连接变量,分别设计不同的表结构;其中,表结构中包括表名、行键与列值。在本实施例中,步骤s3中,根据复杂规则连接变量关系表,对衍生规则进行匹配推理具体为:设计match_table表来记录某个衍生规则能否被激活,match_table表中的key值为衍生规则变量,value值为是和否;同时,设计rule_num_table表来储存每个衍生规则的基数限制,rule_num_table表中key值为对应的衍生规则,value值为<k,t>的形式,其中k表示基数限制的数量,t表示限制条件。在本实施例中,所述基数限制包括最大值限制与最小值限制;t=0表示基数限制条件为最小值限制,t=1表示基数限制条件为最大值限制。在本实施例中,所述衍生规则为包含扩展dl算子的衍生推理规则,其中,扩展的dl算子的集合基数限制参考owl中属性约束的基数限制,对集合添加下界、上界、区间、固定值的基数限制扩展。具体的,本实施例对扩展的dl构造算子介绍如下:owldl中的嵌套类的构造算子有交集intersectionof,并集unionof,补集complementof,其中并集可以看作下界值为1的基数限制标签,交集可以看作下界值为n或固定值为n的基数限制标签。在owl中有提供属性约束的基数限制构造算子,包括owl:maxcardinality、owl:mincardinality和owl:cardinality。owllite中值域限制只允许使用0和1来进行基数限制,但owldl中除了0和1以外,还允许使用其他正整数值来进行基数限制。owl:maxcardinality用来指定一个属性数量的上界,owl:mincardinality能够用来指定一个属性数量的下界,owl:cardinality是指定属性数量必须满足某个值。本实施例的集合基数限制将参考属性约束的基数限制,对集合添加下界、上界、区间、固定值的基数限制扩展。为了更好的适应流式数据无序、分批传递的特性,同时还要提高支持dl算子的复杂推理的效率,本实施例结合了lubm数据集的本体定义,设计包含dl算子的衍生推理规则,并设计了复杂规则连接变量关系表来存储推理的中间过程,实现了基于dl语法的推理规则的处理及流式数据的存储。在本实施例中,以lubm数据集为例,假设判断一个实例是否有评选教授(professor)的资格,限制条件(q1)描述如下:(1)要求担任3门以上主干课程的讲授工作;(2)具备硕士以上学位(硕士、博士);(3)除了大学教学工作,不得参加多于2个以上的研究团队;(4)硕士学位需要发表本专业学报文章3篇以上,博士及以上学位需要发表文章2篇以上;(5)条件(1)、(2)、(3)、(4)全部满足。根据q1限制条件的层级关系,转化成多条件的表述模型如图2所示,其中,叶节点r1-r6,代表每个限制条件:r1:至少教学3门课程;r2:参加至多2个研究团队;r3:学历为硕士毕业;r4:发表学报文章3篇以上;r5:学历为博士毕业;r6:发表文章2篇以上;同时,对非叶节点ra-rd的描述如下:ra:r1、rb、r2三个条件都要满足;rb:rc或者rd两个条件满足其中一个;rc:r3、r4两个条件都要满足;rd:r5、r6两个条件都要满足。根据图2可以看出,表述模型的每一个节点就是q1的一个条件,但是由于实际问题q1的复杂程度不同,节点的条件不会简单的由一个三元组来满足。例如图2中的r4,要求至少发表3篇以上的学报文章,这一条件是不能简单的通过一个三元组就能描述的,因此本实施例需要衍生出节点的判定规则。本实施例以r4(发表学报文章3篇以上)为例,根据lubm数据集的本体文件描述,可以得出,判断一个对象w是否发表了学报文章需要有如下三元组:(1)vpublicationauthorw;(2)vrdf:typejournalarticle。设某一实例w发表的学报文章的集合为ja_w,初始化ja_w为,衍生规则r4.1描述如下:vpublicationauthorw,vrdf:typejournalarticle=>ja_wunionofv。同时r4当中要求mincardinality3,因此在r4的推理过程中需要设定一个计数规则,用于记录满足条件的实例三元组的个数,衍生规则r1描述如下:crad(ja_w)mincardinality3=>r4_w_match=true。其中crad(ja_w)表示求集合ja_w中元素的个数,r4_w_match(boolean型)表示集合ja_w是否满足基数限制的要求。同理,图2的推理模型中的其余节点也存在着复杂描述,本实施例将其一一描述出来。r1(教学3门以上课程):(r1.1)wtakescoursev,vrdf:typecourse=>c_wunionofv;(r1.2)crad(c_w)mincardinality3=>r1_w_match=true。r2(最多参与2个研究团队):(r2.1)wworkforv,vrdf:typeresearchgroup=>rg_wunionofv;(r2.2)crad(rg_w)maxcardinality2=>r2_w_match=true。r6(发表文章2篇以上):(r6.1)vpublicationauthorw,vrdf:typearticle=>a_wunionofv;(r6.2)crad(a_w)mincardinality2=>r6_w_match=true。rc(拥有硕士学历,并发表学报文章3篇以上):(rc)wmastersdegreefromv,r4_w_match==true=>rc_w_match=true。rd(拥有博士学历,并发表文章2篇以上):(rd)wdoctoraldegreefromv,r6_w_match==true=>rd_w_match=true。rb(满足rc和rd其中一个):(rb.1)rc_w_match==true=>rb_w_match=true;(rb.2)rd_w_match==true=>rb_w_match=true。ra(满足r1、r2和rb):(ra)r1_w_match==true,r2_w_match==true,rb_w_match==true=>ra_w_match=true。本实施例针对流式数据进行处理,数据不可能像处理静态数据那样,一次性都加载完成,所以本实施例在算法中根据q1的所包含的衍生规则建立复杂规则连接变量关系表,来记录推理过程中满足部分前件的规则,这样在下一次新数据进入节点的时候,就可以根据表的内容,继续上一次未完成的推理。将衍生规则的每一条规则生成对应一张表(ri_table),存储在redis中。以规则名作为表名,根据每个规则存在的不同的连接变量,分别设计不同的表结构。表1衍生规则r1的存储表结构表2衍生规则r2的存储表结构表3衍生规则r4的存储表结构表4衍生规则r6的存储表结构表5衍生规则rc的存储表结构表6衍生规则rd的存储表结构在本实施例中,为了记录某个衍生规则能否被激活,本实施例设计match_table表,其中ri表示对应的衍生规则,w表示衍生规则中的实例,match_table表中衍生规则变量ri_w_match作为key,value为true和false。表7matchtable的存储表结构在本实施例中,为了记录每个衍生规则的基数限制(包括min_k,和max_k),本实施例设计了rule_num_table表用来储存这些基数限制。其中key为对应的衍生规则ri,value为<k,t>的形式,其中k表示基数限制的数量,变量t=0表示基数限制条件为mincardinality,t=1表示基数限制条件为maxcardinality。表8rule_num_table的存储表结构本实施例为了实现dl构造算子的推理方法,提出了psrd算法。算法在迭代并行推理阶段定时获取streaming数据流中的新数据,以及前次推理产生的新三元组数据作为本次迭代的输入数据,对输入的模式数据和实例数据进行归类处理并存储到相应的redis集群;然后,根据复杂规则连接变量关系表,对衍生规则进行匹配推理并保存推理结果到redis集群中。最后,读取redis集群中衍生规则的推理结果,得出满足条件的实例并输出,本次迭代推理结束。如果streaming数据流没有新数据进入,则结束算法。其中,总体框架图如图1所示。特别的,为了帮助本领域的技术人员更好地理解本发明,本实施例接下来给出算法的伪代码供技术人员参考。首先是算法的总体思路如下:其中,在并行化推理阶段,包括map阶段与reduce阶段;其中,map阶段又包括map1阶段与map2阶段,map1阶段主要完成数据分类和储存,map1阶段算法的总体代码描述如下:数据分类储存算法parallelstorefordl:输入流式三元组数据(<s,p,o>);输出空。map2阶段为数据推理阶段。当判断一个实例是否有评选教授资格时,通过对复杂规则连接变量关系表的遍历,以及对各个衍生规则之间进行结合判断,改变r1-r6对应的match_table中的值。map阶段算法的总体代码描述如下:数据推理算法parallelreasoningfordl:输入复杂规则连接变量关系表ri_table;输出空。接下来给出衍生规则的计算过程伪代码:其中,reduce阶段主要对复杂的衍生规则ra-rd进行匹配推理,并将满足q1要求的实例输出到结果集result中。具体步骤如下:reduce算法(duplicateremovalforhorstdl):输入复杂规则连接变量关系表ri_table(ra-rd);输出结果集result。综上,本实施例设计复杂规则连接变量关系表来存储数据以及推理中产生的新数据,保证了算法的完备性;同时本实施例设计了实例三元组的存储方案,结合redis的特性,以空间换时间,实现了实例数据的快速读取;并且本实施例还扩展了owldl构造算子,设计衍生规则将复杂描述的推理规则化简为多个简单衍生规则,提高了推理的效率。以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1