我想在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
,然后尝试从中获取链接,但它也没有用。有人知道如何处理这个问题吗?
答案 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.
}