一种起点确定的RDF有向无环图查询的数据清理方法与流程

文档序号:12364221阅读:250来源:国知局
一种起点确定的RDF有向无环图查询的数据清理方法与流程
本发明涉及概率RDF图查询的数据清理技术,尤其涉及一种起点确定的RDF有向无环图查询的数据清理方法。
背景技术
:数据清理主要用于概率数据库查询当中,用户在前端发出一个查询,根据这个查询,在一定的预算下,找出一些不确定的节点或边通过众包平台来得到确定的结果,以此来更新数据库,使得下一次该查询的确定性提高得最大。概率图查询一般用熵来衡量查询结果的不确定性,而数据清洗很少用在概率RDF图查询当中。RDF数据库是由<s,p,o>这样的多个三元组组成的数据库。可以把RDF数据库转化为一张图,参阅图1,其中一个<s,p,o>三元组相当于图中的一条边。RDF查询语句可以转化为查询图,如:select?x,?ywhere{Aa?x,?xb?y,?ycI}相当于图2的查询图。本文中的概率数据库模型则需要限定概率RDF图中一个节点可以有多个属性,同一节点的同一属性互斥且概率之和小于等于1。另外限制查询图是有向无环图,且起点是已知的。图3表示了这个查询图在图1中查询结果。目前,还没有针对RDF图查询的数据清理。本发明基于上述概率RDF图模型创新地提出了一种起点确定的RDF有向无环图查询的数据清理方法,针对这种起点是确定的RDF有向无环图查询做数据清洗,找出一条边去众包,使得下一次该查询的确定性提升地最大。技术实现要素:本发明提出了一种起点确定的RDF有向无环图查询的数据清理方法,包括以下步骤:步骤一:在概率RDF图中进行起点确定的RDF有向无环图查询获得与之匹配的同构图;步骤二:量化清洗一条边时所得的期望质量提升模型;步骤三:遍历同构图获得有效属性集EA,根据所述有效属性集访问所述概率RDF图来获得有效边集EE;步骤四:通过朴素算法、剪枝算法一、或剪枝算法二在所述有效边集中选出使得所述期望质量提升模型提升最大化的边。本发明提出的所述起点确定的RDF有向无环图查询的数据清理方法中,所述期望质量提升以如下公式表示:EΔH=H(R)-p(eijk=1)H(R|eijk=1)-p(eijk=0)H(R|eijk=0)=H(eijk)-(H(R,eijk)-H(R))式中,H(·)表示熵,p(·)表示某一事件的概率,查询结果R表示与查询图匹配的同构图及其相应的概率(包括PHI,即查不到任何匹配图时的情形),H(R|eijk=0)表示当众包边eijk时且返回为0时的查询结果的熵,H(R|eijk=1)表示当众包边eijk时且返回为1时的查询结果的熵,H(eijk)表示众包平台返回eijk的值的熵,H(R,eijk)表示查询结果R与eijk的返回值的联合熵。3.如权利要求1所述的起点确定的RDF有向无环图查询的数据清理方法,其特征在于,所述朴素算法包括以下步骤:步骤a1:遍历同构图链表获得有效属性集EA;步骤a2:根据有效属性集访问RDF数据图来获得有效边集EE;步骤a3:对于每条边遍历同构图链表,计算与其对应的集合一、集合二与集合三的概率,然后代入所述期望质量提升模型中求得其期望质量提升值;步骤a4:从所述有效边集中选取使所述模型质量提升值最大的那条边为所求边。4.如权利要求1所述的起点确定的RDF有向无环图查询的数据清理方法,其特征在于,所述剪枝算法一包括以下步骤:步骤b1:遍历同构图获得有效属性集EA;步骤b2:根据有效属性集访问RDF数据图来获得有效边集EE;步骤b3:将所述有效边集中的边按照接近0.5的程度排序,步骤b4:定义变量maxDeltaH,设其初值为0;步骤b5:从排好序的有效边集中逐个取出边,对每个取出的边访问同构图链表来计算其模型质量提升值,如果模型质量提升值大于当前的maxDeltaH,那么将maxDeltaH设置成当前所访问边的模型质量提升值,同时将该边设为模型质量提升值最大的边;如果该边的熵小于maxDeltaH,则表示这条边及以后的边的模型质量提升值不可能再大于maxDeltaH了,返回maxEdge。5.如权利要求1所述的起点确定的RDF有向无环图查询的数据清洗方法,其特征在于,所述剪枝算法二包括以下步骤:步骤c1:遍历同构图链表建立一张二维表,每行表示同属性下的不同边,不同列表示不同的属性,且第一列仅记录属性及每行的概率和;遍历同构图的同时将其概率加到其包含所的边上;最后每条边记录了其集合一的概率,第一列属性的概率减去集合一的概率为其集合二的概率,遍历同构图的同时计算所有同构图的概率之和;步骤c2:按照二维表遍历RDF数据图构造有效边集,并记录每个元素在二维表中的位置;步骤c3:将EE中的边按照接近0.5的程度排序;步骤c4:定义变量maxDeltaH,设其初值为0;步骤c5:从排好序的有效边集中逐个取出边,对每个取出的边访问二维表表来计算其模型质量提升值,如果模型质量提升值大于当前的maxDeltaH,那么将maxDeltaH设置成当前所访问边的模型质量提升值,同时将该边设为EΔH最大的边;如果这条边的熵小于maxDeltaH,则表情这条边及以后的边的模型质量提升值不可能再大于maxDeltaH了,返回maxEdge。本发明的有益效果在于针对于某查询,尽快找到一条边用于众包,提高未来查询的确定性。发现能够提高确定性的边在有效边集中,并且设计3种算法尽快从有效边集中找出使得确定提高最大的边。附图说明图1为现有技术中的概率RDF图。图2为现有技术中的RDF有向无环查询图。图3为图2在图1中查询结果集(PHI表示查不到同构图)。图4显示的是本发明起点确定的RDF有向无环图查询的数据清理方法的流程图。图5为剪枝算法二中继上述例子的二维表与有效边链表的关系。图6为随机生成的数据集的大小。图7为有效属性、有效边及同构图的平均数量柱形图。图8为选择随机边,选取最靠近0.5的边,与最好边所带来的平均模型质量提升值的折线图。图9为不同数据库下不同算法下选出使得EΔH最大化的边所需要的平均时间。图10为朴素算法流程图。图11为剪枝算法一流程图。图12为剪枝算法二流程图。具体实施方式结合以下具体实施例和附图,对发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。图4显示的是本发明起点确定的RDF有向无环图查询的数据清理方法的流程图,具体包括以下步骤:步骤一:在概率RDF图中进行起点确定的RDF有向无环图查询获得与之匹配的同构图;步骤二:量化清洗一条边时所得的期望质量提升模型;期望质量提升模型包括集合一、集合二与集合三;步骤三:遍历同构图获得有效属性集,根据有效属性集访问概率RDF图来获得有效边集;步骤四:通过朴素算法、剪枝算法一、或剪枝算法二在有效边集中选出使得期望质量提升模型提升最大化的边。其中,本发明将R表示成查询结果集,ri表示与查询图同构的结果图或PHI(PHI查不到同构图)。利用上述的例子,其查询结果如表1。用熵(H)表示改查询的不确定性,那么其中ri∈R假设选的那条边为(eijk表示节点i的属性j的第k个可能的边),则可以将R划分为4个子集:R1={ri|eijk∈ri}R2={ri|eijl∈ri,l≠k}R3={ri|nij∉ri,ri≠PHI}]]>R4={PHI}若众包平台返回eijk=1,那么若r∈R1,则p(r|eijk=1)=p(r)/p(eijk=1);若r∈R2,则p(r|eijk=1)=0;若r∈R3,则p(r|eijk=1)=p(r);若r=PHI,则p(r|eijk=1)=1-p(R1)/p(eijk=1)-p(R3);若众包平台返回eijk=0,那么若r∈R1,则p(r|eijk=1)=p(r)/p(eijk=1);若r∈R2,则p(r|eijk=1)=0;若r∈R3,则p(r|eijk=1)=p(r);若r=PHI,则EΔH=H(R)-p(eijk=1)H(R|eijk=1)-p(eijk=0)H(R|eijk=0)=H(eijk)-(H(R,eijk)-H(R))其中,H(R,eijk)-H(R)=-Σr∈R(p(r,eijk=1)logp(r,eijk=1)+p(r,eijk=0)logp(r,eijk=0)-p(r)logp(r))=-Σr∈R1(p(r)logp(r)-p(r)logp(r))-Σr∈R2(p(r)log(r)-p(r)logp(r))-Σr∈R3(p(r)p(eijk=1)logp(r)p(eijk=1)+p(r)p(eijk=0)logp(r)p(eijk=0)-p(r)logp(r))-(p(eijk=1)-p(eijk=1)p(R3)-p(R1))log(p(eijk=1)-p(eijk=1)p(R3)-p(R1))-(p(eijk=0)-p(eijk=0)p(R3)-p(R2))log(p(eijk=0)-p(eijk=0)p(R3)-p(R2))+(1-p(R1)-p(R2)-p(R3))log(1-p(R1)-p(R2)-p(R3))=-(p(eijk=1)logp(eijk=1)+p(eijk=0)logp(eijk=0))logp(R3)-(p(eijk=1)-p(eijk=1)p(R3)-p(R1))log(p(eijk=1)-p(eijk=1)p(R3)-p(R1))-(p(eijk=0)-p(eijk=0)p(R3)-p(R2))log(p(eijk=0)-p(eijk=0)p(R3)-p(R2))+(1-p(R1)-p(R2)-p(R3))log(1-p(R1)-p(R2)-p(R3))]]>目标就是找出eijk并且最大化EΔH。定义有效属性集EA={a|a∈r,r∈R},有效边集EE={e|e∈a,a∈A}。如,上例中,EA={A.a,B.b,C.b,E.c,F.c},EE={AaB,AaC,AaD,BbE,CbE,CbF,CbG,EcH,EcI,FcI,FcJ}。定理1.若选择那么EΔH=0证明:若众包平台返回e=1,那么p(r|e=1)=p(r),所以H(R|e=1)=H(R);若众包平台返回e=0,那么p(r|e=0)=p(r),所以H(R|e=0)=H(R)。所以EΔH=p(eijk=1)H(R|eijk=1)-p(eijk=0)H(R|eijk=0)=0。因此,只要选择集合EE中的某条边即可。计算ΔH是可以在多项式时间内完成的,因此可行。本发明提出了三种算法来得到使得EΔH最大化的那条边,即朴素算法,剪枝算法一和剪枝算法二。如图10所示,是本发明中的朴素算法的流程图,其中,isoGraph表示同构图链表,j是循环变量。先访问同构图链表获得EA,然后方法RDF数据图获得EE。对于EE中的每条边判断第j个同构图是否包含当前访问边,若包含,则其对应的p(R1)加上此同构图的概率;若包含与其互斥的边,则其对应的p(R2)加上此同构图的概率;否则,其p(R3)加上此同构图的概率。这样,算出EE中所有边的EΔH,最后从中取出使得EΔH最大的边。朴素算法是最基本的方法,时间复杂度最高,而剪枝算法一和剪枝算法二可以大大减少时间复杂度。如图11所示,本发明中的剪枝算法一,与朴素算法一样,先访问同构图和RDF数据图获得EA和EE。然后将EE中的边按照接近0.5的程度排序,越靠近0.5,排得越前面。H(eijk)当eijk=0.5时,得到最大值;当0<eijk<0.5时,单调递增;当0.5<eijk<1时,单调递减。所以这里的主要思想就是在逐个访问排序好的EE时,记录目前使得EΔH最大的边maxEdge和当前EΔH的最大值maxDeltaH。因此,定义变量maxDeltaH和maxEdge,设其初值分为0和null;从排好序的EE中逐个取出边,对每个取出的边遍历同构图链表计算其对应的p(R1),p(R2)和p(R3),从而计算出其EΔH。如果EΔH大于的maxDeltaH,那么将maxDeltaH设置成当前所访问边(用ecur表示当前访问的边)的EΔH,同时将maxEdge设为当前这条边。如果这表边的熵H(ecur)小于maxDeltaH,说明这条边及以后的边,它们的EΔH不可能再大于EImax了,所以返回maxEdge。如图12所示,本发明中的剪枝算法二,主要在变遍历同构图时,就记录每条边的p(R1),可以通过一张二维表来实现,每行记录同属性的不同边,第一列仅记录该行的属性和这一行所有边的p(R1)的和。那么,对某条边来说,p(R2)等于该边相应的第一列的概率减去其p(R1)。这里也要一个按靠近0.5程度排序的有效边集EE,不过其记录的是在二维表中的位置,那些不在二维表中的边的p(R1)则等于0。这样就不用在访问EE中的每一条边时,再去遍历同构图链表了。其余,类似于剪枝算法了。二维表与有效边链表可参考图5中的例子。只要记录每条边的R1的概率即可,其R2的概率等于与该边互斥的那些边的R1的概率之和。因此,可以设计一张二维表,每行的节点表示同一属性的互斥边,表的第一列表示该行的属性,不同行表示不同属性,每条边的R1概率值可以在获得所有有效边的同时计算出,只要扫描一遍同构图链表即可。这样,在遍历有效边时,不用再去扫描同构图链表可以直接算出EΔH。本发明的效果如图6-图9所示,图6表示的是随机生成的数据集,共4个,横轴表示不同数据集每个节点每个属性的平均边数,纵轴表示总的边数(即RDF三元组个数);在每个数据集上执行约100个平均直径为6的图查询,计算其平均数据。图7表示有效属性,有效边及同构图的平均数量。图8表示选择随机边,选取最靠近0.5的边,与最好边所带来的质量提升。图9表示表示不同数据库在三种算法下选出使得EΔH最大化的边所需要的时间(毫秒)。可以看出,朴素算法所需时间最多,剪枝算法二的所需时间比剪枝算法一的所需时间略少。本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1