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

2024-06-13 14:35:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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: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'>

有办法解决这个问题吗。你知道吗

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


Tags: jsonmyskosquerysparqlresultsaskdbc
1条回答
网友
1楼 · 发布于 2024-06-13 14:35:24

我正在重写@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'])

相关问题 更多 >