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

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

联合正则路径查询

  • 通过结合 CQ RPQ 得到 CRPQ ,形式如 (2)

比较并返回路径

  • 在某些场景下(例如找出web上联通的数据),需要指定路径间的关系同时得到实际的路径作为查询结果
  • ECRPQ 提供以上两种特性, ECRPQ 在两个层面上扩展了 CRPQ
    • 允许查询的头部存在自由路径变量
    • 允许校验查询体中路径间的关系而不是简单的令路径和正则语言相匹配
  • 我们首先基于 Σ 定义正则关系的规范。设为一个独立于 Σ 的符号,利用扩展 Σ 得到Σ
  • x¯=(s1,s2,...sn) 为一个基于 Σ 的字符串的n元组。构造一个基于 (Σ)n 字符串 [s¯] ,其长度是 sj 的最大值,且第 i 个符号是一个元组(c1,...,cn)(当 sk 的长度至少是 i 时,每个ck等于 sk 的第 i 个符号,否则等于)。也就是说我们用 填补短字符串,从而把 n 个字符串视作一个字符串。对于任何Σ中的 n 元关系S,当基于 (Σ)n 的字符串集合 [s¯]|s¯S 能被基于 (Σ)n 的正则自动机接受或者能用基于 (Σ)n 正则表达式表示,则被认为是正则的。我们也应当利用相同的字母来表示基于 (Σ)n 的正则表达式和基于 Σ 的关系
  • 除了 CRPQ 中的节点变量,我们还确定了一个可数路径变量集合(用 π,ω,χ 来表示)。一条基于 Σ 的扩展联合正则路径请求ECRPQ的表达式为:
    ans(z¯,χ¯)1im(xi,πi,yi),1jtRj(ω¯j)

    1. m>0,t0
    2. 每个 Rj 是一个定义了正则关系的正则表达式
    3. x¯=(x1,...,xm) y¯=(y1,...,ym) 都是节点变量元组
    4. π¯=(π1,...,πm) 是路径变量元组
    5. {w¯1,...,w¯t} 是不同的路径变量元组,例如 w¯j 是一个 π¯ 中变量的元组,变量数目等于 Rj
    6. z¯ 是一个 x¯,y¯ 中节点变量的元组
    7. χ¯ 是一个 π¯ 中路径变量的元组
  • ECRPQ 的语义是 CRPQ 的延伸。对于一个 ECRPQ 的查询,从节点变量到节点的映射关系为 σ ,从路径变量到路径的映射关系为μ,当满足以下两个条件时,则可认为 (G,σ,μ)|=Q
    • μ(πi) G 中的一条从σ(xi) σ(yi) 的路径, 1im
    • 对于每个 w¯j=(πj1,...,πjk) ,由 μ(πj1),...μ(πjk) 中标签组成的字符串元组属于关系 Rj
  • 查询结果可定义为:
    Q(G)={(σ(z¯),μ(χ¯))|(G,σ,μ)|=Q}
  • 举例说明:
    • RDF 的查询语句中,路径可以被基于特定的语义关联比较。边相当于 RDF 属性路径相当于属性序列。定义属性 a b的子属性 ab 。两个属性序列 u v被称作 ρisomorphic (路径同构)当且仅当 u=u1,...,un v=v1,...,vn uivi viui 1in 。节点 x y被称作 ρisoAssociated (路径关联)当且仅当 x y是两条同构路径属性序列的起点。
    • 找出路径关联的节点无法使用 CRPQ 表示,因为这需要保证两条路径长度相同。然而,路径同构的属性对能用基于表达式 (a,bσ:(abba)(a,b)) 的正则关系 R 来表示。一个ECRPQ返回路径关联的点对 x y可以被写成以下形式:
      ans(x,y)(x,π1,z1),(y,π2,z2),R(π1,π2)
      ECRPQ 中的路径变量也可以被用来返回找出的实际路径。例如我们需要找出 RDF 资源 r s间的每条路径,且路径包含资源 e ,可以用以下形式表示:
      ans(π1,π2)(r,π1,e),(e,π2,s)
      π1 π2 为实际路径
    • 包含回溯引用的正则表达式 (REBR) ,正如 egrep Perl 中所提供的。举个例子, (r)%X r 是正则表达式,X是变量(绑定字符串 wL(r) X )。然后用表达式中的X去匹配 w ECRPQ不能表示所有的 REBR ,但另一方面, ECRPQ 能匹配模式,例如 anbncn
      ans(x,y)(x,π1,z1),(z1,π2,z2),(z2,π3,y),a(π1),b(π2),c(π3),el(π1,π2),el(π2,π3)

      el(π,π) 是的简写 (a,bσ(a,b))(π,π)

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



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

相关文章

SpringBoot利用@Validated注解优雅实现参数校验

《SpringBoot利用@Validated注解优雅实现参数校验》在开发Web应用时,用户输入的合法性校验是保障系统稳定性的基础,​SpringBoot的@Validated注解提供了一种更优雅的解... 目录​一、为什么需要参数校验二、Validated 的核心用法​1. 基础校验2. php分组校验3

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Spring Security方法级安全控制@PreAuthorize注解的灵活运用小结

《SpringSecurity方法级安全控制@PreAuthorize注解的灵活运用小结》本文将带着大家讲解@PreAuthorize注解的核心原理、SpEL表达式机制,并通过的示例代码演示如... 目录1. 前言2. @PreAuthorize 注解简介3. @PreAuthorize 核心原理解析拦截与

Mybatis 传参与排序模糊查询功能实现

《Mybatis传参与排序模糊查询功能实现》:本文主要介绍Mybatis传参与排序模糊查询功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、#{ }和${ }传参的区别二、排序三、like查询四、数据库连接池五、mysql 开发企业规范一、#{ }和${ }传参的

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处