← Back to team overview

opencog-dev team mailing list archive

Re: Rule argument validation in PLN

 

From my understanding of the code, the validate methods don't actually
check 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



Follow ups

References