Open balhoff opened 2 years ago
This is clearly a bug. The expected answer is
@query part_of_molar_crown(?X) .
?X -> mc1
Existential rules can only be non-monotonic in the presence of negation, and the ruleset above does not contain any negation. Indeed, the restricted chase could lead to different materialisation results of different size depending on the rule application order, but all of them should be equivalent under a constant-preserving homomorphism (i.e. a homomorphism that only maps nulls created during reasoning). But this is also not the case in this example.
This issue actually appears to be very similar to issue #64. The problem again seems to be the filtering of results of the restricted chase in multihead rules. In Vlog, using the "--rewriteMultihead true" command line option works around the problem.
FYI, with the above commits, reasoning is now correct.
I've been trying out VLog by following this tutorial: https://iccl.inf.tu-dresden.de/web/Rules_ECAI_Tutorial_2020/en
I'm using the VLog version in the Rulewerk console downloaded in the tutorial materials. I wrote a set of rules to infer something that I'm not easily able to do in OWL:
If I load that file and run a query, I get one result:
If I uncomment the last line, adding one fact, my query now returns zero results:
Is this expected behavior?