繁体   English   中英

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

[英]How to create a Jena Triple Store based on an existing OWL file using Jena API, Fuseki and TDB?

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

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

我不太了解Jena文档中解释的概念,因为它们似乎在各个方向上都有所不同。 但是我了解的是,我们必须为此使用Fuseki Embedded和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中(在Jena中被称为汇编器)。

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

要么

加载数据:

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

每次运行服务器:

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

数据集HTTP SPARQL接口(编程)可从http:// localhost:3030 / myName获得

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM