I think the point is that there is no clear reason System A must do more work than System B. Serious Datalog environments will identify strictly monotonic programs and execute them more efficiently (e.g. with racy asynchrony); they will identify linear recursion and partition work accordingly. They could identify programs corresponding to DannyBee's hypothetical purpose-build industrial winners and execute them using the exact same techniques, but apparently they don't.
I suspect the point of disagreement is
> Of course you might wish for a generic Datalog solver that you could run in a special mode where you promise that it will not encounter negation in the problem you give it. But that is then no longer a Datalog solver but a "well engineered purpose built solver".
which I don't think is correct. A Datalog solver with the property that it can run faster on certain classes of input is great; it is not "no longer a Datalog solver".
> Serious Datalog environments will identify strictly monotonic programs [...]
Yes. And that is extra work that must be done. Admittedly, it probably isn't the "large factor" mentioned by DannyBee.
> A Datalog solver with the property that it can run faster on certain classes of input is great; it is not "no longer a Datalog solver".
I was talking of a special, user-requested mode in which the user guarantees that the input program they are interested in will not contain certain constructs, and the solver can reject programs that do contain them. A "Datalog" solver that rejects programs containing, say, negation, does not handle the full Datalog language and is therefore no longer a Datalog solver.
As an analogy, Clang is a C++ compiler, but passing it the "-xc" flag causes it to reject valid C++ programs, so then it's no longer a C++ compiler (although it is still the same program!).
I suspect the point of disagreement is
> Of course you might wish for a generic Datalog solver that you could run in a special mode where you promise that it will not encounter negation in the problem you give it. But that is then no longer a Datalog solver but a "well engineered purpose built solver".
which I don't think is correct. A Datalog solver with the property that it can run faster on certain classes of input is great; it is not "no longer a Datalog solver".