#triplestore #rdf4j
#triplestore #rdf4j
Вопрос:
В настоящее время я пытаюсь прочитать файлы triplestore RDF4J с платформы universAAL и поместить их в InfluxDB, чтобы объединить данные из разных интеллектуальных живых систем. Однако я заметил, что отдельные индексные файлы собственного репозитория зашифрованы / нечитаемы (см. Изображение ниже). Есть ли у сообщества какой-либо опыт в том, как извлекать удобочитаемый контент из файлов RDF4J (пространство имен, triples.prop, triples-cosp, triples-posc, triples-spoc, values.hash, values.dat, values.id ) и объединить их в другую базу данных? Документация RDF4J мне здесь не помогла, поэтому я не смог создать достойный экспорт.
Ответ №1:
Файлы не зашифрованы, они представляют собой просто двоичный формат, оптимизированный для эффективного хранения и извлечения, используемый собственной реализацией базы данных хранилища RDF4J. Они не предназначены для прямого манипулирования.
Самый простой способ преобразовать их в читаемый RDF — это развернуть поверх них собственное хранилище, а затем использовать API RDF4J для запроса / экспорта его данных. Предполагая, что у вас есть полный набор файлов данных, это должно быть так просто, как что-то вроде этого:
Repository rep = new SailRepository(new NativeStore(new File("/path/to/datafiles/");
try(RepositoryConnection conn = rep.getConnection()) {
conn.export(Rio.createWriter(RDFFormat.TURTLE, System.out));
}
finally {
rep.shutDown();
}
Очевидно, замените System.out
на a FileOutputstream
, если вы хотите записать данные в файл, а не в консоль. И измените RDFFormat.TURTLE
на что-нибудь другое, если вам нужен другой формат синтаксиса.
Комментарии:
1. Сработало, как ожидалось. Большое спасибо! 🙂