CN111309979A - 一种基于邻居向量的RDF Top-k查询方法 - Google Patents
一种基于邻居向量的RDF Top-k查询方法 Download PDFInfo
- Publication number
- CN111309979A CN111309979A CN202010122931.4A CN202010122931A CN111309979A CN 111309979 A CN111309979 A CN 111309979A CN 202010122931 A CN202010122931 A CN 202010122931A CN 111309979 A CN111309979 A CN 111309979A
- Authority
- CN
- China
- Prior art keywords
- node
- label
- nodes
- matching
- graph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于邻居向量的RDF Top‑k查询方法,该方法在离线阶段,将RDF数据和SPARQL查询分别建模为RDF数据图和SPARQL查询图,并构造邻接表、逆邻接表、标签节点反向列表索引、节点邻居节点标签列表索引、节点h‑hop邻居节点集合、P‑In和P‑Out等索引;在匹配阶段,采用一种基于卡方统计技术对候选节点的邻居节点的结构以及邻居节点的标签进行相似度量,并采用生成树的方式进行扩展匹配;最后,得到Top‑k个和SPARQL查询图近似匹配序列,并输出每个序列中SPARQL查询图中变量节点所匹配的数据图节点的标签。该方法避免了代价高昂的图同构和编辑距离计算,对标签和结构不匹配的情况有很强的鲁棒性,能够准确高效地回答SPARQL近似查询问题。
Description
技术领域
本发明涉及大规模RDF数据查询技术领域,具体是一种基于邻居向量的 RDF Top-k查询方法。
背景技术
资源描述框架(Resource Description Framework,简称RDF)是由W3C提 出的对万维网上信息进行描述的一个框架,它为Web上的各种应用提供信息描 述规范。SPARQL是W3C为实现RDF数据的检索标准所定义的查询语言。许多 应用在生成RDF数据时产生错误数据(如手动数据输入引入错误等)从而导致 RDF数据变脏。此外,在智能问答场景中,在将用户提出的自然语言问题转化 为符合SPARQL查询标准的问题时,通常会引入标签噪声和结构噪声。对带有 噪声的SPARQL查询执行精确查找,系统很难找出完全符合SPARQL查询问题的答案,因此,无法有效满足用户的查询需求。如何在有脏数据和带有噪音的 SPARQL的情况下,获得用户满意的Top-k查询,是当前研究RDF查询的一个 热点。
目前,RDF数据上的Top-k查询主要为关键词查询,一种方法为对关键词直 接构造查询结果的方式,另一种方法通常是对关键词构造出形式化查询结果进行 查询。基于关键词直接构造查询结果的方法,通常需要借助有效的索引,如基于 关键词的倒排索引,摘要索引等进行子图定位,在RDF数据中找到包含关键词 的最小子图结构。而对关键词构造出形式化查询的方法,通常包括关键词映射、 构建查询和对查询进行排序三个步骤。
针对目前SPARQL中存在的噪声等问题,本发明提供一种基于邻居向量的 近似子图匹配方法。在离线阶段,将RDF数据和SPARQL查询分别建模为RDF 数据图和SPARQL查询图,并构造邻接表、逆邻接表、标签节点反向列表索引、 节点邻居节点标签列表索引、节点h-hop邻居节点集合等、P-In和P-Out。在匹 配阶段,采用一种基于卡方统计技术对节点的邻居节点的结构以及邻居节点的标 签进行相似度量,并采用树生成的方式进行扩展匹配。最后,得到Top-k个和 SPARQL查询图近似的匹配序列,并输出SPARQL查询变量对应的匹配节点标 签。
发明内容
本发明的目的在于提供一种邻居向量的Top-k RDF查询方法,该方法采用一 种卡方统计方法对候选节点的背景结构、标签分布和h-hop邻居节点进行相似度 量,并采用生成树的方式进行扩展;该方法能够有效输出带有噪声的Top-k RDF 查询结果。
实现本发明目的的技术方案是:
一种基于邻居向量的RDF Top-k查询方法,所述RDF的数据集为<S,P, O>三元组的集合,查询问题满足SPARQL标准,包括如下步骤:
1)分别将RDF数据和SPARQL查询建模为有向标签RDF数据图G和 SPARQL查询图Q,使用邻接表对RDF数据图G和SPARQL查询图Q进行存储, 并构建逆邻接表;
2)分别为RDF数据图G和SPARQL查询图Q创建标签节点反向列表索引 ILG和ILQ,创建节点邻居节点标签列表索引LNLG和LNLQ,创建边标签相关的 起始节点和终止节点列表索引P-In和P-Out,为RDF数据图G的每个节点u创 建h-hop邻接节点集合;
3)为SPARQL查询图Q中的每一个节点构建节点标签匹配对,得到节点标 签匹配对列表VPL;
5)从堆PH中提取卡方值最大的三元组以节点<u,v>为 根以生成树的方式进行扩展匹配,得到一个近似匹配序列M(i),并添加到近似 匹配序列集合M中;重复该步骤,直到得到满足用户所需的k个近似匹配序列;
6)输出M中每一个近似匹配序列中查询图Q中变量节点所匹配的数据图G 中节点的标签。
所述的步骤1),具体包括如下步骤:
1-1)将RDF数据建模为有向标签RDF数据图G=<V,Lv,E,Le>,其中,V 表示RDF数据图G中的节点集合,V中的每一个节点对应RDF三元组<S,P, O>中的S和O;Lv表示RDF数据图G中的节点的标签集合;E表示图G中节 点之间有向边的集合,对应于RDF三元组<S,P,O>中的S和O之间的P;Le表示图G中有向边标签的集合;使用邻接表的方式存储RDF数据图,同时构建 逆邻接表;
1-2)将SPARQL查询建模为有向标签SPARQL查询图Q=<V′,L′v,E′,L′e>, 其中,V′表示SPARQL查询图中的节点集合,V′中的每一个节点对应SPARQL 三元组<S,P,O>中的S和O;L′v表示SPARQL查询图中的节点的标签集合, 若SPARQL查询中S和O为变量节点,则采用符号{*}作为变量节点标签;E′表 示SPARQL查询图中节点之间有向边的集合,对应于SPARQL三元组<S,P,O>中 S和O之间的P;L′e表示SPARQL查询图中有向边标签的集合;使用邻接表方 式存储SPARQL查询图,同时构建逆邻接表。
所述的步骤2),具体包括如下步骤:
2-1)为RDF数据图G构建标签节点反向列表索引ILG,若给定一个标签L(v), RDF数据图G中存在该标签,快速定位到标签为L(v)的节点v,即将标签映射 到节点ID;为SPARQL查询图Q构建标签节点反向列表索引ILQ,给定一个标 签能快速定位到查询图节点ID;
2-2)为RDF数据图G的每一个节点v构建邻居节点标签列表索引其中,NG(v)表示节点v的邻居节点,在构建的过程 中,将节点的邻居节点标签按照标签ID从小到大排序;为SPARQL查询图构建 节点邻居节点标签列表索引其中,NQ(u)表示节点u 的邻居节点,节点的邻居节点标签按照标签ID从小到大排序;
2-3)在SPARQL查询中,为有效减少变量节点ui的候选域,分别构建邻接 表、逆邻接表、边标签相关的起始节点和终止节点列表索引P-In和P-Out;具体 的构造方式为:若变量节点ui存在有向出射边<ui,uj>,其中uj为节点ui的邻接点, 若uj为常量节点,则通过构建节点uj的逆邻接表以减少变量节点ui的候选域; 若uj为变量节点,则通过在数据图中G构建有向边标签<ui,uj>的起始节点的集合 P-In,以减少变量节点ui的候选域;若变量节点ui存在有向入射边<uj,ui>,若uj为常量节点,则通过节点uj的邻接表以减少变量节点ui的候选域;若uj为变量 节点,则可以通过在数据图中G构建有向边<ui,uj>标签的终止节点的集合P-Out, 以减少变量节点ui的候选域;对于查询图中的变量节点,使用以上四种变量节点索引进一步减少变量节点的候选集;
2-4)为RDF数据图G中每一个节点v构造h-hop邻居节点集合,表示为Nh(v)={<v′,i>:d(v,v′)<h,i≤h},其中,v′表示RDF数据图G中与节点v的最 短路径长度小于等于h的节点。
所述的步骤3)具体是:对于SPARQL查询图Q中的每一个节点ui,若该 节点为常量节点,通过RDF数据图中节点标签反向列表索引ILG获得和节点ui标签相同的节点vi,构建节点标签匹配对(ui,vi)并插入到节点标签匹配对列表VPL 中;若节点ui为变量节点,其标签未知,候选节点为RDF数据图中的所有节点, 通过步骤2)所构建的邻接表、逆邻接表、P-In和P-Out索引以获得节点ui的最 小候选域CR(ui),并将节点标签匹配节点对(ui,v′i)插入到节点对列表VPL中,其 中v′i∈CR(ui)。
所述的步骤4),具体包括如下步骤:
4-1)计算节点标签匹配对的匹配符号列表:依次从节点标签匹配序列VPL 中取出一个节点标签匹配对(ui,vi),假设RDF数据图G中节点ui的两个邻居节 点分别为x和y,其对应的标签分别为和SPARQL查询图Q中节点的vi的 两个邻居节点分别a和b,其对应的标签分别为和节点ui的两个邻居节点 标签和节点的vi的两个邻居节点标签的标签匹配程度可以使用三 种符号类型s2,s1和s0进行描述,计算规则如下所示:
标签重叠的符号的优先级为s2>s1>s0,因此,每一个节点标签匹配对的邻 接节点标签匹配情况可以表示为一个由s2,、s1和s0组成的符号序列S(ui,vi);若 查询图中节点不存在邻接节点,则默认节点对标签匹配符号序列为空,查询图节 点ui的两两邻居节点标签的组合的数量为d(d-1)/2,因此,节点标签匹配节点对 符号列表的长度为d(d-1)/2;若候选节点vi的邻居节点的数量少于查询图节点ui的数量,则为节点vi构造一个长度为d(d-1)/2的临时邻居节点标签序列,将节点vi的邻居节点标签序列全部复制到节点vi的临时邻居节点标签序列,其余 deg(ui)-deg(vi)个空标签位使用字符{#}进行填充,字符{#}不与任何标签匹配;
4-2)计算节点标签匹配预期标签匹配符号s2、s1和s0的出现概率:假设数 据图中标签的数量为L,且RDF数据图和SPARQL查询图中的标签都是独立分 布的,候选节点vi的邻居节点的数量为d=deg(vi),查询图中某个节点与数据图中 某个节点标签相同的概率为1/L,不相同的概率为(1-1/L),则节点ui的一个邻居 节点标签与节点vi的任一邻居节点不相同的概率为(1-1/L)d,对于节点标签匹 配对(ui,vi),符号s0、s1和s2出现的概率分别为:
pr(s0)=((1-1/L)d)2 (1)
pr(s1)=2·(1-(1-1/L)d)(1-1/L)d (2)
pr(s2)=(1-(1-1/L)d)2 (3)
标签匹配符号s0、s1和s2构成了完整的事件空间即pr(s0)+pr(s1)+pr(s2)=1;
4-3)计算节点标签匹配对卡方值:采用卡方统计量χ2计算事件期望频数和 观察频数的之间的标准化平方差,计算公式如下:
其中Oi和Ei分别为事件i观察频数和期望频数,期望频数Ei=len×pi,其 中len为观察的总次数;χ2统计量遵循卡方分布,p-value越低,χ2统计量越高, 则统计显著性越高;因此,检索相似度更高的子图转化为查找具有χ2值较大的 子图,对于一个节点标签匹配对,分别使用步骤4-2)中公式(1),(2)和(3) 计算查询图每个节点标签匹配对符号s0、s1和s2预期出现概率,并结合符号s0、 s1和s2实际出现次数计算每个节点标签匹配对的卡方值;
所述的步骤5),具体包括如下步骤:
5-1)从主堆PH中提取卡方值最大的节点标签匹配对<u,v>,插入到匹配序 列M(i)中,并在RDF数据图G中和SPARQL查询图Q中分别将u和v标记为 已匹配节点,在匹配过程中,已经匹配的节点不能重新匹配;
5-2)构建辅助大根堆SH,创建u为中心的邻接顶点和以v为中心的h-hop 邻居节点标签匹配对,匹配节点对中的节点具有相同的标签;计算该匹配节点对 的节点匹配程度函数Fh(u′,v′),其中u′为u的邻接节点,v′为v的邻接节点,并 将三元组<u′,v′,Fh(u′,v′)>插入到辅助堆SH中;节点匹配程度函数表示为:
其中节点v″是与节点v′的最短距离小于等于h且标签相等的节点;d(v″,v′) 表示节点v″是到节点v′的最短距离;α(0<α<1)为距离影响因子,αd(v″,v′)表示 节点v″和节点v′的邻近度,随着距离的增大而减小;β为边标签影响因子,取 值为0<β<0.1;的计算方法采用公式(4)进行计算;
5-3)若SPARQL查询图中的节点尚未匹配完毕且辅助大根堆SH不空,从 辅助大根堆SH中,提取具有最大节点匹配值的节点标签匹配对<u,v>,将 <u,v>加入到当前近似匹配序列M(i)中,并分别标记u和v为已匹配节点;若 SPARQL查询图中的节点全部匹配完毕或者辅助大根堆SH为空,则停止匹配, 将序列M(i)加入到近似匹配序列集合M中;
5-4)为了获取用户所需要的前k个近似匹配查询,首先,将辅助大根堆SH 置空,并从主大根堆PH中提取尚未匹配且卡方值的最大的匹配节点对,重复该 步骤,直到得到一个大小为k的近似匹配序列M。
所述的步骤6),具体是输出近似匹配序列集合M中每一个序列M(i)中查询 图为变量对应的RDF数据图中的节点标签。
本发明提供的一种基于邻居向量的RDF Top-k查询方法,该方法采用近似子 图匹配技术用于回答带有标签噪声和结构噪声的SPARQL查询。在匹配阶段之 间,构建变量节点索引以缩小变量节点的候选域,构建节点的邻居节点标签集合, 节点h-hop邻居节点集合等索引。在线匹配阶段,采用一种卡方统计量用于衡量 查询节点和候选节点的标签相似度和结构相似度,并充分考虑查询图节点的h-hop邻居节点,以增加查询图匹配的相似性。该方法避免了代价高昂的图同构 和编辑距离计算,对标签和结构不匹配的情况有很强的鲁棒性,能够准确高效的 回答SPARQL近似查询问题。
附图说明
图1为本发明实施例中本方法的整体框架图。
具体实施方式
下面结合实施例对本发明内容作进一步阐述,但不是对本发明的限定。
实施例:
一种基于邻居向量的RDF查询方法,针对大规模RDF数据进行查询,该方 法主要分为离线阶段和在线阶段,离线阶段主要包括RDF数据的预处理和索引 的构建。在线阶段主要使用卡方值计算相似节点的匹配程度,并以树的方式进行 扩展近似匹配。以RDF数据集三元组的集合为例,RDF的数据集为<S,P,O> 三元组的集合,查询问题符合SPARQL标准的,由于在实际的查询问题通常很 少出现P为变量的情况,因此本发明不考虑P为变量的情况,如图1所示,包 括如下步骤:
1)分别将RDF数据和SPARQL查询建模为有向标签RDF数据图G和 SPARQL查询图Q,使用邻接表对RDF数据图G和SPARQL查询图Q进行存储, 并构建逆邻接表,具体步骤如下:
1-1)将RDF数据建模为有向标签RDF数据图G=<V,Lv,E,Le>,其中,V表 示RDF数据图G中的节点集合,V中的每一个节点对应RDF三元组<S,P,O>中 的S和O,即RDF三元组中的S和O可以映射到唯一节点;Lv表示RDF数据 图G中的节点的标签集合;E表示图G中节点之间有向边的集合,对应于RDF 三元组<S,P,O>中S和O之间的P;Le表示图G中有向边标签的集合。使用 邻接表的方式存储RDF数据图,同时构建逆邻接表;
1-2)将SPARQL查询建模为有向标签SPARQL查询图Q=<V′,L′v,E′,L′e>, 其中,V′表示SPARQL查询图中的节点集合,V′中的每一个节点对应SPARQL 三元组<S,P,O>中的S和O;L′v表示SPARQL查询图中的节点的标签集合,若 SPARQL查询中S和O为变量节点,则采用符号{*}作为变量节点标签;E′表示SPARQL查询图中节点之间有向边的集合,对应于SPARQL三元组<S,P,O>中的 S和O之间的P;L′e表示SPARQL查询图中有向边标签的集合。使用邻接表方 式存储SPARQL查询图,同时构建逆邻接表。
2)分别为RDF数据图G和SPARQL查询图Q创建标签节点反向列表索引 ILG和ILQ,创建节点邻居节点标签列表索引LNLG和LNLQ,创建边标签相关的 起始节点和终止节点列表索引P-In和P-Out,为RDF数据图G的每个节点u创 建h-hop邻接节点集合,具体包括如下步骤:
2-1)为RDF数据图G构建标签节点反向列表索引ILG,即将标签哈希映射 到RDF数据图节点。若给定一个标签L(v),若RDF数据图G中存在该标签, 能快速定位到标签为L(v)的节点v,即将标签映射到节点ID。为SPARQL查询 图Q构建标签节点反向列表索引ILQ,给定一个标签能快速定位到查询图节点ID, 若给定标签{*},则可以映射到查询图Q所有变量节点;
2-2)为RDF数据图G的每一个节点v构建邻居节点标签列表索引其中,N(v)表示节点v的邻居节点。在构建的过程中, 将节点的邻居节点标签按照标签ID从小到大排序。为SPARQL查询图构建节点 邻居节点标签列表索引其中,NQ(u)表示节点u的 邻居节点,节点的邻居节点标签按照标签ID从小到大排序;
2-3)在SPARQL查询中,为有效减少变量节点ui的候选域,分别构建邻接 表、逆邻接表、边标签相关的起始节点和终止节点列表索引P-In和P-Out。具体 的构造方式如下:若变量节点ui存在有向出射边<ui,uj>,其中uj为节点ui的邻接 点,若uj为常量节点,则通过构建节点uj的逆邻接表以减少变量节点ui的候选 域;若uj为变量节点,则通过在数据图中G构建有向边标签<ui,uj>的起始节点的 集合P-In(ei)={vi|<vi,vj>∈E,Le<vi,vj>=L′e<ui,uj>},以减少变量节点ui的候 选域;若变量节点ui存在有向入射边<uj,ui>,若uj为常量节点,则通过节点uj的邻接表以减少变量节点ui的候选域;若uj为变量节点,则可以通过在数据图 中G构建有向边<ui,uj>标签的终止节点的集合P-Out(ei)= {vj|<vi,vj>∈E,Le<vi,vj>=L′e<ui,uj>},以减少变量节点ui的候选域。对于查 询图中的变量节点,使用以上四种变量节点索引可以进一步减少变量节点的候选 集。
2-4)为RDF数据图G中每一个节点v构造h-hop邻居节点集合,表示为 Nh(v)={<v′,i>:d(v,v′)<h,i≤h},其中v′表示RDF数据图G中与节点v的最短 路径长度小于等于h的节点。
3)为SPARQL查询图Q中的每一个节点构建节点标签匹配对,得到节点标 签匹配对列表VPL;具体是:对于SPARQL查询图Q中的每一个节点ui,若该 节点为常量节点,通过RDF数据图中节点标签反向列表索引ILG获得和节点ui标签相同的节点vi,构建标签匹配节点对(ui,vi)并插入到节点标签匹配对列表VPL 中;若节点ui为变量节点,其标签未知,候选节点为RDF数据图中的所有节点, 通过步骤3所构建的邻接表、逆邻接表、P-In和P-Out索引以获得节点u最小候 选域CR(ui),并将节点标签匹配对(ui,v′i)插入到节点标签匹配列表VPL中,其 中v′∈CR(ui)。
4-1)计算节点标签匹配对的匹配符号列表。依次从节点标签匹配序列VPL 中取出一个节点标签匹配对(ui,vi)。假设RDF数据图G中节点ui的两个邻居节 点分别为x和y,其对应的标签分别为和SPARQL查询图Q中节点的vi的 两个邻居节点分别a和b,其对应的标签分别为和节点ui的两个邻居节点 标签和节点的vi的两个邻居节点标签的标签匹配程度可以使用三 种符号类型s2,s1和s0进行描述,计算规则如下所示:
标签重叠的符号的优先级为s2>s1>s0。因此,每一个节点标签匹配对的邻 接节点标签匹配情况可以表示为一个由s2,s1和s0组成的符号序列S(ui,vi)。若查 询图中节点不存在邻接节点,则默认节点对标签匹配符号序列为空。查询图节点 ui的两两邻居节点标签的组合的数量为d(d-1)/2,因此,节点标签匹配节点对符 号列表的长度为d(d-1)/2。若候选节点vi的邻居节点的数量少于查询图节点ui的 数量,则为节点vi构造一个长度为d(d-1)/2的临时邻居节点标签序列。将节点vi的邻居节点标签序列全部复制到节点vi的临时邻居节点标签序列,其余 deg(ui)-deg(vi)个空标签位使用符号{#}进行填充,空标签不与任何标签匹配。
假设节点标签匹配对<u0,v0>,节点u0的邻居节点标签为节点 v0的邻居节点标签为节点u0的邻居节点数量为3,而候选节点v0的邻居节点数量为2,则为节点v0采用一个长度为3的临时邻居节点标签序列 {A,C,#}。查询图节点u0的两两组成的邻居节点序列为{AB,AC,BC},数据图节点 v0的两两组成的邻居节点序列为{AC,A#,C#}。标签AC和标签AC最匹配,匹配 程度为s2;标签AB和标签A#最匹配,匹配程度为s1;标签BC标签C#最匹配, 匹配程度为s1。因此,节点标签匹配对(ui,vi)的标签符号序列为S(ui,vi)={s2,s1,s1}。
4-2)计算节点标签匹配预期标签匹配符号s2,s1和s0的出现概率。假设数据 图中标签的数量为L,且RDF数据图和SPARQL查询图中的标签都是独立分布 的,候选节点vi的邻居节点的数量为d=deg(vi)。查询图中某个节点与数据图中某 个节点标签相同的概率为1/L,不相同的概率为(1-1/L),则节点ui的一个邻居节点 标签与节点vi的任一邻居节点不相同的概率为(1-1/L)d。对于节点标签匹配对 (ui,vi),符号s0,s1和s2出现的概率分别为:
pr(s0)=((1-1/L)d)2 (1)
pr(s1)=2·(1-(1-1/L)d)(1-1/L)d (2)
pr(s2)=(1-(1-1/L)d)2 (3)
标签匹配符号s0,s1和s2构成了完整的事件空间即pr(s0)+pr(s1)+pr(s2)=1。 假设数据图中节点的标签的数量为L=3,对于节点标签匹配对<u0,v0>,节点u0的 邻居节点标签为节点v0的邻居节点标签为候选节 点的度为d=2,根据公式(1),(2),(3)计算可得pr(s0)=0.197,pr(s1)=0.493, pr(s2)=0.308。
4-3)计算节点标签匹配对卡方值。卡方统计量χ2通常用于计算事件期望频 数和观察频数的之间的标准化平方差:
其中,Oi和Ei分别为事件i观察频数和期望频数,期望频数Ei=len×pi, 其中len为观察的总次数。χ2统计量遵循卡方分布,p-value越低,χ2统计量越 高,因此统计显著性越高。因此,检索相似度更高的子图转化为查找具有χ2值 较大的子图。对于一个节点标签匹配对,分别使用步骤4-2)中公式(1),(2) 和(3)计算查询图每个节点标签匹配对符号s0,s1和s2预期出现概率,并结合 符号s0,s1和s2实际出现次数计算每个节点标签匹配对的卡方值。
对于节点标签匹配对<u0,v0>,节点u0的邻居节点标签为节点 v0的邻居节点标签为符号s0,s1和s2的观察频数分别为0,2,1。 假定标签节点的数量为L=4,pr(s0)=0.197,pr(s1)=0.493,pr(s2)=0.308,查询图节点 u0的度为3,则s0,s1和s2的期望频数E(s0)=3×0.197=0.591,E(s1)=3×0.493=1.479, E(s2)=3×0.308=0.924,使用步骤4-3)中公式4可得节点标签匹配对<u0,v0>的卡方 值为
5)从堆PH中提取卡方值最大的三元组以节点<u,v>为 根以生成树的方式进行扩展匹配,得到一个近似匹配序列M(i),并添加到近似 匹配序列集合M中,重复该步骤,直到得到满足用户所需的k个近似匹配序列; 具体包括如下步骤:
5-1)从主堆PH中提取卡方值最大的节点标签匹配对<u,v>,插入到匹配序 列M(i)中,并在RDF数据图G中和SPARQL查询图Q中分别将u和v标记为已 匹配节点。在匹配过程中,已经匹配的节点不能重新匹配。
5-2)构建辅助大根堆SH,创建以u为中心的邻接顶点和以v为中心的h-hop 邻居节点标签匹配节点对,匹配节点对中的节点具有相同的标签。计算该节点匹 配对的节点匹配程度函数Fh(u′,v′),其中u′为u的邻接节点,v′为v的h-hop邻 接节点,并将三元组<u′,v′,Fh(u′,v′)>插入到辅助堆SH中。节点匹配程度函数 表示为
其中节点v″是与节点v′的最短距离小于等于h且标签相等的节点;d(v″,v′) 表示节点v″是到节点v′的最短距离;α(0<α<1)是距离影响因子,αd(v″,v′)表示 节点v″和节点v′的邻近度,随着距离的增大而减小;β为边标签影响因子,若 边标签相同,取值为1,否则取值为0<β<0.1,的计算方法如公式(4)所 示。
假设以节点标签匹配对(u0,v0)为根进行扩展,跳h=2,则可以考虑以v0为中 心2跳的邻居节点。节点u0的邻居节点为u1,其标签为B,节点v0的邻居节点 为v1,标签为C,若节点v1的邻居节点为v2,标签为B,则构成节点标签匹配对 (u1,v2)。则节点标签匹配对(u1,v2)的节点匹配值F2(u1,v2)可以根据步骤5-2)公式 (5)计算。
5-3)若SPARQL查询图中的节点尚未匹配完毕且辅助大根堆SH不空,从 辅助大根堆SH中,提取具有最大节点匹配值的节点标签匹配对<u,v>,将 <u,v>加入到当前近似匹配序列M(i)中,并分别标记u和v为已匹配节点。若 SPARQL查询图中的节点全部匹配完毕或者辅助大根堆SH为空,则停止匹配, 将序列M(i)加入到近似匹配序列集合M中。
5-4)为了获取用户所需要的前k个近似匹配查询,首先,将辅助大根堆SH 置空,并从主大根堆PH中提取尚未匹配且卡方值的最大的匹配节点对,重复该 步骤,直到得到一个大小为k的近似匹配序列M。
6)输出M中每一个近似匹配序列中查询图Q中变量节点所匹配的数据图G 中节点的标签,即
输出近似匹配序列集合M中每一个序列M(i)中查询图为变量所匹配的RDF 数据图中的节点标签。
Claims (7)
1.一种基于邻居向量的RDF Top-k查询方法,所述RDF的数据集为<S,P,O>三元组的集合,查询问题满足SPARQL标准,其特征在于,包括如下步骤:
1)分别将RDF数据和SPARQL查询建模为有向标签RDF数据图G和SPARQL查询图Q,使用邻接表对RDF数据图G和SPARQL查询图Q进行存储,并构建逆邻接表;
2)分别为RDF数据图G和SPARQL查询图Q创建标签节点反向列表索引ILG和ILQ,创建节点邻居节点标签列表索引LNLG和LNLQ,创建边标签相关的起始节点和终止节点列表索引P-In和P-Out,为RDF数据图G的每个节点u创建h-hop邻接节点集合;
3)为SPARQL查询图Q中的每一个节点构建节点标签匹配对,得到节点标签匹配对列表VPL;
6)输出M中每一个近似匹配序列中查询图Q中变量节点所匹配的数据图G中节点的标签。
2.根据权利要求1所述的一种基于邻居向量的RDF Top-k查询方法,其特征在于,所述的步骤1),具体包括如下步骤:
1-1)将RDF数据建模为有向标签RDF数据图G=<V,Lv,E,Le>,其中,V表示RDF数据图G中的节点集合,V中的每一个节点对应RDF三元组<S,P,O>中的S和O;Lv表示RDF数据图G中的节点的标签集合;E表示图G中节点之间有向边的集合,对应于RDF三元组<S,P,O>中的S和O之间的P;Le表示图G中有向边标签的集合;使用邻接表的方式存储RDF数据图,同时构建逆邻接表;
1-2)将SPARQL查询建模为有向标签SPARQL查询图Q=<V′,L′v,E′,L′e>,其中,V′表示SPARQL查询图中的节点集合,V′中的每一个节点对应SPARQL三元组<S,P,O>中的S和O;L′v表示SPARQL查询图中的节点的标签集合,若SPARQL查询中S和O为变量节点,则采用符号{*}作为变量节点标签;E′表示SPARQL查询图中节点之间有向边的集合,对应于SPARQL三元组<S,P,O>中S和O之间的P;L′e表示SPARQL查询图中有向边标签的集合;使用邻接表方式存储SPARQL查询图,同时构建逆邻接表。
3.根据权利要求1所述的一种基于邻居向量的RDF Top-k查询方法,其特征在于,所述的步骤2),具体包括如下步骤:
2-1)为RDF数据图G构建标签节点反向列表索引ILG,若给定一个标签L(v),RDF数据图G中存在该标签,快速定位到标签为L(v)的节点v,即将标签映射到节点ID;为SPARQL查询图Q构建标签节点反向列表索引ILQ,给定一个标签能快速定位到查询图节点ID;
2-2)为RDF数据图G的每一个节点v构建邻居节点标签列表索引其中,NG(v)表示节点v的邻居节点,在构建的过程中,将节点的邻居节点标签按照标签ID从小到大排序;为SPARQL查询图构建节点邻居节点标签列表索引其中,NQ(u)表示节点u的邻居节点,节点的邻居节点标签按照标签ID从小到大排序;
2-3)在SPARQL查询中,为有效减少变量节点ui的候选域,分别构建邻接表、逆邻接表、边标签相关的起始节点和终止节点列表索引P-In和P-Out;具体的构造方式为:若变量节点ui存在有向出射边<ui,uj>,其中uj为节点ui的邻接点,若uj为常量节点,则通过构建节点uj的逆邻接表以减少变量节点ui的候选域;若uj为变量节点,则通过在数据图中G构建有向边标签<ui,uj>的起始节点的集合P-In,以减少变量节点ui的候选域;若变量节点ui存在有向入射边<uj,ui>,若uj为常量节点,则通过节点uj的邻接表以减少变量节点ui的候选域;若uj为变量节点,则可以通过在数据图中G构建有向边<ui,uj>标签的终止节点的集合P-Out,以减少变量节点ui的候选域;对于查询图中的变量节点,使用以上四种变量节点索引进一步减少变量节点的候选集;
2-4)为RDF数据图G中每一个节点v构造h-hop邻居节点集合,表示为Nh(v)={<v′,i>:d(v,v′)<h,i≤h},其中,v′表示RDF数据图G中与节点v的最短路径长度小于等于h的节点。
4.根据权利要求1所述的一种基于邻居向量的RDF Top-k查询方法,其特征在于,所述的步骤3)具体是:对于SPARQL查询图Q中的每一个节点ui,若该节点为常量节点,通过RDF数据图中节点标签反向列表索引ILG获得和节点ui标签相同的节点vi,构建节点标签匹配对(ui,vi)并插入到节点标签匹配对列表VPL中;若节点ui为变量节点,其标签未知,候选节点为RDF数据图中的所有节点,通过步骤2)所构建的邻接表、逆邻接表、P-In和P-Out索引以获得节点ui的最小候选域CR(ui),并将节点标签匹配节点对(ui,v′i)插入到节点对列表VPL中,其中v′i∈CR(ui)。
5.根据权利要求1所述的一种基于邻居向量的RDF Top-k查询方法,其特征在于,所述的步骤4),具体包括如下步骤:
4-1)计算节点标签匹配对的匹配符号列表:依次从节点标签匹配序列VPL中取出一个节点标签匹配对(ui,vi),假设RDF数据图G中节点ui的两个邻居节点分别为x和y,其对应的标签分别为和SPARQL查询图Q中节点的vi的两个邻居节点分别a和b,其对应的标签分别为和节点ui的两个邻居节点标签和节点的vi的两个邻居节点标签的标签匹配程度可以使用三种符号类型s2,s1和s0进行描述,计算规则如下所示:
标签重叠的符号的优先级为s2fs1fs0,因此,每一个节点标签匹配对的邻接节点标签匹配情况可以表示为一个由s2,、s1和s0组成的符号序列S(ui,vi);若查询图中节点不存在邻接节点,则默认节点对标签匹配符号序列为空,查询图节点ui的两两邻居节点标签的组合的数量为d(d-1)/2,因此,节点标签匹配节点对符号列表的长度为d(d-1)/2;若候选节点vi的邻居节点的数量少于查询图节点ui的数量,则为节点vi构造一个长度为d(d-1)/2的临时邻居节点标签序列,将节点vi的邻居节点标签序列全部复制到节点vi的临时邻居节点标签序列,其余deg(ui)-deg(vi)个空标签位使用字符{#}进行填充,字符{#}不与任何标签匹配;
4-2)计算节点标签匹配预期标签匹配符号s2、s1和s0的出现概率:假设数据图中标签的数量为L,且RDF数据图和SPARQL查询图中的标签都是独立分布的,候选节点vi的邻居节点的数量为d=deg(vi),查询图中某个节点与数据图中某个节点标签相同的概率为1/L,不相同的概率为(1-1/L),则节点ui的一个邻居节点标签与节点vi的任一邻居节点不相同的概率为1-1/L,对于节点标签匹配对(ui,vi),符号s0、s1和s2出现的概率分别为:
pr(s0)=((1-1/L)d)2 (1)
pr(s1)=2·(1-(1-1/L)d)(1-1/L)d (2)
pr(s2)=(1-(1-1/L)d)2 (3)
标签匹配符号s0、s1和s2构成了完整的事件空间即pr(s0)+pr(s1)+pr(s2)=1;
4-3)计算节点标签匹配对卡方值:采用卡方统计量χ2计算事件期望频数和观察频数的之间的标准化平方差,计算公式如下:
其中Oi和Ei分别为事件i观察频数和期望频数,期望频数Ei=len×pi,其中len为观察的总次数;χ2统计量遵循卡方分布,p-value越低,χ2统计量越高,则统计显著性越高;因此,检索相似度更高的子图转化为查找具有χ2值较大的子图,对于一个节点标签匹配对,分别使用步骤4-2)中公式(1),(2)和(3)计算查询图每个节点标签匹配对符号s0、s1和s2预期出现概率,并结合符号s0、s1和s2实际出现次数计算每个节点标签匹配对的卡方值;
6.根据权利要求1所述的一种基于邻居向量的RDF Top-k查询方法,其特征在于,所述的步骤5),具体包括如下步骤:
5-1)从主堆PH中提取卡方值最大的节点标签匹配对<u,v>,插入到匹配序列M(i)中,并在RDF数据图G中和SPARQL查询图Q中分别将u和v标记为已匹配节点,在匹配过程中,已经匹配的节点不能重新匹配;
5-2)构建辅助大根堆SH,创建u为中心的邻接顶点和以v为中心的h-hop邻居节点标签匹配对,匹配节点对中的节点具有相同的标签;计算该匹配节点对的节点匹配程度函数Fh(u′,v′),其中u′为u的邻接节点,v′为v的邻接节点,并将三元组<u′,v′,Fh(u′,v′)>插入到辅助堆SH中;节点匹配程度函数表示为:
其中节点v″是与节点v′的最短距离小于等于h且标签相等的节点;d(v″,v′)表示节点v″是到节点v′的最短距离;α(0<α<1)为距离影响因子,αd(v″,v′)表示节点v″和节点v′的邻近度,随着距离的增大而减小;β为边标签影响因子,取值为0<β<0.1;的计算方法采用公式(4)进行计算;
5-3)若SPARQL查询图中的节点尚未匹配完毕且辅助大根堆SH不空,从辅助大根堆SH中,提取具有最大节点匹配值的节点标签匹配对<u,v>,将<u,v>加入到当前近似匹配序列M(i)中,并分别标记u和v为已匹配节点;若SPARQL查询图中的节点全部匹配完毕或者辅助大根堆SH为空,则停止匹配,将序列M(i)加入到近似匹配序列集合M中;
5-4)为了获取用户所需要的前k个近似匹配查询,首先,将辅助大根堆SH置空,并从主大根堆PH中提取尚未匹配且卡方值的最大的匹配节点对,重复该步骤,直到得到一个大小为k的近似匹配序列M。
7.根据权利要求1所述的一种基于邻居向量的RDF Top-k查询方法,其特征在于,所述的步骤6),具体是输出近似匹配序列集合M中每一个序列M(i)中查询图为变量对应的RDF数据图中的节点标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010122931.4A CN111309979B (zh) | 2020-02-27 | 2020-02-27 | 一种基于邻居向量的RDF Top-k查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010122931.4A CN111309979B (zh) | 2020-02-27 | 2020-02-27 | 一种基于邻居向量的RDF Top-k查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111309979A true CN111309979A (zh) | 2020-06-19 |
CN111309979B CN111309979B (zh) | 2022-08-05 |
Family
ID=71145187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010122931.4A Active CN111309979B (zh) | 2020-02-27 | 2020-02-27 | 一种基于邻居向量的RDF Top-k查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309979B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984828A (zh) * | 2020-06-30 | 2020-11-24 | 联想(北京)有限公司 | 一种邻居节点检索方法和装置 |
CN113010746A (zh) * | 2021-03-19 | 2021-06-22 | 厦门大学 | 一种基于子树倒排索引的病历图序列检索方法及系统 |
CN113220820A (zh) * | 2020-12-15 | 2021-08-06 | 中国人民解放军国防科技大学 | 基于图的高效sparql查询应答方法、装置和设备 |
CN114417073A (zh) * | 2022-03-28 | 2022-04-29 | 之江实验室 | 一种加密图的邻居节点查询方法及装置、电子设备 |
CN116304213A (zh) * | 2023-03-20 | 2023-06-23 | 中国地质大学(武汉) | 基于图神经网络的rdf图数据库子图匹配查询优化方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080040308A1 (en) * | 2006-08-03 | 2008-02-14 | Ibm Corporation | Information retrieval from relational databases using semantic queries |
CN103778251A (zh) * | 2014-02-19 | 2014-05-07 | 天津大学 | 面向大规模rdf图数据的sparql并行查询方法 |
CN106844445A (zh) * | 2016-12-16 | 2017-06-13 | 天津大学 | 基于语义的资源描述框架rdf图划分方法 |
US20170364564A1 (en) * | 2016-06-19 | 2017-12-21 | data world | Consolidator platform to implement collaborative datasets via distributed computer networks |
CN107992608A (zh) * | 2017-12-15 | 2018-05-04 | 南开大学 | 一种基于关键字上下文的sparql查询语句自动生成方法 |
US20180203897A1 (en) * | 2017-01-18 | 2018-07-19 | Oracle International Corporation | Fast graph query engine optimized for typical real-world graph instances whose small portion of vertices have extremely large degree |
CN108509543A (zh) * | 2018-03-20 | 2018-09-07 | 福州大学 | 一种基于Spark Streaming的流式RDF数据多关键词并行搜索方法 |
CN109684325A (zh) * | 2018-11-07 | 2019-04-26 | 天津大学 | 一种高效的rdf数据存储查询系统 |
CN109992593A (zh) * | 2019-03-13 | 2019-07-09 | 中南大学 | 一种基于子图匹配的大规模数据并行查询方法 |
-
2020
- 2020-02-27 CN CN202010122931.4A patent/CN111309979B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080040308A1 (en) * | 2006-08-03 | 2008-02-14 | Ibm Corporation | Information retrieval from relational databases using semantic queries |
CN103778251A (zh) * | 2014-02-19 | 2014-05-07 | 天津大学 | 面向大规模rdf图数据的sparql并行查询方法 |
US20170364564A1 (en) * | 2016-06-19 | 2017-12-21 | data world | Consolidator platform to implement collaborative datasets via distributed computer networks |
CN106844445A (zh) * | 2016-12-16 | 2017-06-13 | 天津大学 | 基于语义的资源描述框架rdf图划分方法 |
US20180203897A1 (en) * | 2017-01-18 | 2018-07-19 | Oracle International Corporation | Fast graph query engine optimized for typical real-world graph instances whose small portion of vertices have extremely large degree |
CN107992608A (zh) * | 2017-12-15 | 2018-05-04 | 南开大学 | 一种基于关键字上下文的sparql查询语句自动生成方法 |
CN108509543A (zh) * | 2018-03-20 | 2018-09-07 | 福州大学 | 一种基于Spark Streaming的流式RDF数据多关键词并行搜索方法 |
CN109684325A (zh) * | 2018-11-07 | 2019-04-26 | 天津大学 | 一种高效的rdf数据存储查询系统 |
CN109992593A (zh) * | 2019-03-13 | 2019-07-09 | 中南大学 | 一种基于子图匹配的大规模数据并行查询方法 |
Non-Patent Citations (5)
Title |
---|
S YANG等: "Fast top-k search in knowledge graphs", 《2016 IEEE 32ND INTERNATIONAL CONFERENCE ON DATA ENGINEERING》 * |
兰超等: "分布式Top-k子图匹配技术", 《清华大学学报(自然科学版)》 * |
杜方等: "RDF数据查询处理技术综述", 《软件学报》 * |
邱慧等: "Spark GraphX上的SPARQL查询处理算法", 《计算机科学与探索》 * |
陈彦: "应用SPARQL进行RDF数据查询", 《企业技术开发》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984828A (zh) * | 2020-06-30 | 2020-11-24 | 联想(北京)有限公司 | 一种邻居节点检索方法和装置 |
CN113220820A (zh) * | 2020-12-15 | 2021-08-06 | 中国人民解放军国防科技大学 | 基于图的高效sparql查询应答方法、装置和设备 |
CN113010746A (zh) * | 2021-03-19 | 2021-06-22 | 厦门大学 | 一种基于子树倒排索引的病历图序列检索方法及系统 |
CN113010746B (zh) * | 2021-03-19 | 2023-08-29 | 厦门大学 | 一种基于子树倒排索引的病历图序列检索方法及系统 |
CN114417073A (zh) * | 2022-03-28 | 2022-04-29 | 之江实验室 | 一种加密图的邻居节点查询方法及装置、电子设备 |
CN116304213A (zh) * | 2023-03-20 | 2023-06-23 | 中国地质大学(武汉) | 基于图神经网络的rdf图数据库子图匹配查询优化方法 |
CN116304213B (zh) * | 2023-03-20 | 2024-03-19 | 中国地质大学(武汉) | 基于图神经网络的rdf图数据库子图匹配查询优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111309979B (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111309979B (zh) | 一种基于邻居向量的RDF Top-k查询方法 | |
Zhang et al. | Exact solution for mean first-passage time on a pseudofractal scale-free web | |
CN110622156B (zh) | 用于查询大图的增量图计算方法及设备 | |
CN104462582B (zh) | 一种基于结构和内容二级过滤的Web数据相似性检测方法 | |
CN105978711B (zh) | 一种基于最小生成树的最佳交换边查找方法 | |
Chindelevitch et al. | Local optimization for global alignment of protein interaction networks | |
CN113792188B (zh) | 一种目录数据比对方法 | |
CN112966165A (zh) | 基于图神经网络的交互式社区搜索方法及装置 | |
Born et al. | Layout embedding via combinatorial optimization | |
Kim et al. | An optimization approach for semantic-based XML schema matching | |
Tseng et al. | Generating frequent patterns with the frequent pattern list | |
Wang et al. | A branch and bound irredundant graph algorithm for large-scale MLCS problems | |
Zheng et al. | Efficient simrank-based similarity join | |
CN108712278A (zh) | 一种基于集成学习的网络社区发现方法 | |
CN108198084A (zh) | 一种复杂网络重叠社区发现方法 | |
CN117010373A (zh) | 一种电力设备资产管理数据所属类别和组的推荐方法 | |
Goyal et al. | A comparative study of different frequent pattern mining algorithm for uncertain data: A survey | |
Chen et al. | Paths beyond local search: A tight bound for randomized fixed-point computation | |
Husfeldt et al. | Hardness results for dynamic problems by extensions of Fredman and Saks' chronogram method | |
Ghashghai et al. | Using a hybrid of exact and genetic algorithms to design survivable networks | |
Wang et al. | A concept hierarchy based ontology mapping approach | |
Ding et al. | An unsupervised framework for author-paper linking in bibliographic retrieval system | |
Abdi et al. | Longest common subsequence: Tabular vs. closed-form equation computation of subsequence probability | |
Ferrer et al. | On the relation between the median and the maximum common subgraph of a set of graphs | |
Borodin et al. | Subquadratic approximation algorithms for clustering problems in high dimensional spaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |