我的问题是关于数据库中的包含(与本体相比)。我的理解是,如果我有属于B类的实例,那么Class A的超类也会有这些实例。
Ontology通过各种reasoners(例如RDFS ++,Pellet等)提供内置的包含推理。我想知道是否有可能在数据库系统中实现类似的任务。如果是这样,它的实施灵活性或易用性如何?与基于本体的方法相比,数据库实现(如果有的话)有什么优势吗?
答案 0 :(得分:2)
澄清一下,本体并没有进行推理。本体论是推理者用知识库中的推断(和显式)信息回答查询的一组逻辑公理。
有许多现有的开源和商业系统可以进行推理,可以被认为是一个数据库,而不是纯粹用于推理的东西,比如Pellet / Fact / Hermit。示例包括AllegroGraph,GraphDb和Stardog。显然,是的,这是可能的。有几种不同的方法可以实现,因此您可以根据自己的首选用例灵活设计系统。
创建一个解析本体的玩具推理器并做一些像包含这样的基本推理并不难。但是如果你想(正确地)支持一个OWL片段,并且你想大规模地做,那就不容易了。
去看看Jena及其推理者是如何实施的,这将足以让你前进。
芝麻也有一个RDFS推理器,所以这将是你审查的另一个来源。