On Thu, Aug 21, 2008 at 6:03 PM, Ben Goertzel <ben@xxxxxxxxxxxx> wrote:
1)
What are the cases in which a link would have targets in different dummy
contexts
Well, I'm not entirely sure... contexts are associated with atoms as
they are needed (i.e. whenever PLN attempts to add a new atom to the
atomspace and the atom already exists). Dummy contexts are just
incremental counters at the moment, such that the first versioned
TruthValue of any atom would be associated with context __PLN__1, the
second __PLN__2, etc. So depending on how PLN accesses and adds atoms,
these counters may increase asynchronously for each. The maximum
number of contexts is never more than the maximum number of versioned
truth values that any atom has.
In other words, the dummyContexts are not created intelligently, but
in the AtomTableWrapper, outside of the operation of PLN.
Perhaps this wasn't what was intended in the original discussion of
dummy contexts... (it can be changed though, most of the work is in
appropriately replacing Handles by pair<Handle, VersionHandle> within
PLN).
2)
I recall that, for other reasons (nested contexts), I proposed that
VersionHandles be allowed to contain lists of context AtomHandles, as well
as individual AtomHandles. This was never implemented but is described on
the NM wiki. Maybe this mechanism could be used here.
I saw this - and I think it'd be a the correct way of implementing PLN
in the long term, but of course would require the extra time
implementing ComplexVersionHandles (
https://extranet.vettalabs.com:8443/bin/view/Novamente/ComplexAtomVersionHandles
)
I guess my question is for Ari, and depends on whether PLN relies on
obtaining Handles from the AtomSpace, or if it keeps track of them
within the PLN structure, e.g. vtrees, BoundVTrees, etc. If the
latter, we should be safe, but if it's the former I'll have make
alternative changes.
J
ben
On Thu, Aug 21, 2008 at 9:00 AM, Joel Pitt <joel.pitt@xxxxxxxxx> wrote:
On Thu, Aug 21, 2008 at 5:46 PM, Ben Goertzel <ben@xxxxxxxxxxxx> wrote:
One could create new unique dummy contexts based on the dummy context
of the relevant versioned TVs for atoms in the outgoing set. This
would allow retrieval of the correct versioned destination atom TV
when necessary.
Perhaps I'm misunderstanding something ... why can't you just use the
same
dummy context as the one associated with the relevant-versioned TV in
the
node that the link is associated with?
When a link has more than one node with a versioned TV in it's
outgoing set, which dummy context should it use?
(I might be missing the big picture of how inference works from
staring at c++ templates too long)
J
--
Ben Goertzel, PhD
CEO, Novamente LLC and Biomind LLC
Director of Research, SIAI
ben@xxxxxxxxxxxx
"Nothing will ever be attempted if all possible objections must be first
overcome " - Dr Samuel Johnson