On Mon, Jan 3, 2022 at 11:10 PM aymeric <
aymeric...@hotmail.fr> wrote:
> I did not find an "Hello world" for opencog.
Please take a look at the demos in
https://github.com/opencog/atomspace/tree/master/examples/atomspace
The demos are written in scheme, but you can also do them in python.
It's more or less the same.
> I am looking for a solution (idealy a ready-to-use solution but I am dreaming of course) or a set of solutions that enable the agent to "store repetive patterns (concepts) that it observes while evolving in its world" (a "pattern" can be a sequence of objects appearing in the scene over time, can be its own actions that lead to one same observation etc.).
>
> I guess I will need to use several components of opencog to achieve this.
You need only the atomspace. The atomspace stores arbitrary graphs
(hypergraphs, metagraphs), to which you can attach arbitrary weights,
vectors, probabilities or other data. This means that you can store
any kind of neural net, bayesian net, markov net, whatever, in the
atomspace, and you have a large number of different ways to represent
this data. The hard part is to understand the performance
implications of storing things one way vs. another way, because
different representations run at different speeds, and use different
amounts of RAM (in exchange for making queries or other manipulations
go faster.)
The Options Framework appears to have lots of probabilities and
vectors & stuff in it. For these, it is probably best to use the
FloatValue
https://wiki.opencog.org/w/FloatValue and attach it to
whatever graph you design.
https://github.com/opencog/atomspace/blob/master/examples/atomspace/values.scm
Now, the AtomSpace is meant for storing things (in RAM, or to disk)
and for querying them. It is not optimized for performing high-speed
arithmetic on floating point numbers. (I could show you how to write a
custom module to do this, but that is an "advanced" topic.) You can
update Atoms and Values tens of thousands, maybe hundreds of thousands
of times per second, but that's it, that's the limit. It is not meant
to compete with conventional programming languages for performing
conventional high-performance numerical algorithms.
You can use the AtomSpace to save, restore, query, rewrite, transform,
manipulate and reason about graphs. However, it does not have any
generic deep reinforcement learning module. (I guess I could show you
a way that this could be done. We'd have to have a long discussion.)
It does have a generic way of working with vectors and matrices, but
this is a more advanced topic that might not suit your needs. See
https://github.com/opencog/atomspace/tree/master/opencog/matrix
-- Linas