> > I think Ari's suggestion of dealing with the fresh stuff in the > AtomTableWrapper is a good intermediary solution (perhaps when my PLN > foo is up to his I can completely go with VersionHandles though).
I'm still not sure... it needs a little more thought... but at the end of this email I'll make a specific suggestion for how this might possibly be made to work... > > > I guess the question to do this is: what makes atoms unique? From the > OpenCog code, for Nodes this seems to be the name and type, for Links > it's ONLY the outgoingset (I find it strange that Type isn't > included... is this correct?). It sounds wrong. You could have both an InhLink and a HebbianLink between the same two nodes A and B > > > So for hypothetical Nodes, I could represent them by using some naming > scheme such as prefixing the name of all PLN nodes by "__PLN__" or > something. > > For hypothetical links, it'd be more difficult, since they don't have > names, only the outgoing set... perhaps the creation of additional > nodes for each hypothetical link (again, with a "__PLN__#" prefix) > that are then connected to those hypothetical links, thus making each > of them have a unique outgoing set. Yuck ... > ... But perhaps this is all just as complicated and extraneous work > that could be spent directly on utilising VersionHandles? > Can't we just do it more like this...? 1) When PLN wants to set fresh=true, then the AtomTableWrapper creates a new version for Atom A. PLN will have N different "dummy contexts" associated with it: C1, C2,..., C_N The first version of A created by PLN will have a VH associated with context C1... the second version of A created by PLN will have a VH associated with context C2 ... etc. 2) Then, when appropriate, PLN can merge all the versions of A associated with the different PLN dummy contexts into a single version (which in most cases will just be the default version for the Atom A ... except in odd cases where the TV estimated for A by PLN is radically different from the one estimated by another method like direct evaluation, in which case we might still want to keep around one PLN-based version of A, along with other versions...). After this merger the dummy-context versions are all removed. I guess this would all be done in the AtomTableWrapper ... -- Ben
_______________________________________________ Mailing list: https://launchpad.net/~opencog-dev Post to : opencog-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~opencog-dev More help : https://help.launchpad.net/ListHelp