Re: Anticipatory Reading was Re: [Link Grammar] [LinkGrammar] Progress report on a tcp client bean

103 views
Skip to first unread message

Linas Vepstas

unread,
Apr 26, 2020, 2:04:04 PM4/26/20
to link-grammar, opencog
About opencrux... below,

On Sun, Apr 26, 2020 at 10:24 AM Jack Park <jack...@topicquests.org> wrote:
That's a useful observation. I wonder if it has anything to do with the fact that they give appearances more of offering a platform aimed at solving real-world problems as compared to a platform for language modeling research?

Their landing page reads rather differently from that of the AtomSpace landing page.  They make results-oriented promises; I don't see that on the AtomSpace landing page.

Their landing page appears to be the work of skilled marketing types; the AtomSpace landing page appears to be the work of, well, not skilled marketing types. Their top nav bar says Products, Solutions, Use Cases, Community, ...; AtomSpace is a MediaWiki, one very familiar to developers, but not to business oriented people.

What if AtomSpace ignored all the cool buzz words and opened with problems it can solve, ways people can start using it right out of the box without building it, tuning it, etc?

Would you, as a scientist, be able to live with wall-street-oriented thinkers taking over your pet projects and packaging them up for far less-skilled consumers?

I think this is an issue faced by a lot of us.

Quite right.  We've never had anyone interested in marketing participate in the project. Marketing is a skill, and unlike open source, there is no "open marketing", so you have to pay these people actual $$$ to get slick content. 

I studied Grakn carefully; the front story is one, for me, of some attraction to the apparent simplicity of the system; the back story, for me, is that Grakn appears optimized in ways which get in the way of allowing me to push it in ways I believe it should be pushed; a problem of ontological commitments I cannot undo, so I just walk away.

For a really interesting case for comparison, take a look at https://opencrux.com/

Well, care to be specific? I suppose it's possible to put a prolog/datalog API on top of the atomspace. I'm sufficiently removed from that world that I would not want to even begin without a lot of arm-twisting, but I can consult.

I'm not sure what to say about other things. Bitemporality? We have a concept of a space-time server, optimized for dealing with time .. and space coordinates. It's neglected...

Document-graph? Sure, cause why not? Seems easy to me...

Back-ends other than postgres? That's interesting. It's not "hard" - its not conceptually hard, and also the infrastructure/API is already in place. But it does require some fair amount of slogging. One would have to be enthusiastic about it. 

Datalog queries? I'm certain that anything you can say in datalog, you can say in Atomese, and so its a matter of writing a converter/translator that accepts datalog as input and spews atomese as output. How hard is this? No clue. You've actually messed with this kind of stuff, you'd know better.  Again -- everything that is a "symbol" in prolog is an atom in atomese.  The atomspace is pretty much nothing more than a glorified symbol table. 

... and this seems to be the key insight that the opencrux developers have made: symbol tables are (ad-hoc, in-RAM, poorly-designed) databases. Rip out the ad-hoc symbol table of programming language XYZ, replace it with a real, actual database, and wow ... off we go on a wild ride. I'm trying to think of what programming languages XYZ this could be the most interesting for... where you'd get the most bang-for-the-buck. Maybe prolog -- maybe that is the lesson from opencux ?

Care to suggest an easily-hackable version of prolog/datalog on which this experiment could be done? Just for the heck of it?

I mean, you could do this trick for python or javascript ... I don't think the python community would accept it, it would be too crazy and weird for them. The javascript folks might .. but they already have some pretty decent infrastructure already, so they don't need something this low-level. They've done this integration at a higher level, already. (programming in javascipt is far more mind-expanding than python. Python shuts down your world-view, narrows your thinking. Blinds you to possibilities. javascript does the opposite.)

--linas

On Sat, Apr 25, 2020 at 7:48 PM Linas Vepstas <linasv...@gmail.com> wrote:
<snip>
I dislike promoting competitors, but the grakn.ai system has taken some baby-steps in this general direction. I'm envious that they are far more popular/funded/suported/used than the atomspace.

