RDF4J を使用してリモートの GraphDB サーバー上に新しいリポジトリを作成しようとしていますが、問題が発生しています。
これは実行されますが、一見正しくありません
HTTPRepositoryConfig implConfig = new HTTPRepositoryConfig(address);
RepositoryConfig repoConfig = new RepositoryConfig("test", "test", implConfig);
Model m = new
ただし、ワークベンチの「リポジトリの編集」から取得した情報に基づいて、結果は正しくありません。id と title を除いて、すべての値は空です。
これは失敗します
ワークベンチで作成した既存のリポジトリから設定をコピーしようとしましたが、次のエラーで失敗しました:
org.eclipse.rdf4j.repository.config.RepositoryConfigException:
Unsupported repository type: owlim:MonitorRepository
その試みのコードは、ここにあるものに触発されています。上記で説明したように、構成ファイルが既存のリポジトリに基づいていることを除きます。例で提供されているファイルを構成しようとしましたが、それも失敗しました:
org.eclipse.rdf4j.repository.config.RepositoryConfigException:
Unsupported Sail type: graphdb:FreeSail
ヒントはありますか?
更新 Henriette Harmse が正しく指摘したように、単にコードにリンクするのではなく、コードを提供する必要がありました。そうすれば、結局、完全なコピーを作成していないことを発見できたかもしれませんが、彼女が答えで指摘した重要な最初の部分を変更しました. 以下の完全なコード:
String address = "serveradr";
RemoteRepositoryManager repositoryManager = new RemoteRepositoryManager( address);
repositoryManager.initialize();
// Instantiate a repository graph model
TreeModel graph = new TreeModel();
InputStream config = Rdf4jHelper.class.getResourceAsStream("/repoconf2.ttl");
RDFParser rdfParser = Rio.createParser(RDFFormat.TURTLE);
rdfParser.setRDFHandler(new StatementCollector(graph));
rdfParser.parse(config, RepositoryConfigSchema.NAMESPACE);
config.close();
// Retrieve the repository node as a resource
Resource repositoryNode = graph.filter(null, RDF.TYPE, RepositoryConfigSchema.REPOSITORY).subjects().iterator().next();
// Create a repository configuration object and add it to the repositoryManager
RepositoryConfig repositoryConfig = RepositoryConfig.create(graph, repositoryNode);
最後の行で失敗します。
ANSWERED @HenrietteHarmse は、以下の回答で正しい方法を示しています。このエラーは、依存関係がないことが原因で発生します。RDF4J を直接使用する代わりに、graphdb-free-runtime を使用する必要がありました。