1

我正在使用 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");
}

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

4

1 回答 1

1

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

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

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

首先,使用TDB Java API创建一个 TDB 数据集,然后将您ModelD2RQDataset.

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);
于 2014-07-08T15:27:52.373 回答