Rdf数据分布式语义并行推理方法

文档序号:10553072阅读:266来源:国知局
Rdf数据分布式语义并行推理方法
【专利摘要】本发明涉及一种RDF数据分布式语义并行推理方法,首先依据本体文件和RDFS/OWL规则,构建传递闭包关系矩阵(Transitive closure relation matrix,简称TRM)和连接变量信息,进而生成规则标记;然后根据连接变量的类型对RDFS/OWL规则进行分类,分别设计不同的推理方案,结合MapReduce计算框架并行地完成RDFS/OWL规则的推理。通过连接变量信息和规则标记对实例三元组进行过滤,能够减少大量无用的三元组数据在分布式系统中的传输损耗。通过构造传递闭包矩阵能够减少推理的迭代次数,提高推理的效率。最后,根据推理结果,实时地删除重复的三元组数据,以进一步提高后续迭代推理的效率。通过本发明在数据量增大的情况下能够高效且正确的实现RDFS/OWL规则的推理。
【专利说明】
RDF数据分布式语义并行推理方法
技术领域
[0001] 本发明涉及语义网技术领域,特别是涉及一种RDF数据分布式语义并行推理方法。
【背景技术】
[0002] 语义万维网中的RDF和0WL标准已在各个领域有着广泛的应用,如一般知识 (DBpedia)、医疗生命科学(L0DD)和生物信息学(UniProt),截至2014年9月,数据的总量已 达650亿条三元组。随着语义网中数据的急速增长,集中式环境由于内存的限制,不适用于 对大规模数据的推理;研究RDFS/0WL分布式并行推理是目前较新的一个领域。如模糊pD*的 推理、RDFS并行推理、分布式规则匹配系统、分布式推理引擎WebPIE、分布式推理引擎YARM。 这些推理的方法不够高效。这些推理的方案大部分结合了MapReduce计算框架,通过RDFS/ 0WL推理规则对数据进行推理。
[0003] 随着语义网中数据的急速增长,如何高效地进行大数据的推理是近两年的研究热 点,但还处于研究的初始阶段。目前比较成熟的分布式推理引擎为WebPIE,虽然满足大数据 的并行推理,但是由于WebPIE针对每一条规则启用一个或者多个MapReduce任务进行推理, 而MapReduce Job的启动相对耗时,因此随着RDFS/0WL推理规则的增加,推理的效率受到了 限制。分布式推理引擎YARM采用了合理的数据划分模型,优化了规则的执行次序,实现了一 种新的基于MapReduce的并行化推理算法,使得推理在一次MapReduce任务内即可完成RDFS 规则的推理。但该算法不适用于复杂的OWL Horst规则的推理。此外,当某一规则产生的新 三元组重复时,YARM会存在过多的冗余计算且产生无用数据。为了解决上述RDFS/0WL分布 式推理算法存在的问题,本文提出了SPRM算法(Semantic information Parallel Reasoning on MapReduce),该算法在数据量增大的情况下能够高效且正确的实现RDFS/ OWL规则的推理。
[0004] 集中式环境下无法满足海量数据的需求,而分布式环境下的推理不够高效,推理 的并行化。目前存在分布式推理引擎虽然能够实现数据的并行推理,但是MapReduce任务启 动个数多且耗时,存在过多的冗余计算且产生无用数据,导致它无法在数据量增大的情况 下能够高效且正确的实现RDFS/0WL规则的推理。
[0005] 需要解决的技术问题:1.解决分布式环境中如何保证RDFS/0WL分布式推理算法实 现分布后推理数据的正确性。2.结合提出的分布式方案提出了对应的并行推理方案,从而 满足大规模数据的分布式并行推理的需求。

【发明内容】

