Как я могу расшифровать файлы Triplestore базы данных RDF4J?

#triplestore #rdf4j

#triplestore #rdf4j

Вопрос:

В настоящее время я пытаюсь прочитать файлы triplestore RDF4J с платформы universAAL и поместить их в InfluxDB, чтобы объединить данные из разных интеллектуальных живых систем. Однако я заметил, что отдельные индексные файлы собственного репозитория зашифрованы / нечитаемы (см. Изображение ниже). Есть ли у сообщества какой-либо опыт в том, как извлекать удобочитаемый контент из файлов RDF4J (пространство имен, triples.prop, triples-cosp, triples-posc, triples-spoc, values.hash, values.dat, values.id ) и объединить их в другую базу данных? Документация RDF4J мне здесь не помогла, поэтому я не смог создать достойный экспорт.

Зашифрованный файл из Triplestore

Ответ №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. Сработало, как ожидалось. Большое спасибо! 🙂