是否可以将内存中的 Jena 数据集存储为三重存储?
Is it possible to store an in-memory Jena Dataset as a triple-store?
警告!这个问题是一个问题,考虑到 RDF 系统,我带来了 0 XP,所以我无法在一个问题中表达这一点。请随意跳过前两段。
总体而言,我正在尝试构建什么
我目前正在构建一个 Spring 应用程序,它将作为收集测量值的系统的后端。
我想将信息存储在三重存储而不是 RDBMS 中。
因此,您可以想象一个添加了 Jena 库的 Spring 启动应用程序。
系统工作流程
关于我计划部署的方法。
1. 应用程序启动后 运行 它将创建或连接到现有的三重存储数据库。
2. POST 请求到达应用程序控制器。
3. 我使用 SPARQL 查询将新条目插入三重存储。
4. 存在其他 Controller/Service/DAO 方法来为三重存储上的 SELECT 查询提供 GET 请求。
*我提供如此详细的最终目标视图的唯一原因是避免将我的问题称为 XY 问题的答案。
实际问题
1. org.apache.jena.query.Dataset
代表内存中的三重存储还是这种Dataset是完全不同的数据结构?
2. 如果数据集确实是三重存储,那么我如何存储这个内存中的数据集以便在以后的会话中检索它?
3. 如果确实可以存储数据集,那么有哪些选择?默认将数据集存储为扩展名为 .tdb
的文件吗?如果是这样,那么它的方法是什么? class?
4. 如果到目前为止我的猜测是正确的,那么 assemble
方法是否足以 "retrieve" 来自存储文件的三重存储?
5. 是否所有三重存储数据库都遵循这个概念,即存储在 .tdb 文件中?
org.apache.jena.query.Dataset
是一个接口——有多种实现,各有特点。
DatasetFactory
制作各种数据集。 DatasetFactory.createTxnMem
是内存中的事务数据集。它可以用文件的内容初始化,但更新不会改变文件。
内存中仅存在于 JVM 会话中。
如果你希望数据和数据变化在会话间持久化,你可以使用TDB进行持久化存储。尝试 TDBFactory
或 TDB2Factory
TDB(TDB1 或 TDB2)是三层存储数据库。
Fuseki
是三元组存储服务器。您可以向 Fuseki 发送 SPARQL 请求(查询、更新、批量上传……)
您可以使用 TDB 数据库启动 Fuseki(如果不存在则创建)
fuseki-server -tdb2 --loc DB /myData
".tdb" 不是 Apache Jena 使用的文件扩展名。数据库是一个文件目录。
警告!这个问题是一个问题,考虑到 RDF 系统,我带来了 0 XP,所以我无法在一个问题中表达这一点。请随意跳过前两段。
总体而言,我正在尝试构建什么
我目前正在构建一个 Spring 应用程序,它将作为收集测量值的系统的后端。
我想将信息存储在三重存储而不是 RDBMS 中。
因此,您可以想象一个添加了 Jena 库的 Spring 启动应用程序。
系统工作流程
关于我计划部署的方法。
1. 应用程序启动后 运行 它将创建或连接到现有的三重存储数据库。
2. POST 请求到达应用程序控制器。
3. 我使用 SPARQL 查询将新条目插入三重存储。
4. 存在其他 Controller/Service/DAO 方法来为三重存储上的 SELECT 查询提供 GET 请求。
*我提供如此详细的最终目标视图的唯一原因是避免将我的问题称为 XY 问题的答案。
实际问题
1. org.apache.jena.query.Dataset
代表内存中的三重存储还是这种Dataset是完全不同的数据结构?
2. 如果数据集确实是三重存储,那么我如何存储这个内存中的数据集以便在以后的会话中检索它?
3. 如果确实可以存储数据集,那么有哪些选择?默认将数据集存储为扩展名为 .tdb
的文件吗?如果是这样,那么它的方法是什么? class?
4. 如果到目前为止我的猜测是正确的,那么 assemble
方法是否足以 "retrieve" 来自存储文件的三重存储?
5. 是否所有三重存储数据库都遵循这个概念,即存储在 .tdb 文件中?
org.apache.jena.query.Dataset
是一个接口——有多种实现,各有特点。
DatasetFactory
制作各种数据集。 DatasetFactory.createTxnMem
是内存中的事务数据集。它可以用文件的内容初始化,但更新不会改变文件。
内存中仅存在于 JVM 会话中。
如果你希望数据和数据变化在会话间持久化,你可以使用TDB进行持久化存储。尝试 TDBFactory
或 TDB2Factory
TDB(TDB1 或 TDB2)是三层存储数据库。
Fuseki
是三元组存储服务器。您可以向 Fuseki 发送 SPARQL 请求(查询、更新、批量上传……)
您可以使用 TDB 数据库启动 Fuseki(如果不存在则创建)
fuseki-server -tdb2 --loc DB /myData
".tdb" 不是 Apache Jena 使用的文件扩展名。数据库是一个文件目录。