I've read a number of RDF related questions here on StackOverflow that have an RDFS solution but also an OWL solution. (Notably, my own question)

I understand the concept of a reasoner and that an OWL one is more thorough in inferring complex relationships but that this comes at a cost, the one often cited is update performance.

Can somebody please explain what factors go into making a design decision whether to use an OWL reasoner and how to evaluate whether or not an RDFS reasoner is sufficient for a set of requirements. (I'm strongly considering AllegroGraph's RDFS++ reasoner as of now.)

I've already begun working on an ontology and have already defined triple using things like owl:ObjectProperty, owl:FunctionalProperty, and have several subclasses of owl:Thing. Does that mean I've already passed the threshold and need an OWL reasoner? Where does one cross that line and why?

有帮助吗?

解决方案

When you start modeling with RDFS and OWL, different types of constructs (or axioms) are available to you (like rdfs:subClassOf or owl:FunctionalProperty). Each of these constructs add some computational complexity in regards to what reasoners are meant to do, namely consistency checking or classification for example. As a rule of thumb, the more expressive the constructs are, the more time it takes to compute what they entail.

When you use the constructs available with RDFS you restrict the type of things you can express, but in return you can use dedicated efficient reasoners like AllegroGraph's for example.

However, an RDFS reasoner will not be able to compute OWL axioms. OWL is more expressive than RDFS and an OWL reasoner has to deal with more constructs. OWL reasoners understand RDFS axioms (as all the RDFS constructs are part of OWL), so you can use an OWL reasoner with RDFS.

So in summary:

  • The more expressive you want to be, the more complicated it becomes to compute what these constructs entail.
  • RDFS is less expressive than OWL, so if you stick only to RDFS constructs you can expect better performances. But sometimes you need OWL to express what you want, the job of the designer is to find the good trade-off.
  • OWL2 introduces some profiles (OWL2 EL, RL and QL), focusing on a particular set of axioms in order to guarantee efficient reasoning. You have some special reasoner dedicated to these profiles (like ELK for OWL2 EL).
  • You can read the W3C documentation to understand more about the computational properties of RDFS and OWL.
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top