在python中使用sparql \ sparqlwrapper,我如何能够查询某个dbpedia资源的值?例如,我如何才能获得http://dbpedia.org/page/Asturias的dbpedia-owl:wikiPageExternalLink值?这里's a simple example on how will I be able to query for the rdfs:label of Asturias. But I don't知道如何修改查询/查询参数以获取属性/本体的值,而不是rdfs模式中包含的值 . 这是样本:
from SPARQLWrapper import SPARQLWrapper, JSON, XML, N3, RDF
sparql = SPARQLWrapper("http://dbpedia.org/sparql")
sparql.setQuery("""
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?label
WHERE { <http://dbpedia.org/resource/Asturias> rdfs:label ?label }
""")
print '\n\n*** JSON Example'
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
for result in results["results"]["bindings"]:
print result["label"]["value"]
希望收到反馈 . 提前致谢!
1 回答
不知道你被困在哪里 - 这很容易:
通常,如果要在查询中使用它们,则需要声明名称空间前缀,如
rdfs:
或dbpedia-owl:
,但在DBpedia endpoints 上,即使没有,也可以使用 . 如果您愿意,您仍可以声明它们:您可以通过转到http://dbpedia.org/sparql并单击右上角附近的“命名空间前缀”找到与前缀对应的完整URI .
如果要重命名变量(例如,从
?label
重命名为?link
),请执行以下操作:并且您还必须在Python代码中将
"label"
更改为"link"
,以获取JSON结果中的值 .