[0006] 有鉴于此,本发明的目的是提供一种RDF数据分布式语义并行推理方法,在数据量 增大的情况下能够高效且正确的实现RDFS/0WL规则的推理。
[0007] 本发明采用以下方案实现:一种RDF数据分布式语义并行推理方法,具体包括以下 步骤:
[0008] 步骤S1:加载模式三元组,构建TRM,同时根据RDFS/0WL规则,构建每条规则中可能 连接的连接变量信息;
[0009] 步骤S2:根据TRM和连接变量信息,生成规则标记模型;
[0010] 步骤S3:将连接变量分成单变量和多变量两种形式,根据TRM和连接变量的类型, 将RDFS/0WL规则分成5种类型,分别设计不同的推理方案;
[0011] 步骤S4:对Flag_Rulem= 1的规则执行RDFS/0WL规则的并行推理,并输出中间结 果;
[0012] 步骤S5:删除中间结果中的重复三元组;
[0013] 步骤S6:如果中间结果中包含新的SchemaTriple,贝lj更新TRM和规则标记模型,返 回步骤S4;否则,结束。
[0014] 进一步地,所述步骤S1中,对三元组的相关参数进行定义如下:
[0015] 定义1 :模式三元组SchemaTriple指三元组的主语谓语和宾语都在本体文件 OntologyFile中有定义,即为:
[0016] ¥ (.9,., lJr 0k) (1 <: i, j, k < n)
[0017] 其中,n表示模式三元组的总数;
[0018] 若vG {Si,Pj,Ok},▽ k e. OntologyFile 贝lj,
[0019] (Si,Pj,0k) GSchemaTriple (1)
[0020] 定义2 :实例三元组InstanceTriple指主语谓语和宾语至少有一个在本体文件 OntologyFile中未定义,是具体的实例,即为:
[0021] V {Sn Pj:, 0k) (1 < /, J, k < n)
[0022] 其中,n表示实例三元组的总数;
[0023] 若vG {Si,Pj,0k},3 v. g. OntologyFile贝lj,
[0024] (Si,Pj,0k) G InstanceTriple
[0025] 定义3:三元组类型标记Flag_TripleType,用于标识模式三元组与实例三元组,所 述三元组类型标记Flag_TripleType定义如下:
[0026] V F G ( {S.-, P;, 〇k ) 1 < I, J, k < ll)
[0027]其中,n表示三元组的总数.则, ! 1 (v g SchemaTriple')
[0028] FlagTripIcTypc = <! / ; - ! 0 (v g InstanceTriple)
[0029] 三元组项类型标记Triplelten^Flag,用于标识三元组项中的主语或者宾语,所述 三元组项类型标记定义如下:
[0030] V (Sf, Pjy (1 < i, i, 1 < n)
[0031] 其中,n表示三元组的总数。若VG {Si,Pj,0k},则
[l (f e l^.j)
[0032] Xripleltem Flag = < - [0 (v e {^k})
[0033]定义4:模式三元组列表SchemaList,用于获取相同谓语或者宾语的模式三元组集 合,所述模式三元组列表SchemaList定义如下:
[0034] ¥ (S.^P^O^) e SchemaTriple :(l < i,J:, k < n)
[0035]其中,n表示模式三元组的总数,则,
[0036] SchemaList = Om_list U Pt_list
[0037]其中,0m_list表示满足谓语{rdf: type}的且具有相同宾语的三元组集合,以 该宾语命名;Pt_list表示满足谓语巧0 丨的所有具有相同谓语的三元组集合, 以该谓语命名,具体定义如下:
[0038] 0m_list= {(Si ,Pj ,0k) | Pj G {rdf: type}&k=m}
[0039] Pt_list= {(S,, P;, Oh) \ P} 0 {rrlf : typSi k j = t} i>
[0040] 进一步地,所述步骤SI中,构建TRM时进行定义如下:
[0041] 定义5:有向图的传递闭包定义为:一个n顶点有向图的传递闭包可以定义为一个n 阶布尔矩阵T= {tik} (Ki,k<n),若顶点i到顶点k存在一条有效路径,贝ljtik=l,否则tik = 0〇
[0042] 定义6:传递闭包关系矩阵Transitive closure relation matrix,简称为TRM,结 合定义4、定义5和WarShall算法构建TRM;TRM表示有向图的传递闭包中,以类或属性为顶 点,以三元组的谓语为关系的布尔矩阵T= {tlk};
[0043] 谓语为Pj的SchemaTriple的关系矩阵表示为Pj_TRM,其中PjG {subClassOf, subPropertyOf,sameAs,equivalentClass,equivalentProperty},
[0044] 若3 (心户"4) e SchemaTriple (1 < -/,丄々 < 贝!jPj_TRM.tik=1,表示谓语 f 为Pj的SchemaTr ipl e的主语Si到宾语0k存在直接关系,否则Pj_TRM. tik = 0;
[0045]其中,TRM分为类关系矩阵CTRM和属性关系矩阵PTRM;其中,CTRM根据谓语 subClassOf、equivalentClass、sameAs 分别定义 subPropertyOf、equivalentProperty、sameAs分别定义SP_TRM、EP_TRM、SAP_TRM;由于谓语 为sameAs的SchemaTr ipl e含类关系和属性关系,TRM的构建中将关系分开,分别构建SAC_ TRM和SAP_TRM。
[0046]所述构建TRM具体包括以下步骤:
[0047] 步骤SI 1:结合定义4,分别获取所有的SchemaTriple中谓语为subPropertyOf和 equivalentProperty的模式三元组数据,根据获取的SchemaTriple并结合定义6得到以 subPropertyOf 和以 equivalentProperty 为关系的布尔矩阵;
[0048] 步骤S12:根据WarShall算法获取所有的以subPropertyOf和以 equivalentProperty为关系的布尔矩阵中传递关系值,从而生成传递闭包关系矩阵SP_ TRM、EP_TRM,完成了 SP_TRM 和 EP_TRM 的构建。
[0049] 进一步地,所述步骤S1中,构建连接变量信息时进行定义如下:
[0050] 定义7:连接变量LinkVar为在RDFS/0WL规则中用于连接两个前件的模式三元组 项,根据规则描述,连接变量的数量大于1;将每一条规则的连接变量信息以〈key, Value>的 形式存储在表Rulem_Table中,其中key存储该规则所有用于前件连接的模式三元组项, value存储该规则结论部分的模式三元组项。
[00511进一步地,所述步骤S3中具体为:采用SPRM算法根据TRM和连接变量的类型,对 RDFS/OWL规则进行分类,引用RDFS规则时采用RDFS-规则编号的形式,引用OWL Horst规则 时采用OWL-规则编号的形式;给每条规则分配一个规则名称标记,规则名称标记即为该规 则所对应的名称;
[0052] RDFS/0WL规则的5种类型的如下:
[0053] 类型1 :SchemaTriple与SchemaTriple组合的规则,采用TRM直接进行推理;
[0054] 类型2: SchemaTriple与InstanceTriple组合的规则,其根据TRM进行推理,无需结 合连接变量信息;
[0055] 类型3: SchemaTriple与InstanceTriple组合的规则,其连接变量信息为单变量, 需要结合TRM进行推理;
[0056] 类型4: SchemaTriple与InstanceTriple组合的规则,其连接变量信息为单变量, 无需结合TRM进行推理;
[0057] 类型5: SchemaTriple与InstanceTriple组合的规则,其连接变量信息为多变量; [0058]对任意一条规则的定义为:假设第m条规则表示如下:
[0059] Rulem:Cml,Cm2, ,Cmk, ,Cmn^ReSUlt
[0060] 定义规则标记Flag_Rulem,用于标记该规则是否为不可能激活的规则;
[0061]当为Flag_Rulem=0,则意味着不存在满足该规则的条件,无需激活该规则;假设Pj 为 Rulem 中某个前件的谓语,其中 Pj G {subClassOf, subPropertyOf,sameAs, equivalentClass,equivalentProperty},Pj所对应的TRM设为Pj_TRM;
[0062]结合定义6和定义7,规则标记Flag_Rulem根据RDFS/OWL规则的分类定义如下:
[0063] l)若RulemG{类型l,类型2},则 fi (3 p^jm. t,ik = i)
[0064] Flag_Rulem = i "
[0 ( Y /^_TRM, tik = 0 )
[0065] 2)若RulemG{类型3,类型4,类型5},则 fl (Rule Table ^ null )
[0066] Flag-Rtxl:em =. { 丨1--
[0 (Rulem-Table = null )
[0067] 进一步地,所述步骤S4中,结合MapReduce计算框架并行完成RDFS/OWL规则的推 理,在构建TRM阶段就完成类型1中规则的推理,在RDFS/0WL规则的并行推理阶段针对类型 2、类型3、类型4和类型5进行分布式的并行推理,从而在一次MapReduce任务中实现全部规 则的一次推理;
[0068] 对于类型2、类型3以及类型4的规则,根据规则标记模型和连接变量信息,经过Map 阶段的并行推理,即可获取推理结果三元组数据;对于类型5的规则,通过对满足推理条件 的数据进行冗余输出以确保后续并行数据推理的正确性,即将满足同一规则的实例三元组 输出设置为相同的键key,以确保Reduce阶段中,同一规则中的所有规则前件能够根据连接 变量完成连接并输出结果;
[0069] Map阶段的RDFS/0WL规则的并行推理算法具体为:
[0070] 输入:key为行号;value为实例三元组
[0071]输出:key为推理结果三元组或规则标记与连接变量的组合;value为任意值或带 标记的三元组项;
[0072] Reduce阶段的RDFS/0WL规则并行推理算法具体为:
[0073]输入:删除重复的三元组数据阶段的输出结果 [0074] 输出:key为输出三元组;value为任意值。
[0075] 进一步地,所述步骤S5中,通过连接变量信息和规则标记对实例三元组进行过滤, 减少大量无用的三元组数据在分布式系统中的传输损耗,通过构造传递闭包矩阵减少推理 的迭代次数,用以提高推理的效率;根据推理结果,实时地删除重复的三元组数据,用以进 一步提尚后续迭代推理的效率;
[0076]在每个Map之后执行combiner以及每次推理后删除重复的三元组数据,
[0077]其中,combiner为删除map阶段输出的重复数据,具体为:
[0078]输入:Map阶段的RDFS/0WL规则的并行推理算法的输出结果
[0079]输出:key为推理结果三元组或规则标记与连接变量的组合;value为任意值或带 标记的三元组项;
[0080]每次推理后删除重复三元组数据的算法具体为:
[0081 ] 输入:key为行号;value为三元组 [0082]输出:输出去重后的三元组。
[0083]本发明提出的分布式并行推理首先依据本体文件和RDFS/0WL规则,构建传递闭包 关系矩阵和连接变量信息,进而生成规则标记;然后根据连接变量的类型对RDFS/0WL规则 进行分类,分别设计不同的推理方案,结合MapReduce计算框架并行地完成RDFS/0WL规则的 推理。通过连接变量信息和规则标记对实例三元组进行过滤,能够减少大量无用的三元组 数据在分布式系统中的传输损耗。通过构造传递闭包矩阵能够减少推理的迭代次数,提高 推理的效率。最后,根据推理结果,实时地删除重复的三元组数据,以进一步提高后续迭代 推理的效率。通过本方案在数据量增大的情况下能够高效且正确的实现RDFS/0WL规则的推 理。
[0084]与现有技术相比,本发明具有如下优点:
[0085] 1、本发明构建了 TRM,减少了推理的迭代次数。
[0086] 2、本发明采用高效的过滤机制,减少了无用计算和网络传输的开销。
[0087] 3、本发明提升了推理的效率。
【附图说明】
[0088]图1是本发明的SPRM算法的总体框架图。
[0089] 图2为本发明的RDFS规则。
[0090] 图3为本发明的OWL Horst规则。
[0091] 图4为本发明的构建TRM示例图。
[0092] 图5为本发明的构建RDFS/0WL规则的连接变量信息图。
[0093] 图6为本发明的连接变量具体的模式数据图。
[0094] 图7为本发明的连接变量存储表中的模式数据图。
[0095]图8为本发明的SPRM算法在第t次迭代中的推理框架图。
【具体实施方式】
[0096]下面结合附图及实施例对本发明做进一步说明。
[0097]本实施例提供一种RDF数据分布式语义并行推理方法,如图1所示,具体包括以下 步骤:
[0098] 步骤S1:加载模式三元组,构建TRM,同时根据RDFS/0WL规则,构建每条规则中可能 连接的连接变量信息;
[0099]步骤S2:根据TRM和连接变量信息,生成规则标记模型;
[0100] 步骤S3:将连接变量分成单变量和多变量两种形式,根据TRM和连接变量的类型, 将RDFS/0WL规则分成5种类型,分别设计不同的推理方案;
[0101] 步骤S4:对Flag_Rulem= 1的规则执行RDFS/0WL规则的并行推理,并输出中间结 果;
[0102] 步骤S5:删除中间结果中的重复三元组;
[0103] 步骤S6:如果中间结果中包含新的SchemaTriple,则更新TRM和规则标记模型,返 回步骤S4;否则,结束。
[0104]在本实施例中,所述步骤S1中,对三元组的相关参数进行定义如下:
[0105] 定义1 :模式三元组SchemaTriple指三元组的主语谓语和宾语都在本体文件 OntologyFile中有定义,即为:
[0106] V (5;, Pj, ();<) (1 < 1, J, k < n)
[0107] 其中,n表示模式三元组的总数;
[0108] 若v e {Si,Pj,Ok},V k e QntologyFile ?则,
[0109] (Si,Pj,0k) ^SchemaTriple (1)
[0110] 定义2 :实例三元组InstanceTriple指主语谓语和宾语至少有一个在本体文件 OntologyFile中未定义,是具体的实例,即为:
[0111] V (1 < i,j,k < n)
[0112] 其中,n表示实例三元组的总数;
[0113] 若vG {Si,Pj,0k},3 v g OntologyFile ,贝IJ,
[0114] (Si,Pj,0k) G InstanceTriple
[0115] 定义3:三元组类型标记Flag_TripleType,用于标识模式三元组与实例三元组,所 述三元组类型标记Flag_TripleType定义如下:
[0116] V v g {(S P ;, 0,) | 1 < itj,k < n)
[0117] 其中,n表示三元组的总数.则, (1 (ve SchemaTriple)
[0118] Flag-TripleType =. ; ! 0 (v g InstanceTriple)
[0119] 三元组项类型标记Triple I tem_Flag,用于标识三元组项中的主语或者宾语,所述 三元组项类型标记定义如下:
[0120] V (Sf, Pj, 0k) (1 < i, j, k < n)
[0121] 其中,n表示三元组的总数。若vg {Si,Pj,〇k},则 fl (V e {5\})
[0122] TripleltemF'lag = < - [0' (v e {<?k})
[0123] 定义4:模式三元组列表SchemaList,用于获取相同谓语或者宾语的模式三元组集 合,所述模式三元组列表SchemaList定义如下:
[0124] V e SchemaTriple (1 < i,j,k < n)
[0125] 其中,n表示模式三元组的总数,则,
[0126] SchemaList = Om_list U Pt_list
[0127] 其中,0m_list表示满足谓语{rdf: type}的且具有相同宾语的三元组集合,以 该宾语命名;Pt_list表示满足谓语乃€ : 的所有具有相同谓语的三元组集合, 以该谓语命名,具体定义如下:
[0128] 0m_list= {(Si ,Pj ,0k) | Pj G {rdf: type}&k=m}
[0129] {(Si; Pp 〇J) | P} € \rdf: tvp^ k j = t]
[0130] 在本实施例中,所述步骤SI中,构建TRM时进行定义如下:
[0131] 定义5:有向图的传递闭包定义为:一个n顶点有向图的传递闭包可以定义为一个n 阶布尔矩阵T= {tik} (Ki,k<n),若顶点i到顶点k存在一条有效路径,贝ljtik=l,否则tik = 0〇
[0132] 定义6:传递闭包关系矩阵Transitive closure relation matrix,简称为TRM,结 合定义4、定义5和WarShall算法构建TRM;TRM表示有向图的传递闭包中,以类或属性为顶 点,以三元组的谓语为关系的布尔矩阵T= {tlk};
[0133] 谓语为Pj的SchemaTriple的关系矩阵表示为Pj_TRM,其中PjG {subClassOf, subPropertyOf,sameAs,equivalentClass,equivalentProperty},
[0134] 若3 (K 4) e SchemaTriple (1 S < 刀)贝丨jPj_TRM.tik=1,表示谓语 y _ 为Pj的SchemaTr ipl e的主语Si到宾语0k存在直接关系,否则Pj_TRM. tik = 0;
[0135] 其中,TRM分为类关系矩阵CTRM和属性关系矩阵PTRM;其中,CTRM根据谓语 subClassOf、equivalentClass、sameAs 分别定义 subPropertyOf、equivalentProperty、sameAs分别定义SP_TRM、EP_TRM、SAP_TRM;由于谓语 为sameAs的SchemaTr ipl e含类关系和属性关系,TRM的构建中将关系分开,分别构建SAC_ TRM和SAP_TRM。
[0136] 所述构建TRM具体包括以下步骤:
[0137] 步骤S11:结合定义4,分别获取所有的SchemaTriple中谓语为subPropertyOf和 equivalentProperty的模式三元组数据,根据获取的SchemaTr ipl e并结合定义6得到以 subPropertyOf 和以 equivalentProperty 为关系的布尔矩阵;
[0138] 步骤S12:根据WarShall算法获取所有的以subPropertyOf和以 equivalentProperty为关系的布尔矩阵中传递关系值,从而生成传递闭包关系矩阵SP_ TRM、EP_TRM,完成了 SP_TRM 和 EP_TRM 的构建。
[0139] 在本实施例中,所述步骤S1中,构建连接变量信息时进行定义如下:
[0140] 定义7:连接变量LinkVar为在RDFS/0WL规则中用于连接两个前件的模式三元组 项,根据规则描述,连接变量的数量大于1;将每一条规则的连接变量信息以〈key,Value>的 形式存储在表Rulem_Table中,其中key存储该规则所有用于前件连接的模式三元组项, value存储该规则结论部分的模式三元组项。
[0141] 在本实施例中,所述步骤S3中具体为:SPRM算法根据TRM和连接变量的类型,对 RDFS/0WL规则进行分类;引用RDFS规则时采用RDFS-规则编号的形式,例如RDFS-1表示图2 中的第1条规则;引用OWL Horst规则时采用0WL-规则编号的形式,例如0WL-4表示图3中的 第4条规则。同时,给每条规则分配一个规则名称标记,规则名称标记即为该规则所对应的 名称(例如,规则0WL-4的规则名称标记为0WL-4)。具体的规则分类如下:
[0142] RDFS/0WL规则的5种类型的如下:
[0143] 类型1: SchemaTriple与SchemaTriple组合的规贝IJ,采用TRM直接进行推理(图2中 规则RDFS-5、RDFS-11;图 3 中规则OWL-6、0WL-7、0WL-9、0WL-10、OWL-12a、OWL-12b、0WL-12c、 OWL-13a、OWL-13b、OWL-13c)。
[0144] 类型2: SchemaTriple与InstanceTriple组合的规则,其根据TRM进行推理,无需结 合连接变量信息(图2中规则RDFS-7、RDFS-9;图3中规则OWL-11)。
[0145] 类型3: SchemaTriple与InstanceTriple组合的规则,其连接变量信息为单变量, 需要结合TRM进行推理(图2中规则RDFS-2、RDFS-3)。
[0146] 类型4: SchemaTriple与InstanceTriple组合的规则,其连接变量信息为单变量, 无需结合TRM进行推理(图 3 中规则OWL-3、0WL-8a、0WL-8b、OWL-14a、OWL-14b)。
[0147] 类型5 : SchemaTriple与InstanceTriple组合的规则,其连接变量信息为多变量 (图 3 中规则OWL-1、OWL-2、OWL-4、0WL-15、0WL-16)。
[0148] 对任意一条规则的定义为:假设第m条规则表示如下:
[0149] Rulem:Cml,Cm2, ,Cmk, ,Cmn^ReSUlt
[0150] 定义规则标记Flag_Rulem,用于标记该规则是否为不可能激活的规则;
[0151] 当为Flag_Rulem=0,则意味着不存在满足该规则的条件,无需激活该规则;假设匕 为 Rulem 中某个前件的谓语,其中 Pj G {subClassOf, subPropertyOf,sameAs, equivalentClass,equivalentProperty},Pj所对应的TRM设为Pj_TRM;
[0152]结合定义6和定义7,规则标记Flag_Rulem根据RDFS/0WL规则的分类定义如下:
[0153] 1)若 RulemG{类型 1,类型 2},则 fi (3 p.jm. t, = i)
[0154] Flag_Rulem = \ ,' 、
[o (v pfjm. tik = o)
[0155] 2)若RulemG{类型3,类型4,类型5},则 (Rule Table ^ null )
[0156] Flag-Bui{ , m- ;
[0 (Rule^^Tahl? = null )
[0157] 由于图2中RDFS规则l、4a、4b、6、8、10只有一个条件语句,对推理并行化算法改造 没有影响[9];图2中规则12和13在RDF数据中是极少出现的,在大多数推理工作中均不进行 讨论[5,7~12]。因而,本文所述的RDFS规则不考虑上述这些规则。由于图3中0WL规则5a、5b 不影响推理的并行化,因而,本文所述的OWL规则推理不考虑OWL Horst中的这两条规则。
[0158] 在本实施例中,所述步骤S4中,结合MapReduce计算框架并行完成RDFS/0WL规则的 推理,在构建TRM阶段就完成类型1中规则的推理,在RDFS/OWL规则的并行推理阶段针对类 型2、类型3、类型4和类型5进行分布式的并行推理,从而在一次MapReduce任务中实现全部 规则的一次推理;
[0159] 对于类型2、类型3以及类型4的规则,根据规则标记模型和连接变量信息,经过Map 阶段的并行推理,即可获取推理结果三元组数据;对于类型5的规则,通过对满足推理条件 的数据进行冗余输出以确保后续并行数据推理的正确性,即将满足同一规则的实例三元组 输出设置为相同的键key,以确保Reduce阶段中,同一规则中的所有规则前件能够根据连接 变量完成连接并输出结果;
[0160] Map阶段的RDFS/0WL规则的并行推理算法具体为:
[0161 ] 输入:key为行号;value为实例三元组
[0162]输出:key为推理结果三元组或规则标记与连接变量的组合;value为任意值或带 标记的三元组项;
[0163] Reduce阶段的RDFS/0WL规则并行推理算法具体为:
[0164] 输入:删除重复的三元组数据阶段的输出结果 [0165] 输出:key为输出三元组;value为任意值。
[0166] 在本实施例中,所述步骤S5中,通过连接变量信息和规则标记对实例三元组进行 过滤,减少大量无用的三元组数据在分布式系统中的传输损耗,通过构造传递闭包矩阵减 少推理的迭代次数,用以提高推理的效率;根据推理结果,实时地删除重复的三元组数据, 用以进一步提尚后续迭代推理的效率;
[0167] 在每个Map之后执行combiner以及每次推理后删除重复的三元组数据,
[0168]其中,combiner为删除map阶段输出的重复数据,具体为:
[0169]输入:Map阶段的RDFS/0WL规则的并行推理算法的输出结果
[0170]输出:key为推理结果三元组或规则标记与连接变量的组合;value为任意值或带 标记的三元组项;
[0171]每次推理后删除重复三元组数据的算法具体为:
[0172] 输入:key为行号;value为三元组
[0173] 输出:输出去重后的三元组。
[0174] 在本实施例中,结合附图与实例对以上方法具体如下说明:
[0175] 在构建TRM阶段:SPRM算法通过构建TRM实现具有传递性规则(类型1)推理,从而减 少推理迭代次数,加快整体推理的效率。根据定义1和定义4,获取SchemaTriple加载到内存 中。然后结合定义6,构建各个传递性规则的TRM,其中:CTRM构建时的矩阵维度为数据集的 总类数,PTRM构建时的矩阵维度为数据集的总属性数。
[0176] 以谓语为subPropertyOf、equivalentProperty 的 SchemaTriple为例,描述 PTRM中 SP_TRM和EP_TRM的构建过程,并结合图2中规则RDFS-5和图3中规则OWL-13a、OWL-13b、0WL-13c实现SchemaTriple间的推理,具体步骤为:
[0177] 步骤S11:结合定义4,分别获取所有的SchemaTriple中谓语为subPropertyOf和 equivalentProperty的模式三元组数据,根据获取的SchemaTriple并结合定义6可以得到 以subPropertyOf和以equivalentProperty为关系的布尔矩阵。
[0178] 步骤S12:根据WarShall算法可以获取所有的以subPropertyOf和以 equivalentProperty为关系的布尔矩阵中传递关系值,从而生成传递闭包关系矩阵SP_ TRM、EP_TRM。通过这两个步骤就完成了 SP_TRM和EP_TRM的构建,构建的过程如图4所示。
[0179] 此外,图4中展现了 SP_TRM的构建实现图1中规则RDFS-5的传递性模式三元组规则 的推理;同时,根据生成的SP_TRM,若SP_TRM. tik = SP_TRM. tki,则结合图3中规则OWL-13c可 以生成新的谓语为6911;[¥3161^?1'(^61^7的模式三元组,用于构建£?_11^。对于£?_11^,若 3 EP-TRM_ tik = 1 ,则结合图3中规则0WL-13a、0WL-13b可以生成新的谓语为subPropertyOf 的模式三元组。由于SchemaTriple的数量极少,通过在内存中构建TRM,能够快速的完成类 型1中规则的推理,而且能够减少在RDFS/0WL规则推理阶段MapReduce任务的迭代次数。
[0180] 在构建可能连接的连接变量信息阶段:RDFS/0WL规则的各个前件之间需要通过变 量的连接,才能推理产生新的三元组数据。由于传递性规则通过各个TRM就可以实现传递推 理,因此SPRM算法针对非传递性规则,根据SchemaTriple数据和RDFS/0WL规则建立连接变 量表,用于存储符合该规则前件变量的模式信息。如果某一规则的连接变量表的记录为空, 意味着此数据集中的所有模式三元组均不符合该规则前件,由此可将该规则判断不可能激 活的规则。可能连接的连接变量指能够触发规则的连接变量,为RDFS/0WL规则的每一条规 则建立对应一张表(Ru 1 em_Tab 1 e),存储在Hbase中。其中,每张表中的行键(key)存储该规 则可能连接的变量,列值(value)为该规则产生的推理三元组中可能用到的变量。构建 RDFS/0WL规则的连接变量如图5所示。
[0181 ]为了更加明确RDFS/0WL规则中构建连接变量的过程,以LUBM数据集中略去前缀的 20个三元组数据为例,其中,编号1~11为模式三元组数据,编号12~20为实例三元组数据, 如图6所示。
[0182] 结合定义7,根据表2的1~11条SchemaTriple数据,得到连接变量存储表中具体的 模式数据如图7所示。由此,根据定义8可以很容易得到各规则的规则标记,如在此例中,规 则RDFS_3(range规则)的Flag_RuleRDFs-3 = 0 〇
[0183] 在RDFS/0WL规则的并行推理阶段:由于在构建TRM阶段就完成了类型1中规则的推 理,因此在RDFS/0WL规则的并行推理阶段主要针对类型2、类型3、类型4和类型5进行分布式 的并行推理,从而在一次MapReduce任务中实现全部规则的一次推理。对于类型2~类型4的 规则,根据规则标记模型和连接变量信息,经过Map阶段的并行推理,即可获取推理结果三 元组数据。对于类型5(多变量)的规则,需要通过对满足推理条件的数据进行冗余输出以确 保后续并行数据推理的正确性;即将满足同一规则的实例三元组输出设置为相同的键 (key),以确保Reduce阶段中,同一规则中的所有规则前件能够根据连接变量完成连接并输 出结果。
[0184] RDFS/0WL规则的并行推理算法具体步骤如下:
[0185] 算法1 .Map阶段的RDFS/0WL规则并行推理算法:
[0186] 输入:key为行号;value为实例三元组
[0187]输出:key为推理结果三元组或规则标记与连接变量的组合;value为任意值或带 标记的三元组项。
[0188]具体算法如表一所示:
[0191] 算法2. Reduce阶段的RDFS/0WL规则并行推理算法:
[0192] 输入:算法3的输出结果
[0193] 输出:key为输出三元组;value为任意值
[0194] 具体算法如下所示:
[0196] SPRM算法针对RDFS/0WL规则的第t次迭代的推理框架如图8所示。
[0197] 由于类型1直接在TRM矩阵中进行推理,为了更加明确RDFS/0WL规则的其他类型的 推理,结合图6中LUBM数据片段,以示例形式展现推理的过程,示例中的任意值输出取 "irrelevant"。
[0198] 以图2中规则RDFS-7(subPr〇perty实例规贝丨】)为例,展现类型2规则的推理过程:根 据定义8可知Flag_RuleR DFS-7=1。根据SP_TRM可以获取headOf的所有的父属性为属性 worksFor、memberOf;图6中只有(FullProfessor7,head0f,DepartmentO)可以获取激活 1^卩3-7规则,因而可以推理产生三元组(?1111?1'〇€6 8 80『7,¥〇48?01',〇6口31^111611切)和 (FullProfessor7,member0f,DepartmentO) DSirrelevant可取任意值,则在Map阶段的键 值对输出形如:
[0199] 〈''ResultFlag〃+(FullProfessor7,worksFor,DepartmentO),irrelevant〉
[0200] 〈"ResultFlag"+(FullProfessor7,memberOf,DepartmentO),irrelevant〉
[0201]以图2中规贝ljRDFS-2(domain规贝lj)为例,展现类型3规则的推理过程:根据定义8可 知Flag_RuleRDFs-2 = l;根据根据图6中输入的实例三兀组数据,以三兀组的谓语为行键 (rowkey)查询Domain_Table 中的列值(value),实例三元组(LecturerO,teacherOf, GraduateCourSe5)进入该规则推理。然后,根据SC_TRM可以获取Faculty的所有父类为 Employee,由此,可以推理产生三元组(LecturerO,type,Faculty)和(LecturerO,type, Emp 1 oy e e)。则在Map阶段的键值对输出为:
[0202] <〃ResultFlag〃+(LecturerO,type,Faculty),irrelevant〉
[0203] <//ResultFlag//+(LecturerO, type,Employee) ? irrelevant)
[0204] 以图3中规则0WL_8a(inverse0f)为例,展现类型4规贝的推理过程:根据定义8可 知Flag_Rule(m-8a=lD根据图6中输入的实例三元组数据,以三元组的谓语为行键(rowkey) 查询111¥6『86_83_131316中的列值(¥31116),只有实例三元组(?1111?1'〇€688〇1'0,(168代6?1'〇111, University 1)可以获得其谓语在Inverse_8a_Table中的列值(value)为hasAlumnus,由此 推理产生三元组(Universityl,hasAlumnus,FullProfessor0) D则在Map阶段的键值对输出 形如:
[0205] <〃ResultFlag〃+(Universityl,hasAlumnus,FullProfessor0),irrelevant〉
[0206] 以图3中规则0WL_4(transitiveProperty)为例,展现类型5规则的推理过程:根据 表1可知SP_Flag_Ru le(m-4=l。根据图6中输入的实例三元组数据,以三元组的谓语为行键 (rowkey)查询TransitiveProperty_Table 中的列值(value),实例三元组 (ResearchGroupO,subOrganizationOf,DepartmentO)和(DepartmentO, subOrganizationOf,Uni ver si tyO)可以获得其谓语在 Transit iveProperty_Table 中的列 值(value)为sub0rganization0fDMap阶段的键值对输出为:
[0207] <OWL-4+subOrganizationOf+DepartmentO ?0+ResearchGroup0>
[0208] <OWL-4+subOrganizationOf+DepartmentO ?1+University0>
[0209] 在Reduce阶段,获取键(key)为0WL-4的数据,在同一个键(key)中的值(values)根 据标记0或1来获取推理所产生的三元组项是主语或宾语,产生最终的推理的三元组数据 为:(ResearchGroupO,subOrganizationOf,UniversityO) 规则标记及其对应值表如表 1所 7Jn 〇
[0210] 表1规则标记及其对应值表
[0212]在删除重复三元组阶段:在执行分布式推理的过程中会产生大量重复的三元组数 据,如果没有把本节点以及本次推理产生的重复数据删除,这些相同的三元组将产生更多 的重复三元组数据,造成系统资源无谓的浪费。本算法通过在每个map之后执行combiner以 及每次推理后删除重复的三元组数据,从而减少网络的开销,提升整体的推理效率。
[0213 ]算法3. Comb iner,删除本节点map阶段输出的重复数据 [0214]输入:算法1中map函数的输出结果
[0215]输出:key为推理结果三元组或规则标记与连接变量的组合;value为任意值或带 标记的三元组项。
[0216]具体算法如下所示:
[0218] 本方法借助一次Map/Reduce完成删除重复三元组算法,具体步骤如下:
[0219] 算法4.删除重复三元组算法
[0220] map(key,value)
[0221 ] 输入:key为行号;value为三元组
[0222]输出:输出去重后的三元组 [0223]具体算法如下所示:
[0225] reduce(key,valueList)
[0226] 输入:key 为 map输出的 key; value 为对应的 valueList
[0227] 输出:输出去重后的三元组
[0230] 在本实施例中,本算法复杂度分析如下:SPRM算法的复杂性与集中式算法复杂性 的分析不太相同,将SPRM算法的最坏情况下的时间复杂性分为Map阶段的时间复杂性和 Reduce阶段的时间复杂性。假设数据集的规模大小为N,其中模式三元组为n个,在 MapReduce中Map阶段的并行数为k,Reduce阶段传入的实例三元组个数为m,Reduce阶段的 并行数为t。
[0231] 由于SPRM算法对RDFS/0WL规则进行了分类,在TRM构建完成之后,SPRM算法再并行 执行类型2~类型5规则推理,因此SPRM算法的复杂性按照RDFS/0WL规则的类型进行分析, 其中一次推理迭代的复杂度分别为:
[0232] 1)类型1规则推理的复杂性主要为构建TRM的WarShall算法复杂度,为0(n3)
[0233] 2)类型2规则推理的复杂性:
[0234] Map阶段的时间复杂性为:0(n2*N/k)
[0235] Reduce阶段的时间复杂性为:0(m/t)
[0236] 3)类型3规则推理的复杂性:
[0237] Map阶段的时间复杂性为:0(n*N/k)
[0238] Reduce阶段的时间复杂性为:0(m/t)
[0239] 4)类型4规则推理的复杂性:
[0240] Map阶段的时间复杂性为:0(N/k)
[0241 ] Reduce阶段的时间复杂性为:0(m/t)
[0242] 5)类型5规则推理复杂性:
[0243] Map阶段的时间复杂性为:0 (n*N/k)
[0244] Reduce阶段的时间复杂性为:0(m2/t)
[0245] 综上可知,SPRM算法一次推理迭代的时间复杂度为0(n)=0(n3)+0(n 2*N/k)+0(n* N/k)+0(m/t)+0(m2/t)。相比于数据集,模式三元组n的数目非常少,因此可以认为其量级为 常数,且SPRM采用了高效的过滤机制,尽可能地降低m,从而降低整体时间复杂性。
[0246]以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与 修饰,皆应属本发明的涵盖范围。
【主权项】
1. 一种RDF数据分布式语义并行推理方法,其特征在于:具体包括W下步骤: 步骤Sl:加载模式S元组,构建TRM,同时根据RDFS/OWL规则,构建每条规则中可能连接 的连接变量信息; 步骤S2:根据TM和连接变量信息,生成规则标记模型; 步骤S3:将连接变量分成单变量和多变量两种形式,根据TRM和连接变量的类型,将 RDFS/OWL规则分成5种类型,分别设计不同的推理方案; 步骤S4:对Flag_Rulem= 1的规则执行RDFS/OWL规则的并行推理,并输出中间结果; 步骤S5:删除中间结果中的重复=元组; 步骤S6:如果中间结果中包含新的SchemalYiple,则更新TRM和规则标记模型,返回步 骤S4;否则,结束。2. 根据权利要求1所述的一种RDF数据分布式语义并行推理方法,其特征在于: 所述步骤Sl中,对=元组的相关参数进行定义如下: 定义1 :模式S元组SchemaTrip 16指^元组的主语谓语和宾语都在本体文件 OntologyFile中有定义,即为:其中,n表示模式=元组的总数; 若V G {Si, Pj, Ok},V. F e 0曲q1.雌》'的 Ie ,则, (Si,Pj ,0k) G SchemaTriple (1) 定义2:实例S元组InstanceTriple指主语谓语和宾语至少有一个在本体文件 化tologyFile中未定义,是具体的实例,即为:其中,n表示实例S元组的总数; 若VG {Si,Pj,〇k},3 V g Ontoiog炸ile,则, (Si,Pj ,0k) E InstanceTriple 定义3:S元组类型标记Flag_hipleType,用于标识模式S元组与实例S元组,所述S 元组类型标记Flag_T;ripleType定义如下: 其中,n表示=元组项类型标记TripleItem_Flag,用于标识=元组项中的主语或者宾语,所述=元 组项类型标记定义如下: 其中,n表示S元组的,定义4:模式S元组列表SchemaList,用于获取相同谓语或者宾语的模式S元组集合, 所述模式立元组列表SchemaList定义如下:其中,n表示模式=元组的总数,则, SchemaList = Om-Iist U Pt-Iist 其中,0m_list表示满足谓语門G Ir壯:type}的且具有相同宾语的S元组集合,W该宾 语命名;Pt_list表示满足谓语气g : O'pe}的所有具有相同谓语的S元组集合,W该 谓语命名,具体定义如下:3. 根据权利要求1所述的一种RDF数据分布式语义并行推理方法,其特征在于: 所述步骤Sl中,构建TM时进行定义如下: 定义5:有向图的传递闭包定义为:一个n顶点有向图的传递闭包可W定义为一个n阶布 尔矩阵了=扣1^(1《1,4《11),若顶点巧顺点1^存在一条有效路径,则*11^=1,否则*化=0。 定义6:传递闭包关系矩阵Transitive closure relation matrix,简称为TRM,结合定 义4、定义5和WarShal I算法构建TRM; TRM表示有向图的传递闭包中,W类或属性为顶点,W S元组的谓语为关系的布尔矩阵T= {tik}; 谓语为Pj的SchemaTriple的关系矩阵表示为Pj_TRM,其中PjG {subClassOf, subPropertyOf,sameAs,equiv曰IentCl曰SS,equiv曰IentProperty}, 若3 化,户,',A) G SchemaTriple (1 < 么乂1 < 苗,则Pj_TRM.tik=l,表示谓语为Pj 的SchemaTriple的主语Si到宾语Ok存在直接关系,否则Pj_TRM.tik = 0; 其中,TRM分为类关系矩阵CTRM和属性关系矩阵PTRM;其中,CTRM根据谓语subClassOf、 69111¥日16111(:1日3 3、3日111643分别定义5(:_11?1、6(:_11?1、54(:_11?1;?11?1根据谓语 3油口1'〇961'17〇;1^6911;[¥日16]11?1'〇961'17、3日111643分别定义5?_1觀、6?_1觀、54?_11^;由于谓语 为sameAs的SchemaTr iple含类关系和属性关系,TRM的构建中将关系分开,分别构建SAC_ TRM和SAP_TRM。 所述构建TM具体包括W下步骤: 步骤Sll :结合定义4,分别获取所有的SchemaTripIe中谓语为subPropertyOf和 6911;[¥日1日]11?1'〇9日;^7的模式^元组数据,根据获取的5地日1]1日时191日并结合定义6得到^ subPropertyOf 和 WequivalentProperty 为关系的布尔矩阵; 步骤Sl 2:根据WarShall算法获取所有的 W subP;rope;rtyOf 和 WequivalentProperty为 关系的布尔矩阵中传递关系值,从而生成传递闭包关系矩阵SP_TRM、EP_TRM,完成了 SP_TRM 和EP_TRM的构建。4. 根据权利要求1所述的一种RDF数据分布式语义并行推理方法,其特征在于: 所述步骤Sl中,构建连接变量信息时进行定义如下: 定义7 :连接变量LinkVar为在RDFS/0WL规则中用于连接两个前件的模式S元组项,根 据规则描述,连接变量的数量大于1;将每一条规则的连接变量信息W <key, value〉的形式 存储在表Rulem_Table中,其中k巧存储该规则所有用于前件连接的模式S元组项,value存 储该规则结论部分的模式=元组项。5. 根据权利要求1所述的一种RDF数据分布式语义并行推理方法,其特征在于: 所述步骤S3中具体为:采用SPRM算法根据TRM和连接变量的类型,对RDFS/OWL规则进行 分类,引用RDFS规则时采用RDFS-规则编号的形式,引用OWL化rst规则时采用OWk规则编 号的形式;给每条规则分配一个规则名称标记,规则名称标记即为该规则所对应的名称; 畑FS/0WL规则的5种类型的如下: 类型1: SchemaTriple与SchemaTriple组合的规则,采用TRM直接进行推理; 类型2 = SchemalYiple与InstancelYiple组合的规则,其根据TRM进行推理,无需结合连 接变量信息; 类型3 = SchemalYiple与InstancelYiple组合的规则,其连接变量信息为单变量,需要 结合TRM进行推理; 类型4: SchemaIYiple与InstancelYiple组合的规则,其连接变量信息为单变量,无需 结合TRM进行推理; 类型5: SchemaTriple与InstanceTriple组合的规则,其连接变量信息为多变量; 对任意一条规则的定义为:假设第m条规则表示如下: Ru 16皿:Cinl , Cm2 , ?.. , Cmk , ?.. , Cmn-^民6 SU11 定义规则标记Flag_Rulem,用于标记该规则是否为不可能激活的规则; 当为Flag_Rulem = 0,则意味着不存在满足该规则的条件,无需激活该规则;假设Pj为 Rulem 中某个前件的谓语,其中 Pj G {subClassOf, subPropertyOf, sameAs , equivalentClass ,equivalentProperty},Pj所对应的TRM设为Pj_TRM; 结合定义6和定义7,规则标记Flag_Rulem根据RDFS/OWL规则的分类定义如下: 1) 若RulemG {类型1,类型2},贝IJ2) 若RulemG {类型3,类型4,类型引,贝IJ6. 根据权利要求1所述的一种RDF数据分布式语义并行推理方法,其特征在于: 所述步骤S4中,结合MapReduce计算框架并行完成RDFS/OWL规则的推理,在构建TRM阶 段就完成类型1中规则的推理,在RDFS/OWL规则的并行推理阶段针对类型2、类型3、类型4和 类型5进行分布式的并行推理,从而在一次MapReduce任务中实现全部规则的一次推理; 对于类型2、类型3W及类型4的规则,根据规则标记模型和连接变量信息,经过Map阶 段的并行推理,即可获取推理结果=元组数据;对于类型5的规则,通过对满足推理条件的 数据进行冗余输出W确保后续并行数据推理的正确性,即将满足同一规则的实例=元组输 出设置为相同的键key, W确保Reduce阶段中,同一规则中的所有规则前件能够根据连接变 量完成连接并输出结果; Map阶段的RDFS/OWL规则的并行推理算法具体为: 输入:k巧为行号;value为实例=元组 输出:key为推理结果=元组或规则标记与连接变量的组合;value为任意值或带标记 的S元组项; Reduce阶段的畑FS/OWL规则并行推理算法具体为: 输入:删除重复的=元组数据阶段的输出结果 输出:k巧为输出=元组;value为任意值。7.根据权利要求1所述的一种RDF数据分布式语义并行推理方法,其特征在于: 所述步骤S5中,通过连接变量信息和规则标记对实例=元组进行过滤,减少大量无用 的=元组数据在分布式系统中的传输损耗,通过构造传递闭包矩阵减少推理的迭代次数, 用W提高推理的效率;根据推理结果,实时地删除重复的=元组数据,用W进一步提高后续 迭代推理的效率; 在每个Map之后执行combiner^及每次推理后删除重复的S元组数据, 其中,combiner为删除map阶段输出的重复数据,具体为: 输入:Map阶段的RDFS/0WL规则的并行推理算法的输出结果 输出:key为推理结果=元组或规则标记与连接变量的组合;value为任意值或带标记 的S元组项; 每次推理后删除重复=元组数据的算法具体为: 输入:k巧为行号;value为=元组 输出:输出去重后的S兀组。
【文档编号】G06F17/27GK105912721SQ201610293055
【公开日】2016年8月31日
【申请日】2016年5月5日
【发明人】汪璟玢, 叶怡新, 郑翠春
【申请人】福州大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1