首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sesame存储库配置

sesame存储库配置
EN

Stack Overflow用户
提问于 2013-01-23 03:48:20
回答 1查看 383关注 0票数 2

我使用的是芝麻http存储库,因为我有一个很大的模式,所以支持推理的存储库太慢了(特别是在添加三元组的时候)。因此,我使用一个简单的内存库(在工作台上设置它),并在运行时对其进行配置,以支持在我需要的页面中使用以下行进行推理。

代码语言:javascript
复制
ForwardChainingRDFSInferencerConfig inferMemStoreConfig = new ForwardChainingRDFSInferencerConfig(new MemoryStoreConfig(true));
SailRepositoryConfig repositoryTypeSpec = new SailRepositoryConfig(inferMemStoreConfig);
RepositoryConfig repConfig = new RepositoryConfig(repositoryID, repositoryTypeSpec);
RemoteRepositoryManager manager = new RemoteRepositoryManager(sesameServer);
manager.initialize();
Repository myRepository = manager.getRepository(repositoryID);

manager.addRepositoryConfig(repConfig);

那么在我添加三元组的页面中,我如何禁用它呢?

这是我尝试过的:

代码语言:javascript
复制
MemoryStoreConfig memStoreConfig = new MemoryStoreConfig(true);
SailRepositoryConfig repositoryTypeSpec = new SailRepositoryConfig(memStoreConfig);
RepositoryConfig repConfig = new RepositoryConfig(repositoryID, repositoryTypeSpec);
RemoteRepositoryManager manager = new RemoteRepositoryManager(sesameServer);
manager.initialize();

Repository myRepository = manager.getRepository(repositoryID);

manager.addRepositoryConfig(repConfig);

myRepository.initialize();

有什么帮助吗?也许是更好的方法?

EN

回答 1

Stack Overflow用户

发布于 2013-01-23 11:01:49

您不能在运行时更改默认Sesame存储库的推理策略,如下所示。一旦您使用特定的配置创建了存储库,该配置就会被修复。同一存储区不能同时配置为推理和非推理。

即使你能改变它,它也帮不了你。我不确定你到底想要达到什么目的,但是通过推理将数据添加到存储中会更慢,因为它必须进行推理。在加载期间禁用推理,但在查询期间启用它是没有意义的,因为所有的推理工作都是在加载期间完成的,因此在这种情况下不会进行任何推断。

您有几种选择:一种选择是使用完全非推理的存储库,只需执行更智能的查询来获得所需的内容-大多数RDFS继承推理可以通过使用查询来替代。

例如,要获取类A的所有子类

代码语言:javascript
复制
SELECT ?x
WHERE { ?x rdfs:subClassOf+ ex:A }

A的所有(继承的)实例

代码语言:javascript
复制
SELECT ?i
WHERE { ?i a [ rdfs:subClassOf* ex:A ] }

以此类推。

另一种选择是研究Sesame第三方后端之一,例如OWLIM,它具有更复杂的推理支持和更好的性能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14466798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档