为什么这个SPARQL没有返回任何值
PREFIX ontology: <http://dbpedia.org/ontology/>
SELECT ?Abstract
WHERE
{
<http://dbpedia.org/resource/Cologne> <http://dbpedia.org/ontology/wikiPageRedirects> ?page .
?page <http://dbpedia.org/ontology/abstract> ?Abstract.
FILTER (lang(?Abstract)='en')
}
答案 0 :(得分:4)
有两个原因。首先,没有Cologne
的重定向,但有重定向到它。所以:
PREFIX ontology: <http://dbpedia.org/ontology/>
SELECT *
WHERE
{
<http://dbpedia.org/resource/Cologne>
<http://dbpedia.org/ontology/wikiPageRedirects> ?page .
}
什么都不返回,而:
PREFIX ontology: <http://dbpedia.org/ontology/>
SELECT *
WHERE
{
?page
<http://dbpedia.org/ontology/wikiPageRedirects>
<http://dbpedia.org/resource/Cologne> .
}
确实有效。
其次,这些重定向都没有抽象。 Cologne
本身就是这样,所以你可以使用它:
PREFIX ontology: <http://dbpedia.org/ontology/>
SELECT ?Abstract
WHERE
{
<http://dbpedia.org/resource/Cologne>
<http://dbpedia.org/ontology/abstract> ?Abstract.
FILTER (lang(?Abstract)='en')
}
答案 1 :(得分:0)
它不会返回任何值,因为没有任何内容与您的查询匹配。如果取消引用科隆的URI,则可以看到没有wikiPageRedirects
属性。 dbpedia:Cologne
不会重定向到任何内容,但许多资源会重定向到dbpedia:Cologne
。但是,重定向到科隆的资源没有摘要。事实上,这是很正常的:在维基百科中,您无法编辑重定向到另一个页面的页面,因为您必须重定向到另一个页面。因此,当dbpedia从维基百科中提取数据时,当然没有关于重定向页面的信息。