我正在使用 Stardog 存储一堆来自不同来源的三元组。我使用 Jena 在单个 Jena 图中收集和合并数据。所有这些三元组都是 ABoxes 的一部分。
我不确定 Stardog 是否会要求 TBox 也与 ABox 图合并。我认为它确实如此,否则我无法看到 Stardog 将如何对数据进行推理。我没有看到像其他一些三联商店那样单独存储和使用 TBox 的任何选项。我是否需要将 TBox 包含在 Jena 图中,或者有没有办法将 TBox 存储在另一个 Stardog 数据库中,因此在查询 ABoxes 的数据库时也会考虑它?
我正在考虑将 Jena 图(在 1 到 700 万个三元组之间变化)加载到 Stardog 中的选项:
- 我不太喜欢的选项之一是将图形写入文件并执行客户端以将其加载到 Stardog 中。一个数据在耶拿图中,我更喜欢直接解决方案。
- 另一种选择是一个一个地加载三元组(java中的stardog sparql插入查询示例),我不喜欢这种潜在的低效率。
有没有什么优雅的方法可以从 Jena 加载整个图表?
编辑
基于分布中示例的代码尝试:
Server aServer = Stardog.buildServer()
.bind(new InetSocketAddress("10.0.0.1", 5820))
.start();
AdminConnection aAdminConnection = AdminConnectionConfiguration.toServer("...").credentials("admin", "admin").connect();
if (aAdminConnection.list().contains("test")) {
aAdminConnection.drop("test");
}
Connection aConn = aAdminConnection.memory("test").create(file).connect();
Model aModel = SDJenaFactory.createModel(aConn);
编辑 2:更正了我的一些代码。
Stardog 文档中的其他信息