gpt4 book ai didi

java - 如何使用 Jena API、Fuseki 和 TDB 基于现有 OWL 文件创建 Jena Triple Store?

转载 作者:行者123 更新时间:2023-12-02 02:00:44 25 4
gpt4 key购买 nike

我目前正在开发一个项目,初始值为 .owl包含我们本体的基本模式的文件。我们使用 Jena API 加载此文件并对其执行不同的操作,例如添加本体类和个体。

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

我不太理解耶拿文档解释的概念,因为它们似乎在各个方向上都有分歧;然而,我的理解是,我们必须使用 Fuseki 嵌入式和 Jena TDB 来实现此目的。我尝试了以下代码(本例中的 OntModel 参数包含我们本体的架构):

public Store(OntModel model) {
Dataset ds = DatasetFactory.assemble(model);
File dsDir = new File(ClassLoader.getSystemClassLoader().getResource("ds/")
.getFile());

ds.begin(ReadWrite.WRITE);

server = FusekiServer.create().add(dsDir.getAbsolutePath(), ds).build();
}

这给了我以下错误:org.apache.jena.sparql.ARQException: No root found for type <http://jena.hpl.hp.com/2005/11/Assembler#RDFDataset> 。请给我提供一些使用示例。

最佳答案

DatasetFactory.assemble 表示根据同样保存在 RDF 中的描述构造一个新模型(这些在耶拿称为汇编程序)。

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

或者

加载数据:

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

每次运行服务器:

Dataset ds = TDBFactory.createDataset("DIRECTORY_NAME");
FusekiServer server = FusekiServer.create().add("/myName", ds).build();
server.start();

数据集 HTTP SPARQL 接口(interface)(编程)可在 http://localhost:3030/myName 获取。 .

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

关于java - 如何使用 Jena API、Fuseki 和 TDB 基于现有 OWL 文件创建 Jena Triple Store?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51628608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com