Java 如何使用Jena API、Fuseki和TDB基于现有OWL文件创建Jena三重存储?

Java 如何使用Jena API、Fuseki和TDB基于现有OWL文件创建Jena三重存储?,java,jena,fuseki,triplestore,tdb,Java,Jena,Fuseki,Triplestore,Tdb,我目前正在从事一个项目,其中有一个初始的.owl文件,其中包含本体的基本模式。我们使用JenaAPI加载该文件,并对其执行不同的操作,例如添加本体类和个体 我们试图将系统迁移到三重存储,这意味着,我们不希望一直读写.owl文件,而是希望加载初始.owl文件一次,然后在服务器上执行进一步的操作 我没有完全掌握耶拿文献中解释的概念,因为它们似乎在各个方向上都有分歧;然而,我的理解是,我们必须使用Fuseki embedded和Jena TDB来实现这一点。我尝试了以下代码(本例中的OntModel参

我目前正在从事一个项目,其中有一个初始的
.owl
文件,其中包含本体的基本模式。我们使用JenaAPI加载该文件,并对其执行不同的操作,例如添加本体类和个体

我们试图将系统迁移到三重存储,这意味着,我们不希望一直读写
.owl
文件,而是希望加载初始
.owl
文件一次,然后在服务器上执行进一步的操作

我没有完全掌握耶拿文献中解释的概念,因为它们似乎在各个方向上都有分歧;然而,我的理解是,我们必须使用Fuseki embedded和Jena TDB来实现这一点。我尝试了以下代码(本例中的
OntModel
参数包含本体的模式):


这给了我以下错误:
org.apache.jena.sparql.ARQException:找不到类型
的根。请提供一些使用示例。

DatasetFactory.assembly
意味着从RDF中保存的描述构造一个新模型(在Jena中称为assemblers)

如果需要Fuseki服务器,请启动一个并使用UI创建数据集并加载文件

要加载数据,请执行以下操作:

使用命令行
tdbloader
创建TDB数据集并将其加载到目录“directory\u NAME”中。这只需要做一次

要每次运行服务器,请执行以下操作:

Dataset ds = TDBFactory.createDataset("DIRECTORY_NAME");
FusekiServer server = FusekiServer.create().add("/myName", ds).build();
server.start();
数据集HTTP SPARQL接口(编程)可在以下位置获得


如果您想要一个查询UI,请使用完整的Fuseki服务器。

DatasetFactory.Assembly
意味着从RDF中保存的描述构造一个新模型(在Jena中称为Assembler)

如果需要Fuseki服务器,请启动一个并使用UI创建数据集并加载文件

要加载数据,请执行以下操作:

使用命令行
tdbloader
创建TDB数据集并将其加载到目录“directory\u NAME”中。这只需要做一次

要每次运行服务器,请执行以下操作:

Dataset ds = TDBFactory.createDataset("DIRECTORY_NAME");
FusekiServer server = FusekiServer.create().add("/myName", ds).build();
server.start();
数据集HTTP SPARQL接口(编程)可在以下位置获得


如果需要查询UI,请使用完整的Fuseki服务器。

我需要一个三重存储,但只能在本地使用。我还需要使用Fuseki吗?有没有办法不使用TDB?直接使用数据集
ds
(与事务一起使用-请参见
Txn
)。我仍然无法加载我的文件。让我们暂时忘记它:我有一个包含所有三元组的
OntModel
,我希望所有这些三元组都存储到我的三元组存储中。我该怎么做?请提供一个明确的示例。进程中的“三重存储”是类“数据集”。请参阅“DatasetFactory”。我需要一个三重存储,但只能在本地存储。我还需要使用Fuseki吗?有没有办法不使用TDB?直接使用数据集
ds
(与事务一起使用-请参见
Txn
)。我仍然无法加载我的文件。让我们暂时忘记它:我有一个包含所有三元组的
OntModel
,我希望所有这些三元组都存储到我的三元组存储中。我该怎么做?请提供一个明确的示例。进程中的“三重存储”是类“数据集”。请参阅“数据集工厂”。