在我的机器中,base/data目录包含多个存储库。但是当我从java程序访问这个数据目录时,它只给我提供SYSTEM存储库记录。SYSTEM存储库未显示存储库详细信息
代码检索库:
String dataDir = "D:\\SesameStorage\\data\\"
LocalRepositoryManager localManager = new LocalRepositoryManager(new File(dataDir));
localManager.initialize();
// Get all repositories
Collection<Repository> repos = localManager.getAllRepositories();
System.out.println("LocalRepositoryManager All repositories : "
+ repos.size());
for (Repository repo : repos) {
System.out.println("This is : " + repo.getDataDir());
RepositoryResult<Statement> idStatementIter = repo
.getConnection().getStatements(null,
RepositoryConfigSchema.REPOSITORYID, null,
true, new Resource[0]);
Statement idStatement;
try {
while (idStatementIter.hasNext()) {
idStatement = (Statement) idStatementIter.next();
if ((idStatement.getObject() instanceof Literal)) {
Literal idLiteral = (Literal) idStatement
.getObject();
System.out.println("idLiteral.getLabel() : "
+ idLiteral.getLabel());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
Output :
LocalRepositoryManager All repositories : 1
This is : D:\SemanticStorage\data\repositories\SYSTEM
idLiteral.getLabel() : SYSTEM
添加存储库LocalRepositoryManager:
String repositoryName = "data.ttl";
RepositoryConfig repConfig = new RepositoryConfig(repositoryName);
SailRepositoryConfig config = new SailRepositoryConfig(new MemoryStoreConfig());
repConfig.setRepositoryImplConfig(config);
manager.addRepositoryConfig(repConfig);
获取库对象:
Repository repository = manager.getRepository(repositoryName);
repository.initialize();
我已经成功添加新的存储库,以LocalRepositoryManager和它显示我的存储库数量为2.但是当我重新启动该应用程序仅向我显示一个存储库,即SYSTEM存储库。
我的SYSTEM存储库没有得到更新,请告诉我,我应该如何在我的LocalRepositoryManager对象中加载该数据目录。
我NativeStoreConfig也试过,但没有奏效。 – sagarg