0

我正在使用以下查询来获取指向正确标题资源的链接/URI,但标题不正确:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT ?redirectsTo WHERE {
  ?x rdfs:label "Environmental Protection Agency"@en .
  ?x dbo:wikiPageRedirects ?redirectsTo
}

使用 dbpedia 端点这不是问题,并返回文章的正确链接,美国环境保护署

我正在使用 python SPARQLWrapper 库发送 sparql 查询,但是当我使用 python 执行完全相同的查询时:

sparql = SPARQLWrapper("http://dbpedia.org/sparql")
        # First check if this entity redirects to another entity
        sparql.setQuery("""
            PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
            PREFIX dbo: <http://dbpedia.org/ontology/>
            PREFIX db: <http://dbpedia.org/resource/>
            SELECT ?redirectsTo WHERE {
              ?x rdfs:label "%s"@en .
              ?x dbo:wikiPageRedirects ?redirectsTo
            }
        """ % entity)
        sparql.setReturnFormat(JSON)
        uri_result = sparql.query().convert()['results']['bindings']
        print(uri_result)

我得到一个没有重定向的空结果列表。但是,此查询在 python 中确实适用于某些事情 - 例如,奥巴马将提供 Barack Obama 的链接

我听说 sparql Web 界面使用不同的数据集?如果是这样,我如何在我的 python 脚本中使用它

谢谢

4

0 回答 0