本文由学者Lei Zou, M. Tamer Özsu, Lei Chen, Xuchuan Shen, Ruizhe Huang & Dongyan Zhao于2014/08/01在《The VLDB Journal 》联合发表

本文解决了对RDF数据集的SPARQL查询的高效处理,将新技术集成到gStore系统,以统一和可扩展的方式处理对动态RDF数据集进行具有通配符和聚合运算符的SPARQL查询。方法基于图,将RDF数据存储为大图,并将SPARQL查询表示为查询图。将查询回答问题转换为子图匹配问题。为了实现高效和可扩展的查询处理,开发了新索引以及有效的删除规则和高效的搜索算法,使用此基础回答聚合查询的技术,还提出一种有效的维护算法来处理RDF存储库的在线更新。

可扩展性以及遵循RDF的实际要求

  • 带通配符的SPARQL查询。

  • 动态RDF存储库。 RDF存储库不是静态的,并且会定期更新。为了支持查询此类动态RDF数据集,查询引擎能够处理频繁的更新而无需太多维护费用。

  • 聚合SPARQL查询。

gStore是基于图的三元存储,可以在动态RDF数据存储库回答SPARQL查询。此时,回答查询转换为子图匹配。将RDF数据集建模为一个标记的、有向的多边图(RDF图),每个顶点对应主语或宾语。通过查询图Q进行SPARQL查询,查询图Q的子图匹配在RDF图G上提供查询的答案。

RDF图不必连接。 SPARQL查询可表示为有向标记的查询图Q,定义如下:

查询图Q是一个连通图。如果不连通,则图Q作为单独的查询,一个一个执行。采用新的索引和图匹配技术。首先,RDF图顶点和边的数量大于典型图形数据库的数量级。其次,RDF图顶点和边缘标签的基数远大于传统图形数据库。最后,SPARQL查询结合了同一实体的多个类似属性的属性,倾向把星查询作为子查询。 星查询:由一个中心顶点及其邻点形成的星形的查询图。

三种存储和查询RDF数据的方法:

  • 一个巨大三元组表:RDF三元组存储在单个三列表中分别对应主语,属性和宾语, 能够统一处理所有RDF三元组,此表上还会形成大量的自联接用于回答SPARQL查询。
  • 两种属性表:
    • 群集属性表:同主语中的属性分组聚合,每个属性集群映射到一个属性表。
    • 属性类表:具有相同类型属性的对象集群到一个属性表。
  • 垂直分区表:对于每个属性,此方法都构建了一个由主语排序的单个两列(主语、宾语)表。排序优点是在查询处理期间执行快速合并联接。

x-RDF-3x提出的一种有效的在线维护算法,但不支持通配符或聚合SPARQL查询。图分区是并行执行的技术,需要更新图重新分区,除非采用增量分区方法。给定聚合的SPARQL查询Q,方法是将Q转换为没有聚合谓词的SPARQL查询Q0,通过现有查询引擎找到Q0的解决方案,然后根据共享指定值的行将解决方案集划分为一个或多个组,最后,计算每个组的聚合值。

RDF数据集=subject+property+object
subject:实体或类,property:实体或类的关联属性,object:实体、类或文字值。不区分“实体”和“类”,RDF数据建模为RDF图,定义如下:

无需考虑SPARQL涉及类型推理/推论的查询,查询匹配定义如下:

回答SPARQL查询=在RDF中查找其对应查询图的所有匹配项图形。

何为gStore?
gStore是基于图的三元存储系统,可在动态RDF数据存储库上回答不同类型SPARQL查询-精确查询,通配符查询和聚合查询。 RDF数据集表示为RDF图G,并存储为邻接表。然后,将每个实体和类顶点编码位字符串(称为顶点签名)。根据RDF图的结构,链接顶点签名从而形成数据签名图G*,其中每个顶点对应RDF图中的类或实体顶点。G由G中的所有实体和类顶点以点为实体或类顶点的边引起的。在G上找到Q的匹配称为NP-hard,类似于子图同构。使用过滤和评估策略来减少匹配的搜索空间。首先使用假阳性删除策略找到一组候选子图,然后使用邻接表验证数据找到答案。

