如何在Python中集成Wikidata查询

EmJ*_*EmJ 8 python sparql wikidata-query-service

我目前正在使用维基数据查询服务来运行我的维基数据查询。

例如,我的维基数据查询之一如下所示。

SELECT ?sLabel {
    SERVICE wikibase:mwapi {
        bd:serviceParam wikibase:api "EntitySearch".
        bd:serviceParam wikibase:endpoint "www.wikidata.org".
        bd:serviceParam mwapi:search "natural language processing".
        bd:serviceParam mwapi:language "en".
        ?item wikibase:apiOutputItem mwapi:item.
        ?num wikibase:apiOrdinal true.
    }
    ?s wdt:P279|wdt:P31 ?item .
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
}
ORDER BY ?num
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

我想知道我们是否可以在 python 程序中使用这些查询?如果是这样,我们如何在 python 中集成查询?

如果需要,我很乐意提供更多详细信息。

Abb*_*bbe 12

如果您想在没有 SPARQL 特定库的情况下执行此操作:

import requests

url = 'https://query.wikidata.org/sparql'
query = '''
SELECT ?item ?itemLabel ?linkcount WHERE {
    ?item wdt:P31/wdt:P279* wd:Q35666 .
    ?item wikibase:sitelinks ?linkcount .
FILTER (?linkcount >= 1) .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" . }
}
GROUP BY ?item ?itemLabel ?linkcount
ORDER BY DESC(?linkcount)
'''
r = requests.get(url, params = {'format': 'json', 'query': query})
data = r.json()
Run Code Online (Sandbox Code Playgroud)


Ala*_*aye 7

sparqlwrapper可以处理这个问题。您可以在这里找到更多信息