我正在使用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映射模型?
答案 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);