此框架的两个问题及解决:

  • 编码技术应确保RS⊆CL。一种编码技术将G*中的每个顶点映射到一个签名。
  • 需要有效的子图匹配算法找到Q与G的匹配。设计新的索引结构VS*-tree。VS*-tree是G*的摘要图,用于删除策略减少搜索的有效处理查询查找与G*匹配的Q*的空间。

VS*-tree用于回答聚合SPARQL查询。首先将聚合查询Q分解为星聚合查询Si,再引入T-index。通过分组与T索引中的节点相关联的物化集来回答星查询。一旦获得星聚合查询Si的结果R(Si),将使用VS*-tree加入R(Si),并找到每个星中心的所有相关节点。然后,基于这些相关节点,找到聚合查询的最终结果。

存储方案和编码技术
使用基于磁盘的邻接表存储RDF图G,每个(类或实体)顶点u用邻接表[uID,uLabel,adjList]表示,其中uID是顶点ID,uLabel是相应URI,而adjList是其输出边和相应的相邻顶点的列表。

根据定义3,如果顶点v(在查询Q)可以匹配顶点u(在RDF图G),则v的每个相邻顶点和每个相邻边都与u的某个相邻顶点和某个相邻边匹配。给定G中的顶点u,将其相邻的每个边缘标签和对应的相邻顶点标签编码为位串。 通过简单地检查对应的编码位串间的匹配验证Q和G之间的匹配。给定顶点,将其相邻的每个边缘e(eLabel,nLabel)编码为位串,该位串称为边缘签名(即eSig(e)):

对于一个顶点拥有多条边,可通过其边缘签名对每个相邻边缘编码。计算顶点签名时,使用邻点文本值,而不是其顶点签名。

VS*-tree
VS*-tree是G*上的索引结构,用于回答SPARQL查询。利用定义8在G*(数据签名图)上找到Q*(查询签名图)的匹配。

简单方法:首先,对于每个顶点vi∈Q*,找到一个列表Ri = {ui1,ui2,…,uin};然后,对列表Ri多路联接,找到Q*与G*的匹配;第一步(查找Ri)是子集查询,给定一组具有集值属性的对象,查找包含某些属性值的所有对象。为减少子集查询的搜索空间,提出组织所有签名{sj}。每个中间节点通过对S树中的所有子签名进行“或”运算形成。由此使用S树找到Ri。开发VS*-tree索引大型数据签名图G*支持第二步,VS*-tree是基于S-tree的多分辨率汇总图,用于减少子图查询处理的搜索空间。

查询算法使用查询图Q的顶点签名与VS*-tree的节点的逐级匹配。给定顶点u,对其所有相邻边签名执行按位或运算获得顶点签名vSig(u)(定义6):

对于具有高度的顶点,vSig()可能是全部(或大部分)1的,这意味着这些顶点可以匹配任何查询顶点签名。对于VS
-tree的删除功能有影响,所以需要做出优化,优化过程请自行阅读。

未完待续,接下篇

