← Back to team overview

opencog-dev team mailing list archive

Re: removing fresh = true

 

>
> 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

Follow ups

References