次のように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'>
この問題を解決する方法はありますか。
必要に応じて詳細をお知らせします。