论文注解《Query Languages for Graph Databases》graph数据库查询语法(III)

本文主要是介绍论文注解《Query Languages for Graph Databases》graph数据库查询语法(III),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

聚合

  • 聚合运算,例如: count,sum,min,max
    Figure 3... 这里写图片描述
    Figure 4... 这里写图片描述
  • GraphLog 中,聚合项可以是可区分的边或节点的标签,一个简单的 count 查询如 Figure 3 所示:对于每个作者 x ,计算其获y奖的次数。
    ans(x,count(y))(x,hasWon,y)
  • 找出每个点对间的最短路径需要计算出沿路径各段的最小距离,再汇总(基本也就是Floyd算法),如 Figure 4 所示。查询中的变量 d 是聚集变量,sum是汇总功能, min 用于聚合汇总的距离。当汇总和聚合的操作是闭半环时,查询时间复杂度是 PTIME 。查询 Q 可悲转化为以下Datalog程序:
    len(x,x,x,0)dist(x,y,l)
    len(x,x,x,0)dist(y,x,l)
    len(x,z,y,d)sp(x,z,s),dist(z,y,l),d=s+l
    sp(x,y,min(d))len(x,z,y,d)
    谓词 len(x,z,y,d) 说明有一条长度为 d=s+l 的路径从 x 经过z y x z 的最短路径为s z y的最短路径为 l

近似匹配和排名

  • 设一条正则路径查询Q如公式 (3) ,运用正则表达式 r 。近似匹配可通过把编辑操作应用到L(r)来实现。可能的编辑操作包括符号的插入、删除、置换、移项、倒置。
  • x,yΣ ,从 x y的编辑操作被模型化为一个基于 Σ 的二元关系 ,以至于 xy 当且仅当存在 u,vΣ,a,bΣ,ab 。例如:
    x=uav,y=ubv()
    x=uav,y=uv()
    x=uv,y=ubv()
    k 代表执行 k 操作。 de(x,y) 代表 x k y 所需最小的 k
  • 每个操作的开销可能都不一样。通常来说,对于不同实例,相同操作的开销也不一定相同。
  • 假定近似值由加权正则转换器的方法指定,这种转换器能用一个基于三元组(a,k,b)的正则表达式来表示( a 能被b k 开销替换)。加权转换器 T=(ST,Σ,σT,S0T,FT):有穷状态集合 ST 、输入/输出字符集 Σ 、初始状态集合 S0T 、终止状态集合 FT 、转换关系 σTST×ΣN×Σ×ST 。转换 (s,a,k,b,t) 表示当转换器处于状态 s 读入符号a,输出符号 b 消耗k并转到状态 t
  • 从查询Q的正则表达式 r 中构造一个NFA Mr 并将 G 也作为一个NFA。得到乘积自动机 Mr×T×G (a,b,k)ansT(Q,G) 当且仅当从初始状态 (_,_,a) 到终止状态 (_,_,b) 的最短路径开销为 k 。在一种更简单的设定里,近似值由编辑操作引起,所有开销均为1,且转换器 T 只有一个状态s实现从 s s的标签 ε
    (a,1,ε),aΣ()
    (ε,1,a),aΣ()
    (a,1,b),a,bΣ,ab()

表达能力和计算复杂性

  • 我们将查询语句分类为:联合查询( CQ )、正则路径查询( RPQ )、联合路径查询( CRPQ )、扩展联合路径查询( ECRPQ )。设 FQ 为一阶逻辑,可得到
    CQFO
    RPQCRPQECRPQ

    具有传递闭包(用 FO+TC 来表示)的一阶逻辑语言,用形如公式 TC=(λx¯,y¯ϕ(x¯,y¯)) 扩展了一阶逻辑: x¯ y¯ k 元组,ϕ(x¯,y¯) FO+TC 中的公式且决定了 k 元组的二元关系。TC=(λx¯,y¯ϕ(x¯,y¯))决定了 ϕ 的传递闭包。
  • 在一个线性 Datalog 程序中,每一条规则都最多只有一个递归子目标。在一个分层 Datalog 程序中,否定谓词的使用是有层次的。

总结

  • 总的来说这是篇概述性的论文,主要铺述了各类graph数据库的查询语言,主要着重于几个功能性的层面。尽管很多语言的特性和概念已经成为学术研究的主题,但对于graph查询语言来说工作则着力于建立一个完整且一致的框架。近似查询和图的转换也值得更多研究。

个人感悟

  • graph数据库可以说是传统关系型数据库的一个特化版本,即更专注于一元|二元关系的表达。 RDF 的形式为主语 谓词 宾语,相较于 schema 化的graph数据库灵活性更强,但是在线计算的能力必然更弱。当图中的节点数多到必须分布式存储时,针对子图分割和最短路径的传统算法就完全没有什么卵用,因此必须涉及到概率性的层面。很多语言在功能和架构完善后都会引入正则表达式,正则语法应当是对原有功能的汇总表示。

这篇关于论文注解《Query Languages for Graph Databases》graph数据库查询语法(III)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/623851

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

ural 1026. Questions and Answers 查询

1026. Questions and Answers Time limit: 2.0 second Memory limit: 64 MB Background The database of the Pentagon contains a top-secret information. We don’t know what the information is — you

深入理解数据库的 4NF:多值依赖与消除数据异常

在数据库设计中, "范式" 是一个常常被提到的重要概念。许多初学者在学习数据库设计时,经常听到第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及 BCNF(Boyce-Codd范式)。这些范式都旨在通过消除数据冗余和异常来优化数据库结构。然而,当我们谈到 4NF(第四范式)时,事情变得更加复杂。本文将带你深入了解 多值依赖 和 4NF,帮助你在数据库设计中消除更高级别的异常。 什么是

Mybatis中的like查询

<if test="templateName != null and templateName != ''">AND template_name LIKE CONCAT('%',#{templateName,jdbcType=VARCHAR},'%')</if>

DM8数据库安装后配置

1 前言 在上篇文章中,我们已经成功将库装好。在安装完成后,为了能够更好地满足应用需求和保障系统的安全稳定运行,通常需要进行一些基本的配置。下面是一些常见的配置项: 数据库服务注册:默认包含14个功能模块,将这些模块注册成服务后,可以更好的启动和管理这些功能;基本的实例参数配置:契合应用场景和发挥系统的最大性能;备份:有备无患;… 2 注册实例服务 注册了实例服务后,可以使用系统服务管理,