从 Python 查询 DBpedia

数据挖掘 Python
2021-09-23 02:37:18

如何使用 Python 从 DBpedia 获取有关实体的信息?

例如:我需要获取有关USA的所有 DBpedia 信息。所以我需要从 python (SPARQL) 编写查询,并需要获取 USA 的所有属性作为结果。

我试过 :

PREFIX db: <http://dbpedia.org/resource/>
SELECT ?p ?o
WHERE { db:United_States ?p ?o }

但是这里没有显示所有 DBpedia 信息。

我该如何做到这一点,哪些是可用于 python 连接 DBpedia 的可能插件/api?

另外,生成上述问题结果的 SPARQL 查询是什么?

1个回答

您不需要 DBPedia 的包装器,您需要一个可以向其 SPARQL 端点发出 SPARQL 查询的库。这是库的一个选项,这里是指向它的 URL:http: //dbpedia.org/sparql

您需要在 United_States 资源页面上发出 DESCRIBE 查询:

PREFIX dbres: <http://dbpedia.org/resource/>

DESCRIBE dbres:United_States

请注意,这是生成的三元组的大量下载。

以下是您发出查询的方式:

from SPARQLWrapper import SPARQLWrapper, JSON

def get_country_description():
    sparql = SPARQLWrapper("http://dbpedia.org/sparql")
    sparql.setReturnFormat(JSON)

    sparql.setQuery(query)  # the previous query as a literal string

    return sparql.query().convert()