2011

gStore: Answering SPARQL Queries via Subgraph Matching

1.存在问题

1)他们无法以可扩展的方式支持带通配符的SPARQL

​ 例如:

​ 我们可以通过以下SPARQL从RDF数据集中检索1809年2月12日出生并于1865年4月15日去世的人的姓名

gStore-Answering SPARQL Queries via Subgraph Matching
​ 我们可能知道一位重要的政治人物于2月12日出生并于4月15日去世,但我们不知道他的确切出生和死亡年份。 在这种情况下,我们必须使用通配符执行查询

gStore-Answering SPARQL Queries via Subgraph Matching

2)现有系统对于存储RDF的数据库频繁更新是很困难的

​ 社交网络中的RDF数据(例如FOAF项目(foaf-project.org))也经常更新,以代表个人不断变化的关系

2.解决方法

2.1 主要思路

将RDF数据转换为RDF图,可以通过将SPARQL查询转换为子图匹配查询RDF图

RDF graph :

1) RDF图的大小(即顶点和边的数量)比典型图数据库考虑的大小大几个数量级。

2)RDF图中顶点和边缘标签的基数比传统图数据库中的基数大得多

3)SPARQL查询结合了同一实体的几多个属性,因此,它们倾向于包含星号作为子查询

gStore-Answering SPARQL Queries via Subgraph Matching

gStore-Answering SPARQL Queries via Subgraph Matching

线下处理:

将dataset 转换为邻接矩阵表->

gStore-Answering SPARQL Queries via Subgraph Matching

将实体或者类顶点进行编码->

将这些顶点签名链接起来以形成数据签名图G *->

gStore-Answering SPARQL Queries via Subgraph Matching

2.2 编码Encoding

将每个相邻的边的标签和对应的相邻顶点的标签编码为 位串

1)相邻的边的标签

gStore-Answering SPARQL Queries via Subgraph Matching

how to generate ?

gStore-Answering SPARQL Queries via Subgraph Matching

2)相邻顶点的标签

gStore-Answering SPARQL Queries via Subgraph Matching

gStore-Answering SPARQL Queries via Subgraph Matching

2.3 索引结构和查询算法

gStore-Answering SPARQL Queries via Subgraph Matching

2.3.1 索引结构

how to build a VS-tree?

1)built S-tree

gStore-Answering SPARQL Queries via Subgraph Matching

gStore-Answering SPARQL Queries via Subgraph Matching

2)built VS-tree

gStore-Answering SPARQL Queries via Subgraph Matching

若S-tree中有两个结点的 孩子结点 间至少存在一条边,

就可以引入一条超级边。若有多条边,这条超级边的bitString 为多条边 进行 或运算的结果

也能够引入一条自己到自己的边,如果该结点的一个孩子

到另外一个孩子之间也存在边

gStore-Answering SPARQL Queries via Subgraph Matching

gStore-Answering SPARQL Queries via Subgraph Matching

2.3.2 匹配算法

1)定义:

Q* 在G* 上的 summary matche

1)结点bitString一样

2)对于查询图Q*中的任意一条边,都能在GI中找到一条超级边
gStore-Answering SPARQL Queries via Subgraph Matching

gStore-Answering SPARQL Queries via Subgraph Matching

作用:用于缩减 查询空间

1)如果在 G1 上找不到一个 摘要匹配 那么Q*在G* 上的匹配就不存在

2)在G1中的一个结点 是 某个顶点标签 ui的祖先,那么就一定会形成 一个 Q*在G* 上 摘要匹配

gStore-Answering SPARQL Queries via Subgraph Matching

gStore-Answering SPARQL Queries via Subgraph Matching

Valid child state

​ 1)是孩子结点

​ 2)是Q* 的一个摘要匹配

gStore-Answering SPARQL Queries via Subgraph Matching

2)算法细节

  1. 在查询图Q*3 里找到他的 summary matchesgStore-Answering SPARQL Queries via Subgraph Matching
    ,将这个summary matches 入队 H

  2. 每次从队列H中取一个summary matche,求他的child stategStore-Answering SPARQL Queries via Subgraph Matching
    gStore-Answering SPARQL Queries via Subgraph Matching

3)从这些子状态中过滤掉没有用的,找到 valid child state

可以达到一个 缩减 查询空间的效果

4)重复以上过程,直到到达叶子结点

5)最后在叶子结点上进行 匹配
gStore-Answering SPARQL Queries via Subgraph Matching

gStore-Answering SPARQL Queries via Subgraph Matching

相关文章:

  • 2021-09-23
  • 2021-11-22
  • 2021-07-18
  • 2021-11-04
  • 2021-10-13
  • 2022-01-11
  • 2021-11-23
猜你喜欢
  • 2021-05-30
  • 2021-10-01
  • 2021-06-17
  • 2022-12-23
  • 2021-04-07
  • 2021-12-29
  • 2022-12-23
相关资源
相似解决方案