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

问题描述 投票:0回答:1

我正在使用GraphDB的免费版本,从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倍。嗯,实际上不完全是,我只想要一次。为什么?)。

所以我的问题是,为什么它不起作用?如何使它起作用?

感谢您的帮助。

sparql graphdb
1个回答
0
投票

您已将哪些DBpedia链接的数据(即描述dbr:Eiffel_Tower的任何内容)加载到本地GraphDB实例中?我押注“无”。

[我认为,如果您评论(或删除)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")
       }
  }
© www.soinside.com 2019 - 2024. All rights reserved.