我使用D2R服务器进行RDB到RDF的转换。现在我想保存这个rdf到耶拿TDB支持的数据集,而我使用D2R服务器。简而言之,我想将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映射模型?
ModelD2RQ
允许您从耶拿查询D2RQ引擎。D2R继续存储信息,因为D2RQ-jena接口仅仅是一个适配器,用于将存储的信息转换为三元组。
注意TDB是存储系统本身。不清楚你所说的"将耶拿TDB与D2R集成"是什么意思。这类似于说"集成Oracle和MySQL"。它们各自存储数据,两个正在运行的系统之间没有有意义的互操作。
如果我假设您希望获取D2R服务器当前内容的快照,并将该快照存储在TDB中,那么这样做可以非常简单:
首先,使用TDB Java API创建一个TDB Dataset,然后将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);