KRR-Oxford/RSAComb

Datalog rules and triples in RDFox

dyamon opened this issue · 2 comments

Setting

The problem came up while investigating why RDFox didn't seem to provide any automatic derivation of some obvious axioms (e.g., every class in a subclass of owl:Thing, every role is a subrole of owl:topObjectProperty, etc.).

Relevant documentation

Problem

Let's say we have an axiom stating that A is a subclass of B.

Importing this axiom in RDFox as a triple ([:A rdfs:subClassOf :B]) will cause the solver to derive also some additional information, such as

[owl:Nothing, rdfs:subClassOf, :A], [owl:Nothing, rdfs:subClassOf, :B], 
[:A, rdfs:subClassOf, :A], [:B, rdfs:subClassOf, :B],
[:B, rdfs:subClassOf, owl:Thing], [:A, rdfs:subClassOf, owl:Thing]

The problem is that we are converting axioms into Datalog rules and hence we have something like this

[?X a :B] :- [?X a :A]

Doing this we lose the esplicit information about class subsumption and we don't get the same additional derivations as before.

Now we need to decide if this is really bothering us, and if it does, how to solve it. Note that this is somewhat connected to #1

Solutions

  • One naive solution is to introduce additional rules (similar to the ones implicitly added by RDFox) to fill the gaps in the derivation. This has a negative impact in the materialization process.

Looking at this more closely, this is not something we should care about. In the "implementation" provided by the paper, our same rules are given to DLV, which, as a Datalog reasoner, does not provide any additional information/derivation either.

The only thing we need is the axiomatization of \top which is provided by these additional derivations. We will achieve this in a more straightforward way (see #1)