RDFS与OWL推理机——设计注意事项



我在StackOverflow上读到了许多与RDF相关的问题,这些问题既有RDFS解决方案,也有OWL解决方案。(特别是我自己的问题)

我理解推理器的概念,OWL推理器在推断复杂关系时更彻底,但这是有代价的,经常提到的是更新性能。

请有人解释一下,在做出是否使用OWL推理机的设计决策时,需要考虑哪些因素,以及如何评估RDFS推理机是否足以满足一组需求。(到目前为止,我强烈考虑AllegroGraph的RDFS++推理机。)

我已经开始研究本体,并且已经使用owl:ObjectPropertyowl:FunctionalProperty之类的东西定义了三元组,并且有几个owl:Thing的子类。这是否意味着我已经通过了门槛,需要一个OWL推理器?一个人在哪里越过这条线,为什么?

当您开始使用RDFS和OWL建模时,可以使用不同类型的构造(或公理)(如rdfs:subClassOfowl:FunctionalProperty)。这些结构中的每一个都增加了推理器的计算复杂性,例如一致性检查或分类。根据经验,结构的表达能力越强,计算它们所需的时间就越多。

当您使用RDFS中可用的构造时,您可以限制可以表达的内容的类型,但作为回报,您可以使用专用的高效推理器,例如AllegroGraph。

然而,RDFS推理器将不能计算OWL公理。OWL比RDFS更具表现力,而且OWL推理器必须处理更多的构造。OWL推理器理解RDFS公理(因为所有的RDFS构造都是OWL的一部分),所以您可以将OWL推理机与RDFS一起使用。

综上所述:

  • 你越想表达,计算这些结构所包含的内容就变得越复杂
  • RDFS的表达能力不如OWL,所以如果只使用RDFS结构,则可以获得更好的性能。但有时你需要OWL来表达你想要的东西,设计师的工作就是找到好的折衷方案
  • OWL2引入了一些概要文件(OWL2-EL、RL和QL),重点关注一组特定的公理,以保证有效的推理。您有一些专用于这些配置文件的特殊推理器(如OWL2 EL的ELK)
  • 您可以阅读W3C文档来了解更多关于RDFS和OWL的计算特性

最新更新