如何解密 RDF4J 数据库的 Triplestore 文件?

How can I decrypt the Triplestore files of an RDF4J database?

我目前正在尝试从 universAAL 平台读取 RDF4J triplestore 的文件并将它们放入 InfluxDB 以合并来自不同智能生活系统的数据。 但是,我注意到本机存储库的各个索引文件是 encrypted/unreadable(见下图)。 社区是否有关于如何从 RDF4J 文件(名称空间、triples.prop、triples-cosp、triples-posc、triples-spoc、values.hash、values.dat, values.id) 并将它们合并到另一个数据库中? RDF4J 的文档在这里没有帮助我,所以我无法创建像样的导出。

Encrypted File from Triplestore

文件未加密,它们只是一种二进制格式,针对高效存储和检索进行了优化,由 RDF4J 的 Native Store 数据库实现使用。它们不适合直接操作。

将它们转换为可读 RDF 的最简单方法是在它们之上启动一个 Native Store,然后使用 RDF4J API 到 query/export 它的数据。假设你有一套完整的数据文件,它应该像这样简单:

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 替换为 FileOutputstream。如果您想要不同的语法格式,请将 RDFFormat.TURTLE 更改为其他格式。