--linas

--
You received this message because you are subscribed to the Google Groups "link-grammar" group.
To unsubscribe from this group and stop receiving emails from it, send an email to link-grammar...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/link-grammar/CAH6s0fydKLSFN40GykJ5FNR0d_DKqPi0yrAyVU%2B4wpFd6aig9Q%40mail.gmail.com.


--
cassette tapes - analog TV - film cameras - you

Jack Park

unread,
Apr 26, 2020, 2:30:24 PM4/26/20
to link-g...@googlegroups.com, opencog
I'm trying hard not to be an advocate of anything; rather, I'm in exploration mode.

Tell you what: I'd like to see (have not yet found) some solid examples of AtomSpace - full-on knowledge graph implementations, whatever. Something to be able to follow through one or two complete examples which are more than toy exercises.


You received this message because you are subscribed to a topic in the Google Groups "link-grammar" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/link-grammar/FMGJq5YhbME/unsubscribe.
To unsubscribe from this group and all its topics, send an email to link-grammar...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/link-grammar/CAHrUA36GQq2B6nrFcQxN7DqQ8gZJH1DqvvaUkBp54rcR2b89Mw%40mail.gmail.com.

Linas Vepstas

unread,
Apr 26, 2020, 4:50:10 PM4/26/20
to link-grammar, opencog
On Sun, Apr 26, 2020 at 1:30 PM Jack Park <jack...@topicquests.org> wrote:
I'm trying hard not to be an advocate of anything; rather, I'm in exploration mode.

Tell you what: I'd like to see (have not yet found) some solid examples of AtomSpace - full-on knowledge graph implementations, whatever. Something to be able to follow through one or two complete examples which are more than toy exercises.

The latest blog entry?  https://blog.opencog.org/

You're not going to find "complete examples" anywhere -- if you can't master the toy examples, a "complete example" will not make anything easier. That said -- this all is open source, so ---

The mozi biochem annotation code -- https://github.com/MOZI-AI/annotation-scheme
It handles datasets with some 10-50 million protein and gene encodings.  You would have to write to the developers to get sample datasets, I'm not sure if they are proprietary or what.

There used to be the old Hanson Robotics behavior code; it has fallen away but it had a bunch of scripts for reacting via facial expressions, to visual cues (people entering the room, making hand-gestures).   It implemented something called "behavior trees" (see wikipedia)  -- what's left of it is here https://github.com/opencog/opencog/tree/master/opencog/eva but I'm not sure where the ROS integration has moved to. It used to be here: https://github.com/opencog/ros-behavior-scripting -- the repo is still there, but the contents were gutted and moved somewhere else, not sure where. Maybe some hanson robotics tree.  The robot control stuff was here: https://github.com/opencog/blender_api  -- with some effort, the original pipeline can be made to work again.

Somewhere there's an AIML import module: you can import everything that AIML does, and run it in a compatibility mode. The goal of doing this was to also attach vision and motor control. That never got far, because AIML sucked. AIML had maybe 50K or 100K stimulous-response pairs, so that was maybe under 1M atoms, not sure. Here: https://github.com/opencog/opencog/tree/master/opencog/nlp/aiml -- it worked in real-time, enough to get the robot to trade shows and on TV.

Then a switch to ChatScript, but chatscript is far more complex than AIML, so they used something called "ghost" -- https://github.com/opencog/opencog/tree/master/opencog/ghost  -- the chatscript also has about 20K-ish conversational interactions, gambits, responses, so maybe 200K atoms ?? no clue, actually.  Also this: https://github.com/opencog/loving-ai-ghost  and this: https://github.com/opencog/ghost_bridge and this: https://github.com/opencog/loving-ai

The robot stuff and chatbots are abandoned for a variety of reasons. Partly because chatbots suck and partly because there's no money.  But also because chatbots got little/nothing to do with the "hard problem" of AI, so its boring to Ben, and to me, and to most anyone else working on this stuff.  Again -- that's why there's a focus on learning.

