我一直在尝试使用 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
该尝试的代码受到此处找到的代码的启发。除了配置文件基于现有的 repo,如上所述。我还尝试配置示例中提供的文件,但也失败了:
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);
它在最后一行失败。
已回答@HenrietteHarmse在下面的答案中给出了正确的方法。该错误是由于缺少依赖项引起的。我应该使用 graphdb-free-runtime,而不是直接使用 RDF4J。