2

It is known that deciding whether a linear recursive datalog rule is one-bounded is NP-hard [1].

That is, given a rule such as: "p(x,y) :- q(x), p(y,z), r(z, ...) ,...", where the predicate p only appears once in the body of the rule, deciding whether this rule is one-bounded (i.e., deciding that, for any possible initial set of facts, any possible p fact can be entailed by a single application of the previous rule -without recursion-) is NP-hard.

My question is, what if the recursive rule is not linear? Do we know the complexity of deciding whether a non-linear recursive datalog rule is one-bounded?

That is, given a rule such as "p(x, y) :- q(x), p(p,z), p(z, u), r(u, ...) ...", where the predicate p appears several times in the body of the rule, what is the complexity of deciding whether it is one-bounded?

Clearly, it is still NP-hard (since it is a generalization of the linear case), but whereas I feel that the linear case is NP-complete (by means of checking whether there is a homomorphism between the original rule, and the rule obtained after unfolding the recursive predicate in the body), I am not sure in the non-linear case.

Any help will be appreciated.

[1] Polynomial-time program transformations in deductive databases, YP Saraiya

441Juggler
  • 559
  • 2
  • 13

0 Answers0