From: Murat K. <mur...@st...> - 2008-09-08 20:25:49
|
Greetings, yet again, I would like to understand some more about the coding in the RuleValidator. If you could clear things up, I'd appreciate it. 1. If a literal contains constructed terms, you disable the built-in handling, effectively treating the literal as a non-builtin. I assume this is, because the arithmetic deduction (configurable by mAllowArithmeticPredicatesToImplyLimited) does not work with function symbols anyway. For example, it is hard to see where ADD(2, f(2,3), ?x) implies anything but an EvaluationException. So, these situations either trigger an UnsafeRuleException in the RuleValidator, or an EvaluationException later on, when the built-in is fed the function symbol. Is this train of thought correct? 2. If so, what about EQUAL, which does support function symbols (according to its documentation, anyways)? It does support computing the missing term, too, so I assume it is basically collateral damage as this scenario is not considered? Thanks, Murat |