我想在 Allegrograph 中创建一个有推理的联合商店;我可以在同一个 Allegrograph 系统中使用 2 个存储库来做到这一点,但是当我尝试使用位于不同服务器上的两个存储库创建联合商店时;方法 server.federate 显示错误。
我尝试使用两种解决方案来解决这个问题:
第一个我使用 virtualRepository 来组合两个存储库,它可以工作,但是当我想从我的 virtualRepository 中获取连接时,它会显示以下错误:代码:
AGVirtualRepository s = server.virtualRepository("<http://ip:10035/repositories/repo1> + <http://ip:10036/repositories/repo2>");
s.initialize();
AGRepositoryConnection rainbowConn = s.getConnection();
closeBeforeExit(rainbowConn);
错误 :org.eclipse.rdf4j.repository.RepositoryException: com.franz.agraph.http.exception.AGHttpException: org.apache.commons.httpclient.NoHttpResponseException: The server myserver failed to respond
第二个解决方案我使用Federation Sail 添加我的存储库,它可以工作,但是当我运行我的查询时,即使我调用推理概念也不起作用tupleQuery.setIncludeInferred(true);
编码 :
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 combinedRepo = new SailRepository(federation);
combinedRepo.initialize();
SailRepositoryConnection gg = combinedRepo.getConnection();
我不知道是否有任何提示可以解决我的问题,谢谢