jay*_*yde 7 python sparql dbpedia
在python中使用sparql\sparqlwrapper,我如何能够查询某个dbpedia资源的值?例如,我如何才能获得http://dbpedia.org/page/Asturias的dbpedia-owl:wikiPageExternalLink值?这是一个简单的例子,我将如何查询阿斯图里亚斯的rdfs:标签.但我不知道如何修改查询/查询参数以获取属性/本体的值,而不是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"]
Run Code Online (Sandbox Code Playgroud)
希望收到反馈.提前致谢!
不知道你被困在哪里 - 这很容易:
SELECT ?label
WHERE { <http://dbpedia.org/resource/Asturias>
dbpedia-owl:wikiPageExternalLink ?label }
Run Code Online (Sandbox Code Playgroud)
通常你需要声明名称空间前缀,rdfs:或者dbpedia-owl:如果你想在查询中使用它们,但是在DBpedia端点上,这甚至没有.如果您愿意,您仍可以声明它们:
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT ?label
WHERE { <http://dbpedia.org/resource/Asturias>
dbpedia-owl:wikiPageExternalLink ?label }
Run Code Online (Sandbox Code Playgroud)
您可以通过访问http://dbpedia.org/sparql并单击右上角附近的"命名空间前缀" 找到与前缀对应的完整URI .
如果要重命名变量(例如,从?labelto ?link),请执行以下操作:
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT ?link
WHERE { <http://dbpedia.org/resource/Asturias>
dbpedia-owl:wikiPageExternalLink ?link }
Run Code Online (Sandbox Code Playgroud)
并且您还必须在Python代码中更改"label"为"link"从JSON结果中获取值.
| 归档时间: |
|
| 查看次数: |
5385 次 |
| 最近记录: |