【问题标题】:is subsumption inference possible in traditional database systems (RDBMS)?在传统数据库系统 (RDBMS) 中是否可以进行包含推理?
【发布时间】:2016-09-09 16:24:16
【问题描述】:
我的问题是关于数据库中的包含(相对于本体)。我的理解是,如果我有属于 B 类的实例,那么作为 B 类的超类的 A 类也会有这些实例。
本体通过各种推理器(例如 RDFS++、Pellet 等)提供内置的包含推理。我想知道是否有可能在数据库系统中实现类似的任务。如果是这样,实施起来有多灵活或容易?与基于本体的方法相比,数据库实现(如果有的话)有什么优势吗?
【问题讨论】:
标签:
database
rdf
semantic-web
ontology
triplestore
【解决方案1】:
为了澄清,本体不执行推理。本体是一组逻辑公理,推理器使用知识库中的推断(和显式)信息来回答查询。
有许多现有的开源和商业系统可以执行推理,并且可以被视为数据库,而不是纯粹用于推理的系统,例如 Pellet/Fact/Hermit。示例包括 AllegroGraph、GraphDb 和 Stardog。很明显,是的,这是可能的。有几种不同的方法来实现,因此您可以根据自己的首选用例灵活地设计系统。
创建一个玩具推理器并不难,它可以解析本体并进行一些基本推理,如包含。但是,如果您想(正确地)支持其中一个 OWL 片段,并且想要大规模地进行,这并不容易。
去看看 Jena 及其推理器是如何实现的,这足以让你继续前进。
Sesame 也有一个 RDFS 推理器,所以这将是您查看的另一个来源。