Я пишу код, который собирает некоторые статистические данные о онтологиях. в качестве ввода у меня есть папка с файлами, некоторые из них - RDF/XML, некоторые - черепаха или nt. Моя проблема в том, что когда я пытаюсь проанализировать файл с использованием неправильного формата, в следующий раз, даже если я проанализирую его с правильным форматом, он терпит неудачу. Здесь тестовый файл - это черепаховый формат. Если сначала разобрать его с черепаховым форматом, все в порядке. но если я сначала разобрал его с неправильным форматом 1. ошибка понятна (файл: /// test: 1: 0: неверно сформирован (недействительный токен)), но ошибка для второго равна (Неизвестный префикс пространства имен: owl). Как я уже сказал, когда я сначала разбираюсь с правильным, я не получаю ошибку пространства имен.Ошибочный анализ RDF с использованием RDFlib в python
Просьба помочь, после 2 дней я получаю отчаяние.
query = 'SELECT DISTINCT ?s ?o WHERE { ?s ?p owl:Ontology . ?s rdfs:comment ?o}'
data = open("test", "r")
g = rdflib.Graph("IOMemory")
try:
result = g.parse(file=data,format="xml")
relations = g.query(query)
print((" graph has %s statements." % len(g)))
except:
print "bad1"
e = sys.exc_info()[1]
print e
try:
result = g.parse(file=data,format="turtle")
relations = g.query(query)
print((" graph has %s statements." % len(g)))
except :
print "bad2"
e = sys.exc_info()[1]
print e
Спасибо, это работает отлично! На самом деле для меня было достаточно добавить 'data.seek (0)' Если кто-то хочет воспроизвести мою ошибку, я использовал это как тестовый файл [link] (http://www.w3.org/2000/01/rdf -schema). И моя версия RDFlib - 4.2.0. – Andrejs