首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该怎么做,从linkedmdb获得所需的结果?

我应该怎么做,从linkedmdb获得所需的结果?
EN

Stack Overflow用户
提问于 2015-07-08 17:08:32
回答 1查看 121关注 0票数 0

有人能解释一下这个现象吗?我使用SPARQL查询端点http://www.linkedmdb.org/snorql:获取在英国电影Q1中主演的演员列表:

代码语言:javascript
复制
SELECT * WHERE {
?Film <http://data.linkedmdb.org/resource/movie/country> <http://data.linkedmdb.org/resource/country/GB> .
?Film <http://data.linkedmdb.org/resource/movie/actor> ?actor.
}

在这些结果中,当我运行查询Q2时,有一个id 11764的参与者奇怪地:

代码语言:javascript
复制
SELECT * WHERE {
   ?Film <http://data.linkedmdb.org/resource/movie/actor> ?actor.
}

虽然Q2没有Q1演员那么有选择性,但结果中的数字11764已不再具有选择性。注意,我们通过删除Q2的第一个三重模式(较少的约束)来获得Q1。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-08 23:41:32

这似乎是linkedmdb.org端点的SPARQL引擎中的一个错误,因为这些结果显然不一致。

为了排除查询结果大小上限的可能性,我尝试了原始查询的几个变体。

此查询:

代码语言:javascript
复制
SELECT * WHERE {
    ?Film <http://data.linkedmdb.org/resource/movie/actor> ?actor . 
    FILTER (?actor = <http://data.linkedmdb.org/resource/actor/11764> )
}

给出了预期的结果(两个结果,都是我们期望的演员)。

但是,这个查询:

代码语言:javascript
复制
 SELECT * WHERE {
    ?Film <http://data.linkedmdb.org/resource/movie/actor> ?actor . 
    FILTER (REGEX(STR(?actor), "11764"))
 }

给出的结果为零,而这个查询:

代码语言:javascript
复制
 SELECT * WHERE {
    ?Film <http://data.linkedmdb.org/resource/movie/country> <http://data.linkedmdb.org/resource/country/GB> .
    ?Film <http://data.linkedmdb.org/resource/movie/actor> ?actor . 
    FILTER (REGEX(STR(?actor), "11764"))
 }

给我一个确切的结果(一个GB的电影与这位演员),如预期。

因此,总之: SPARQL查询没有任何问题。你似乎在他们的SPARQL引擎中偶然发现了一个bug --你可能想用这个信息联系他们。

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

https://stackoverflow.com/questions/31299213

复制
相关文章

相似问题

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