Hi Linas,

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.
>

Ok, this way it should work. But things which confuses me is that only 
place where update() is called is withing OctoMapValue.to_string() function.
 

> 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.
>

Yes, it is clear.

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?
>

Our goal is to make system which consist of neural networks and atomspace 
links which could be trained by error backpropagation. When system answers 
the question and answer is not correct the error is backpropagated through 
the computation graph and updates truth values of the atomspace links and 
neural network weights.
 

> 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)  
>

Agree, as I wrote before that these approaches do not exclude each other 
and could be combined.
 

> 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?
>

 Not sure it is a question to me, but in our work we didn't modify ghost. 
We used external "language to atomspace query" conversion logic based on 
relex output to demonstrate the approach.

-- 
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/7e7fe6ed-cd83-4052-aff3-5dfeeb921978%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to