sparql查询什么都不返回

use*_*820 1 semantic-web sparql

为什么此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')
}
Run Code Online (Sandbox Code Playgroud)

use*_*512 5

有两个原因。首先,没有的重定向Cologne,但有对其的重定向。所以:

PREFIX ontology: <http://dbpedia.org/ontology/> 
SELECT * 
WHERE
{
    <http://dbpedia.org/resource/Cologne> 
        <http://dbpedia.org/ontology/wikiPageRedirects> ?page .
}
Run Code Online (Sandbox Code Playgroud)

不返回任何内容,而:

PREFIX ontology: <http://dbpedia.org/ontology/> 
SELECT * 
WHERE
{
    ?page 
        <http://dbpedia.org/ontology/wikiPageRedirects>
            <http://dbpedia.org/resource/Cologne> .
}
Run Code Online (Sandbox Code Playgroud)

确实有效。

其次,这些重定向似乎都没有抽象。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')
}
Run Code Online (Sandbox Code Playgroud)