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

如何在python中的sparqlwrapper中添加特殊类别,python,sparql,sparqlwrapper,Python,Sparql,Sparqlwrapper,我使用sparqlwrapper使用以下sparql查询,如下所示 from SPARQLWrapper import SPARQLWrapper, JSON sparql = SPARQLWrapper("http://live.dbpedia.org/sparql") sparql.setReturnFormat(JSON) my_category = 'dbc:Meteorological_concepts' sparql.setQuery(f" ASK {{ {my_category}

我使用sparqlwrapper使用以下sparql查询,如下所示

from SPARQLWrapper import SPARQLWrapper, JSON
sparql = 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:weatherical_concepts
)。但是,当我用括号输入一个类别(即
my_category=dbc:elastic_(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'>
b“Virtuoso 37000错误SP030:SPARQL编译器,第4行:前面的“物理”语法错误”'\n\nSPARQL查询:\n精细sql:big data const 0\n#输出格式:application/SPARQL results+json\n\n询问{dbc:Elasticity(physics)skos:Brothered{1,3}dbc:Medicine}\n”
严重:由于未捕获异常而退出
有没有办法解决这个问题


如果需要,我很乐意提供更多细节。

我正在改写@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'])
从SPARQLWrapper导入SPARQLWrapper,JSON
sparql=SPARQLWrapper(“http://live.dbpedia.org/sparql")
setReturnFormat(JSON)
我的_类别=“”
setQuery(f“ASK{{{my_category}skos:broader{{{1,3}}}dbc:Medicine}”)
结果=sparql.query().convert()
打印(结果['boolean'])

我正在重写@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'])
从SPARQLWrapper导入SPARQLWrapper,JSON
sparql=SPARQLWrapper(“http://live.dbpedia.org/sparql")
setReturnFormat(JSON)
我的_类别=“”
setQuery(f“ASK{{{my_category}skos:broader{{{1,3}}}dbc:Medicine}”)
结果=sparql.query().convert()
打印(结果['boolean'])

这是DBpedia URI的一个问题。见@chrisis,非常感谢。如果您可以将其作为答案发布,那将非常好:)尝试使用完整URI:
。这是DBpedia URI的一个问题。见@chrisis,非常感谢。如果您可以将其作为答案发布,那将非常棒:)尝试使用完整的URI: