1. 摘要

因为图数据库的复杂模式和不同的信息描写叙述方式,对于非专业用户来说查询复杂的图数据库是异常困难的。

一个好的图查询引擎应该支持多种转化——同义词、缩略词、简写以及本体等等,而且应该可以对搜索结果进行一个非常好地排序。

基于此问题本文提出了一种新型的查询框架来方便用户查询,解放了为构造查询图而抓耳挠腮的用户群。

2. 应用背景

2.1 应用

图数据库也是一种流行的数据存储方式。如知识图、信息网络以及社交网络等应用的数据都存储在图数据库中。由于图数据的无模式或者模式太复杂以及信息的多种描写叙述方式使得基于图数据的查询变得很困难。对于一般用户来说更是望之却步。

图2-1 a为图数据库中的一部分,若查询大约30岁而且跟“Universityof California Berkley”以及“Mission:Impssible”相关的演员。易得图2-1中绿色与黄色部分均为比較好的结果。图2-1 b为一个可以表达查询语义的查询,可是现有的图数据库查询仅仅能查询到绿色的部分或者一个都查不到。

原因在于结点的信息都不匹配。而原有查询又不支持语义转换或者仅仅支持一种转化。

图2-1 图数据库G

该文解决的问题能够描写叙述为:给定一个查询Q以及数据库G,找出图数据库中全部由Q经转换函数能够转化的图。

2.2 抽象定义

给定一个查询Q、一个图数据库G以及一系列转化函数L,求跟Q匹配的最好的k个子图。当中转化函数L包含表2-1中全部的转化。

表2-1 本文支持的转化函数

注:本文的方法能够轻松地增加其他转化函数来满足不同的需求

3 已有方法

Spark查询仅仅需用户输入keyword就可以,而无需输入复杂的图结点关系就能得到查询结果。但其仅仅能提取字符串相似匹配,通过改动能够使其支持其他转换。

NeMa支持图结构和字符串相似度匹配(Jaccard)。

4 本文的方法

4.1 离线操作

4.1.1 度量函数

下述公式中v表示结点,e表示边,φ(·)表示匹配,比如φ(v)表示图数据库G中与查询图v中匹配的结点。若v能够经过第i个转换函数变为φ(v),则fi(v,φ(v)) = 1。反之φ(v) = 0。

结点匹配代价:

边匹配代价:

图匹配函数:

且易得图匹配函数P的值越小,与Q匹配的图φ(Q)的质量越高,即查询结果应该为P值最小的k个子图。

4.1.2 參数确定

令W={α1, α2, … ; β1, β2},则

当中T表示训练集。

4.1.3 冷启动

令启动的目的在于怎样生成好的查询训练集,从而能够得到好的匹配函数的參数。冷启动步骤:

(1) 从图数据库中随机选择一些子图作为查询模板Q’;

(2) 将查询模板中的一些结点和边用转换函数进行转化得到查询Q。

(3) 提取和Q精确匹配的子图Qe

(4) (Q, Q’)与(Q, Qe)组成训练集。

4.2 在线查询

一般的图查询均属于NP-hard问题,其能够归约为子图同构问题,从而证明该问题是NP-hard的。

因此本文设计了两个启示式用于求解该问题。

4.2.1 启示式1

将图匹配的代价累加到一个结点上,则每一个结点的匹配得分能够代表包含该节点在内的图匹配代价。

每一个结点计算公式:

当中mji(t)(ui)表示第t次迭代uj结点对节点ui匹配贡献的得分。

该公式的直观理解參考图4-1。当中a、b中左边均表示数据库,右边表示查询图。

图4-1 启示式1的直观意义

4.2.2 启示式2

利用启示式1进行计算时须要计算大量的结点。由结点匹配代价计算公式可得。对于随意的查询结点v经过同样的转换函数匹配代价同样。基于此将经过同一个结点转换的结点浓缩为一个结点计算,则能够有效降低结点得分的计算个数。由浓缩结点组成的图成为概要图。若查询图中两个结点之间存在边,则连接概要图中相应的结点,而与图数据库无关。当中,边的匹配代价为图数据库中全部这类边的匹配代价的上界。

基于这样的发现问题的求解步骤为:

(1) 构造概要图;

(2) 在概要图上利用启示式1计算;

(3) 利用概要图中计算出的结果求原图中与之相应子图的得分。

循环运行直到找到k个结果。

以上为我对论文Schemaless and Structureless Graph Querying-vldb2014的个人理解。当然当中仅仅介绍了论文中的主要内容。具体的解说请查看论文解说的ppt,地址http://download.csdn.net/detail/woniu317/7391539。

基于多种转换语义的图数据库查询相关推荐

  1. Task 5 Cypher 介绍及Neo4j 图数据库查询

    Datawhale 知识图谱组队学习 Task 5 Neo4j 图数据库查询 一. Neo4介绍 二. Neo4j 介绍 3.1 Cypher 介绍 3.2 Neo4j 图数据库 查询 四. 基于知识 ...

  2. java 连接janusgraph_基于JanusGraph的大数据图数据库

    导读 知识图谱是近来很火的概念,很多领域都希望能用知识图谱解决一些问题.在零售领域其实也有使用知识图谱的场景,比如阿里使用知识图谱进行商品智能导购以及商品"巡检",而我想试验着把知 ...

  3. 知识图谱组队学习Task05——图数据库查询

    Cypher 介绍:作为Neo4j的查询语言,"Cypher"是一个描述性的图形查询语言,允许不必编写图形结构的遍历代码对图形存储有表现力和效率的查询.Cypher还在继续发展和成 ...

  4. 基于图数据库、图算法、图神经网络的 ID Resolution/ID Mapping 大数据分析方法与代码示例

    本文首发于 NebulaGraph 公众号 "本文是一个基于 NebulaGraph 上的图数据库.图算法.图神经网络的 ID Resolution/ID Mapping 方法综述,除了基本 ...

  5. 聊聊图数据库和图数据库的小知识

    图数据库 - 维基百科:在计算机科学中,图数据库(英语:graph database,GDB)是一个使用图结构进行语义查询的数据库,它使用节点.边和属性来表示和存储数据.该系统的关键概念是图,它直接将 ...

  6. 领域应用 | 图数据库及其在恒昌的应用简介

    首发于知乎专栏知识图谱和智能问答,作者为量子胖比特. 背景 历史上,多数企业级应用都运行在一个关系型数据库上(RDBMS),近年来,随着数据存储技术的飞速发展,关系型数据库在灵活性和可伸缩性方面不再处 ...

  7. 一文聊“图”,从图数据库到知识图谱

    作者 | 穆琼 责编 | 晋兆雨 头图 | 付费下载于视觉中国 随着知识图谱的发展,图数据库一词被越来越多的提到.那么到底什么是图数据库,为什么要用图数据库,如何去建设一个图数据库应用系统,图数据库与 ...

  8. 分布式图数据库在贝壳的应用实践

    导读:你想知道百亿级图谱如何实现毫秒级查询吗?社区众多的图数据库中如何才能挑选到一款适合实际应用场景的图数据库呢?贝壳找房的行业图谱480亿量级的三元组究竟是如何存储的呢?本文将带你探索上述问题并从中 ...

  9. 图数据库 graph_通过SQL Server中的自连接了解Graph数据库相对于关系数据库的好处

    图数据库 graph Earlier this year, I published several articles on SQLShack with an aim of demonstrating ...

最新文章

  1. java web dao_JavaWeb项目,DAO应该怎么写?
  2. python基础-垃圾回收机制
  3. 终于有人把中医“数字化”了 | 极客视频
  4. C++用FindFirstFile、FindNext递归遍历硬盘的文件
  5. 【项目管理】三球模型
  6. GitHub直接查看HTML【项目网站一种制作方法】
  7. iOS开发 - 在状态栏显示FPS,CPU和内存信息
  8. oracle 查看过程的用户,Oracle 查看 用户拥有权限的过程
  9. NOI08冬令营 数据结构的提炼与压缩
  10. JAVA 基础语法(二)——基本数据类型转换以及运算符
  11. SolidWorks零件图转工程图
  12. python画代码流程图_python如何画流程图
  13. 18位身份证号码的编排规则
  14. k8s service nodeport
  15. android设计计算等级程序,Android自定义View仿QQ等级天数进度
  16. Cadence OrCAD Capture 四种定位到图纸指定位置的方法说明
  17. RTX3050、3050Ti相当于什么水平?
  18. 山科大 6-1 sdust-Java-可实现多种排序的Book类 (20 分)(18 软件 期中考试函数1)
  19. 双球坐标系_坐标系为啥有多种,笛卡尔坐标系、柱坐标系、球坐标系都有啥区别...
  20. 为什么我的C语言移位操作达不到效果??

热门文章

  1. 计算机主机电池馈电,电脑主机电池没电引起故障怎么处理
  2. Ant Design 4.0 进行时!
  3. 【leetcode】581. Shortest Unsorted Continuous Subarray
  4. 真正的 Tornado 异步非阻塞
  5. [javaSE] 集合框架(Map概述)
  6. MySQL基本命令 (二)
  7. centos,yum安装时报错could not retrieve mirrorlist,resolve.conf配置,dns配置错误
  8. 看到他我一下子就悟了-- Lambda表达式
  9. 数据结构 —— 为结构体内变量赋值
  10. 归并排序的实现及其优化(递归法)