sparql查询什么也没有返回

时间:2012-03-20 09:46:01

标签: sparql semantic-web

为什么这个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')
}

2 个答案:

答案 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从维基百科中提取数据时,当然没有关于重定向页面的信息。