java - 具有来自不同服务器的存储库的联合存储

标签 java sesame allegrograph federated

我想在 AllegroGraph 中为联合存储创建一个抽象存储库。

我可以连接到存储在不同服务器上的存储库。但是当我尝试使用联邦函数组合它们时,它会抛出一个错误,指出它无法在第二台服务器上找到存储库。

我在这个link中发现了同样的问题但这没有帮助。有什么提示吗?

这是我的代码:

AGServer server = new AGServer(SERVER_URL, USERNAME, PASSWORD);
AGServer server2 = new AGServer(SERVER_URL2, USERNAME2, PASSWORD2);
println("Available catalogs: " + server.listCatalogs());
AGRepositoryConnection custCon = server.createRepositoryConnection("repo1", CATALOG_ID, false);
AGRepositoryConnection supCon = server2.createRepositoryConnection("repo2", CATALOG_ID, false);
AGAbstractRepository rainbowRepo = server2.federate(custCon.getRepository(), supCon.getRepository());

rainbowRepo.initialize();
AGRepositoryConnection rainbowConn = rainbowRepo.getConnection();

最佳答案

SailRepository 类为联合上下文实现 FederatedServiceResolverClient,因此您可以使用 SailRepository 类来添加具​​有不同存储库的联合存储:

AGServer server = new AGServer(SERVER_URL, USERNAME, PASSWORD);
AGServer server2 = new AGServer(SERVER_URL2, USERNAME2, PASSWORD2);

AGRepository repo1 = server.getCatalog(CATALOG_ID).openRepository("repo1");
AGRepository repo2 = server2.getCatalog(CATALOG_ID).openRepository("repo2");

Federation federation = new Federation();
federation.addMember(repo1);
federation.addMember(repo2);
federation.setReadOnly(true); 

SailRepository rainbowRepo  = new SailRepository(federation);
rainbowRepo .initialize();

SailRepositoryConnection rainbowConn  =  rainbowRepo .getConnection(); //for querying and updating the contents of the repository.

关于java - 具有来自不同服务器的存储库的联合存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50002403/

相关文章:

tomcat - 无法访问 http ://localhost:8080/openrdf-workbench

java - 如何将匿名java类转换为lambda表达式?

ontology - Sesame SeRQL 不提供更新/插入选项?

java - Xtext 和 Xtend - 在方法中的参数之前添加注释

tomcat - 我如何找到 Sesame 存储库的位置?

nosql - 图数据库: Neo4j & AllegroGraph的区别

java - 使用java查找多个文本文件的共同元素的最佳方法是什么?

java - 如何在不忽略拼写错误的情况下通过相似性比较字符串?

java - Android 中 URLConnection.getOutputStream() 的问题