0

当我尝试在 LinkedMDB 中寻找The Machine和许多其他电影时,我无法找到它们。我可以使用这样的查询获取电影的 IMDB URL 并使用 SPARQL 端点查询 foaf:page 属性,但它不返回任何结果。

prefix dcterms: <http://purl.org/dc/terms/>
prefix foaf:    <http://xmlns.com/foaf/0.1/>
prefix owl: <http://www.w3.org/2002/07/owl#>

select * where{
    ?film foaf:page ?imdb;
    dcterms:title ?title
    filter regex(str(?imdb), "http://www.imdb.com/title/tt0110425", "i")
}

如您所见,查询包含一个正则表达式以捕获匹配的资源。我的查询中是否有一些错误,或者 LinkedMDB 存储库是否不包含所有 IMDB 的电影(我正在寻找的电影很旧)?

4

1 回答 1

2

我在 LinkedMDB 网站上没有看到任何表明他们拥有 IMDB 知道的所有电影的信息。他们端点上的以下查询不会返回任何结果,因此我认为您要查找的电影未在此处列出。

SELECT * WHERE {
 { ?resource rdfs:label "La Machine" } union
 { ?resource rdfs:label "The Machine" } union
 { ?resource dc:title "La Machine" } union
 { ?resource dc:title "The Machine" }
}

此外,您的原始查询比它需要的更复杂。正则表达式匹配可能很昂贵,如果您已经有一个 URI,那么您应该询问它,使用如下查询:

select * where{
  ?film foaf:page <http://www.imdb.com/title/tt0110425> ;
        dcterms:title ?title .
}
于 2014-06-14T21:03:55.533 回答