On Mon, Jan 3, 2022 at 11:10 PM aymeric <[email protected]> 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 -- You received this message because you are subscribed to the Google Groups "opencog" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CAHrUA35XhtDoXb8gASKjafNMWKOJDfKhpcjzUaBcWyq%3DFYAm-A%40mail.gmail.com.
