***

The other meta-question is "who is managing this process?" -- it feels
like progress is at a dead stand-still; no one is communicating on any
communications channels visible to me.
***

This is because you are not on SingularityNET's internal Slack where a
lot of the current discussion is taking place

If you'd like to join this Slack -- which is private not public at
this point -- let me know and we can re-send you the email for you to
set up your li...@singularitynet.io email address, which you need in
order to access that Slack...

-- Ben

On Sat, May 18, 2019 at 11:35 PM Linas Vepstas <linasveps...@gmail.com> wrote:
>
> Ben,
>
> You really don't need any fancy words for this. The design for this was done 
> last spring, it was done for Alexey's Potapov's team. Its called "Values" and 
> the RandomValue example shows how to use it.  You can do continuations to 
> your hearts-delight under the covers.  There's no technical problems to 
> solve, at this level. The meta-problem is a communication problem -- Alexey's 
> team did not use that design, they invented something brand-new, and 
> presented it as fait-accompli.  I believe that, by now, they've 
> mostly-sort-of-ish returned to something close-ish to the original proposed 
> design (I'm not quite entirely clear on that).
>
> The remaining tasks are as I listed them:
> -- develop a dozen of two predicates that ghost can hook into
> -- Map the Potapov-team code to those predicates
> -- Build "generic" versions of exactly those same predicates, that use 
> OctoMapValue to do their stuff
> -- Pipe the Hanson Robotics ROS pipeline into OctoMap
> -- Write entertaining robot dialog that shows off those predicates
>
> The difficult theoretical meta-issue might be "is the above a good way of 
> hooking sensory input to natural language?" We can debate that for the next 
> 100 years. But in the meanwhile, the first five points above -- I think 
> they're achievable; I think they're straight-forward -- ordinary software 
> developers can do it; there is no theoretical invention required; don't even 
> need to know what a continuation is. It's mostly just wire-it-up and 
> debug-it.  In the traditional scale of Ben-Goertzel-interstingness, the above 
> is "boring", it is "not even AI".  And that is actually a good thing: it 
> allows a basic working demo to be built, and if we build it and don't let it 
> bit-rot, then some/much of the tension with Hanson would evaporate.  It's a 
> practical, doable sensory system, even if it is not any kind of theoretical 
> lightning bolt.  It's a base-line.
>
> The other meta-question is "who is managing this process?" -- it feels like 
> progress is at a dead stand-still; no one is communicating on any 
> communications channels visible to me.
>
> -- Linas
>
>
> On Sat, May 18, 2019 at 3:55 PM Ben Goertzel <b...@goertzel.org> wrote:
>>
>> ***
>> For example if generic predicate uses value to verify whether object
>> is "red", then what it expects from value is pair of doubles (mean,
>> confidence). If our value returns such pair of doubles it forgets all
>> computation graph which led to this result. It means that we are not
>> able to propagate an error back through the calculation graph and
>> improve next result.
>>
>> As far as I see such unification is not possible without changing
>> predicate logic or introducing outer system to calculate predicates
>> and keep computation graph.
>> ***
>>
>> It seems analogous to what is done in Haskell to support backtracking
>> and Prolog-type cut and so forth.  There one does use an "external"
>> system to manage historical records, but this external system is
>> hidden behind the monadic interface,
>>
>> http://okmij.org/ftp/papers/LogicT.pdf
>>
>> http://hackage.haskell.org/package/logict
>>
>> This is all using continuations behind the scenes, and related to some
>> discussions Linas and I had earlier about making Atomspace schema
>> processing support continuations.   If one is manipulating
>> continuations rather than just functions, then maintaining and
>> manipulating the external computation graph is "just" an efficient
>> shorthand for computing what the continuations denote...
>>
>> -- Ben
>>
>>
>> On Sat, May 18, 2019 at 9:00 PM Linas Vepstas <linasveps...@gmail.com> wrote:
>> >
>> >
>> >
>> > On Fri, May 17, 2019 at 10:23 AM Vitaly Bogdanov <vsb...@gmail.com> wrote:
>> >>
>> >> Hi Linas,
>> >>
>> >>> The intended design is that there is a well-known Value that is attached 
>> >>> to red-cube.  That Value is knows how to obtain the correct 3D location 
>> >>> from the SpaceServer (or some other server, e.g. your server). That 
>> >>> Value ONLY fetches the location when it is asked for it, and ONLY THEN.  
>> >>>  This is the code that Misgana wrote. Twice. You should NEVER directly 
>> >>> shove 3D positions into the atomspace!!
>> >>
>> >>
>> >> Am I right that implementation of this design is still not merged?
>> >
>> >
>> > It was merged half-a-year-ago, a year-ago.
>> >
>> >> In current atomspace/opencog code I can find OctoMapValue only which 
>> >> inherits FloatValue (and keeps vector of doubles in it) + has update() 
>> >> method which updates the value using OctoMapNode. So value should be 
>> >> updated before using it.
>> >
>> >
>> > Yes, but I think you misunderstand how it works. It is updated only when 
>> > the value is asked for. If no one asks for the value, it is never updated. 
>> >  This design allows the current value to be managed externally, in some 
>> > other component, and it is then brought into the atomspace "on demand", 
>> > only when some user of the atomspace tries to look at the value.   Think 
>> > of it as a "smart value" -- when the user asks the value "what number are 
>> > you holding?", the value isn't holding anything; instead, it goes to the 
>> > external server, gets the latest, and returns that.
>> >
>> > In this case, OctoMapValue never changes, until you ask for it's current 
>> > value; then it goes to the space-server, gets the current value, and 
>> > returns that.
>> >
>> > The examples directory contains a much simpler example: "RandomValue" -- 
>> > which uses `random()` as the "external system".  You're supposed to 
>> > cut-n-paste that code, replace `random()` by your server, and that's it -- 
>> > done.  That's all that  OctoMapValue is - just a small, simple wrapper.
>> >
>> > Also - right now, OctoMapValue only holds a 3D position, I think. We need 
>> > an API for size, width, height, orientation.  Maybe not all of that, right 
>> > away, but at least a basic-size API.  So that natural language expressions 
>> > like "See that small thing on the table? Point your finger at it" work.
>> >
>> > Having these other attributes does not change the overall design. The 
>> > Values don't update until they are accessed.
>> >
>> >>
>> >>>
>> >>> That way, we can have a common, uniform API for all visual-processing 
>> >>> and 3D spatial reasoning systems.  (for example, some 3D spatial 
>> >>> reasoning might be done on imaginary, pretend objects. The sizes, 
>> >>> colors, locations of those objects will not come from your vision 
>> >>> server; they will come in through some other subsystem.  However, the 
>> >>> API will be the same.
>> >>>
>> >>> I should be able to tell the robot "Imagine that there is a six-foot red 
>> >>> cube directly in front of Joel.  Would Joel still be visible?" and get 
>> >>> the right answer to that. When the robot imagines this, it would not use 
>> >>> the space-server, or your server, or the ROS-SLAM code for that 
>> >>> imagination. However, since the access style/access API is effectively 
>> >>> the same, it can still perform that spatial reasoning and get correct 
>> >>> answers.
>> >>
>> >>
>> >> Yes, I think I see your point. We could wrap NN by value and return its 
>> >> results on demand to be analyzed by generic predicates. Such approach 
>> >> allows getting results from visual features on demand. But back 
>> >> propagation seems to not work with this approach.
>> >
>> >
>> > Yes, not everything can work with generic predicates. But it will work 
>> > with two important cases: traditional robotics sensory subsystems, and 
>> > with imagined (virtual?) worlds e.g. from a blue-print, engineering 
>> > drawing, math-textbook figure or similar abstract system that provides 
>> > spatial info, without being "visual" in the usual sense.
>> >>
>> >>
>> >> For example if generic predicate uses value to verify whether object is 
>> >> "red", then what it expects from value is pair of doubles (mean, 
>> >> confidence). If our value returns such pair of doubles it forgets all 
>> >> computation graph which led to this result. It means that we are not able 
>> >> to propagate an error back through the calculation graph and improve next 
>> >> result.
>> >
>> >
>> > ? I don't understand. What do you need to propagate back?
>> >
>> >>
>> >> As far as I see such unification is not possible without changing 
>> >> predicate logic or introducing outer system to calculate predicates and 
>> >> keep computation graph.
>> >
>> >
>> > Yes, it's fine to *also* have externally-calculated predicates, and that 
>> > is what you have, more-or-less.  Having generic predicates that work with 
>> > the space server would also be nice to have (and then, to have the space 
>> > server hooked up to ROS, which it isn't, right now)
>> >
>> > Oh, and finally, of course, to hook up the predicates (generic, or 
>> > external) to language (ghost). For this last step, we need the ghost 
>> > maintainers -- Amen, Man Hin, others, to look at think about and comment 
>> > about what predicates they could actually use and support easily and 
>> > quickly.   It's easy to make a list of prepositional and comparative 
>> > phrases -- there are about 100 of them (above, below, behind, next-to, 
>> > bigger-then, taller, .. etc) and we should start with some reasonable 
>> > subset of these, hook them into the chatbot, and get things like 
>> > question-answering going.  As far as I know, no one has begun any of this 
>> > work yet, right?
>> >
>> > -- Linas
>> >
>> >
>> > --
>> > 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 opencog+unsubscr...@googlegroups.com.
>> > To post to this group, send email to opencog@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/CAHrUA34Jt4H16rGeqyfdwF2kHRX8nSme0zk7im8tuR%2BBpbMnsQ%40mail.gmail.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
>>
>> --
>> 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+unsubscr...@googlegroups.com.
>> To post to this group, send email to opencog@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/CACYTDBf5by0X3rpiPu1zy0O-GOhm07uLOOH07Lnp6F%3DXw31t%3DQ%40mail.gmail.com.
>> For more options, visit https://groups.google.com/d/optout.
>
>
>
> --
> 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 opencog+unsubscr...@googlegroups.com.
> To post to this group, send email to opencog@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/CAHrUA35Z3bZgf619uXxTn52%2B7SvqA2e8Xpp9CRrNyfzG6VuFZQ%40mail.gmail.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

-- 
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+unsubscr...@googlegroups.com.
To post to this group, send email to opencog@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/CACYTDBcGjhmRp2mLZMJhRUfXAg%3DSan9k4xB8aysL2%3DZGqnDK%3Dw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to