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

我正在使用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倍。嗯,实际上并不完全,我只想要一次。为什么?)。

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

感谢帮助。

julia_cm 回答:使用SPARQL和GraphDB中的服务从DPBEDIA查询数据

您已将哪些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")
       }
  }
本文链接:https://www.f2er.com/3163543.html

大家都在问