Is it necessary for the FORMULA in an exceptWhen statement (exceptWhen FORMULA ASSERTION) to be an already concluded fact (or set of facts) in the knowledge base?
My rule is:
(exceptWhen
(communicationAuthorizedSameOffice ?PERS1 ?PERS2)
(implies
(communicationAuthorizedDealProject ?PERS1 ?PERS2)
(isMonitoredCommunication ?PERS1 ?PERS2)))
The rule did not work when communicationAuthorizedSameOffice has direction Backward, but does with direction Forward. The predicate communicationAuthorizedSameOffice for a pair of persons is not directly asserted in the KB, but relies on other predicates to be concluded.
So, is the Forward strictly necessary? Or is there an inference parameter in ASK that allows FORMULA assertions in exceptWhen to backchain?
Apologies in advance if there is a place where the inference behavior wrt to exceptWhen is documented, and I just missed it.
Thanks,
Matt
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
As I recall, given (#$exceptWhen FORMULA ASSERTION), the default is that the inference
engine to attempt to prove FORMULA up
to a backchain depth of 1. There might
be an inference engine parameter that you
might be able to tweak.
See if you can prove a FORMULA that has
#$communicationAuthorizedSameOffice as arg0
with a backchain of 1.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Bill:
Thanks for the suggestion. Though the picture still seems to be the same.
I changed the direction of communicationAuthorizedSameOffice to BACKWARD, removed the deduced assertions, and was able to prove an assertion with it as arg0 with 1 transformation (backchain) step. But now the exceptWhen fails again.
So it appears that an exceptWhen FORMULA is only proven at the moment for zero backchain deductions like isa and genls, or direct asserted facts in the KB.
I haven't been able to find a place to give the inference engine a parameter to change that..
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Is it necessary for the FORMULA in an exceptWhen statement (exceptWhen FORMULA ASSERTION) to be an already concluded fact (or set of facts) in the knowledge base?
My rule is:
(exceptWhen
(communicationAuthorizedSameOffice ?PERS1 ?PERS2)
(implies
(communicationAuthorizedDealProject ?PERS1 ?PERS2)
(isMonitoredCommunication ?PERS1 ?PERS2)))
The rule did not work when communicationAuthorizedSameOffice has direction Backward, but does with direction Forward. The predicate communicationAuthorizedSameOffice for a pair of persons is not directly asserted in the KB, but relies on other predicates to be concluded.
So, is the Forward strictly necessary? Or is there an inference parameter in ASK that allows FORMULA assertions in exceptWhen to backchain?
Apologies in advance if there is a place where the inference behavior wrt to exceptWhen is documented, and I just missed it.
Thanks,
Matt
As I recall, given (#$exceptWhen FORMULA ASSERTION), the default is that the inference
engine to attempt to prove FORMULA up
to a backchain depth of 1. There might
be an inference engine parameter that you
might be able to tweak.
See if you can prove a FORMULA that has
#$communicationAuthorizedSameOffice as arg0
with a backchain of 1.
Bill:
Thanks for the suggestion. Though the picture still seems to be the same.
I changed the direction of communicationAuthorizedSameOffice to BACKWARD, removed the deduced assertions, and was able to prove an assertion with it as arg0 with 1 transformation (backchain) step. But now the exceptWhen fails again.
So it appears that an exceptWhen FORMULA is only proven at the moment for zero backchain deductions like isa and genls, or direct asserted facts in the KB.
I haven't been able to find a place to give the inference engine a parameter to change that..