I'll be blunt: as to theoretical underpinning, I think that the ideas that
the network generation code is based on is of fundamental importance.
They're deeply related to vast tracts of mathematics and logic, and are, to
a very large degree, virgin unexplored territory, both in terms of
computing and algorithms, but also in terms of fundamental mathematical
theory. (It's taken me a decade to figure this out, its hard to give a
quick synopsis, other than to say that lambda calculus is a special case.)

I have two (unpublished, but going to be submitted for publication) papers
on this.  One is mostly "just words" and some pretty pictures. The other
has formulas. The words-only intro is here:
https://github.com/opencog/atomspace/raw/master/opencog/sheaf/docs/sheaves.pdf

The with-formulas one is here:
https://github.com/opencog/learn/raw/master/learn-lang-diary/skippy.pdf

--linas

On Fri, May 1, 2020 at 6:41 PM qwerty mnbvc <[email protected]> wrote:

> Thanks for your answers, I will interpret it as that both of you are the
> experts. I should immediately say that I have limited experience with
> research and mediocre programming abilities (and I’m not being modest), but
> that I’d like to improve.
>
> I’m currently being mentored by one of my professors to do a research
> project. My professor has advised me to write a few different research
> proposals and ultimately choose one to work on.
>
> Because the sky is the limit I’ve been using SWOT analysis to help me
> filter those choices and one of my interests is goal planning. That’s why I
> was curious about where OpenCog is at with regards to goal planning and was
> looking for papers on your work.
>
> What do you guys think? Could you offer some suggestions of things that
> might need to be researched and implemented to improve OpenCog’s goal
> planning functionality? Or maybe point me to some papers that would help me
> to come up with my own ideas?
>
> I did see this on the wiki:
> Planning via Temporal Logic & Consistency-Checking
>
> I will look into this idea and keep digging around for others.
>
> Thanks
> Q
>
> On Fri, May 1, 2020 at 8:04 AM Linas Vepstas <[email protected]>
> wrote:
>
>> Sorry, a part two to the below, I hit send too fast.  See below.
>>
>> On Fri, May 1, 2020 at 9:51 AM Linas Vepstas <[email protected]>
>> wrote:
>>
>>>
>>>
>>> On Fri, May 1, 2020 at 9:15 AM Ben Goertzel <[email protected]> wrote:
>>>
>>>> Linas, what sort of algorithm is used for the constraint-solving here?
>>>>
>>>
>>> Heh. Marvelous question! For just right now, in version 0.1, its
>>> something I call "aggregation" (its supposed to remind you of DLA
>>> "diffusion-limited aggregation") and its quite "simple": (well not all that
>>> simple under the covers, but easy-to-understand) -- given an existing
>>> collection of unconnected connectors, try attaching one more node. Repeat
>>> until there are no more unconnected connectors.
>>>
>>
>> So, for example, if one of the unconnected connectors is "I'm here on
>> this side of the doorway", and another unconnected connector is "The other
>> wide of the doorway is unoccupied", and one of the nodes is "try opening
>> the door", that node would be attached, thus completing the motion-planning
>> problem.  This may sound vague right now, and that's why an explicit demo
>> is needed. I think it should be possible and not hard.
>>
>>
>>> Aggregation is like generalized A*-search. Now, in A*-search, one only
>>> ever attaches a single edge at a time, and the space is always 2D (or 3D I
>>> guess..) In my case, the space doesn't have a dimension (or rather, doesn't
>>> have to have), and you don't have to add just a single edge at a time - you
>>> can add a three-pointed hyperedge, etc. (I guess that now I need to write a
>>> A*-search demo for this...)
>>>
>>> I say "just right now" because it is clear that other algos are
>>> possible; I'm pondering them now but have not yet created any specific
>>> plans. If you care to propose any, let me know. I'm interested in
>>> alternatives, because its clear that its hard to control the shapes of the
>>> generated network by using aggregation.
>>>
>>
>> The source of the constraints is that the connectors are typed. They can
>> be connected only when the types match.  I think that this is equivalent to
>> the kinds of constraint problems that ASP (answer-set programming) solves
>> but not sure, I might be imagining things. Since all ASP solvers use SAT
>> solvers under the covers, I guess that using SAT should be possible in this
>> case too, but .. well, version 0.1 so far...
>>
>> I have not thought very much about other ways of specifying constraints.
>>
>> Search guiding is done by weighting.  So far, I have only very simple
>> weighting.  I imagine that ECAN can be layered on this, but it would
>> require a ground-up new implementation of ECAN. Other weighting and guiding
>> schemes are possible. Anything that returns a number that says "hey this is
>> not a fruitful direction to search in".
>>
>>>
>>> However, I think that the aggregation algo is plenty good enough for
>>> natural language -- I'm thinking of using this to replace sureal. As
>>> "starting points" you can specify "to eat" and "Ben" and "pizza" and it
>>> should generate all sentences with those words in it (in whatever word
>>> order is correct, for the specified formation rules). So far, only a few
>>> tiny examples of it doing this, with extremely limited vocabulary.  Its
>>> version 0.1...
>>>
>>> --linas
>>>
>>>
>>>
>>>
>>>
>>>
>>>> On Fri, May 1, 2020 at 3:11 AM Linas Vepstas <[email protected]>
>>>> wrote:
>>>> >
>>>> > There is also the brand new version 0.1 generator code. It can be
>>>> thought of as kind-of a planner, in that a set of "start points" can be
>>>> specified, and a set of "end points" as well, and it will generate all
>>>> paths between the two.
>>>> >
>>>> > More precisely, it will generate a network of all possible
>>>> interconnected paths between the endpoints, with the intervening network
>>>> subject to rules of formation. So its not only a path planner, but also a
>>>> constraint solver.
>>>> >
>>>> > I have not yet written any demos showing "classical" planning, such
>>>> as "to get through a doorway, you must first open the door", but this would
>>>> be an excellent example to have. If you're interested, I'd be happy to help
>>>> you write it
>>>> >
>>>> > It currently works for various simple demos, but that's it - its
>>>> version 0.1 - (so I don't even know if the "open the door" example can
>>>> work. I think it will...)  Here.  https://github.com/opencog/generate
>>>> >
>>>> > Ben, since you didn't mention the generator in the list below, I'm
>>>> thinking that you're not really fully aware of it, or of what it can do (or
>>>> rather, the goals of what it can do).  Take a moment of pondering it ...
>>>> >
>>>> > --linas
>>>> >
>>>> > On Fri, May 1, 2020 at 12:54 AM Ben Goertzel <[email protected]>
>>>> wrote:
>>>> >>
>>>> >> OCPlanner is deprecated a while ago and not yet replaced!
>>>> >>
>>>> >> OpenPsi handles basic goal/context/procedure based action selection
>>>> >> but not planning except at the trivial level
>>>> >>
>>>> >> PLN logic works OK now (with scalability issues though) and could be
>>>> >> used as the basis for a temporal logic implementation of planning,
>>>> but
>>>> >> that needs to be done still
>>>> >>
>>>> >> ben
>>>> >>
>>>> >> On Thu, Apr 30, 2020 at 9:48 PM qwerty mnbvc <[email protected]>
>>>> wrote:
>>>> >> >
>>>> >> > Hello,
>>>> >> >
>>>> >> > I'm a student and I would like to learn more about OpenCog. What
>>>> module deals with goal planning in general? Not like motion planning. Is it
>>>> OpenPSI or maybe OCPlanner? I noticed that OCPlanner was implemented by
>>>> Shujing Ke, is this the "expert" I should reach out to for more info? I
>>>> haven't been able to find any papers about OCPlanner (theory or otherwise).
>>>> >> >
>>>> >> > Thanks
>>>> >> > Q
>>>> >> >
>>>> >> > --
>>>> >> > 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/3c5ff62b-be11-46cc-81c9-89b06e14f218%40googlegroups.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 [email protected].
>>>> >> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/opencog/CACYTDBdpfuc8%3DSioiuvA9fqrhcHREtboxSVzBHQnZWWnF35tcA%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 [email protected].
>>>> > To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/opencog/CAHrUA37BESN-yqtOgH_9z663Zy%3Dm47D9ddbpB1OHhLkexxnxiQ%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 [email protected].
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/opencog/CACYTDBdpaZuvWufpczv7E7pGxtQpZwpKrm3ADvNPoU3S%2BoOOLg%40mail.gmail.com
>>>> .
>>>>
>>>
>>>
>>> --
>>> cassette tapes - analog TV - film cameras - you
>>>
>>
>>
>> --
>> 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 [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/opencog/CAHrUA37VST2NsJkTkHTtJ%3D3Qo6vxcFzC-2Lg38b%2B9rUnp5bpfA%40mail.gmail.com
>> <https://groups.google.com/d/msgid/opencog/CAHrUA37VST2NsJkTkHTtJ%3D3Qo6vxcFzC-2Lg38b%2B9rUnp5bpfA%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].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/opencog/CALsVKVKvqwq9Frj7rVuv4K7bXL%2B9mw80AEedSojYDyPLMPdN9Q%40mail.gmail.com
> <https://groups.google.com/d/msgid/opencog/CALsVKVKvqwq9Frj7rVuv4K7bXL%2B9mw80AEedSojYDyPLMPdN9Q%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>


-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/opencog/CAHrUA36YzupO%3Dzs9qvKLPJFybDaFg84L4EKr1fz84pzepfLNWw%40mail.gmail.com.

Reply via email to