SPARQL查询 - 获取链接

时间:2018-04-03 11:40:50

标签: sparql semantic-web

我想在LMDB SPARQL-Endpoint(http://data.linkedmdb.org/snorql/)上运行特定查询。由于某种原因,我无法获得返回的电影链接。

我的查询:

SELECT ?aName ?mName ?link ?aLink ?mLink 
      WHERE {
            ?link <http://data.linkedmdb.org/resource/movie/performance_character> 'Adam Faulkner' .
            ?link <http://data.linkedmdb.org/resource/movie/performance_actor> ?aName .
            ?link <http://data.linkedmdb.org/resource/movie/performance_film> ?mName . 
            ?aLink <http://data.linkedmdb.org/resource/movie/actor_name> ?aName .
            }

我已经尝试了?mLink <http://data.linkedmdb.org/resource/movie/filmid> ?mName,就像查询的最后一行一样,因为这样我获得了?aLink,但由于某种原因,它不能以这种方式工作。我也试过dc:title ?mName,然后尝试从中获取链接,但它也没有用。有人知道如何处理这个问题吗?

1 个答案:

答案 0 :(得分:0)

由于performance_film引用字符串而非URI,因此您无法从中找到filmid信息。所以你应该遍历电影链接:

SELECT ?aName ?mName ?link ?aLink ?m WHERE {
 ?link <http://data.linkedmdb.org/resource/movie/performance_character> 'Adam Faulkner' .
 ?link <http://data.linkedmdb.org/resource/movie/performance_actor> ?aName .
 ?link <http://data.linkedmdb.org/resource/movie/performance_film> ?mName . 
 ?aLink <http://data.linkedmdb.org/resource/movie/actor_name> ?aName .
 ?m <http://data.linkedmdb.org/resource/movie/performance> ?link .
 ?m <http://data.linkedmdb.org/resource/movie/filmid> ?id.
}