修改D2RQ

时间:2016-09-05 10:39:54

标签: jena d2rq

D2RQ使用Jena模型创建数据库的RDF表示。

Model m = new ModelD2RQ("file:outfile2.ttl");

我知道返回的模型是"只读"模型。

因此,如果我尝试向模型添加资源,我会得到一个" jena.shared.AddDeniedException"例外。

    Resource r1=m.createResource("http://www.stackoverflow.com#34");
    r1.addProperty(RDF.type, ...); <-throws the exception

如何将模型m与数据库分离,以便我可以修改它?我不想写回模型,我只是使用D2RQ来获取基于RDF的数据库转储,我想进一步处理(我知道像D2RQ更新这样的扩展可以通过修改RDF图来修改数据库但我不想修改数据库

由于

1 个答案:

答案 0 :(得分:1)

获取副本以断开模型与数据库的连接:

Model m = new ModelD2RQ("file:outfile2.ttl");
Model mCopy = ModelFactory.createDefaultModel() ;
mCopy.add(m) ;
mCopy.addProperty(...)

另一种方法是建立一个联合模型,其中内存部分是联合的第一个和可更新的部分。

Model m = new ModelD2RQ("file:outfile2.ttl");
Model extra = ModelFactory.createDefaultModel() ;
Model m2 = ModelFactory.createUnion(exrta, m2) ;
...
相关问题