我尝试使用 python sparql-client 3.6 查询给定类的超类。使用以下代码片段
dbo_prefix = 'http://dbpedia.org/ontology/'
_class = 'PoliticalParty'
s = sparql.Service('http://dbpedia.org/sparql', "utf-8", "GET")
statement = 'SELECT distinct ?superclass WHERE { dbo:%s rdfs:subClassOf* ?superclass. ' \
'FILTER (strstarts(str(?superclass), "%s"))}' % (_class, dbo_prefix)
print(statement)
result = s.query(statement)
for row in result.fetchone():
print(row)
但它在下面的 StackTrace 中崩溃。我调试了代码,发现在 lib (sparql.py) 中,它将类型从 str 转换为 bytes,然后在发送查询之前崩溃。

我直接在端点尝试了生成的查询,它正确地检索了结果。