That leaves the genomics/proteomics stuff, which is interesting because you can actually do data mining that other bio systems cannot do.

-- Linas


Jack Park

unread,
Apr 26, 2020, 6:25:35 PM4/26/20
to link-g...@googlegroups.com, opencog
I'll start with the blog post.
Thank you.

Michael Duncan

unread,
Apr 28, 2020, 10:58:24 PM4/28/20
to opencog
jack, there is lots of work is being done applying opencog to biomedical problems and we've opened up development of the annotation-scheme code and all associated database imports to the atomspace (bio-atomspace) as part the covidathon hackathon.  here are links to descriptions of what is available if you are interested in checking it out, formal participation in the hackathon isn't necessary:

details on data import to the bioatomspace
https://docs.google.com/document/d/16zfY7OZtHO66mfujLdZ0-3VALXUTvxeeo4dW2ASBiNs/edit?usp=sharing2 files

some more detailed thoughts on  bio-data visualization are at

and some more detailed thoughts on automated hypothesis formation regarding COVID-19 therapies are at
About opencrux... below,

To unsubscribe from this group and stop receiving emails from it, send an email to link-g...@googlegroups.com.


--
cassette tapes - analog TV - film cameras - you

--
You received this message because you are subscribed to a topic in the Google Groups "link-grammar" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/link-grammar/FMGJq5YhbME/unsubscribe.
To unsubscribe from this group and all its topics, send an email to link-g...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "link-grammar" group.
To unsubscribe from this group and stop receiving emails from it, send an email to link-g...@googlegroups.com.

Linas Vepstas

unread,
Apr 28, 2020, 11:54:29 PM4/28/20
to opencog
On Tue, Apr 28, 2020 at 9:58 PM Michael Duncan <mjsd...@gmail.com> wrote:

and some more detailed thoughts on automated hypothesis formation regarding COVID-19 therapies are at

The above document mentions "vector embeddings".  The current vector embedding API is in the (opencog matrix) module, and there's actually quite a lot of stuff there.  I suspect no one beside me has used that code ...

A writeup of that code is here:

I also suspect that whoever wrote the words "vector embedding" in the google doc is probably thinking along a different set of lines.  (whoever => normally iso-9000 says documents should always have an author, a date, and a contact point)

Anyway -- vector embeddings ... lets hear the ideas...

--linas

Ben Goertzel

unread,
Apr 29, 2020, 1:39:02 AM4/29/20
to opencog
Re vector embeddings, we have been using DeepWalk to create vector
embeddings from Atomspace, and have achieved some interesting mappings
btw Atom logical relationships and corresponding vector relationships
... a draft paper on this will be posted soon...
> --
> 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 opencog+u...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CAHrUA37n%3D76LBMHzucTT12AMGKqrc5KEkGTspVc6z6QVfipLDg%40mail.gmail.com.



--
Ben Goertzel, PhD
http://goertzel.org

“The only people for me are the mad ones, the ones who are mad to
live, mad to talk, mad to be saved, desirous of everything at the same
time, the ones who never yawn or say a commonplace thing, but burn,
burn, burn like fabulous yellow roman candles exploding like spiders
across the stars.” -- Jack Kerouac

Linas Vepstas

unread,
Apr 29, 2020, 2:57:05 AM4/29/20
to opencog
Ben, as you know, I'm more interested in code and API's that are generic and useful.  So I'm looking at the creation of things that have broad applicability, are easy to use, and can be popularized.  Things that can be demoed. Demos that can be tinkered with by ordinary people.

--linas

Ben Goertzel

