Я попытался запросить суперклассы для данного класса, используя 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 в байты, после чего падает перед отправкой запроса.
Я попробовал сгенерированный запрос непосредственно в конечной точке , и он правильно получил результаты.