2016-09-05 1 views
0

D2RQは、Jenaモデルを使用してDBのRDF表現を作成します。D2RQによって返されたJenaモデルを変更します。

返されるモデルは「読み取り専用」モデルです。

したがって、モデルにリソースを追加しようとすると、「jena.shared.AddDeniedException」例外が発生します。

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

モデルmをデータベースから切り離して変更するにはどうすればよいですか?私はモデルを書いて欲しくないです。私はさらにD2RQを使って、さらに処理したいRDFベースのDBダンプを取得しています(私はD2RQアップデートのような拡張機能がRDFグラフを変更することによってデータベースの変更を可能にしますが、どこで、メモリ

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

もう一つの方法は、労働組合のモデルを持っていることです。

おかげ

答えて

1

は、データベースからモデルを切断するためにコピーを取る)DBを変更する必要はありませんパートは、最初の、更新可能な、ユニオンの一部です。

Model m = new ModelD2RQ("file:outfile2.ttl"); 
Model extra = ModelFactory.createDefaultModel() ; 
Model m2 = ModelFactory.createUnion(exrta, m2) ; 
... 
+0

ありがとうございます!私はmodel.setIndependent(true)のような解決策を見つけることを望みましたが、あなたのアプローチは私を助けました。 – user3579222

関連する問題