AFAICT, I have a situation where a [:not [:or A B]] is being ignored on a rule. Any thoughts about how to troubleshoot this?
@eraserhd there are certainly some issues that can happen with negated complex conditions.
Can find some in the github issues
One thing I’d do is to not combine it all to see that things work
I believe syntax is [:not [:or [A] [B]]]
But perhaps you were simplifying
Or I’m wrong hah
I'm definitely simplifying. We're working on making a small reproduction. Maybe it'll go away, or we'll figure out we're doing something boneheaded. :D
Could do 2 not conditions for that one right
But in general Clara compiler will try to convert things into disjunctive normal form.
Sometimes there may be issues with doing this when variable bindings are used across clauses that are moving around.
It may or may not relate to your issue. I just think there were perhaps still a few edge cases pointed out in some gh issues outstanding
I often will just advocate for breaking more complex expressions into separate rules that have intermediate facts between them to recreate the logic you are looking for
Generally will lead to less confusion and more transparency in introspection since you can look at the intermediate facts.
Often perf is fine or better that way too, but that can depend.