首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sparql两个嵌套选项dawg测试查询结果难以理解

Sparql两个嵌套选项dawg测试查询结果难以理解
EN

Stack Overflow用户
提问于 2019-07-26 19:58:10
回答 1查看 69关注 0票数 1

DAWG测试查询two-nested-opt.rq如下所示:

代码语言:javascript
复制
PREFIX :    <http://example/>

SELECT *
{ 
    :x1 :p ?v .
    OPTIONAL
    {
      :x3 :q ?w .
      OPTIONAL { :x2 :p ?v }
    }
}

测试数据如下:

代码语言:javascript
复制
@prefix   :         <http://example/> .
@prefix xsd:        <http://www.w3.org/2001/XMLSchema#> .

:x1 :p "1"^^xsd:integer .
:x2 :p "2"^^xsd:integer .
:x3 :q "3"^^xsd:integer .
:x3 :q "4"^^xsd:integer .

如果我运行该查询,预期的结果只是?v=1中的一条记录(简称)。不要真正理解它,因为注释第二个可选的,结果是两个记录:

  1. v=1,w=3
  2. v=1,w=4

我发现提到第二个可选项的一些可能的解释是没有操作的,因为?v绑定在第二个可选的和主要的bgp之间不匹配。但别明白这是怎么解释的。不管第二个可选结果是什么,第一个可选结果不应该总是包含在解决方案中吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-27 13:57:09

这个测试用例是关于评估是功能性的(也称为自下而上),以及?v的早期(最内部)设置对结果的影响。在测试中,内部最大设置?v会阻塞第一个可选选项,?w =3和?w =4不是结果。

这是一般情况下,有一个外部?v (可选的左边),然后一个可选的部分,没有提到?v本身有一个可选的使用?v。

如果查询被认为是自上而下的,答案将是不同的。

评价是:

代码语言:javascript
复制
:x3 :q ?w leftjoin :x2 :p ?v 
    Two rows:
         ?w = 3; ?v = 2
         ?w = 4; ?v = 2

:x1 :p ?v 
   ?v = 1

现在左联接“v= 1”与"?w = 3;?v = 2“--可选的不联接,因此结果是一行,”v= 1“和no ?w绑定。

如果省略":x2 :p ?v“,则第一个

代码语言:javascript
复制
:x3 :q ?w
    Two rows:
         ?w = 3
         ?w = 4

两者都与?v = 1连接,给出了两行?v和?w。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57226339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档