D2RQ使用Jena模型创建DB的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的DB-dump,我想进一步处理(我知道像D2RQ更新这样的扩展可以通过修改RDF图来修改数据库,但我不想修改DB)
谢谢
获取一个副本以断开模型与数据库的连接:
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) ;
...