Thread Previous • Date Previous • Date Next • Thread Next |
From my understanding of the code, the validate methods don't actuallycheck the order of < L2, L1 > is invalid. Just that the types are correct since it only checks one handle/Vertex at a time and I don't see how it would share any binding information between calls to weak_atom...
Correct.
[1] whereas the o2iMeta functions DO ensure that the shared atoms of links are correct, but I could be completely wrong. I'm confused about whether these output-to-input functions can be used for forward chaining too.
o2i function do check the variable consistency, but the method for doing that is rather tightly integrated with the whole binding scheme.
Basically, you don't actually check for consistency in the o2i approach at all; instead, you start out with the correct formula with variables (eg. DeductionRule($1=>$2, $2->$3) and then create a new instance of the whole Rule (or rather, the BITNode that embodies the Rule) by binding one of the variables to some Atom, eg. resulting in DeductionRule($1=>MyAtom, MyAtom->$3). This way, consistency is guaranteed. This does cost space and time for cloning the BITNodes, but then again ensuring consistency across large trees by other means is a hairy problem.
I believe an analogic solution can be used for fw chaining, but it's possible you can find something else, too, which is simpler and works for fw chaining only.
-A -- Ari Heljakka CTO Dream Broker Ltd Tekniikantie 14 ari.heljakka@xxxxxxxxxxxxxx 02150 Espoo +358 40 568 2420 Finland www.dreambroker.fi
Thread Previous • Date Previous • Date Next • Thread Next |