是否有任何自由猫头鹰推理器可以推理无需将所有数据加载到内存中?

时间:2012-04-25 16:39:16

标签: jena owl inference

我使用Jena和TDB来存储RDF,我想对它做一些推断。但是RDF数据很大,Jena的owl推理器必须将所有数据加载到内存中。   所以我想找到一个可以推理无需将所有数据加载到内存中的推理器,有没有?

3 个答案:

答案 0 :(得分:3)

不是真的。即使在低规模下,DL推理在计算上也是困难的。使用 lot 数据,这就不适用于现有方法。在二级存储上进行操作仍然是一个开放的研究问题。

但是,OWL的各种配置文件可用于解决此问题。它们都具有不同的计算复杂性,这些都比DL更“容易”,使得它们更适合大规模推理。特别是,QL是为查询时间推理而设计的,根据我的经验,它的内存占用量非常小,RL可以用标准规则推理器实现。

因此,如果您不需要使用DL,那么我会使用支持其中一个配置文件的工具,您应该可以获得相当好的里程数。

作为参考,你可能会发现这个document关于各种OWL方言的计算复杂性很有意思。

答案 1 :(得分:2)

如果您准备接受OWL的一个子集,那么您可以采用流处理方式执行某些操作,而无需将所有RDF数据加载到内存中,这将实现所有推断的三元组。

举个例子,看看RIOT的推断命令:

此处的源代码:

使用RIOT推断并与MapReduce并行运行它是微不足道的,例如:

使用MapReduce应用RDFS和OWL ter Horst规则并实现所有派生语句的另一种不同方法是:

也许,您可以查看您感兴趣的OWL部分,并检查您是否可以以流式方式进行操作。如果是这样,您可以使用RIOT推断并扩展它,添加您感兴趣的OWL部分。这对Apache Jena是一个很好的贡献(如果你想这样做,请在jena-dev邮件列表上重新联系) 。

WebPIE是一个聪明而有趣的项目,但正如您所看到的,更复杂一点,它是一个研究项目(从长期支持和维护的角度来看,这意味着所有这些)。但是,如果它是您想要/需要的OWL ter Horst,那么WebPIE就可以。 如果其他人有兴趣使用它,您甚至可以付出努力,分叉WebPIE并将其贡献给开源项目。

你可能也有兴趣看一下Ymris(但现在正在睡觉...... zzzzz):

答案 2 :(得分:0)

您可能想尝试GRAKN.AI,他们会对分布式系统中的持久数据进行实时推理。