unread,
Apr 29, 2020, 3:22:43 AM4/29/20
to opencog
Well DeepWalk for embedding graph nodes into vectors already has been
popularized and has fairly broad applicability, what is new in what
Debbie Duong did (which I'll say more about soon) is applying it to a
labeled hypergraph rather than just a graph...
> To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CAHrUA34Kd8ESp29CWiZ003DcJpYfJORtJtnGVYeBApmFNz8TrQ%40mail.gmail.com.

Linas Vepstas

unread,
Apr 29, 2020, 11:31:10 AM4/29/20
to opencog
Well, let me rephrase that: I was hoping to provoke a discussion regarding new features or capabilities or code that could be added to the atomspace, or tuned/improved, or the creation of an adjunct project (i.e. additional git repos where the implementation would sit).

--linas

Deborah Duong

unread,
Apr 30, 2020, 9:32:37 AM4/30/20
to opencog

Hi Linas,
Hope you and your family are doing well!   Long time no see!
I wrote some deepwalk embeddings of the atomspace in a Python notebook (too big to attach), and Mike mentioned to me this morning that we could add them to your vision and integrate them into the Opencog codebase.  If you are interested please tell me how I should modify the code or otherwise help.
Debbie
>> > To unsubscribe from this group and stop receiving emails from it, send an email to ope...@googlegroups.com.

>> > To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CAHrUA37n%3D76LBMHzucTT12AMGKqrc5KEkGTspVc6z6QVfipLDg%40mail.gmail.com.
>>
>>
>>
>> --
>> Ben Goertzel, PhD
>> http://goertzel.org
>>
>> “The only people for me are the mad ones, the ones who are mad to
>> live, mad to talk, mad to be saved, desirous of everything at the same
>> time, the ones who never yawn or say a commonplace thing, but burn,
>> burn, burn like fabulous yellow roman candles exploding like spiders
>> across the stars.” -- Jack Kerouac
>>
>> --
>> 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 ope...@googlegroups.com.

>> To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CACYTDBdbgsPf_rnct5g17sKi%3DZ91%3Dm5ByQfvOBMscYbT%2BZ50ig%40mail.gmail.com.
>
>
>
> --
> cassette tapes - analog TV - film cameras - you
>
> --
> 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 ope...@googlegroups.com.

> To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CAHrUA34Kd8ESp29CWiZ003DcJpYfJORtJtnGVYeBApmFNz8TrQ%40mail.gmail.com.



--
Ben Goertzel, PhD
http://goertzel.org

“The only people for me are the mad ones, the ones who are mad to
live, mad to talk, mad to be saved, desirous of everything at the same
time, the ones who never yawn or say a commonplace thing, but burn,
burn, burn like fabulous yellow roman candles exploding like spiders
across the stars.” -- Jack Kerouac

--
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 ope...@googlegroups.com.

Linas Vepstas

unread,
May 1, 2020, 10:31:33 AM5/1/20
to opencog
Hi Debbie,

Let me take a step back. My interest in this thread is to define generic API's for the AtomSpace that can be used in a variety of different ways, by different people, for different projects. Thus, I want to understand the embedding itself, and understand how to create an abstract API for it. I want to give you two examples of what I'm talking about, and it would be great if you could look them over.  Now, I'm NOT expecting you to write any new code, nor to modify your existing code.  Instead, I'm looking for a discussion on creating the kind of API's that might have made the embedding easier to do, in the first place.  By "API", I usually mean "Atomese", but not always... the goal is to create a proposal, a sketch of what the API might look like; the code would only be written later (by whomever, I don't expect it to be you. It would be great if it wasn't me, but someone I could tutor...)

So, two examples to ponder.  One is a blog entry about "value flows" and it gives a hint of how one can apply "formulas" to change "values" attached to a graph. I'm not saying that this is useful for your work -- rather, its just an example of what I mean, when I say "Atomese" -- so here: https://blog.opencog.org/2020/04/08/value-flows/

Another example is the existing API for extracting vectors from the AtomSpace. It's surely very different from what you did, but it does show how to obtain AtomSpace contents as a vector -- an extremely sparse, very high-dimensional vector. I used this very heavily in the language work. I imagine its completely different from what you did, but I suspect that it might be a very good direction to move in for vector (generically, tensor) mappings.  Basically, the AtomSpace can be thought of "very naturally" as a high-dimensional, ultra-sparse tensor. *Everything* we need for that is already present. What is absent is a clear, easy-to-understand, easy-to-use API for it.  So, here: https://github.com/opencog/atomspace/blob/master/opencog/matrix/README.md

Please read both of these, think about them, and see if you can make sense of them, and then see if there is some sensible way of doing something similar that would have made your original embedding simpler or easier.

--linas



To unsubscribe from this group and stop receiving emails from it, send an email to opencog+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/5615eb7c-d1a2-4bfc-94d7-5817fcb53e33%40googlegroups.com.

Adrian Borucki

unread,
May 19, 2020, 7:10:00 AM5/19/20
to opencog


On Friday, 1 May 2020 16:31:33 UTC+2, linas wrote:
Hi Debbie,

Let me take a step back. My interest in this thread is to define generic API's for the AtomSpace that can be used in a variety of different ways, by different people, for different projects. Thus, I want to understand the embedding itself, and understand how to create an abstract API for it. I want to give you two examples of what I'm talking about, and it would be great if you could look them over.  Now, I'm NOT expecting you to write any new code, nor to modify your existing code.  Instead, I'm looking for a discussion on creating the kind of API's that might have made the embedding easier to do, in the first place.  By "API", I usually mean "Atomese", but not always... the goal is to create a proposal, a sketch of what the API might look like; the code would only be written later (by whomever, I don't expect it to be you. It would be great if it wasn't me, but someone I could tutor...)

So, two examples to ponder.  One is a blog entry about "value flows" and it gives a hint of how one can apply "formulas" to change "values" attached to a graph. I'm not saying that this is useful for your work -- rather, its just an example of what I mean, when I say "Atomese" -- so here: https://blog.opencog.org/2020/04/08/value-flows/

Another example is the existing API for extracting vectors from the AtomSpace. It's surely very different from what you did, but it does show how to obtain AtomSpace contents as a vector -- an extremely sparse, very high-dimensional vector.

That's interesting, I've been looking into Vector Symbolic Architectures recently (for example A comparison of Vector Symbolic Architectures). Is the aforementioned sparse representation of the same family of techniques? I've been wondering for a long time how to integrate neural and OpenCog techniques - there are mainstream ways of doing that nowadays, with dense embeddings that you can get from algorithms like DeepWalk. The problem with sparse representations is that ANNs work better with dense tensors. The alternative is to go in the direction of more neuromorphic approaches - like what Numenta does (How Can We Be So Dense? The Benefits of Using Highly Sparse Representations, I played around with their code but it kept crashing on larger problems), this Ogma.ai guy or "cortical computing" that Janusz Marecki (a researcher from Deep Mind) talks about (I can send some slides but they are not to be circulated widely).

One thing that one could achieve with this representation is to have a network that learns to directly manipulate and read AtomSpace contents. It seems that dense embeddings are mostly used to extract information from graphs but not to modify it - a notable exception here is Learning to Reason with Third-Order Tensor Products, they use Tensor Product Representations which have the unfortunate disadvantage of growing quadratically in size with the size of the structure they model (they are not "reduced").
 

Linas Vepstas

unread,
May 20, 2020, 12:53:54 PM5/20/20
to opencog
Short answer only: I've been busy distracted with other things, but this remark:

 > The problem with sparse representations is that ANNs work better with dense tensors.

is something I have been trying to say for what, five, seven years?  I've written two or three very long papers explaining this in gory detail, and they've been received like a fish-flop.  It's been very discouraging, its pushing a rock uphill.  Mostly I've been told that "its obvious" and one fellow even had the gall to suggest that I go back and finish college.

I'll try to get back to these topics at some point "real soon now"...

-- Linas

 

To unsubscribe from this group and stop receiving emails from it, send an email to opencog+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/36bafe60-d803-4f66-89b5-f77a811b71dc%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages