簡體   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