问题描述
我目前正在尝试从 universAAL 平台读取 RDF4J 三元组的文件,并将它们放入 InfluxDB 以合并来自不同智能生活系统的数据。 但是,我注意到本机存储库的各个索引文件已加密/不可读(见下图)。 社区是否有任何关于如何从 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 查询/导出其数据。假设您有一组完整的数据文件,它应该像这样简单:
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
更改为其他内容。