Сколько троек в этих файлах RDF? Я протестировал rdflib
, и он не будет масштабироваться намного дальше, чем несколько десятков ктриплей - если вам повезет. Ни в коем случае это не очень хорошо работает с файлами с миллионами троек.
Лучший анализатор - rapper
из Redland Libraries . Мой первый совет - не использовать RDF/XML
и перейти на ntriples
. Ntriples - более легкий формат, чем RDF / XML. Вы можете преобразовать RDF / XML в три строки, используя rapper
:
rapper -i rdfxml -o ntriples YOUR_FILE.rdf > YOUR_FILE.ntriples
Если вам нравится Python, вы можете использовать привязки Redland python :
import RDF
parser=RDF.Parser(name="ntriples")
model=RDF.Model()
stream=parser.parse_into_model(model,"file://file_path",
"http://your_base_uri.org")
for triple in model:
print triple.subject, triple.predicate, triple.object
Я без проблем проанализировал довольно большие файлы (пару гигабайт) с библиотеками Redland.
В конце концов, если вы обрабатываете большие наборы данных, вам может понадобиться поместить ваши данные в масштабируемое тройное хранилище, обычно я использую 4store . 4store использует Redland для анализа файлов RDF. В долгосрочной перспективе, я думаю, вам нужно сделать масштабируемый тройной магазин. И с его помощью вы сможете использовать SPARQL для запроса ваших данных и SPARQL / Update для вставки и удаления троек.