gStore:A Graph-based SPARQL Query Engine---part1相关推荐

  1. 关于jena-fuseki SPARQL query版本问题的解决方案

    我自己搭建了博客,以后可能不太在CSDN上发博文了,https://www.qingdujun.com/ . 在做"Apache jena SPARQL endpoint及推理"时 ...

  2. 【论文笔记】Revisiting graph based collaborative Filtering:一种线性残差图图卷积网络方法

    Revisiting Graph based Collaborative Filtering:A Linear Residual Graph Convolutional Network Approac ...

  3. 论文阅读:A Novel Graph based Trajectory Predictor with Pseudo Oracle

    A Novel Graph based Trajectory Predictor with Pseudo Oracle 摘要 1 引言 2 相关工作 3 PROPOSED METHOD IV. EXP ...

  4. Bipartite Graph Based Multi-View Clustering

    Bipartite Graph Based Multi-View Clustering 基于二部图的多视图聚类 abstract 对于基于图的多视图聚类,一个关键问题是通过两阶段学习方案捕获共识聚类结 ...

  5. Graph Based SLAM 基本原理

    ©作者 | Alex 01 引言 SLAM 基本框架大致分为两大类:基于概率的方法如 EKF, UKF, particle filters 和基于图的方法 .基于图的方法本质上是种优化方法,一个以最小 ...

  6. gStore:A Graph-based SPARQL Query Engine---part2

    本文由学者Lei Zou, M. Tamer Özsu, Lei Chen, Xuchuan Shen, Ruizhe Huang & Dongyan Zhao于2014/08/01在< ...

  7. 【论文笔记】Revisiting Graph based Collaborative Filtering: A Linear Residual Graph Convolutional Network

    LR-GCCF 1. Abstract 2. Introduction 3. LR-GCCF 3.1 模型总体结构(Overall Structure of the Proposed Model) 3 ...

  8. Behavior Language Processing with Graph based Feature Generation for Fraud Detectionin OnlineLending

    节点的度描述了与这个信息节点相连的申请节点的个数,也遵循幂律.以公司为例的话就是大规模的公司例如顶尖保险公司和主要的物流公司通常与大量的贷款申请相关联. 全局欺诈传播的传播算法是度相关的,有大的度的节 ...

  9. Behavior Language Processing with Graph based Feature Generation for Fraud DetectioninOnline Lending

    欺诈检测存在很多挑战:信用相关特征的稀疏性,例如社会保险,工作认证,然而这些对于目标人群来说都是稀疏的.数据的速率.种类和容量.设备的行为数据在容量和维度上有爆炸性的增长,而且行为数据对说明一个人的金 ...

最新文章

  1. 从数据中心基础设施的视角来看 Facebook 机器学习的应用
  2. java添加时间,如何通过Java中的addHours()方法添加时间
  3. js luhn算法_不会飞的鸟
  4. 设置 input元素placeholder的字体颜色
  5. icinga2 php模块,在Ubuntu 18.04系统上安装Icinga2监视工具的方法
  6. kafka系统设计开篇
  7. 公开信息查询的一些方法,查征信,查婚姻状况,查询公开个人信息
  8. 第十一章 ESL-通过事件控制FreeSWITCH
  9. SAP采购计划协议(SA)中的计划行统计清单
  10. Squid 代理服务之反向代理服务器架构搭建
  11. Anki 学习指南(优质资源 教程总结)
  12. 《惢客创业日记》2021.07.15-17(周四)房东和租客,谁更弱势?
  13. python金融数据爬虫与数据分析学习(一)
  14. 2016 我的年终小结:一直在路上
  15. java 实验4 字体对话框_文字字体设计窗体 实验!求大神
  16. Quartz执行逻辑(三)QRTZ_FIRED_TRIGGERS表的作用
  17. 破解G*L**d2021.1.3
  18. Revit二次开发_修改快捷键
  19. vc++按钮应用大全
  20. 广发财智金好不好用?了解下再说

热门文章

  1. IP地址,子网掩码以及子网掩码的划分
  2. win10 明明可以上网但显示无Internet的问题(已解决)
  3. 【沃趣科技】再述mysqldump时域问题
  4. 覆盖式理解Android 消息处理机制(带源码解析)
  5. 渗透测试:XSS实验集合
  6. java在gc正常工作的情况下_Java GC的工作原理
  7. fiddler 升级后抓取https流量各种失败后一定不要忘记这一招
  8. CSS选择器优先级比较
  9. 如何在微搭低代码平台自定义组件
  10. 世界上最伟大的推销员-羊皮卷之八