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

本文详细介绍了联合正则路径查询的概念及其扩展ECRPQ的特性,包括路径变量、自由路径变量的引入以及如何通过ECRPQ查询节点变量之间的关系。通过基于Σ⊥的字符串构建与正则自动机接受或正则表达式表示的关系,ECRPQ实现了更灵活的路径查询。此外,文章解释了如何使用ECRPQ进行路径关联和路径同构的查询,并讨论了其与CRPQ的区别。最后,文章还提到了ECRPQ在处理回溯引用正则表达式方面的能力限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

联合正则路径查询

  • 通过结合CQRPQ得到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属性路径相当于属性序列。定义属性ab的子属性ab。两个属性序列uv被称作ρisomorphic(路径同构)当且仅当u=u1,...,unv=v1,...,vnuiviviui1in。节点xy被称作ρisoAssociated(路径关联)当且仅当xy是两条同构路径属性序列的起点。
    • 找出路径关联的节点无法使用CRPQ表示,因为这需要保证两条路径长度相同。然而,路径同构的属性对能用基于表达式(a,bσ:(abba)(a,b))的正则关系R来表示。一个ECRPQ返回路径关联的点对xy可以被写成以下形式:
      ans(x,y)(x,π1,z1),(y,π2,z2),R(π1,π2)
      ECRPQ中的路径变量也可以被用来返回找出的实际路径。例如我们需要找出RDF资源rs间的每条路径,且路径包含资源e,可以用以下形式表示:
      ans(π1,π2)(r,π1,e),(e,π2,s)
      π1π2为实际路径
    • 包含回溯引用的正则表达式(REBR),正如egrepPerl中所提供的。举个例子,(r)%Xr是正则表达式,X是变量(绑定字符串wL(r)X)。然后用表达式中的X去匹配wECRPQ不能表示所有的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))(π,π)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值