D2R 0.8.1与Jena TDB集成

时间:2014-07-08 07:48:22

标签: jena tdb d2rq

我正在使用D2R服务器进行RDB到RDF的转换。现在我想在使用D2R服务器时将此rdf保存到Jena TDB支持的数据集中。简而言之,我想将Jena TDB与D2R整合在一起。

RDB到RDF转换的代码是:

public static void main String(args[])
{

  String writeLocation="C:/Users/PJH/Desktop/Destination/";

    // Get the Jena Model view of the D2RQ RDF object.
    Model m = new ModelD2RQ("C:/Users/PJH/desktop/d2rq-0.8.1/d2rq-0.8.1/doc/example/mapping-iswc.ttl");


    //Writing into a file.
    // writeLocation="C:/Users/PJH/Desktop/Destination/";
    System.out.println("HIiiiiiiiiiiii");

    FileManager fm = FileManager.get();
    fm.addLocatorClassLoader(JenaD2RQClass.class.getClassLoader());

    // m=fm.get().loadModel(fileNmaeURI);
    FileOutputStream fout =new FileOutputStream(writeLocation+"D2RQCopy1234567.rdf");
    m.write(fout,"TURTLE");
}

如何在Jena TDB支持的数据集中存储此D2RQ映射模型?

1 个答案:

答案 0 :(得分:1)

ModelD2RQ允许您从Jena查询D2RQ引擎。 D2R继续存储信息,因为D2RQ-jena接口只是一个适配器,用于将存储的信息转换为三元组。

请注意,TDB是存储系统本身。目前还不清楚“将Jena TDB与D2R集成”是什么意思。这类似于“将Oracle与MySQL集成”。它们各自存储数据,并且两个系统之间没有有效的互操作。

如果我假设您希望拍摄D2R服务器当前内容的快照,并将该快照存储在TDB中,那么这样做非常简单:

首先,使用TDB Java API创建一个TDB数据集,然后将ModelD2RQ添加到Dataset

final Model m = new ModelD2RQ("C:/Users/PJH/desktop/d2rq-0.8.1/d2rq-0.8.1/doc/example/mapping-iswc.ttl");
final Dataset dataset = TDBFactory.createDataset("MyDatabases/Dataset1") ;
dataset.getDefaultModel().add(m);