Ok then.
I've got this <http://ocog.atspace.cc/inference-tree-browser/> and this
<http://ocog.atspace.cc/infinite/>, and I've got some free time. Let me
know if I can be useful regarding the OpenCog visualization attempt.
All best,
Ivan
sub, 10. srp 2021. u 18:53 Ivan V. <[email protected]
<mailto:[email protected]>> napisao je:
Hi all :)
Just thinking out loud, these may be some suggestions...
* How hard is it to implement a theorem prover in Atomese?
(narrow, but noticeable user base; a strong potential for graph
visualization)
* How hard is it to implement a math expression solver in Atomese?
(wider user base; weaker potential for graph visualization)
* How hard is it to implement a program code synthesis system in
Atomese? (well, this should be the future of programming; almost
none potential for graph visualization)
Do I miss something more ear-catching, and more applicable to graph
visualization? Does this make any sense at all with fitting into the
big OpenCog picture? Lastly, does anyone have any interest in
contributing to any of these use cases?
And another "hey" from my littleness - according to Linas'
visualisation idea, if someone decides to roll on the whole thing,
and if server side scripting not a problem, I would be interested in
sponsoring the OpenCog foundation with a fractal graph visualizer
for tree structures repo that I'm developing for some time now. Of
course, I am able to adjust the visualizer licence to OpenCog
licencing standards, and I'm prepared for very flexible terms, so no
worries from that side.
Be well,
Ivan
sub, 10. srp 2021. u 07:27 Ivan V. <[email protected]
<mailto:[email protected]>> napisao je:
May I ask did you solve the problem from bullet No. 1? Who will
use it and for which purpose?
uto, 6. srp 2021. u 00:54 Linas Vepstas <[email protected]
<mailto:[email protected]>> napisao je:
Hi Mike,
On Mon, Jul 5, 2021 at 11:30 AM Michael Duncan
<[email protected] <mailto:[email protected]>> wrote:
linus, here is a suggestion for a useful domain agnostic
graphical interface to attract opensource devs to
opencog and lower the learning curve for the opencog system.
Yes. The way I like to think of it is "people like visual
bling, so how can we make the tutorials visual and
entertaining?"
start with a knowledge metagraph complex enough to be a
useful for the "intro to opencog" tutorial, which would
include the atoms in all the examples. some subset of
SUMO small enough to fit into a low end laptop (4-8G
ram?) is one possibility but i'm guessing because i
haven't actually played with SUMO or any of the examples
except for the ones in the unit tests...
I'm certain that 100% of SUMO will easily fit into a few
hundred megabytes, and probably a lot less. (Size is not a
problem; the AtomSpace has been very highly optimized for
size and speed.) My only problem with SUMO is "what is it
good for?" or "what can you do with it?" -- someone would
need to figure that out.
ideally there would be a public server running the
demo system so users could run the examples from their
phone or a netbook, with step by step instructions for
setting up a local instance for more ambitious users
There are several places where such servers could be run; I
have several public servers (for other things) literally
within arms length. There's already a cloud instance hosting
the opencog site; it could also be used. So availability of
servers/compute is not an issue. Heck, you could run the
whole thing on a raspberry pi, I think ...
a dashboard shows stats for the complete atomspace (type
counts for atoms, data sources, etc), and a menu for
pulling example sub-metagraphs from the atomspace server
grafana was suggested for that ...
paired visualizer windows based on atomspace explorer code
Well, but the atomspace explorer code doesn't work, which is
what started this conversation. It would require a large
amount of effort to fix it ... Recall, Lansana suggested
that we should throw it away, and replace it with some other
system, written in React. ...
In other words .. start from scratch. Ooof. The only rule of
the game here is the person doing the work gets to pick the
tools being used. The only advice is a trope from ancient
Kung Fu movies: "choose wisely".
Hey, if someone else writes some code to take a flat file of
atomese in it, and visualize it, I'll write the code to hook
it up to a live atomspace.
--linas
to show the graph representation of the atomese
metagraph and the more conventional knowledge graph
triplet translation of the data based on the mozi
parsing code. hovering over nodes or links in either
view would show more detailed info and highlight
corresponding objects in the other viewer.
each viewer has an editor to visually construct new
graphs, directly in atomese in the explorer version or
as node-link-node triples in the conventional window
that gets translated into atomese in the explorer window.
new sub-metagraphs could then be added to the existing
atomspace or a new atomspace depending on server
resources. add a pattern matcher interface window and
new metagraphs could be used to query the atomspace.
make some jupyter notebooks of the examples accessible
from the server with instructions for following along in
the editor and you've expanded the potential audience
for opencog by several orders of magnitude.
On Sunday, July 4, 2021 at 5:49:58 PM UTC-4
[email protected] <mailto:[email protected]> wrote:
On Sunday, 4 July 2021 at 23:34:50 UTC+2 Adrian
Borucki wrote:
On Saturday, 3 July 2021 at 03:48:53 UTC+2 linas
wrote:
Hi Lansana,
On Thu, Jul 1, 2021 at 11:58 PM Lansana
Camara <[email protected]> wrote:
Keep in mind that even Grafana's UI is
built in JavaScript ;) building a modern
frontend like what you're seeking using
a language like C/C++ would be an
anti-pattern. It's simply harder to do
it that way.
We hear you. You have a very strong opinion.
But before you say, once again, how hard C
and C++ is, and how easy javascript is, you
should try Glade. https://glade.gnome.org/
<https://glade.gnome.org/> And not just try
it, but get good with it. Build an app with it.
Ah, I remember toying with Glade… a decade ago.
I don’t think GNOME developers use it anymore -
GNOME Shell itself uses JavaScript nowadays for
example.
A better proposition for C++ would be QtCreator
because it and Qt framework at least are
supposed to be cross platform - there is a UI
designer in QtCreator of course.
All in all the problem with these is that they
make you stuck with a specific tool (Glade /
QtCreator) and framework (GTK+ / Qt) and none of
those are particularly popular anymore (besides
GTK+’s niche in Linux world).
There is another drawback I forgot to mention --
Glade (as well as QtCreator) do not generate code
for the GUI (they only generate code stubs for
signals/slots). Glade saves an XML (QtCreator has
something similar, I don’t remember if it’s XML)
which then has to be loaded by GtkBuilder to build
the interface on the fly (similar mechanism for Qt)
-- this means that if in the future you want to
modify this interface you *have* to use those
particular tools or learn to navigate XML manually,
you do not get everything represented by
understandable code, the GUI representation will be
more obscured by the process. One advantage of the
tools below on the other hand is that they seem to
produce actual JS code, so a programmer can just
modify it as they see fit later on and you’re not
locked to those tools.
Now, if we had some kind of app builder for
javascript, then, yes, you might have a point.
A quick search shows that there are some options
for JS too, like https://openchakra.app
<https://openchakra.app>,
https://reactstudio.com
<https://reactstudio.com> or https://builderx.io
<https://builderx.io>.
But as long as you use words like
"anti-pattern", that is just bomb-throwing.
It basically illustrates that .. I dunno ..
you are young and inexperienced, and haven't
been around the block, yet. There's much,
much more to this big wide world than what
your friends are talking about.
When you drink the Kool-Aide, ask yourself,
"what did they put in this stuff?"
--linas
On Thu, Jul 1, 2021 at 9:53 AM
Abdulrahman Semrie <[email protected]>
wrote:
Hi Linas,
(Sorry for not responding earlier.
As Mike have explained, I'm on
vacation and don't check my e-mail
regularly. I should be able to
answer more questions when I'm back
next week)
More or less, the three requirements
that you mentioned above have either
been partially implemented (1) or
were planned to be implemented (2 &
3) in the previous Mozi platform
iteration, albeit using the (now
old?) Python API of the AtomSpace.
The code for both the backend and
frontend is available on gitlab in a
private Mozi repository. I should
probably export it to github and
make it public.
Going through the list of requirements:
1) We had an interface to create an
AtomSpace from a scheme file but
back then we had issues keeping the
imported data into separate
AtomSpaces and accessing them
independently. If you remember. this
is before you implemented the
copy-on-write functionality.
However, with the AtomSpace gRPC
server
<https://github.com/Habush/atomspace-rpc>
that I wrote few months back, this
is possible and I have been using
multiple atomspaces to run
annotation tasks but haven't
developed a generic UI around it.
2) I was actually planning to extend
the gRPC server by integrating it
with Grafana <https://grafana.com/>
for monitoring purposes.
Unfortunately, I didn't find the
time to implement it. AFAIK, Grafana
handles much of the UI stuff and
only needs some API for it to be
used as a dashboard/monitoring tool.
I think this is easier than writing
a new UI code.
3) For the visualization, in
addition to the visualizer in
https://github.com/opencog/external-tools/
<https://github.com/opencog/external-tools/>,
we developed our own custom
Cytospace visualizer that visualized
atoms representing biochemical
entities using custom layouts. This
is the visualizer used in the
annotation service you linked above.
The main issue we had with the
Cytoscape visualizer was calculating
the layout algorithms on the
front-end when the size of the graph
got bigger. I suppose anyone who
wants to use a data explorer with
the atomspace will eventually run
into such a performance issue as the
atomspace gets bigger. To resolve
this, I created a small library
<https://github.com/Habush/annotation-graph>
that runs the layout algorithm on
the backend and send the coordinates
of the nodes and edges to the
front-end. This code is not generic
but some part of it can be reused or
it can be refactored to make it
generic.
> Maybe a kind-of-like jupyter for
the atomspace.
This kind of functionality was also
implemented on the old Mozi platform
using cogserver but it needs updating.
In conclusion, a skeleton of what
you have listed above exists, but
needs refactoring to make it
generic/reusable and also merge it
into one tool/product.
On Saturday, June 26, 2021 at
10:04:34 PM UTC+3 linas wrote:
Hi Xabush,
So I have a tough question for
you: the MOZI webserver ...
I'm trying to solve a
meta-problem: I want to increase
developer engagement in
opencog/atomspace. For that, it
would be nice to have a web UI.
Three of them actually, or four.
1) A web UI that allows users to
create new atomspaces, and put
(by hand) some atoms into it,
and visualize simple graphs. So,
people can point their browser
at it, and mess around.
2) A job control panel web UI.
So, for the language learning
project, I have a collection of
bash scripts that start and stop
the atomspace, and ingest text
files, and take hours or days to
run. I thought of MOZI because
it has some similar requirements.
3) A data explorer. Given an
atomspace, with say, millions of
atoms (from language learning,
or from biochem), I want to
explore what's inside of it:
print all atoms in some cluster,
ranked by frequency, or plot
some histogram of mutual
information vs frequency or
whatever. Maybe a kind-of-like
jupyter for the atomspace.
Again, I think of the MOZI work
in this direction. You were
trying to get a simple web UI
for biochemists to use. I want
the same deal, but for
linguists. Under the covers,
it's all the same stuff: just
atoms in the atomspace.
How can this be accomplished?
You've built some kind of custom
solution for 2 & 3 for MOZI, but
I don't understand how to
backtrack out of that, and
custom-tailor it so that it
works for language learning
instead of ChEBI or PubChem.
Any ideas?
I mean, you and Hedra have put a
lot of effort into these things...
I see things like this:
https://github.com/MOZI-AI/annotation-service
<https://github.com/MOZI-AI/annotation-service>
and this:
https://github.com/MOZI-AI/annotation-service-ui
<https://github.com/MOZI-AI/annotation-service-ui>
And I'd like to have it work for
the kinds of graphs and systems
in the language-learning
codebase, instead of
biochemistry. What would it
take to have that work? Do I
really have to start from
scratch? Is there a way to
recycle any of the work that
you've done, and use it for
other applications?
I don't want to go off and state
the obvious, but maybe I should
go off and state the obvious: if
this web UI stuff was generic,
then other users could use it,
which means that other users
could show up and help fix bugs
and add features. It would grow
the project overall ... it would
help anyone interested in the
atomspace and in singularitynet
and all that jazz ...
BTW, back in the days of Hanson
Robotics, we had the same
problem ... I think we throw a
lot of money at some Brazillian
to create a WebUI for the Owyl
behavior tree subsystem, but ..
of course, that code failed with
the AtomSpace, so it was like ..
wasted money, wasted effort. ..
we still don't have a generic
AtomSpace WebUI ...
-- 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/d16f492c-26f2-4f21-807e-e02cfd8f7c6cn%40googlegroups.com
<https://groups.google.com/d/msgid/opencog/d16f492c-26f2-4f21-807e-e02cfd8f7c6cn%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
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/CAPPXERrWx4%2B59Kf163pAnmyaOD%2B5bbQ0pSJ89vFbE50CPrSLNw%40mail.gmail.com
<https://groups.google.com/d/msgid/opencog/CAPPXERrWx4%2B59Kf163pAnmyaOD%2B5bbQ0pSJ89vFbE50CPrSLNw%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/opencog/b750b969-6cb6-4303-b986-7e963e0d90bfn%40googlegroups.com
<https://groups.google.com/d/msgid/opencog/b750b969-6cb6-4303-b986-7e963e0d90bfn%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/opencog/CAHrUA35tErzxe%3D%2Bj2hObh36d__4Ghmi_u7b9cJ3LuK8PD%3DeXsQ%40mail.gmail.com
<https://groups.google.com/d/msgid/opencog/CAHrUA35tErzxe%3D%2Bj2hObh36d__4Ghmi_u7b9cJ3LuK8PD%3DeXsQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/opencog/CAB5%3Dj6Uyjdc4DLmGwrV%2Bn77Yybv4RR1-9yHUifRAhrbisDnejw%40mail.gmail.com
<https://groups.google.com/d/msgid/opencog/CAB5%3Dj6Uyjdc4DLmGwrV%2Bn77Yybv4RR1-9yHUifRAhrbisDnejw%40mail.gmail.com?utm_medium=email&utm_source=footer>.