Linas,
Your new, simple API suggestion is certainly interesting... I find
this direction exciting, inspiring and promising...
Also, it ties in with stuff Shujing and I have been discussing
regarding algorithms for hypergraph mining.... Her pattern miner
would fit in very naturally with this API
> Most existing code could not use such an API, and could not be easily ported
> to it. However, I'm not sure how much of the existing code is interesting
> in the long term. I suspect that Ben will remind me that we're pretty
> married to the C++ API, warts and all. But the above API, if it was fast,
> distributed, scalable, cloud-able, etc. .. that would open a lot of very
> interesting possibilities, to me.
Which code is interesting in the long term, is not always easy to
say.... Much of the code one thinks will last, ends up getting
replaced with better things rapidly; and sometimes code that one
thinks will be obsoleted quickly, winds up lasting forever (for either
good or bad reasons).... I guess you know this better than I do...
However, there is certainly current code using the Atomspace which is
valuable in the medium term.... I'm thinking especially of
Embodiment code, which creates Atoms representing stuff perceived in a
virtual world, and sends action signals based on Atoms representing
actions...
There is also PLN and ECAN code which is of value...
Ruiting's in-progress NLP code just creates Atoms using the Scheme
shell, and should be compatible with your new suggestion...
So my own current, tentative feeling is
-- it could well be sensible to replace the Atomspace API with
something based on your new thinking
-- it should be feasible to port the existing useful code over to a
new API ... but it might be a lot of tedious work in some cases...
Anyway I don't think your suggestion is infeasible, it's certainly
worth considering.... We shouldn't consider ourselves "married" to
the current AtomSpace API at this point...
OTOH, the possibility of making the current AtomSpace API a wrapper
for your suggested API, also seems worth considering, at this point..
> I think these are the only two functions that an atomspace needs, the rest is all cruft.
I'm wondering about the indices...
Let's suppose we want to apply some process to only those Atoms with
ShortTermImportance greater than some threshold.... ECAN does this,
for example....
Currently this is achieved via an index of Atoms by STI. How would
this be done in your proposal?
Or, suppose you want to remove from RAM the Atoms with lowest
LongTermImportance...
Again, this is currently achieved via an index of Atoms by LTI....
How would this be done in your proposal?
thx
Ben