为了账号安全,请及时绑定邮箱和手机立即绑定

如何在python中的sparqlwrapper中添加特殊类别

如何在python中的sparqlwrapper中添加特殊类别

翻翻过去那场雪 2021-12-08 16:09:41
我使用 sparqlwrapper 使用以下 sparql 查询,如下所示。from SPARQLWrapper import SPARQLWrapper, JSONsparql = SPARQLWrapper("http://live.dbpedia.org/sparql")sparql.setReturnFormat(JSON)my_category = 'dbc:Meteorological_concepts'sparql.setQuery(f" ASK {{ {my_category}  skos:broader{{1,3}} dbc:Medicine }} ")results = sparql.query().convert()print(results['boolean'])如上所述,它适用于没有括号的类别(例如,dbc:Meteorological_concepts)。但是,当我输入带括号(即my_category = dbc:Elasticity_(physics))的类别时,出现以下错误。b"Virtuoso 37000 Error SP030: SPARQL compiler, line 4: syntax error at 'physics' before ')'\n\nSPARQL query:\ndefine sql:big-data-const 0 \n#output-format:application/sparql-results+json\n\n    ASK { dbc:Elasticity_(physics) skos:broader{1,3} dbc:Medicine }\n"CRITICAL: Exiting due to uncaught exception <class 'SPARQLWrapper.SPARQLExceptions.QueryBadFormed'>有没有办法解决这个问题。如果需要,我很乐意提供更多详细信息。
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

我正在重写@StanislavKralin 在上述评论中提到的内容。我总是尝试在 SPARQL 代码中使用完整 URL,特别是当 SPARQL 查询中有特殊字符时。


from SPARQLWrapper import SPARQLWrapper, JSON

sparql = SPARQLWrapper("http://live.dbpedia.org/sparql")

sparql.setReturnFormat(JSON)

my_category = '<http://dbpedia.org/resource/Category:Elasticity_(physics)>'

sparql.setQuery(f" ASK {{ {my_category}  skos:broader{{1,3}} dbc:Medicine }} ")

results = sparql.query().convert()

print(results['boolean'])


查看完整回答
反对 回复 2021-12-08
  • 1 回答
  • 0 关注
  • 195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信