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图来修改数据库但我不想修改数据库
由于
答案 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) ;
...