繁体   English   中英

SPARQL 相同的谓词具有不同的值

[英]SPARQL same predicates with different values

我正在使用 SPARQL 从三元组查询我的数据。 在三元组中,我有一个包含表格的表格,该表格具有不同的表格条目。 每个条目都有多个谓词。 我想使用谓词索引和成本。 我的查询需要捕获前 2 行,索引 0 和 1,并将成本保存在每个特定变量下。

所以我尝试了以下方法(省略了前缀 ext):

SELECT DISTINCT ?entry ?priceOne ?priceTwo
  WHERE {
    ?form ext:table ?table.
    ?table ext:entry ?entry.
    ?entry ext:index 0;
       ext:cost ?priceOne.
    ?entry ext:index 1;
       ext:cost ?priceTwo.
}

然而,如果我删除第二部分(索引为 1)而不是我得到的,这不会显示任何值?priceOne。 我怎样才能得到这两个值?

您当前的查询找到每个?entry具有ext:index值 0 和 1。您可以通过使用类似?entry0?entry1的东西来避免这种情况,本质上是复制您的三重模式。

但通常情况下,您会将备选方案与UNION匹配

SELECT DISTINCT ?entry ?priceOne ?priceTwo
WHERE {

    # a shorter way to specify this, if you don’t need the ?table variable
    ?form ext:table/ext:entry ?entry .

    {
      ?entry ext:index 0 ;
             ext:cost ?priceOne .
    }
    UNION
    {
      ?entry ext:index 1 ;
             ext:cost ?priceTwo .
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM