在 GraphDB 中使用 SPARQL 和服务从 DPBEDIA 查询数据

Querying data from DPBEDIA Using SPARQL and Service in GraphDB

我正在使用免费版的 GraphDB 并想 select 来自 DBpedia 的一些数据。

以下是我试过的:

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>

Select ?about 
WHERE {
    dbr:Eiffel_Tower a ?o .
    SERVICE <https://dbpedia.org/sparql> {
        dbr:Eiffel_Tower dbo:abstract ?about .
     }
    FILTER (LANG(?about) = "de")
}

但是,我没有得到任何结果。

如果我 运行 http://factforge.net/ 上的查询像:

Select ?about
Where {
    dbr:Eiffel_Tower dbo:abstract ?about .
}
'''

or even like:

'''
Select ?about 
WHERE {
    dbr:Eiffel_Tower a ?stuff .
    SERVICE <https://dbpedia.org/sparql> {
        dbr:Eiffel_Tower dbo:abstract ?about .
     }
    FILTER (LANG(?about) = "de")
}

我得到我想要的(我得到德国的9倍左右。嗯,其实不完全是,我只想要once.why?)。

所以我的问题是,为什么它不起作用,我怎样才能让它起作用?

感谢您的帮助。

您将哪些 DBpedia 链接数据(即描述 dbr:Eiffel_Tower 的任何内容)加载到本地 GraphDB 实例中?我赌 "none."

我想如果您评论(或删除)dbr:Eiffel_Tower a ?o . 行,您会得到结果。

您还应该将 FILTER 移动到子查询中,因为现在您从 DBpedia 中提取的数据比您需要或想要的要多得多。

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>

SELECT ?about 
WHERE
  {
  #  dbr:Eiffel_Tower a ?o .
     SERVICE <https://dbpedia.org/sparql>
       {
         dbr:Eiffel_Tower dbo:abstract ?about .
         FILTER (LANG(?about) = "de")
       }
  }