Maturity of the Sheaf API and its Python Bindings

38 views
Skip to first unread message

James Bolden

unread,
Apr 24, 2019, 2:24:29 PM4/24/19
to opencog
I have a few questions about the sheaf API.

1. Does it work?
2. Would it work well for representing scene graphs for use in scene-based reasoning?
3. Are there Python bindings?
4. Do they work?

That's all.
Message has been deleted

Ben Goertzel

unread,
Apr 25, 2019, 12:41:11 AM4/25/19
to opencog
> 1. Does it work?
> 2. Would it work well for representing scene graphs for use in scene-based reasoning?

Not without significant tweaks I suppose. In principle grammars can
describe scenes (see e.g. https://arxiv.org/abs/1703.04368 for some
theoretical stabs), but I think the code you refer to is currently
somewhat adapted to the case of grammars for sequences of symbols not
2D or 3D scenes



> 3. Are there Python bindings?
> 4. Do they work?
>
> That's all.
>
> --
> 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 post to this group, send email to ope...@googlegroups.com.
> Visit this group at https://groups.google.com/group/opencog.
> To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/b5e27b12-120f-47ec-8084-ab141f3a1a2e%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



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

"Listen: This world is the lunatic's sphere, / Don't always agree
it's real. / Even with my feet upon it / And the postman knowing my
door / My address is somewhere else." -- Hafiz

James Bolden

unread,
Apr 25, 2019, 12:46:28 AM4/25/19
to ope...@googlegroups.com
Upon further inspection, it looks like I should just use the EvaluationLink/PredicateNode structure

Linas Vepstas

unread,
May 1, 2019, 10:56:29 PM5/1/19
to opencog

Hi James,

On Wed, Apr 24, 2019 at 1:29 PM James Bolden <jamesbo...@gmail.com> wrote:
Also, can someone elaborate on the meaning of the EvaluationLink structure mentioned on the sheaf github readme?
 

These are the most basic, most primitive ways of representing data in the atomspace.  In terms of understanding what this is about, you have to get (very) comfortable with them, and how/why they are a "generic" way of representing data. 

Step two (and already, that's a big step) would be to understand how the "matrix" API allows you to slap an ordinary linear matrix on any kind of data in the atomspace -- take a slice through any graph, as it were. With the matrix, you can compute normal, ordinary  joint probabilities - conditional probablities, marginals, entropies, mutual information etc. in very standard way, except that atomspace allows the matrix is extremely sparse -- e.g. a matrix with trillions of entries, of which only millions are non-zero.  The matrix API is just a generic way of taking a linear algebra slice of your choice, through some arbitrary graph.  What's novel here is the ability do handle extreme sparsity, and the ability keep your data in a "natural" graphical form, while slicing through it in a linear way.

Step three, the sheaf part, is currently super-minimal; it just grabs some of these slices and stitches them together.  Not only is it minimal, but some of the most interesting code & algos are in a different location entirely, half-finished; I had to set aside that experiment some half-year ago, and haven't been able to return to it in a meaningful way, just yet.

To answer your questions:

On Wednesday, April 24, 2019 at 1:24:29 PM UTC-5, James Bolden wrote:
I have a few questions about the sheaf API.

1. Does it work?
 Using some appropriate definition of "work", yes, (e.g. Anton's pipeline runs it regularly) however it almost surely does not do what you're imagining it to do.

2. Would it work well for representing scene graphs for use in scene-based reasoning?

You'd have to design-your-own scene representation. Opencog has no particular, predefined, preferred syntax for representing scenes. You can do it however you wish; of course, some are better than others.  I strongly strongly suggest taking a minimalist approach until you get comfortable: if you have some paper with some illustration or diagram, just use the atomese atoms to re-encode that diagram in a direct way. You can get fancy later; don't start fancy.  I can help design a reasonable data representation.

As to "scene-based reasoning", that is ... a different conversation. I keep asking the ghost guys to implement the basic prepositions: near, far, above, below, next-to, in-front-of, etc. I think its straight-forward to get this to work in a basic fashion, its not hard. They haven't done it yet :-(  Its certainly easier than python bindings.  Anyway prepositions are not "reasoning", they're more about "natural-language-knowing".
 
3. Are there Python bindings?

Not for the matrix nor the sheaf code. I would support this, but it would be a huge task.

-- linas
 
4. Do they work?

That's all.

--
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 post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.

For more options, visit https://groups.google.com/d/optout.


--
cassette tapes - analog TV - film cameras - you
Reply all
Reply to author
Forward
0 new messages