加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

SPARQL查询:使用VALUES内联数据或UNION与bigdata存储

发布时间:2020-12-14 04:31:41 所属栏目:大数据 来源:网络整理
导读:我有一个看起来有点像的数据集: item1 isLocated someAddressitem2 isLocated someAddressitem3 isLocated someOtherAddress 我希望能够使用SPARQL来回答这个问题: “我会在someAddress或someOtherAddress找到哪些项目?” 我可以像这样使用UNION: SELECT
我有一个看起来有点像的数据集:

<item1> <isLocated> <someAddress>
<item2> <isLocated> <someAddress>
<item3> <isLocated> <someOtherAddress>

我希望能够使用SPARQL来回答这个问题:

“我会在someAddress或someOtherAddress找到哪些项目?”

我可以像这样使用UNION:

SELECT ?item
{
    { ?item <isLocated> <someAddress> }
    UNION { ?item <isLocated> <someOtherAddress }
}

但是当我开始谈论100或1000的地址时,我认为这将变得非常混乱.

我认为VALUES内联数据可能比一堆UNION查询更合适.
我已经尝试编写以下查询,但我的RDF存储/引擎(bigdata)似乎扼杀了它:

SELECT ?item
{
    ?item <isLocated> ?loc .
}
VALUES (?loc) { (<someAddress>) (<someOtherAddress>) }

(基于http://www.w3.org/TR/sparql11-query/#inline-data)

我从bigdata得到的错误是:
第5行第7列的词汇错误.遇到:“”(32),之后:“VALUES”

我正确地形成了这个查询吗?
使用UNION或VALUES更合适吗?

似乎无论我如何格式化此查询(基于上面链接中的w3示例),我都会得到类似的词法错误.

有任何想法吗?

干杯.

解决方法

猜测一下,我会说Bigdata还不支持VALUES条款.这是最新的SPARQL工作草案(几周前发布)中引入的一个全新功能,所以很自然地,有些工具还不支持它.

您可以尝试使用BINDINGS(这与之前的工作草案大致相同,已被替换).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读