利索能及
我要发布
收藏
专利号: 202110861901X
申请人: 辽宁大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-12-30
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种面向本体标签知识图谱的样例查询方法,其特征在于,其步骤为:步骤1:构建本体标签树索引:

定义1:本体标签知识图谱G=(VG,EG,TG,LG),其中VG表示顶点集合,EG表示边集合,TG表示顶点的本体标签集合,LG表示边标签集合;

定义2:父标签、子标签和后继子标签;一级本体标签t1和二级本体标签t11、t12之间的关系是父子关系,t1为父标签,t11、t12为t1的子标签,三级本体标签t111、t112作为二级本体标签t11的子标签,它们也都是一级本体标签t1的后继子标签;本体标签按横向划分称为本体标签层级集合记为Th[],当h=1时,Th[]中存放所有一级本体标签;h=2时,Th[]中存放所有二级本体标签;每个本体标签ti都有自己的后继子标签集合ti[];

步骤1‑1将本体标签按照层级进行划分,得到Th[]集合;

步骤1‑2计算每个本体标签的后继子标签集合;

步骤1‑3初始化根节点的层数h=0,并将所有本体标签放入根节点中,然后调用函数BuildNode来创建其子树;在BuildNode函数中,首先更新层数,即本体标签的级数,得到Th[]集合,并获得ti[]集合后建立本体标签树节点,将此树节点加入到根节点的孩子节点并从根节点中移除此孩子节点所包含的所有本体标签;

步骤1‑4最终为每个树节点创建所包含此本体标签的实体节点的倒排列表,并形成本体标签树返回;

步骤2筛选候选节点集合;

步骤2‑1利用一级本体标签索引过滤候选节点集合;

步骤2‑2利用d‑邻域过滤候选节点;

步骤2‑3将候选节点集合进行排序;

步骤3构建双向索引;

具体方法为:

在本体标签知识图谱中,每个实体节点自身带有标签,实体之间通过具有属性标签的有向边相连,在进行边标签同构匹配查询之前,为知识图谱中每个实体节点创建以下双向索引:其中ns标识节点, 和 分别表示节点ns的入度索引和出度索引,lx:<nm,...,nj>,ly:<nm,...,ni>分别表示入度边标签为lx和出度边标签为ly的节点集合,(countIn(ns))和countout(ns)分别表示节点ns的入度、出度节点总个数;

步骤3‑1知识图谱中一个节点q,找到节点q的一个邻居节点p,如果有 并且节点p,q都没有被访问过,将边标签l添加到节点q的入度索引集合In(q),并将节点p加入到集合In(q)中标签为l的节点集合Inl(q),节点q的入度索引集合中总节点数countIn(q)加一;

按照相同的方法记录节点p的出度索引Out(p)集合、Outl(p)集合和countOut(p);

步骤3‑2按照步骤3‑1中所述的方法,记录 情况下Out(q)、Outl(q)、countOut(q)、In(p)、Inl(p)、countIn(p);

步骤3‑3标记节点q节点被访问过,记录q节点的双向索引Bi‑directional index(q);

步骤3‑4重复此过程,直到建立所有节点的双向索引;

步骤4进行边标签同构匹配。

2.根据权利要求1所述的一种面向本体标签知识图谱的样例查询方法,其特征在于,所述的步骤1‑2中,具体为:知识图谱G的本体标签集TG={t1,t2,t11,t12,t13,t14,t21,t22},首先将所有本体标签按照层级进行划分,得到Th[]集合,其中T1[]=[t1,t2],T2[]=[t11,t12,t13,t14,t21,t22];然后计算每个本体标签的父标签形成后继子标签集合ti[],从T2[]集合开始遍历标签t11、t12、t13、t14拥有共同的父标签t1,即t1[]=[t11,t12,t13,t14];标签t21、t22拥有共同的父标签t2,即t2[]=[t21,t22],遍历T1[]=[t1,t2],则最终t1[]=[t1,t11,t12,t13,t14],t2[]=[t2,t21,t22]。

3.根据权利要求1所述的一种面向本体标签知识图谱的样例查询方法,其特征在于,所述的步骤2‑1中,具体为:采用倒排列表的结构,每个一级本体标签索引FLIndex都记录包含该本体标签的所有节点集合,FLIndex索引如(1)所示:FLIndex{<t1>(n1,n2,...),<t2>(n1,n2,...),...,<tn>(n1,n2,...)}    (1)FLIndex中包含所有一级本体标签,每个一级本体标签中是包含该标签的节点集合,利用一级本体标签作为索引,当给定一个查询节点时,在一级本体标签索引中找到与查询节点具有相同的一级本体标签集合,将其作为此查询节点的候选节点集合;

所述的步骤2‑2中,具体为:

引入d‑邻域的概念,d值大小取决于知识图谱中的数据规模和用户的查询意图;

定义3:d‑邻域;知识图谱G中的节点n∈VG,节点n的d‑邻域表示为提前计算每个节点n的d‑邻域集合 在通过一级本体标签索引FLIndex过滤后得到的候选集合基础上过滤掉不在 集合范围内的候选节点,更新候选节点集合;

所述的步骤2‑3中,具体为:

按照公式(2)计算查询节点与候选集合中的节点的相关性,并根据这个得分将候选节点降序排序,相关性公式如公式(2):其中ns表示查询节点,a表示ns的候选节点,T(ns)表示ns的节点本体标签集合,当ns和其候选节点a本体标签相同时εj=1,否则εj=0;d'表示两个节点之间的距离,d'≤d;当每个查询节点的候选集合中的节点都按照相关性公式降序排好后,在进行边标签同构匹配时,按照顺序选择相关性高的节点先进行匹配,在进行边标签匹配的同时计算形成的子图的节点相关性得分之和,便于直接找到前k个得分最高的子图结构并返回给用户。

4.根据权利要求1所述的一种面向本体标签知识图谱的样例查询方法,其特征在于,所述的步骤4中,具体方法为:在得到每个查询节点有序的候选节点集合后,需要按照查询样例将候选节点构建成相似的子图结构,按照边标签进行匹配形成相关答案集;

定义4边标签同构;给定查询样例图S和数据图G中的子图G′,如果在S中有节点存在双射函数μ,使得在G′中都存在 则记作图S与图G′边标签同构;

在进行边标签匹配时,利用公式(4)先计算每个查询节点选择性,以选择性最小查询节点作为起始节点进行遍历,减少匹配的迭代次数;节点的选择性用查询节点的候选节点集合基数与查询节点的入度边及出度边之和进行评估,按照公式(4):select(ns)=(countOut(ns))+(countIn(ns))+|C(ns)|          (4)以下过程表示进行边标签同构匹配所形成的答案集:

1)选择具有最小选择性的查询节点作为起始节点

2)将 放入当前遍历节点集合Can中,并设置一个访问集合Vis初始化为空;

3)遍历Can集合,从Can集合中选择节点进行匹配;

4)如果在查询样例图中有 并且ns′没有被访问过,则进行5),否则进行7);

5)分别按序查找ns候选节点集合C(ns)中的节点n和ns′的候选节点集合C(ns')中的节点n1,检索Outn索引,若存在边标签为l的节点集合,并且集合中的节点与集合C(ns')中的节点有交集,则将节点n并入ns的临时候选节点集C'(ns)中;检索 索引,若存在边标签为l的节点集合,并且集合中的节点与集合C(ns)有交集,则将节点n1并入ns′的临时候选节点集C'(ns')中;

6)将5)中的n和n1之间的关系并入到 集合中;

7)如果在查询样例图中有 并且ns″没有被访问过,则进行8),否则进行3);

8)分别按序查找ns候选节点集合C(ns)中的节点n和ns″的候选节点集合C(ns”)中的节点n2,检索Inn索引,若存在边标签为l的节点集合,并且集合中的节点与集合C(ns”)中的节点有交集,则将节点n并入ns的临时候选节点集C'(ns)中;检索 索引,若存在边标签为l的节点集合,并且集合中的节点与集合C(ns)有交集,则将节点n2并入ns”的临时候选节点集C'(ns”)中;

9)将8)中的n2和n之间的关系并入到 集合中;

10)将ns'和ns”加入到Can集合中,并将节点n从Can中移除,并入到Vis集合中标记已访问;

11)当 时,将 并入到Ω(S)中,并记录形成答案个数若等于k个,则停止匹配;否则循环上述操作。