On Thu, Sep 23, 2021 at 3:15 AM Ivan V. <[email protected]> wrote: > > Just a quick question while we're at it, if I may: what is the best way to > communicate between web browser and atomspace?
Currently, none. The "atomspace explorer" used an atomspace server that was weird, slow, mis-designed, old and incomplete... Let me take you on a trip. What is really needed are some javascript bindings that talk to the cogserver. It is very easy, trivial, even, to talk to the cogserver, and get a reply. The hard part is to convert the results into whatever javascript you want -- we do not have any existing layer for that. Creating this layer would be an excellent project. Thus, for example: -- use javascript to open a socket to 17001 -- send command over that socket; for example, `(cog-value (Concept "foo") (Predicate "some key"))` -- read the result, for example `(FloatValue 1.000000 2.000000 3.00000)` -- close the socket, or re-use it. Great! But how do you convert `(FloatValue 1.000000 2.000000 3.00000)` into what you want? (What do you want?) Now, before you get on that airplane, and start writing code to use javascript to talk to the cogserver, consider this: If you wrote that code, you would have to cache the results locally, in javascript. That is, you would have to create a local, in-browser copy of (Concept "foo") and (Predicate "some key") and remember that (FloatValue 1 2 3) is attached to it. In other words, you would be re-inventing the atomspace, locally, running inside the browser. Good god, why? We already have an atomspace, why reinvent a browser-specific one? (Because this is what things like the atomspace-explorer were doing.) The correct solution is this: create javascript bindings for the atomspace. That's it, end of story. Want to talk to some remote AtomSpace? Just use the CogStorageNode! That's it, you're done. I'll stop writing the email here .. because there is nothing more to say! People who use web browsers need javascript. If we had javascript binding to the atomspace, you would have it in your browser. If you want to create these bindings, I'l create a github repo under the opencog project, give you full write permission, and you can do whatever in there. I'm sure many people could use them. --linas > > čet, 23. ruj 2021. u 08:24 Linas Vepstas <[email protected]> napisao je: >> >> On Thu, Sep 23, 2021 at 12:44 AM Ivan V. <[email protected]> wrote: >> > >> > As for the visualization tool, I'll have more time in a few weeks when I >> > settle some of my obligations. >> >> You don't have to make promises! There is no intent to guilt-trip you >> into doing something. >> >> > Then, a kind of OpenCog debugger (or IDE) is what I have on my mind. >> >> In the end, whatever you create has to be for yourself, for your own >> entertainment. If it turns out to be useful for others, that would be >> wonderful, but, as this long conversation has shown, there's no >> general vision of what anyone wants. Different people want different >> things; what's useful for one is useless for another. >> >> > It would be something like an atomspace editor communicating to cogserver, >> > showing inference trees related to edited fragments. Nothing too fancy, no >> > dozens of options, just a simple atomspace expressions writing aid, as >> > minimalistic as it can get, with an editor on the left and related >> > inference trees on the right side. >> >> Two part reply. (1) inference trees are very specific to the PLN >> backward chainer, and have almost nothing to do with the atomspace. >> (other than that they are kept in the atomspace ... for a while .. >> until they are deleted. Nil can supply those if that is what you >> really want.) >> >> (2) Don't worry about the cogserver. Don't use the cogserver. Just >> work with the atomspace directly. Why? (a) you don't need the >> cogserver to get things done. (b) if you absolutely must have a >> network connection to some remote AtomSpace, use the CogStorageNode >> -- it will automatically open a network connection to a remote >> AtomSpace, and it will automatically trade atoms with it, bringing >> them over to your local AtomSpace. You just have to specify which >> atoms. If you are not sure which atoms, you can easily run a query on >> the remote AtomSpace. >> >> Documentation: >> https://wiki.opencog.org/w/CogStorageNode >> >> Demos: >> https://github.com/opencog/atomspace-cog/tree/master/examples >> >> -- linas >> >> >> -- >> Patrick: Are they laughing at us? >> Sponge Bob: No, Patrick, they are laughing next to us. >> >> -- >> 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/CAHrUA34zZ%2BqFdgycq8PQjp1BvikD0b1Y8HSRSebMMxCfeF5p8Q%40mail.gmail.com. > > -- > 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/CAB5%3Dj6UkUirdXC9h7fmgzHvaZzz46coGYTUAU2TdqigTEXX4xw%40mail.gmail.com. -- Patrick: Are they laughing at us? Sponge Bob: No, Patrick, they are laughing next to us. -- 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/CAHrUA35-K8V6T3V%2BM7nLSze0NdPhcuk9txBNAoMAd1XJ%3DGekEw%40mail.gmail.com.
