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.
