3 ms·
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 progr
by frankmcsherry 8y ago
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".
- tom_mellior 8y ago> 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!).