[opencog-dev] Re: Outline for OpenCog tutorial

2016-06-22 Thread Linas Vepstas
There's an assortment of demos and examples to go through, and the need to
revise the newbie/demo/example wiki pages so that they're not so horribly
out of date.  --linas

On Tue, Jun 21, 2016 at 11:07 PM, Gaurav Gautam 
wrote:

> Hi,
>
> I already did the building part. But I didn't use the octool. I just
> followed the readme and installed everything using cmake.
> I did get some weird errors when I tried to compile moses on 2 processors
> that went away when I compiled on a single
> processor. So I am assuming everything is fine for now.
>
> Thanks for responding though. Any advise on what I should do next?
>
> Gaurav
>
>
> On Wednesday, June 22, 2016 at 9:19:34 AM UTC+5:30, AmeBel wrote:
>>
>> Hi Gaurav,
>>
>> For building see
>> http://wiki.opencog.org/wikihome/index.php/Building_OpenCog
>>
>> Have fun :-)
>>
>> On Wednesday, June 22, 2016 at 11:40:16 AM UTC+8, Ben Goertzel wrote:
>>>
>>> Gaurav -- That would be great!
>>>
>>> Amen Belayneh (cc'd) can point you to the best page to start from,
>>> regarding building and installing the system...
>>>
>>> On Wed, Jun 22, 2016 at 2:24 AM, Gaurav Gautam 
>>> wrote:
>>> > Hello,
>>> >
>>> > I just found out about opencog today and I am downloading everything
>>> to
>>> > build it. I see that the page link provided here is still blank in the
>>> > building OpenCog section. I was wondering if I could fill it out for
>>> you?
>>> >
>>> > Yours sincerely
>>> > Gaurav Gautam
>>> >
>>> >
>>> > On Saturday, August 29, 2015 at 12:36:34 PM UTC+5:30, Ben Goertzel
>>> wrote:
>>> >>
>>> >> I spent a couple hours thinking about what an OpenCog tutorial would
>>> >> look like, and made an initial outline here
>>> >>
>>> >> http://wiki.opencog.org/wikihome/index.php/Hands_On_With_OpenCog
>>> >>
>>> >> linking to existing materials where relevant...
>>> >>
>>> >> My hope is to have this tutorial actually fully exist by early next
>>> >> year, say by Feb 15 as a concrete goal (and Jan 1 as an aspirational,
>>> >> hopeful goal)
>>> >>
>>> >> This takes lower priority than ridding the wiki site of obsolete
>>> >> information (except on pages in the Obsolete and Deprecated)
>>> >> categories; but in some cases I think tutorial material could be made
>>> >> by people who don't have the knowledge yet to clean the wiki pages of
>>> >> obsolete information...
>>> >>
>>> >> At some point in the next months I will recruit/assign specific
>>> people
>>> >> to make specific tutorial pages.   For now, if anyone has time and
>>> >> will to fill in some of the pages in the outline that would be
>>> >> awesome.
>>> >>
>>> >> Having a decent, clear and comprehensive tutorial will be important
>>> >> for recruiting newbies to contribute.
>>> >>
>>> >> Of course, having a stable release of OpenCog will also be important
>>> >> --- this will help guarantee that the examples in the tutorial will
>>> >> always work, if the tutorial user has installed the last stable
>>> >> release
>>> >>
>>> >> -- Ben
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Ben Goertzel, PhD
>>> >> http://goertzel.org
>>> >>
>>> >> "The reasonable man adapts himself to the world: the unreasonable one
>>> >> persists in trying to adapt the world to himself. Therefore all
>>> >> progress depends on the unreasonable man." -- George Bernard Shaw
>>>
>>>
>>>
>>> --
>>> Ben Goertzel, PhD
>>> http://goertzel.org
>>>
>>> Super-benevolent super-intelligence is the thought the Global Brain is
>>> currently struggling to form...
>>>
>>

-- 
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/CAHrUA34didG306FT4SvW50SWMAriU4Wp9f-LQLhyK3OoKfX%3Dcg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Outline for OpenCog tutorial

2016-06-23 Thread Linas Vepstas
Try using a different keyserver. all keyservers out there usually sync with
each other, and so they should all hold the same data.

On Thu, Jun 23, 2016 at 1:02 PM, Gaurav Gautam  wrote:

> So I changed my internet connection. And now I am getting a different
> error:
>
> gpg: requesting key B01FA116 from hkp server ha.pool.sks-keyservers.net
> gpgkeys: key B01FA116 can't be retrieved
> gpg: no valid OpenPGP data found.
> gpg: Total number processed: 0
>
>
> On Thursday, June 23, 2016 at 10:17:31 PM UTC+5:30, AmeBel wrote:
>
>> Hi,
>> the error might be because of some network interuption. I am saying that
>> b/c octool is more or less tested atleast once a month and I also just
>> tried adding the key locally and it works. So, try running './octool -r '
>> and then './octool -sdpcalv'
>>
>>
>> On Friday, June 24, 2016 at 12:26:08 AM UTC+8, Gaurav Gautam wrote:
>>>
>>> Hi Amen,
>>>
>>> I thought I will build everything again using the octool before I
>>> started updating the wiki. But the script failed while adding
>>> repositories as the keyserver timed out. Here is the error I get:
>>>
>>> ---
>>> $ ./octool -rsdpcalv
>>> [octool] Adding software repositories...
>>> Executing: gpg --ignore-time-conflict --no-options --no-default-keyring
>>> --homedir /tmp/tmp.1shYqj1VLk --no-auto-check-trustdb --trust-model always
>>> --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg
>>> --keyring /etc/apt/trusted.gpg.d/inkscape_dev-stable.gpg --keyring
>>> /etc/apt/trusted.gpg.d/mc3man-trusty-media.gpg --keyserver hkp://
>>> ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116
>>> gpg: requesting key B01FA116 from hkp server ha.pool.sks-keyservers.net
>>> gpg: keyserver timed out
>>> gpg: keyserver receive failed: keyserver error
>>> ---
>>>
>>> After this I read a bunch of stuff about GPG keys and encryptions and I
>>> found that this command is basically trying to
>>> get something from the server. So I tried to ping the keyserver and that
>>> did not work:
>>>
>>> ---
>>> ping: unknown host hkp://ha.pool.sks-keyservers.net:80
>>> ---
>>>
>>> So then I tried to ping google to see if my internet was working. And
>>> that worked. So then just to be sure, I ran an
>>> apt-get update. And that started getting the headers from your repo:
>>>
>>> ---
>>> Get:1 http://packages.ros.org trusty InRelease [4,031
>>> B]
>>> Ign http://packages.ros.org trusty
>>> InRelease
>>> Get:2 http://packages.ros.org trusty/main amd64 Packages [690
>>> kB]
>>> Get:3 http://packages.ros.org trusty/main i386 Packages [689
>>> kB]
>>> Ign http://packages.ros.org trusty/main
>>> Translation-en_IN
>>> Ign http://packages.ros.org trusty/main Translation-en
>>> ---
>>>
>>> So now I am wondering if I should just comment out that line in the
>>> octool script or does it absolutely need the key. I
>>> am woefully ignorant about encryption and I could read up if this is
>>> something I should understand before I
>>> proceed. So should I comment out that line that is getting the key or do
>>> something else?
>>>
>>> Yours sincerely
>>> Gaurav Gautam
>>>
>>> On Wednesday, June 22, 2016 at 9:19:34 AM UTC+5:30, AmeBel wrote:

 Hi Gaurav,

 For building see
 http://wiki.opencog.org/wikihome/index.php/Building_OpenCog

 Have fun :-)

 On Wednesday, June 22, 2016 at 11:40:16 AM UTC+8, Ben Goertzel wrote:
>
> Gaurav -- That would be great!
>
> Amen Belayneh (cc'd) can point you to the best page to start from,
> regarding building and installing the system...
>
> On Wed, Jun 22, 2016 at 2:24 AM, Gaurav Gautam 
> wrote:
> > Hello,
> >
> > I just found out about opencog today and I am downloading everything
> to
> > build it. I see that the page link provided here is still blank in
> the
> > building OpenCog section. I was wondering if I could fill it out for
> you?
> >
> > Yours sincerely
> > Gaurav Gautam
> >
> >
> > On Saturday, August 29, 2015 at 12:36:34 PM UTC+5:30, Ben Goertzel
> wrote:
> >>
> >> I spent a couple hours thinking about what an OpenCog tutorial
> would
> >> look like, and made an initial outline here
> >>
> >> http://wiki.opencog.org/wikihome/index.php/Hands_On_With_OpenCog
> >>
> >> linking to existing materials where relevant...
> >>
> >> My hope is to have this tutorial actually fully exist by early next
> >> year, say by Feb 15 as a concrete goal (and Jan 1 as an
> aspirational,
> >> hopeful goal)
> >>
> >> This takes lower priority than ridding the wiki site of obsolete
> >> information (except on pages in the Obsolete and Deprecated)
> >> categories; but in some cases I think tutorial material could be
> made
> >> by people who don't have the knowledge yet to clean the wiki pages
> of
> >> obsolete information...
> >>
> >> At some point in the next months I will recruit/assign specific
> people
>>>

Re: [opencog-dev] Re: Outline for OpenCog tutorial

2016-06-23 Thread Linas Vepstas
On Thu, Jun 23, 2016 at 1:50 PM, Gaurav Gautam  wrote:

> B01FA116


http://answers.ros.org/question/174166/verify-repositorys-key/
http://answers.ros.org/question/212254/ros-indigo-key-server-down/

The first ne seems the best -- just don't use the keyserver, and get the
package instead.

--linas

-- 
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/CAHrUA34aL4aTvvX%3D0g%3D3nX8XL-sAGhQC7XJf13xkd_KWfB2%3Dbg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Linas' to-do list

2016-06-23 Thread Linas Vepstas
Ben,

I am trying to figure out what my TODO list is, and what are the most
important things that need attention.  My list is short but complex:

-- Take a deep dive into sureal, and see if performance can be improved. I
know Andre Senna is nominally working on this, but perhaps I know the
pattern matcher side better, and could review that block of code for sanity.

-- Finish creating a generic rule-finder for OpenPsi.  This is an outgrowth
of the AIML work, where a large number of rules needed to be quickly
localized to a much smaller number that can apply to the current frame
(frame problem).  Nothing right now really needs this (except AIML) but
fixing this up and making it quasi-generic seems like not a bad idea, esp
while its still fresh in my mind what the problem is and how to fix it.

-- Integrate the self-awareness code into the the new, revised chatbot.
This is an open-ended project, much larger than the two above, as things
are currently in a rather poor state. However, it also seems to be much
more important in the medium/long run.  Rworking the
rule-selection-narrowing (frame) problem for openpsi would be a subtask of
this task -- I already knew I needed to do this, before arriving in HK.

-- Resume the stalled language learning work. This seems important
long-run, but does not have any obvious short-term pay-off.

-- Something else? Something I'm forgetting?

Linas

-- 
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/CAHrUA352tvao8So4n_Qxuk0FhmKhTRb7Ah9hfREg5nNjU1-1gQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: embedded knowledge

2016-06-23 Thread Linas Vepstas
Gahh, Did any of you read anything that is written on the rest of that wiki
page?

Amen's suggestion seems to have nothing at all to do with the general
problem of representing claims and context, it rather had to do with how to
represent time, and as such, we need a seprate wikipage for "how to
represent time in opencog".

The claims-and-context page already outlines all of the major approaches,
and from what I can tell with this email, nothing new is being proposed
tthat is not already written down there.  Right?  Or is something actually
new being proposed? (other than how to represent time?)

--linas

On Sat, Jun 18, 2016 at 1:15 AM, Ben Goertzel  wrote:

> Nil,
>
> The main point here is to be able to refer to the truth values that an
> Atom A may hold in various possible worlds, without (as a side effect
> of doing this reference) modifying the truth value that A holds in the
> Atomspace
>
> So for instance if we have
>
> Inheritance Ben sane <.8>
>
> we still want to be able to say
>
> "Bob thinks Ben is totally insane"
>
> but we can't just say
>
> Evaluation
>  PredicateNode "thinks"
> ConceptNode "Bob"
> Inheritance Ben sane <0>
>
> because the <0> then ends up on the link (Inheritance Ben sane)
>
> We used to deal with this by having truth value versions in Composite
> TruthValue, but Linas got rid of CompositeTV some time ago... so we
> need another way...
>
> One way is to say
>
> Evaluation
>  PredicateNode "thinks"
>  ConceptNode "Bob"
>  EvaluationLink
>PredicateNode "hasTruthValue"
>Inheritance Ben sane
>TruthValueNode "0"
>
>
> but that seems clunky.  Saying
>
> Evaluation
>  PredicateNode "thinks"
>  ConceptNode "Bob"
>  ContextAnchorNode "123"
>
> EmbeddedTruthValueLink <0>
>  ContextAnchorNode "123"
>  Inheritance Ben sane
>
>
> is another way...  We could also do
>
> Evaluation
>  PredicateNode "thinks"
>  ConceptNode "Bob"
>  EmbeddedTruthValueLink <0>
>Inheritance Ben sane
>
> I suppose...
>
> What Amen suggested yesterday is that
>
> ContextLink <0>
> SatisfyingSet
>  EvaluationLink
>   PredicateNode "thinks"
>   ConceptNode "Bob"
>   $X
> Inheritance Ben sane
>
> would have the same meaning.   The idea, informally put, is that
>
> "Bob thinks Ben is insane"
>
> means
>
> " (The Ben in Bob's thoughts) has the property of (insanity as
> understood in Bob's thoughts)"
>
>
> So getting back to the other example...
>
> These 2 representations are equivalent indeed, but they certainly are
> not equivalent to
>
> ContextLink
>SatisfyingSet
>   Evaluation
>  hope
>  Aaron
>  $X
>Evaluation eat@456 Ben lunch
>
> As this would supposedly (which I'm not even sure) be equivalent to
> (according to
> http://wiki.opencog.org/wikihome/index.php/ContextLink#Definition)
>
> Evaluation
>eat@456
>List
>   And Ben 
>   And lunch 
>
>
> Wouldn't it be
>
> Evaluation
>And eat@456 
>List
>   And Ben 
>   And lunch 
>
>
> meaning that if we restrict attention to things as they exist in the
> alternate universe consisting of what Aaron hopes for, then we are
> looking at "Ben eats lunch" in its restricted existence within this
> alternate universe...
>
> In general, if one has
>
>
> R( (ContextAnchorNode [1]) )
>
> EmbeddedTruthValueLink 
>   ContextAnchorNode [1]
>   L
>
> where R is any logical relationship and L is any Atom
>
> then the  meaning is that, within the (fuzzy) scope of things that satisfy
>
> R($x)
>
> the truth value of L is 
>
> So then, this seems equivalent to
>
> ContextLink 
>  SatisfyingSet
>   R
>  L
>
>
> -- at least this was Amen's idea, which makes sense to me at the moment...
>
> -- Ben
>
>
>
>
> On Fri, Jun 17, 2016 at 9:44 PM, Nil Geisweiller
>  wrote:
> >
> >
> > On 06/17/2016 03:24 PM, Ben Goertzel wrote:
> >>>
> >>> I read a whole page. But I don't understand, what is the domain of
> >>>
> >>>  SatisfyingSet
> >>>  $X
> >>>  Evaluation
> >>> hope
> >>> Aaron
> >>> $X
> >>>
> >>> ?
> >>>
> >>> I mean what are the $Xs?
> >>
> >>
> >> They are relationship
> >
> >
> > But relationship of what exactly? Representing what Aaron hopes?
> >
> >>
> >>> But then why do you use a ContextLink? Wouldn't that be instead
> >>>
> >>> MemberLink
> >>> SatisfyingSet
> >>>$X
> >>>Evaluation
> >>>   hope
> >>>   Aaron
> >>>   $X
> >>> Evaluation eat@456 Ben lunch
> >>>
> >>> Or
> >>>
> >>> Inheritance
> >>> SetLink
> >>>Evaluation eat@456 Ben lunch
> >>> SatisfyingSet
> >>>$X
> >>>Evaluation
> >>>   hope
> >>>   Aaron
> >>>   $X
> >>
> >>
> >> Aren't these forms equivalent?
> >
> >
> > These 2 representations are equivalent indeed, but they certainly are not
> > equivalent to
> >
> > 

Re: [opencog-dev] Re: embedded knowledge

2016-06-23 Thread Linas Vepstas
OK, so ...

On Fri, Jun 17, 2016 at 6:35 AM, 'Nil Geisweiller' via opencog <
opencog@googlegroups.com> wrote:

> Ben, Amen,
>
> On 06/17/2016 08:22 AM, Ben Goertzel wrote:
>
>> Nil, Linas, etc.,
>>
>> Amen suggested an alternate approach to representing embedded truth
>> values, which may be better than our previous suggestions, due to
>> reusing ContextLink rather than introducing additional mechanisms...
>> see
>>
>>
>> http://wiki.opencog.org/wikihome/index.php/Claims_and_contexts#An_Alternate_Approach
>>
>
> I read a whole page. But I don't understand, what is the domain of
>
> SatisfyingSet
> $X
> Evaluation
>hope
>Aaron
>$X
>
> ?
>
> I mean what are the $Xs?
>

The $Xis can be anything at all, the entire universe of all things.  More
narrowly, the satisfying set is true only if $X is a thing that Aaron
hopes.  Of course, we don't know what those things might be, at least, not
yet.


> I would assume that they are
>
> Evaluation eat@456 Ben lunch
>

That would indeed be one thing that Aaron hopes.

>
> etc.
>
> But then why do you use a ContextLink? Wouldn't that be instead
>
> MemberLink
>SatisfyingSet
>   $X
>   Evaluation
>  hope
>  Aaron
>  $X
>Evaluation eat@456 Ben lunch
>

I guess that could work.  At the time that the wiki page was created,
MemberLink was not fashionable. Now its fashionable again, so I guess
that's OK.


> Or
>
> Inheritance
>SetLink
>   Evaluation eat@456 Ben lunch
>SatisfyingSet
>   $X
>   Evaluation
>  hope
>  Aaron
>  $X
> ?
>

That seems reasonable too.

>
> Also I would think that since eat@456 is a particular instance, then it
> suffices to restrict the knowledge around it, so again why a context link?
>

I'm not sure that there is any strong reason, but let me try to sketch some
of the original reasoning:

MemberLinks and InheritanceLinks assert facts, relationships that are true
"globally", in the universe as a whole.

ContextLinks assert facts, relationships that are true only in Aaron's
mind.

This goes back to the old question of how to map Kripkle frames into the
atomspace.  There are many different confusing things written about Kripke
frames; the particular variant that I like to think about is that which is
called a "microtheory" in CYC -- a set of self-consistent statements that
are true at a particular location during chaining.

So, during forward chaining, you start with one single "context" or "set of
facts". At each step of chaining, you get a new, slightly larger set of
facts: the original ones, plus whatever you have deduced. This is a "Kripke
frame".   Note that two instances of the same chainer, if they start with
the same initial context, but select something else to "think about", will
deduce a different set of facts, and start on a path down a different set
of frames or "mini-universes".  Some of these different deduction paths may
contradict one-another (for example, consider evidence in a legal case),
and some of these paths converge to the same total set of conclusions.

The idea here is that a kripke frame or a context or a min-universe holds
things that are known to be true at a certain point of of a history-path of
deduction.  The mini-universe of things that Aaron thinks is just another
context.

That's how it got to be Context, and not something else.

I hope you see how MemberLinks are inappropriate for the kripke frames (I
think !?), but they might be fine for what Aaron thinks.   If not, then I'm
not sure what the point of Context links really is.

--linas


> Thanks,
> Nil
>
>
>> -- Ben
>>
>>
> --
> 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/5763E071.80606%40gmail.com.
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA37y763hnv7sYuk4RfjaEdwJMEcV8wxqcb5-F_nSJiHtAQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: embedded knowledge

2016-06-23 Thread Linas Vepstas
Continuing.

On Fri, Jun 17, 2016 at 8:44 AM, 'Nil Geisweiller' via opencog <
opencog@googlegroups.com> wrote:

>
>
> On 06/17/2016 03:24 PM, Ben Goertzel wrote:
>
>> I read a whole page. But I don't understand, what is the domain of
>>>
>>>  SatisfyingSet
>>>  $X
>>>  Evaluation
>>> hope
>>> Aaron
>>> $X
>>>
>>> ?
>>>
>>> I mean what are the $Xs?
>>>
>>
>> They are relationship
>>
>
> But relationship of what exactly? Representing what Aaron hopes?
>
>
>> But then why do you use a ContextLink? Wouldn't that be instead
>>>
>>> MemberLink
>>> SatisfyingSet
>>>$X
>>>Evaluation
>>>   hope
>>>   Aaron
>>>   $X
>>> Evaluation eat@456 Ben lunch
>>>
>>> Or
>>>
>>> Inheritance
>>> SetLink
>>>Evaluation eat@456 Ben lunch
>>> SatisfyingSet
>>>$X
>>>Evaluation
>>>   hope
>>>   Aaron
>>>   $X
>>>
>>
>> Aren't these forms equivalent?
>>
>
> These 2 representations are equivalent indeed, but they certainly are not
> equivalent to
>
> ContextLink
>SatisfyingSet
>   Evaluation
>  hope
>  Aaron
>  $X
>Evaluation eat@456 Ben lunch
>
> As this would supposedly (which I'm not even sure) be equivalent to
> (according to
> http://wiki.opencog.org/wikihome/index.php/ContextLink#Definition)
>
> Evaluation
>eat@456
>List
>   And Ben 
>   And lunch 
>
> where  is SatisfyingSet Evaluation hope ...
>
> But then I'm failing to see what would be the intersection of Ben and
>  (as well as lunch and ) if the  are
> things like
>
> Evaluation eat@456 Ben lunch
>
> it really makes no sense.
>

Yep. It makes no sense.  There seem to be two ways out:
1) don't use context link for this case.
2) don't define context link the way that its defined on that wiki page.


>
> What would make sense would be to consider as domain something like all
> possible traces of the universe (maybe traces of atomspaces or something
> like that) and consider that Ben at a certain time T is a certain subset of
> these traces (where the pattern corresponding to Ben is present at Time T
> in these traces, so (AtTime T Ben) is a random variable with is true only
> if a certain trace happens to contain Ben's pattern at time T). And
>  is another subset of traces corresponding to everything that
> Aaron hopes will happen at time T. Then we can intersect them.
>

well the reason i keep saying "kripke frame" and "mini universe" is that,
what matters is not the time-T, but rather a more abstract concept of time:
the number of steps taken in some forward-chaining inference.

So, Aaron is thinking this, and then that, and then something else, and
then he thinks about Ben eating lunch.  What matters here is the chain of
thoughts that got to Aaron's current mental state, and not the physical
time in the universe.

Another point is that the chain of thoughts that Aaron is having is
different from the chain of thoughts that Nil is having.

I was hoping that these mini-universes that exist on our heads were
"contexts" but you seem to have demonstrated that the current definition of
contexts is not right for this situation.

>
> That is why I'm asking what is $X is .
>
> Of course in this way of doing things we would rarely use EvaluationLink
> at all, instead we would mostly use Inheritance or Implication, because you
> cannot possibly enumerate potentially infinitely long traces.
>
> However EvaluationLink would still be useful when the system is operating
> at a higher level of thought, somewhat possibly disconnected from the
> sensors, but that could be reconnected via bridge knowledge.
>
> So I suppose what we want is to connect linguistic semantics (where the
> domain is ???) with experiential semantics (where the domain is traces of
> the universe).


Well, even for sensors, one has different kripke frames. for example "I
heard something go boom, but did not see anything happen" -- in the sensory
frame of hearing, there's a certain truth, but in the sensory frame of
sight, there is not.

Lets try that, using MemberLink

MemberLink
SatisfyingSet
   $X
   Evaluation
  hearing-sensor-left-side
  Me-myself-I
  $X
Evaluation sound@456 loud

Is that OK? Something like that?

I don't know what you mean by "traces of the universe"



> Or perhaps we want to bypass this experiential semantics (though when
> OpenPsi need to take a decision, it really needs a way or another to get
> back to this experimential semantics). So I'm really confused.


Not sure what you mean here. What does "get back to experiential semantics"
mean?


> Do we want relex2logic to be the linguistic->experiential bridge?


Not quite sure what you mean, here, but after using R2L to parse voice
commands that tell the robot to do something, it didn't work very well.  I
had to fall back to pre-R2L raw data to get things to work reliably.

I also struggled to deal w

Re: [opencog-dev] Re: embedded knowledge

2016-06-23 Thread Linas Vepstas
Hi Ben,

On Sat, Jun 18, 2016 at 1:15 AM, Ben Goertzel  wrote:

> Nil,
>
> The main point here is to be able to refer to the truth values that an
> Atom A may hold in various possible worlds, without (as a side effect
> of doing this reference) modifying the truth value that A holds in the
> Atomspace
>
> So for instance if we have
>
> Inheritance Ben sane <.8>
>
> we still want to be able to say
>
> "Bob thinks Ben is totally insane"
>

[...]

>
> We used to deal with this by having truth value versions in Composite
> TruthValue, but Linas got rid of CompositeTV some time ago...


Well, but only under the understanding that it is completely identical
using the ContextLinks.  CompositeTruthValue was a premature
optimization  that caused techical problems; however, it does not affect
the semantics of the atoms, because it was supposed to be *identical*
to using the ContextLinks


>
>
> What Amen suggested yesterday is that


> ContextLink <0>
> SatisfyingSet
>  EvaluationLink
>   PredicateNode "thinks"
>   ConceptNode "Bob"
>   $X
> Inheritance Ben sane
>

What Amen suggested yesterday appears to be identical to what
has been on that wiki page for almost 2 years.  This is not new.


>
> would have the same meaning.   The idea, informally put, is that
>
> "Bob thinks Ben is insane"
>
> means
>
> " (The Ben in Bob's thoughts) has the property of (insanity as
> understood in Bob's thoughts)"
>

Yes, that's the goal of what was written on that wiki page.
"Linas hoped that the wiki page correctly described such relationships"

>
>
> So getting back to the other example...
>
> These 2 representations are equivalent indeed, but they certainly are
> not equivalent to
>
> ContextLink
>SatisfyingSet
>   Evaluation
>  hope
>  Aaron
>  $X
>Evaluation eat@456 Ben lunch
>
> As this would supposedly (which I'm not even sure) be equivalent to
> (according to
> http://wiki.opencog.org/wikihome/index.php/ContextLink#Definition)
>
> Evaluation
>eat@456
>List
>   And Ben 
>   And lunch 
>
>
> Wouldn't it be
>
> Evaluation
>And eat@456 
>List
>   And Ben 
>   And lunch 
>
>
> meaning that if we restrict attention to things as they exist in the
> alternate universe consisting of what Aaron hopes for, then we are
> looking at "Ben eats lunch" in its restricted existence within this
> alternate universe...
>

Yes, but I think Nil's point was that the AndLinks there are quite
awkward.  In order for the And Ben  to make sense, we have to
think of Concept Ben as being not just the Ben of the physical universe,
but also the Ben in everyone's hopes and dreams which makes Concept Ben
unweildy and large somehow.

Funny thing is, when Nil said "it doesn't make sense", I agreed with him,
at that time.  But now that I read the above, it doesn't seem so bad. At
least for the two nouns.   The verb of Aaron's hopes still seems awkward,
because verbs don't exists as things (by definition - if its a thing, its a
noun).




>
> In general, if one has
>
>
> R( (ContextAnchorNode [1]) )
>
> EmbeddedTruthValueLink 
>   ContextAnchorNode [1]
>   L
>
> where R is any logical relationship and L is any Atom
>

The notation above is a bit queer, given previous notation, but I think I
get what you're trying to say.

>
> then the  meaning is that, within the (fuzzy) scope of things that satisfy
>
> R($x)
>
> the truth value of L is 
>

right.


>
> So then, this seems equivalent to
>
> ContextLink 
>  SatisfyingSet
>   R
>  L
>

right.

>
>
> -- at least this was Amen's idea, which makes sense to me at the moment...
>

well, its not just Amen's idea -- its what the wiki page said since Sept
2014, when you and Aaron and I and Amen and others hammered it out in a
long set of emails.

--linas



> -- Ben
>
>
> > So I suppose what we want is to connect linguistic semantics (where the
> > domain is ???) with experiential semantics (where the domain is traces of
> > the universe). Or perhaps we want to bypass this experiential semantics
> > (though when OpenPsi need to take a decision, it really needs a way or
> > another to get back to this experimential semantics). So I'm really
> > confused. Do we want relex2logic to be the linguistic->experiential
> bridge?
> > Or does relex2logic is supposed to do something else?
> >
>
>

-- 
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/CAHrUA34%3DXwsQwbOYSDjQhAJkscJbYwmJ3_T8jiPOwJprsz63zQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Outline for OpenCog tutorial

2016-06-23 Thread Linas Vepstas
On Thu, Jun 23, 2016 at 4:33 PM, Gaurav Gautam  wrote:

> Hello,
>
> So I hit another wall. I can't get stack for haskell installed. I am
> listing everything I
> did just in case I 'fixed' something wrong:
>
> 1. The wget command in line 616 got me a file named
> stack-1.1.2-linux-i386.tar.gz
> which is different from what the next command tried to extract which is
> stack*i386-linux.tar.gz. The order of linux and i386 is wrong.
>

OK, but by the time you get to the bottom, its clear that you need the i686
package, not the i386 package.


>
> 2. After modifying the filename I was unable to run the stack command. So
> I modified
> the command to use the full path /usr/bin/stack/stack
>

Yuck. That's just plain wrong.  It got installed at the wrong location.


>
> 3. After this a library named libgmp.so.10 was not found. So I setup the
> LD_LIBRARY_PATH
> to point to /usr/lib/x86_64-linux-gnu which is the only place I found this
> library.
>

Don't do this, ldconfig does this automatically for you.

>
> 4. Then the executable `stack` complained that:
> /usr/bin/stack/stack: error while loading shared libraries: libgmp.so.10:
> wrong ELF class: ELFCLASS64
>

Yep. no surprise, given step 3.


>
> 5. I searched around a bit and found that this happens when a 64bit
> library is called where a 32bit one
> is required.
>

Yep.

>
> 6. This is where I am stuck. I can't find the 32 bit version anywhere. I
> tried installing ia32-libs, lib32z1,
> lib32ncurses5 and lib32bz2-1.0 as I read somewhere that these have 32
> libararies for linux. But that
> didn't work.
>

get a 64-bit stack. Its stupid to fiddle with 32-bit anything this day and
age.  There are serious technical issues with trying to support 32-bit
anythng, any more, its best left to those people who work on embedded
systems.

--linas

>
> Yours sincerely
> Gaurav Gautam
>
> On Friday, June 24, 2016 at 12:28:38 AM UTC+5:30, linas wrote:
>>
>>
>> On Thu, Jun 23, 2016 at 1:50 PM, Gaurav Gautam 
>> wrote:
>>
>>> B01FA116
>>
>>
>> http://answers.ros.org/question/174166/verify-repositorys-key/
>> http://answers.ros.org/question/212254/ros-indigo-key-server-down/
>>
>> The first ne seems the best -- just don't use the keyserver, and get the
>> package instead.
>>
>> --linas
>>
>

-- 
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/CAHrUA34ewBKXb40dCqrPr8n6-1UE0Kd0K48xSQfyGsTS-g-8_A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] wiki site is off?

2016-06-28 Thread Linas Vepstas
seems to be working now ... "server resource overage" -- was it DOS'ed?
Something else? --linas

On Sun, Jun 26, 2016 at 9:27 PM, Ruiting Lian 
wrote:

> http://wiki.opencog.org/  seems not usable now. Can anyone who has the
> account fix it soon? Thanks.
>
> "
> The web service to this account has been limited temporarily!There is a
> server resource overage report open for this account in the User area. To
> remove the limits, please log into your User area and consider the options
> available to resolve the case.
>
> --
> 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/b26db46a-39fc-4a65-98fd-f186a6bc2f30%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA37D6XhgWbkviu_KM4efp4AP1eMtaZ5yXpxaOqB4%2BPK%3D8A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Parsey McParseface and Google SyntaxNet

2016-06-28 Thread Linas Vepstas
I like it .. it seems to be done well.

There are issues, though:  -- its English language only -- its unclear how
it handles questions -- its unclear how it handles speech acts that aren't
grammatical -- its not clear how it handles pauses, fumblings, hemming and
hawing, shouting, whispering  -- It assumes that everything is a dependency
tree -- it does not include any way to provide feedback from the reasoning
and logic layers back to the parsing layer.

Well .. the same is true for link-grammar, also, at this time, but LG has a
clear path on how to handle much or most of the above.  It took me a while
to understand that there is a lot more to parsing than simply creating
dependency trees -- if that was all that there is to it, then most parsers
would be "good enough" with any accuracy over, say 90% on some "typical"
corpus.   But accuracy is not really the issue -- that is not where the
problem lies.

A large part of the problem is that tweets aren't grammatical, but people
still understand them.  People abuse "fixed phrases" and "insititutional
utterances" all the time, creating new language in that way:  "Just do it"
"Where's the beef?" "Mission accomplished".  Synonymous phrases appear and
disappear all the time -- I think Boing Boing had a good exploration of
Archie comics from 60 years ago, and pointed out how much that language has
changed since then -- teens just don't talk like that any more.

English has a way of obscuring some of these issues, because it encodes a
lot of meaning in the word order, as opposed to the morphology, and so
English speakers are a lot less aware of using institutional phrases, and
are less aware of how important they are for semantics, and how much they
control the change and usage of language.

The upshot is that dependency parsing is really just the tip of the
iceberg.  The good stuff, the interesting stuff lies elsewhere.

Anyway, ... I almost wrote that it would not be hard to slot SyntaxNet in
place of Relex.  But that would not be quite correct.  First of all, relex
is inadequate for some of the things that opencog needs, and so opencog
falls back to link-grammar in those areas where relex is broken.  Another
major issue would be how questions get handled -- relex does some funky
stuff to try to replace the object of a question by a variable, and R2L
uses that.

Well, and even if you got past that, its not clear that R2L is doing the
right things, since its again a rule-driven system, running on hand-written
rules, when it should really be learning rules, via some machine learning
mechanism.  ... but all that needs to feed back into the parse itself...

So perhaps syntaxnet is a step forward, but without a holistic approach, I
don't see much utility for it.

I can also put it a different way: prior to SyntaxNet, I believe that Link
Grammar was the most accurate English language parser out there, and the
amount of attention that generated was just miniscule.  There is very
little demand for parsers, and basically, nobody quite knows what to do
with them.

For example: with LG, people come by, they try it out, ask a few questions,
and go their own way.  The information that a parser provides is just not
relevant to any software and machine-learning folks. The
knowledge-extraction crowd pays lip service, but then doesn't actually use
it as a tool.  There's no real community, because there are no real
applications.  No one knows what to do with a parser.

--linas


On Fri, May 13, 2016 at 12:38 PM, Jeremy Zucker  wrote:

> Hi folks,
>
>  I would imagine that Google's release of SyntaxNet in TensorFlow will
> provide a valuable boost in OpenCog Natural Languge Understanding efforts.
> Although SyntaxNet cannot resolve common sense Winograd-style tests, it
> frees up efforts like OpenCog to work on those kinds of problems rather
> than the kinds of things that SyntaxNet handles.
>
>
> http://googleresearch.blogspot.com/2016/05/announcing-syntaxnet-worlds-most.html?utm_campaign=Data%2BElixir&utm_medium=email&utm_source=Data_Elixir_79
>
> Sincerely,
>
> Jeremy
>
> "Any sufficiently complex system is hackable"
> http://www.linkedin.com/profile/view?id=4389790
>
> --
> 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/CA%2BHW2JOL90RHRf4VHeiX_ZbPghg%2B5i7VTLCabjyBknfC%2BBJDpQ%40mail.gmail.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"openc

Re: [opencog-dev] Re: Running the pattern miner

2016-06-29 Thread Linas Vepstas
On Wed, Jun 29, 2016 at 8:32 AM, 'Nil Geisweiller' via opencog <
opencog@googlegroups.com> wrote:

> Shujing,
>
> I might start hacking the pattern miner on the master soon. Once I do that
> there's is no coming back, I mean that merging the pattern miner from the
> PatternMinerEmbodiment branch will be a huge pain, so if that's the plan
> please let me know. I won't start touching it till I get your feedback.
>

It would be easiest, I think, to keep the master version in master, and
pull (cherry-pick) changes from master back into embodiment.  Which is what
Nil is saying, more or less.

--linas

>
>

-- 
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/CAHrUA37wKEBqzrH5cdJzDXGE5akJ_h_L2_q-NoRsuqC629z9tw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Running the pattern miner

2016-06-29 Thread Linas Vepstas
Re pattern mining in general:

The vision I had for pattern mining had more to do with observation, than
with exploration.  So, for example, a child watches an adult perform some
task, and tries to copy that performance.   Its easier to find out what's
important by watching many performances:  one looks for the common,
frequent, repeated parts of the performance, and ignores everything that
varies or is different from one performance to the next.

A performance could be any physical or verbal task.   The idea is to
observe common patterns that are already occurring in the environment.

So I was a little surprised to read that the actual demo does random
exploration, and then tries to deduce "what worked".  Yes, clearly, if a
task is successfully repeated multiple times in different ways, then one
can look to see what is common and frequent in the successful runs.  That
is one of the tricks that both scientists and comedians use to discover
what works/what is funny.  But random exploration, de novo, is a LOT harder
than simply watching someone who already knows how to do something, and
imitating them.  So I am surprised a bit...

---linas

On Wed, Jun 29, 2016 at 5:20 AM, Shujing Ke  wrote:

> Hi,
>
> The pure pattern miner test is a pure OpenCog thing, doesn't require the
> Unity3d game project. It has two modes, a single machine mode, and a
> distributed mode, see
> http://wiki.opencog.org/wikihome/index.php/Pattern_Miner   They both have
> been merged into the main Opencog branch before the end of last year. If
> you follow this wiki page, please use the one in the main branch. But
> because I haven't checked it again since this year, so maybe some parts in
> OpenCog it depends on have changed and the Pattern Miner is still last
> year's version. I will try to test it again later when I have time.
>
> Yes, the current developing branch is integrating with the  Embodiment
> client to recognize patterns by unsupervised learning from other scripted
> NPCs' behaviour in the Unity3d game world for a demo in my PhD thesis.
> Because I got the impression that the new Embodiment system is in Ros now,
> and it is for connecting to the robots instead of Unity3d game world.
> There are 3 reasons I chose to use the old embodiment + unity3d game world:
>
> 1. The demo I am making is to do unsupervised learning from a noisy and
> multi-contextual environment, needs to be easy to script the NPC agents to
> do a lot of random different high level actions, like walk to something,
> pick up something, eat something, drop something, even using magic to heal
> someone, open chests with a keyIt will be hard to script a lot of NPC
> robots to do all of these.
>
> 2. If we want to connect the Pattern Miner to current robotic project, it
> will also require a computer vision processor to recognize low-level
> robotic actions first before all the perceived knowledge can all be turned
> into Atoms in the AtomSpace, which I assume won't become matured and work
> perfectly with the whole OpenCog in near future.
>
> 3. For a more visible complete demo, after the Pattern Miner found a
> pattern it need a planner to work together to use the new found pattern in
> planning, and then a new plan can be sent to the client for execution.
> Since I am not there anymore, and to debugging the planner and the whole
> action execution pipeline from OpenCog embodiment to a robot and feedback
> to OpenCog is very difficult for me. And is probably also require a lot of
> complex robotic mechanism implementation which I am not good at.
>
> But once the perceiving modules and action execution modules are all
> implemented and integrated well with the robots and OpenCog, it should not
> be hard to integrate my current developing stuff with the new Embodiment
> system.
>
> BTW, for anyone who is interested about what exactly my current demo can
> do:
>
> *The motivation:*
> Any other kinds of learning in AI all require manually pick the learning
> materials, examples for a certain task for the agent to learn from. But
> real human level intelligence is able to just observe the whole world,
> without pre-assigned any tasks, just learning every useful things from the
> world. And once a new task is given, a human can search their memory and
> find out a solution to solve it. It's also different from sequence
> recognize, a sequence for a task is not always continuous, it can be
> disturbed. So the Pattern Miner is aiming at figure out the cause and
> effect for every single action, and then using planning / reasoning to make
> them into a sequence when given a task.
>
> *The demo content: *
> There are two different tasks in the game world: open a chest, heal an
> animal.
> There are  a lot of  NPCs doing random actions including the two tasks in
> the game world at the same time, for example: NPC A first pick up an apple;
> and then walk to a rabbit, apply healing magic to heal it; walk to a yellow
> key; walk around randomly; drop or eat the apple

Re: [opencog-dev] Re: brainstorming new names for OpenCogPrime

2016-07-02 Thread Linas Vepstas
slash-dot? Hmm, I wonder if the slashdot.org domain name is available.

On Fri, Jul 1, 2016 at 9:38 PM, Gaurav Gautam  wrote:

> Hi
>
> How about simply calling it root? Even better just /. Read it as root but
> always
> write it out as /.
>
> The message being: CogPrime is where real AI begins.
>
> Then if you make an agent which attains GI, you could name it ~.
>
> This also decouples the names from any language, so it addresses that
> person's
> concern with internationalization who suggested Nabu.
>
> And in the event that CogPrime becomes the defacto standard for creating
> AGI's
> and gains the status that E=mc2 has in popular culture, just imagine how
> much
> artistic freedom you will be giving to people. A '/' can be stylized in
> myriad ways.
> A word will never be able to compete with that. Maybe Slash will write
> some theme
> music for it?
>
> Also, if its a defacto standard, doesn't '/' make a lot of sense? Its the
> starting point...
> by definition.
>
> Yours sincerely
> Gaurav Gautam
>
> On Wednesday, April 20, 2016 at 4:04:19 AM UTC+5:30, Mark Nuzzolilo wrote:
>
>> On Mon, Apr 18, 2016 at 7:27 PM,   wrote:
>> > I'm not an active coder in the development of opencog, but I'm opposed
>> to a
>> > namechange.
>> >
>> > when I started to learn about opencog I found that the various naming
>> and
>> > renaming was a frustrating
>> > source of confusion for a beginner. This AGI project of yours was first
>> > known as Novamente, then opencog prime, then opencog It took me
>> ardeous
>> > efforts to figuer out
>> > that it was essentially all the same.
>> >
>>
>> If by "AGI project" you mean the encompassing framework now known as
>> "OpenCog": This was never called "OpenCogPrime", it went straight from
>> Novamente to OpenCog.  There are two different systems.  OpenCog is a
>> generalized framework intended for experimentation with differing AGI
>> designs, of which CogPrime happens to be the design that the team here
>> is using.  The implementation of CogPrime within OpenCog is called
>> OpenCogPrime.
>>
>> It can be clumsy to parse through the various names listed above and
>> that's the rationale behind the name change for OpenCogPrime.  OpenCog
>> itself is not changing as far as I am aware (and I like that name as
>> is).
>>
> --
> 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/c635886b-aabd-4736-b2fe-84555d4f16f7%40googlegroups.com
> 
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA37CyT%3D9-Jw9BW0S2QbkFHbA3MtbYhP2%2BgsB%3DcSaA__DBw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Has EinsteinUTest been removed?

2016-07-03 Thread Linas Vepstas
Still there:
https://github.com/opencog/atomspace/tree/master/tests/query/EinsteinUTest.cxxtest
 and still runs and passes

On Sun, Jul 3, 2016 at 3:47 AM, Gaurav Gautam  wrote:

> Hello,
>
> I am trying to follow the Einstein's Puzzle tutorial. The wiki page:
>
> http://wiki.opencog.org/w/Einstein's_Puzzle
>
> suggests that a demonstration is present in opencog/test/query under the
> name EinsteinUTest. I
> cannot find this folder query or the file EinsteinUTest.cxxtest anywhere.
> Has this file been moved
> or removed?
>
> Yours sincerely
> Gaurav Gautam
>
> --
> 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/b8f1429e-10fd-43e6-a8cd-04070aad2a25%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA377EcvP10upnRNYein5x0jpzBMb4tPPQY8UMCwSyTmTCw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Cannot run cog-execute! function.

2016-07-04 Thread Linas Vepstas
On Mon, Jul 4, 2016 at 10:34 AM, Gaurav Gautam  wrote:

> (use-modules (opencog exec))


There error message
mentions /home/gaurav/Codes/AI/OpenCog/WORKSPACE/AtomTypes/links.scm but
you did not say what it contains.

--linas

-- 
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/CAHrUA35_HDUHroxX085J5%2B3_wejW_nmt9tBHRy%3Dh0nT%2BSn1%2BjA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Has EinsteinUTest been removed?

2016-07-04 Thread Linas Vepstas
I don't know anything about google docs. This is one of the down-sides to
using google docs -- files appear from thin air, and disappear there as
well, with no ability to track them or understand what happened.

--linas

On Sun, Jul 3, 2016 at 9:42 PM, Gaurav Gautam  wrote:

> Hi linas,
>
> The TUTORIAL.md in opencog:
>
> https://github.com/opencog/atomspace/blob/test/TUTORIAL.md
>
> under the section on Subgraph matching says, one should follow a
> presentation that is supposed to be here:
>
>
> https://docs.google.com/presentation/d/15C2lheJNV6UtrIYcJ2zt5UOui_PhxmMNf2OzwGS5oq8/edit?pli=1#slide=id.p
>
> This link is not working.
>
> Yours sincerely
> Gaurav Gautam
>
> On Sunday, July 3, 2016 at 7:48:33 PM UTC+5:30, linas wrote:
>>
>> Still there:
>> https://github.com/opencog/atomspace/tree/master/tests/query/EinsteinUTest.cxxtest
>>  and still runs and passes
>>
>> On Sun, Jul 3, 2016 at 3:47 AM, Gaurav Gautam  wrote:
>>
>>> Hello,
>>>
>>> I am trying to follow the Einstein's Puzzle tutorial. The wiki page:
>>>
>>> http://wiki.opencog.org/w/Einstein's_Puzzle
>>>
>>> suggests that a demonstration is present in opencog/test/query under the
>>> name EinsteinUTest. I
>>> cannot find this folder query or the file EinsteinUTest.cxxtest
>>> anywhere. Has this file been moved
>>> or removed?
>>>
>>> Yours sincerely
>>> Gaurav Gautam
>>>
>>> --
>>> 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/b8f1429e-10fd-43e6-a8cd-04070aad2a25%40googlegroups.com
>>> 
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>

-- 
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/CAHrUA35m3x5mGK2FaPYTyWmdBovPaXGrwRQ9GwG4rcmMmnbAag%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Has EinsteinUTest been removed?

2016-07-04 Thread Linas Vepstas
Also, the tutorial seems to have been misplaced, I just moved it to a new
location, here:
https://github.com/opencog/atomspace/tree/master/examples/python

Also: you seem to be working with branch "test" which is about a year out
of date
I'm deleting this branch, since it seems to serve no purpose ... its just
old, and out of date.

--linas

On Sun, Jul 3, 2016 at 9:42 PM, Gaurav Gautam  wrote:

> Hi linas,
>
> The TUTORIAL.md in opencog:
>
> https://github.com/opencog/atomspace/blob/test/TUTORIAL.md
>
> under the section on Subgraph matching says, one should follow a
> presentation that is supposed to be here:
>
>
> https://docs.google.com/presentation/d/15C2lheJNV6UtrIYcJ2zt5UOui_PhxmMNf2OzwGS5oq8/edit?pli=1#slide=id.p
>
> This link is not working.
>
> Yours sincerely
> Gaurav Gautam
>
> On Sunday, July 3, 2016 at 7:48:33 PM UTC+5:30, linas wrote:
>>
>> Still there:
>> https://github.com/opencog/atomspace/tree/master/tests/query/EinsteinUTest.cxxtest
>>  and still runs and passes
>>
>> On Sun, Jul 3, 2016 at 3:47 AM, Gaurav Gautam  wrote:
>>
>>> Hello,
>>>
>>> I am trying to follow the Einstein's Puzzle tutorial. The wiki page:
>>>
>>> http://wiki.opencog.org/w/Einstein's_Puzzle
>>>
>>> suggests that a demonstration is present in opencog/test/query under the
>>> name EinsteinUTest. I
>>> cannot find this folder query or the file EinsteinUTest.cxxtest
>>> anywhere. Has this file been moved
>>> or removed?
>>>
>>> Yours sincerely
>>> Gaurav Gautam
>>>
>>> --
>>> 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/b8f1429e-10fd-43e6-a8cd-04070aad2a25%40googlegroups.com
>>> 
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>

-- 
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/CAHrUA34x86VOY7gn3gfEeAErQtDGLdhAkPTpKsMUEkZUEE%3DKkA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Can I use TypedVariableLinks to specify InheritanceLinks of particular kinds in Bindlink's variable list?

2016-07-06 Thread Linas Vepstas
Add to the pattern

  (InheritanceLink
 (VariableNode "$color")
 (ConceptNode "Color")
)

and
InheritanceLink
 (ConceptNode "British")
 (VariableNode "$man")
   )


On Wed, Jul 6, 2016 at 3:12 AM, Gaurav Gautam  wrote:

> Hello,
>
> As far as I understand, the optional variables list in BindLink can be
> filled with TypedVariableLinks
> whereupon only nodes of that type are used to ground that variable.
>
> I want to know what I should do if I want to ground a pattern with
> particular types of InheritanceLinks instead of
> particular types of nodes. Do I have to write the code to do such things
> or does it exist already? Is this even possible?
> I realize this is vague so I am providing an example program that I want
> to make work.
>
> I have a scheme program below that has a BindLink, which has two variables
> $man and
> $color. I want to make cog-bind! look for InheritanceLinks in atomspace
> and ground $color with those
> links that have the base ConceptNode "Color"(namely C1). And similarly I
> want it to ground the $man with the
> appropriate InheritanceLink(namely P1).
>
> (define C1
> (InheritanceLink
>  (ConceptNode "Red")
>  (ConceptNode "Color")
> )
> )
>
> (define C2
>(ConceptNode "Blue")
> )
>
> (define P1
>(InheritanceLink
>  (ConceptNode "British")
>  (ConceptNode "Man")
>)
> )
>
> (define question
>(BindLink
>
>   ;Variable list
>   (What do I put here to only match only P1 with "$man" and C1
> with "$color"?)
>
>   ;Pattern
>   (EvaluationLink (stv 1 1)
>(PredicateNode "LivesIn")
>(ListLink
> (VariableNode "$man")
> (VariableNode "$color")
>)
>)
>
>;Return Value
>(EvaluationLink (stv 1 1)
>(PredicateNode "CanLiveIn")
>(ListLink
> (VariableNode "$man")
> (VariableNode "$color")
>)
>)
>)
> )
>
> (cog-bind! question)
>
> Yours sincerely
> Gaurav Gautam
>
> --
> 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/08cbd232-9817-4753-b7ad-217b4de61e5b%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA347zFcco9ooq1u60c8Or6yxX2aqcUwisuEwpkVeJDxZYQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: brainstorming new names for OpenCogPrime

2016-07-06 Thread Linas Vepstas
I really like that!

On Sun, Jul 3, 2016 at 11:15 AM, Curtis Faith 
wrote:

> Empathic
> Virtual
> Agente
>
> I mean, she's already got a head, why not give the brain the same name?
>
> On Sun, Jul 3, 2016 at 9:22 AM, Gaurav Gautam 
> wrote:
>
>> Well I wanted to say "/" which is the symbol for root in linux. But if /.
>> sounds better then thats
>> fine too.
>>
>> On Sunday, July 3, 2016 at 12:10:59 AM UTC+5:30, linas wrote:
>>>
>>> slash-dot? Hmm, I wonder if the slashdot.org domain name is available.
>>>
>>> On Fri, Jul 1, 2016 at 9:38 PM, Gaurav Gautam 
>>> wrote:
>>>
 Hi

 How about simply calling it root? Even better just /. Read it as root
 but always
 write it out as /.

 The message being: CogPrime is where real AI begins.

 Then if you make an agent which attains GI, you could name it ~.

 This also decouples the names from any language, so it addresses that
 person's
 concern with internationalization who suggested Nabu.

 And in the event that CogPrime becomes the defacto standard for
 creating AGI's
 and gains the status that E=mc2 has in popular culture, just imagine
 how much
 artistic freedom you will be giving to people. A '/' can be stylized in
 myriad ways.
 A word will never be able to compete with that. Maybe Slash will write
 some theme
 music for it?

 Also, if its a defacto standard, doesn't '/' make a lot of sense? Its
 the starting point...
 by definition.

 Yours sincerely
 Gaurav Gautam

 On Wednesday, April 20, 2016 at 4:04:19 AM UTC+5:30, Mark Nuzzolilo
 wrote:

> On Mon, Apr 18, 2016 at 7:27 PM,   wrote:
> > I'm not an active coder in the development of opencog, but I'm
> opposed to a
> > namechange.
> >
> > when I started to learn about opencog I found that the various
> naming and
> > renaming was a frustrating
> > source of confusion for a beginner. This AGI project of yours was
> first
> > known as Novamente, then opencog prime, then opencog It took me
> ardeous
> > efforts to figuer out
> > that it was essentially all the same.
> >
>
> If by "AGI project" you mean the encompassing framework now known as
> "OpenCog": This was never called "OpenCogPrime", it went straight from
> Novamente to OpenCog.  There are two different systems.  OpenCog is a
> generalized framework intended for experimentation with differing AGI
> designs, of which CogPrime happens to be the design that the team here
> is using.  The implementation of CogPrime within OpenCog is called
> OpenCogPrime.
>
> It can be clumsy to parse through the various names listed above and
> that's the rationale behind the name change for OpenCogPrime.  OpenCog
> itself is not changing as far as I am aware (and I like that name as
> is).
>
 --
 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/c635886b-aabd-4736-b2fe-84555d4f16f7%40googlegroups.com
 
 .

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

>>>
>>> --
>> 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/79a86312-7f9a-4e79-9768-13e3520faafe%40googlegroups.com
>> 
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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/CAHrUA34afe%3D%3DbUm1Pwp2Lr2gSCretqnpNmEvQ6eoRu7YjhmJqQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Re: OpenPsi review

2016-07-07 Thread Linas Vepstas
Hi Nil,  sorry for late response, I'm drowning in email

AsyncLaunchLink already exists, its called ParallelLink and JoinLink

http://wiki.opencog.org/w/JoinLink
http://wiki.opencog.org/wikihome/index.php/ParallelLink

--linas


On Fri, Jun 10, 2016 at 4:39 AM, Nil Geisweiller 
wrote:

> Hi Linas,
>
> On 06/10/2016 12:10 PM, Linas Vepstas wrote:
>
>> A lesser issue is that SequentialAnd proceeds to the next step
>> only if
>> the previous step returned "true". What is the truth value of a
>> schema?
>>
>>
>> The truth value of a schema would be how much the universe inherit
>> from it. However the truth value of a certain ExecutionLink is
>> whether such inputs return such outputs.
>>
>>
>> Sure Everything in OpenCog is a Markov process, according to the theory.
>> But in practice, such general advice isn't useful.  Here are some
>> explicit examples of where things are, today:  For example:
>>
>> https://github.com/opencog/ros-behavior-scripting/blob/master/src/behavior.scm#L251
>>
>> Yes, the above should be split up into multiple, distinct OpenPsi rules,
>> but even after that happens, there will still need to be short sequences
>> of imperatives written in atomese.  Everything in that file is an
>> example of the general issue -- currently, actions are defacto
>> implemented as predicates, and NOT as schema, and changing them to
>> Schema is confusing and opaque.  It breaks C++ code. Its not clear how
>> to fix the C++ code so that it will work with Schema, and not break
>> other things (e.g. the pattern matcher, which treats schema and
>> predicates very differently)
>>
>
> It's OK that they are predicates and not schema, and it's OK that they
> occur over a certain duration and have conditionals, etc.
>
> What ExecutionLink could mean in that case would be that you trigger that
> action asynchronously, the return value would be that you successfully
> launched the action, independently of the end result. Then the time lag
> between the action being triggered and the goal would be indicated in the
> OpenPsi rule. For instance you may have the following OpenPsi rule
>
> PredictiveImplication <0.7 0.8>
>   TypedVariable
> Variable X
> Type "ConceptNode"
>   TimeInterval
> TimeNode "1s"
> TimeNode "20s"
>   And
> Evaluation
>   Predicate "face-in-front-of-me"
>   Concept "X"
> Execution
>   DefinedPredicate "Interact with face"
>   Concept "X"
>   Concept "async-action-successfully-launched"
>   
>
> Maybe we could wrap that predicate into some
>
> ASyncLaunchLink or something...
>
> Nil
>
>
>
>> I mean, we can change things, but lets not be flip: its a lot of work,
>> it impacts a lot of subsystems, and its not easy work.
>>
>>
>> Yes,. There's a blurry boundary between imperative code written in
>> python, to send ROS messages, and imperative sequences that more
>> naturally fit in in the atomspace.  For example: if someone left
>> the
>> room, then glance at where they were last seen, then clear the
>> face-visibility flag, and then update the room state. These
>> three are
>> currently done in atomese, and they are "naturally" atomese, since
>> visibility and room state are in the atomspace.
>>
>>
>> I don't know these parts, but as far as Atomese is concerned the
>> boundary between imperative and declarative is pretty clear, use
>> ExecutionLink for declarative, use ExecutionOutputLink for imperative.
>>
>>
>> Again, ponder the contents of
>>
>> https://github.com/opencog/ros-behavior-scripting/blob/master/src/behavior.scm
>> and you'll see what the issue is.
>>
>>
>>
>>
>>  As your above comments indirectly suggest, a SequentialAND
>> of a series
>>  of ExecutionOutputLinks isn't really a predicate in the
>>  straightforward sense; I think it's got to be treated as
>> effectively a
>>  "macro execution output link" right?
>>
>>
>> SequentialAnd has a pretty clear definition with respect to temporal
>> reasoning (SeqAnd A B === A occurs, then B occurs). The fact that
>> this link is used to construct imperative action sequences I guess
>> is OK.
>>
>>
>> What if the ex

Re: [opencog-dev] Re: Replacing Relex2Logic with Relex2Lojban

2016-07-08 Thread Linas Vepstas
FWIW, I am virulently anti-lojban, because mostly I believe it doesn't
solve any problems that we actually have. --linas

On Fri, Jul 8, 2016 at 9:12 AM, Jim Rutt  wrote:

> I like this idea very much.  I'm currently considering Lojban as a
> "knowledge engineering" language for a "really smart AI for games" project
> I'm starting to spin up.  Prior to full on AGI I see some fruitful problems
> to be solved using "sort of AGIish" software that depends on human created
> domain specific declarative knowledge.  My hypothesis is that there is a
> useful and talented - and not too expensive - class of human talent that
> can learn Lojban well who would not be appropriate for using tools that are
> less human language-like.  These might include very bright but highly
> anti-quantitative liberal arts grads.  Lojban strikes me as a potentially
> quite good adapter between the world of humans and the world of machines.
>
> ko pilno lo clearer pensi la lojban
>
> jim
>
>
> On Fri, Jul 8, 2016 at 7:44 AM, Ben Goertzel  wrote:
>
>> Here is a modest proposal, which would replace Relex2Logic with
>> something vaguely similar in spirit but much superior,
>>
>> http://wiki.opencog.org/wikihome/index.php/Lojbanic_Relex2Logic
>>
>> Actually it's a bit closer to the spirit of the bad old RelEx2Frame,
>> but with the significant difference that Lojban is a language with
>> complete coverage of everyday semantics, whereas FrameNet is sorely
>> limited and hasn't been honed by usage...
>>
>> -- Ben
>>
>>
>> --
>> Ben Goertzel, PhD
>> http://goertzel.org
>>
>> Super-benevolent super-intelligence is the thought the Global Brain is
>> currently struggling to form...
>>
>
>
>
> --
> ===
> Jim Rutt
> JPR Ventures
>
> --
> 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/CAPzPGw7p7MKC2d0MucQf8s4AimtSu-rNtkmm8Pprf03iJhJVdA%40mail.gmail.com
> 
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA35G-ooD2i_RMi93YN2T%2Bmo44coYytAkTj_0RsH9KOdzvg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Natural Intelligence (NI) and Artificial General Intelligence (AGI)

2016-07-12 Thread Linas Vepstas
Perhaps these papers will help clarify the nature of physical law, raised
in the emails below:

Axel Kleidon
Non-equilibrium thermodynamics and maximum entropy production in the Earth
system
http://www.bgc-jena.mpg.de/bgc-theory/uploads/Pubs/2009-NaWi-AK.pdf

-- or other writings by Kleidon e.g. this might be easier to read:
http://rsta.royalsocietypublishing.org/content/368/1910/181


Regarding the central nervous system, it is critically important to
understand this:
http://journal.frontiersin.org/article/10.3389/fpsyg.2016.00902/full
František Baluška and Michael Levin
On Having No Head: Cognition throughout Biological Systems

If you put these two papers together, you can get a strong idea of where
things came from, and where they are going, at the level of physics, at
least.  (Well, not just these papers, but streams of thought --  as there
is much written on the earth-biology-ecology in the non-equilibrium
thermodynamics viewpoint, its equally critical to understand that, e.g.
although slime molds can solve the two-armed bandit problem, there is a
signalling optimization when cells are long i.e. have axons, dendrites. It
is this last optimization that the artificial neural net people focus on,
but they do so only by ignoring the non-local nature of hormonal
signalling)


On Tue, Jul 12, 2016 at 9:25 AM, Andi  wrote:

>
>
> Am Mittwoch, 29. Juni 2016 17:55:44 UTC+2 schrieb Radh Achuthan:
>>
>>
>> 6/29/16
>>
>> Greetings ALL
>>
>> I am new to this site.
>>
>> Recently I viewed several videos from the Singularity University Seminar
>> on AI, 2010, including the presentation by Dr. Goertzel.
>>
>> Amongst others, those of Demis Hassabis and Shane Legg are  noteworthy. I
>> am familiar with the popular publications of Ray Kurzweil, Peter Diamandis,
>> and some of the successes (Solar City, VTL, Tesla), of Elon Musk.
>>
>> I am not a programmer, but have some observations:
>>
>> 1. Physical law (in the absence of  thought) evolved biology to higher
>> levels creating en route on one of its paths a central nervous system (CNS)
>> with cognitive abilities resulting in thought and natural intelligence
>> (NI).
>>
>> (On another of its paths, the Flora and Fauna (FaF) coped well without a
>> CNS.)
>>
>
> Hello,
>
> I don't think that this observation is right.
> Physikal law is doing nothing.
> I suppose that with physical law you refer to what human physicist found
> out about everything that exists, in the realm of physics, and than called
> to be physical law.
>
> Among the physical laws i know, there is non that lead to evolve something.
> But surely I do not know all physical laws.
>
> Please can you tell me to which physical law you refer which "evolved
> biology to higher  levels creating en route on one of its paths a central
> nervous system (CNS) with cognitive abilities resulting in thought and
> natural intelligence (NI)" and how it worked?
>
>
>
>>
>> 2. Slow (10^-6 s / signal), organic NI, is *directed and controlled  *
>> (through* cognitive synergy* as you put it), by nature's  Kin Altruism
>> (KA) and one of NI's own successful creations, Business or Reciprocal
>> Altruism (RA), in processing *any and all *of it endeavors.
>>
>> 3. Probably over about 10,000 years and based on its success with RA, NI
>> attempted Induced Altruism (IA, Religion, Ethics), but always had to resort
>> to violence in settling issues as it does today, after the communicative
>> *content* of signs, words, proved insufficient and unsuccessful in
>> resolution of conflict.
>>
>> 4.  Biospheric Nature was facing a *cul-de-sac* until it discovered a
>> 'David', Artificial Intelligence, AI, in* inorganic silicon*, with
>> signal speeds of 10^-9 s, via Alan Turing, in the1940s, (Movie : Imitation
>> Game).
>>
>> 5. That was followed by programmed, Narrow Artificial Intelligence (NAI,
>> IBM 1980s), and self-learning Artificial General Intelligence, Strong AI or
>> (AGI, Google 2010, and others) advancing overall under non-hierarchical
>> mutualism.
>>
>> 6. AGI articulated through Robotics stages useful public relations, PR,
>> in the biosphere currently dominated by NI.
>>
>> 7. Given NI's handicap with KA and RA, its slowness and its *inability*
>> for objectivity in any given global situation, (in the midst of plenty, it
>> denies human rights to about 5 billion people and sanctions about 2.5
>> billion people to live on less than $2 / head / day; remarkable stupidity
>> on the part of the money-cartel  think-tanks ),  there is an  urgent need
>> for the rapid development and deployment of abstract AGI, *unhampered *by
>> the progress or lack thereof in Robotics.
>>
>> 8. It s reasonable to expect *the sheer power* of Creativity,
>> Comprehension, Objectivity, and Intellectual Authority of abstract AGI
>> would voluntarily calm the general *inbuilt* generic (Darwinian) *fears *of
>> NI and in setting aside the prejudices / greed of the
>>
>> *money-cartel and their bulwark of NI scams of the 1%. Under this
>> scenario,

Re: [opencog-dev] Why is cog-bind writing the VariableNode in the part of BindLink to Atomspace?

2016-07-17 Thread Linas Vepstas
Hi,

The answer is simple:  Since you are looking for inheritance links of a
particular structure, it will return everything it finds, having that
particular structure, and the $denizen variable fits the structure, and so
its reported.

If you do NOT want to see that, and see only the cncept nodes, then replace
the bare (VariableNode "$animal") declaration with

this:

(TypedVariable
(VariableNode "$animal")
  (VariableType "ConceptNode"))

This will return ONLY the concept nodes.  There is a wiki page on both
VariableType and TypedVariable that gives more details

--linas

On Sun, Jul 17, 2016 at 10:26 AM, Gaurav Gautam 
wrote:

> Hello,
>
> I was adding some things to the third lesson in Hands_On_With_OpenCog when
> I came across this.
> I have attached the guile script to this post so you can look at the whole
> thing.
>
> I used cog-bind to perform a graph-rewrite to do the following:
> 1. Look for all atoms that are types of Animals
> 2. Create a new InheritanceLink to mark all such nodes as Pets
>
> ;The BindLink
> (define rewrite
> (BindLink
> ;Declare the variables [optional]
> (VariableNode "$denizen")
> ;Declare the pattern used to ground the variables
> (InheritanceLink
> (VariableNode "$denizen")
> (ConceptNode "Animal")
> )
> ;If a match is found for the pattern then we want
> ;to add the following hypergraph ot the Atomspace
> (InheritanceLink
> (VariableNode "$denizen")
> (ConceptNode "Pet")
> )
> )
> )
>
> The output of bind-link is as expected:
> (SetLink
>(InheritanceLink
>   (ConceptNode "fish")
>   (ConceptNode "Pet")
>)
>(InheritanceLink
>   (ConceptNode "dog")
>   (ConceptNode "Pet")
>)
>(InheritanceLink
>   (ConceptNode "cat")
>   (ConceptNode "Pet")
>)
> )
>
> But when I run a cog-satisfying-set query to look for all pets in the
> Atomspace I find that a new Pet has been defined
> with the name "$denizen".
> The pattern I use for cog-satisfying-set is:
> (define petnode
> (SatisfactionLink
> ;Declare varibales [optional]
> (VariableNode "$animal")
> ;The pattern that the variable must satisfy
> (InheritanceLink
> (VariableNode "$animal")
> (ConceptNode "Pet")
> )
> )
> )
>
> The output is:
> (SetLink
>(ConceptNode "fish")
>(ConceptNode "dog")
>(ConceptNode "cat")
>(VariableNode "$denizen") <--- This is the thing I don't understand
> )
>
> Is this the expected behavior for bind-link? I thought that the "$denizen"
> VariableNode is never entering the Atomspace. Is this untrue?
>
> Yours sincerely
> Gaurav Gautam
>
> --
> 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/620e1bc1-841e-4ae3-ad07-bc01294b06dd%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA37ZPusQ9qL%3DUa-Nci-cJbZ3yzg2kXxTvQ7%2BQ%2BoS747J5w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Why is cog-bind writing the VariableNode in the part of BindLink to Atomspace?

2016-07-18 Thread Linas Vepstas
yes, exactly .. the bindlink itself is in the atomspace, and thus, so are
all of its subgraphs . In general, whenever you create a link, all the
atoms in the link get added to the atomspace (if they are not there already)

--linas

On Sun, Jul 17, 2016 at 11:00 PM, Gaurav Gautam 
wrote:

> Hi Linas,
> I think I understand what is happening now. The bindlink that I defined
> has this variablenode and since the BindLink is in the atomspace, so is
> this $denizen node.
>
>
> --
> 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/b6ca5426-23dc-4414-b0cd-13211bfba21c%40googlegroups.com
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA35aPccJHcXMCekBRiMHhiKp%2BE9yW4JvoqnbgiMugccxRw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Getting rid of UUIDs in the Haskell LIb

2016-07-22 Thread Linas Vepstas
I'm not sure what to suggest, because I don't know what the issue is. You
cannot get the name of an atom, without first obtaining a pointer to it,
so, whatever your API is, it does have to have pointers in it, somehow.

If you want to always use ints, you could keep a private table that
translates from ints to atoms and back.

My long-term goal is to create such a "private table" in the database
backends, and remove UUID's in general.  The rest API would need to do
something similar, too.  The advantages are that  it should make the
management of atoms easier. But this remains fairly low-priority, for now.

--linas


On Thu, Jul 21, 2016 at 4:32 PM, Roman Treutlein 
wrote:

> Hello,
>
> I was just trying to get the Haskell Lib to use Handle/AtomPtr instead of
> UUIDs. Unfortunately, I was unsuccessful thus far. The issue being that I
> can't use Handle/AtomPtr directly as they are Objects which aren't directly
> supported by the C-Interface.
>
> I could use a Pointer to the Atom but that is unsafe on multiple levels.
>
> Looking at the Scheme code it also seems to use UUIDs but I am not quite
> sure to what extend.
>
> Anyway, I just wanted to know if somebody had some thoughts about this.
>
> regards
> /Roman
>
>
> --
> 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/d80fa1af-b3cf-47b4-908a-8c42061519db%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA34BM2cbp0AqQXA-TtNBY62iV7v%3D5r3Uo7w%3DzCzauUbOHg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Getting rid of UUIDs in the Haskell LIb

2016-07-24 Thread Linas Vepstas
On Fri, Jul 22, 2016 at 5:45 PM, Ben Goertzel  wrote:

> But it's not clear that an Atom created on one local machine, then
> processed a bit, then discarded, ever needs to get assigned a UUID.
> They could get assigned only when saving to a backing store or sending
> across a network, right?
>

Yes, exactly. On a local machine, UUID's are never needed; removing them is
a performance optimization.  For storage or network communications -- its
up to the layer that implements the storage or communications: if it wants
to use UUID's as some kind of short-cut, it can, or it can use something
else.

--linas


>
> -- ben
>
> On Fri, Jul 22, 2016 at 6:16 PM, Matt Chapman 
> wrote:
> >
> > On Fri, Jul 22, 2016 at 2:55 PM, Linas Vepstas 
> > wrote:
> >>
> >> My long-term goal is to create such a "private table" in the database
> >> backends, and remove UUID's in general.
> >
> >
> > Aren't UUID's (or something equivalent) necessary for a distributed
> > atomspace? I suspect you don't want to have to worry about synchronizing
> > this int table across machines...
> >
> > All the Best,
> >
> > Matt
> >
> > --
> > Standard Disclaimer:
> > Please interpret brevity as me valuing your time, and not as any negative
> > intention.
> >
> > --
> > 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/CAPE4pjBYmMTnSg_GjbdGVf2E94ytenar%3DFEDa5b66gDKzTLfUA%40mail.gmail.com
> .
> >
> > For more options, visit https://groups.google.com/d/optout.
>
>
>
> --
> Ben Goertzel, PhD
> http://goertzel.org
>
> Super-benevolent super-intelligence is the thought the Global Brain is
> currently struggling to form...
>
> --
> 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/CACYTDBf_E%3Dp%3DJUCO%2B-RDa26vzbqX3vrm4J1am%2BB6zyN6WeD_4Q%40mail.gmail.com
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA36mm53Staux3edtWiAfjN_N_3Aged2mUxeXSM5HyeEOzA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Problems building Opencog

2016-07-26 Thread Linas Vepstas
presumably, your cmake version is different than ours.  --linas

On Tue, Jul 26, 2016 at 9:29 AM, Kefeh  wrote:

> Hello,
> i have been trying t build Opencog and on running the cmake .. i
> ran across some warnings and errors.
>
> Please see https://drive.google.com/open?id=0B1EsgPC1GsI5ODBGNDhUaXJmbDQ.
>
> Regards,
> Kefeh
>
> --
> 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/f120344d-8da3-453f-8212-65ca2aa2f902%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA36XG7CEWGnjXQu3KvyNdXMQ4QAVxwrndEAox7naLE8QEQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] ClassServer Madness

2016-07-26 Thread Linas Vepstas
There is a numeric value, but it is quasi-hidden.  It is assigned when the
module that contains the atom types is loaded. There are current 5 or 6
modules that define atom types.  Hebbian is not in the base module.  The
base module is loaded first, and then depending on what you do, maybe some
of the others.  The numeric assignment will change, depending on the load
order, and also depending on whether new atom types were add or removed.
This is why the numeric value should be considered to be opaque.

There's a bit of trickery to make sure that the base types get loaded
first, before any other code runs: the load is defined to run in the
shared-library constructor, so it runs when the shared library is loaded,
before any other code in the shared library runs.  Its possible that, with
your dylib loading, you somehow managed to violate this, by not running the
constructor first?  However, I believe that the standard glibc dynamic lib
loader "does the right thing" and does run the constructors in the right
order .. so .. I dunno.  Add print statements and see what's happening.
Somehow, the load order is screwed up for you, is my guess.

--linas


On Tue, Jul 26, 2016 at 3:52 PM, Roman Treutlein 
wrote:

> Okay so, I have a ConceptNode and for some reason, the ClassServer
> believes that to be a kind of Hebbian_Links which is obviously wrong.
>
> I really don't know how this could happen and I didn't touch anything
> related to types (as far as I know). Either way the atom_types.script files
> look perfectly fine.
>
> One specific question I have is how the variable/constant HEBBIAN_LINK (or
> NODE) gets its value. It seems to be declared in atom_types.definitions but
> where is it defined?
>
> --
> 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/b75cfbb9-b10d-4033-b97c-4510b2a7c8a5%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA36vHGqAP3dQFqHNGQtRPCswKopXveQ2egd-FkAuhXEcPA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Problems building Opencog

2016-07-28 Thread Linas Vepstas
On Thu, Jul 28, 2016 at 10:12 AM, Kefeh Collins 
wrote:

> Hello,
>
> My cmake version is verson 3.5.1, i don't know if that posses a problem.
>
>
>
Ahh, OK, that is a newer version of cmake than what is in trusty.

I think I may have fixed this in
https://github.com/opencog/atomspace/pull/841
https://github.com/opencog/opencog/pull/2327

I think that will fix it for you, but also, I suspect opencog works only in
trusty, so you are likely to hit additional bugs.

--linas

-- 
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/CAHrUA37Z2gOTjHDGm-d7fyiNu-W5%2B_JVoZQ7i-Fa%3DUfEBs1SdA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] how to train a CNN with feature vectors and not images?

2016-08-02 Thread Linas Vepstas
Hi Andi,

Ben has a good answer, and to emphasize, let me add this:   Think of the
atomspace as being a collection of trees.  The atoms are the nodes in the
tree.  Any one atom can appear in many trees, and so the whole thing is in
fact tangled into a big matt, like a rhizome
https://www.google.com/search?q=rhizome&tbm=isch

The pattern matcher starts at one atom, and walks the rhizome, exploring
nearest neighbors, until all the entire neighborhood is explored (and a
match is found, or some other (local) computation is performed).

The problem is that the atoms are scattered randomly through RAM, so when
the nearest neighbor walk happens, random locations in RAM get visited.
I'm guessing that there is a lot of cache-miss going on two:  If you have,
say, a CPU cache that is 8-way, 4-associative, then you could have maybe 32
atoms in the cache, but the chance that the 33rd atom will accidentally be
in one of the existing cache lines is just about zero, and so the graph
walk will have a 99.9% cache-miss rate.   (most graphs that get searched
have more that 32 atoms in them. )


Hmm, I have an idea -- I guess the atomsapce *could* keep track of
individual connected components  (create a bag of trees, which are
connected by one or more atoms) -- any given search is guaranteed to stay
in just one bag, and so maybe one could download the entire bag to the gpu
before starting a search.   Could work if the bags are small enough to fit
in GPU ram.

Maybe allocation could be changed to improve cache locality: allocate atoms
so that they are more likely to be on the same cache line if they are also
connected.  But this becomes a hard, fiddly computer-science problem...

--linas


On Mon, Aug 1, 2016 at 3:26 PM, Andi  wrote:

> Hello All,
> I do not want to disturb the ongoing work so an answer to this question is
> not urgent,
> but it will help me during my investigations within the next month.
>
> *What in the hell could prevent me to look at the Atomspace as a certain
> kind of Neuronal Network?*
>
> Please don't tell me:"Because it is a hypergraph" haha
>
> One of my aims is, try to port the whole thing, or some parts, to
> hardware. Maybe a bunch of some GPU's, PLD's and a CPU can do it. It seems
> that they are designing some interesting machines for Deep Learning - so
> maybe even nothing new has to be invented..
>
> For first steps I think it should at least be possible to use some
> GPU-power to do some work in parallel or is there really a theoretical
> barrier for paralleling some work that I cannot see in the moment?
>
> Please don't be afraid,  I know what kind of challenging task this is and
> would carry it on my own back. But maybe it is not so much work if the
> right approach is found...
> At least I want to investigate this - so any red lights blinking?
>
> --Andi
>
>
> Am Sonntag, 24. April 2016 07:07:25 UTC+2 schrieb Ben Goertzel:
>>
>> Indeed this is not an OpenCoggy question, but some of us may be able
>> to help... is this dynamic data or instantaneous data you're trying to
>> classify?
>>
>>
>>
>> On Sat, Apr 23, 2016 at 1:46 PM,   wrote:
>> > Hi
>> >
>> > I have a dataset of mocap (motion caption) positions as vectors which I
>> am
>> > going to train a DNN for this dataset.
>> > the sample data would be like a 140-D dimension vector.
>> > Is it possible to train a CNN for this kind of data? I have
>> > how to use convolution layers for this kind of data as kernels are
>> e.g.5x5
>> > while the data is  a vector?
>> >
>> >
>> > If I make the data in a form of matrix, is it possible to train a
>> pretrained
>> > CNN e.g. alexnet for this dataset?
>> >
>> > Best
>> > Majid
>> >
>> > --
>> > 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/1a04d763-3dfa-473f-a240-a0e452f6faba%40googlegroups.com.
>>
>> > For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
>> --
>> Ben Goertzel, PhD
>> http://goertzel.org
>>
>> "I am Ubik. Before the universe was, I am. I made the suns. I made the
>> worlds. I created the lives and the places they inhabit; I move them
>> here, I put them there. They go as I say, then do as I tell them. I am
>> the word and my name is never spoken, the name which no one knows. I
>> am called Ubik, but that is not my name. I am. I shall always be.” --
>> Ubik
>>
> --
> 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 grou

Re: [opencog-dev] how to train a CNN with feature vectors and not images?

2016-08-02 Thread Linas Vepstas
Here  this:

http://ci-journal.net/index.php/ciej/article/viewFile/327/315/2090

https://developingwritersdotorg.files.wordpress.com/2013/07/ee98c-topo_rhizome2.jpg




On Tue, Aug 2, 2016 at 11:05 AM, Linas Vepstas 
wrote:

> Hi Andi,
>
> Ben has a good answer, and to emphasize, let me add this:   Think of the
> atomspace as being a collection of trees.  The atoms are the nodes in the
> tree.  Any one atom can appear in many trees, and so the whole thing is in
> fact tangled into a big matt, like a rhizome
> https://www.google.com/search?q=rhizome&tbm=isch
>
> The pattern matcher starts at one atom, and walks the rhizome, exploring
> nearest neighbors, until all the entire neighborhood is explored (and a
> match is found, or some other (local) computation is performed).
>
> The problem is that the atoms are scattered randomly through RAM, so when
> the nearest neighbor walk happens, random locations in RAM get visited.
> I'm guessing that there is a lot of cache-miss going on two:  If you have,
> say, a CPU cache that is 8-way, 4-associative, then you could have maybe 32
> atoms in the cache, but the chance that the 33rd atom will accidentally be
> in one of the existing cache lines is just about zero, and so the graph
> walk will have a 99.9% cache-miss rate.   (most graphs that get searched
> have more that 32 atoms in them. )
>
>
> Hmm, I have an idea -- I guess the atomsapce *could* keep track of
> individual connected components  (create a bag of trees, which are
> connected by one or more atoms) -- any given search is guaranteed to stay
> in just one bag, and so maybe one could download the entire bag to the gpu
> before starting a search.   Could work if the bags are small enough to fit
> in GPU ram.
>
> Maybe allocation could be changed to improve cache locality: allocate
> atoms so that they are more likely to be on the same cache line if they are
> also connected.  But this becomes a hard, fiddly computer-science problem...
>
> --linas
>
>
> On Mon, Aug 1, 2016 at 3:26 PM, Andi  wrote:
>
>> Hello All,
>> I do not want to disturb the ongoing work so an answer to this question
>> is not urgent,
>> but it will help me during my investigations within the next month.
>>
>> *What in the hell could prevent me to look at the Atomspace as a certain
>> kind of Neuronal Network?*
>>
>> Please don't tell me:"Because it is a hypergraph" haha
>>
>> One of my aims is, try to port the whole thing, or some parts, to
>> hardware. Maybe a bunch of some GPU's, PLD's and a CPU can do it. It seems
>> that they are designing some interesting machines for Deep Learning - so
>> maybe even nothing new has to be invented..
>>
>> For first steps I think it should at least be possible to use some
>> GPU-power to do some work in parallel or is there really a theoretical
>> barrier for paralleling some work that I cannot see in the moment?
>>
>> Please don't be afraid,  I know what kind of challenging task this is and
>> would carry it on my own back. But maybe it is not so much work if the
>> right approach is found...
>> At least I want to investigate this - so any red lights blinking?
>>
>> --Andi
>>
>>
>> Am Sonntag, 24. April 2016 07:07:25 UTC+2 schrieb Ben Goertzel:
>>>
>>> Indeed this is not an OpenCoggy question, but some of us may be able
>>> to help... is this dynamic data or instantaneous data you're trying to
>>> classify?
>>>
>>>
>>>
>>> On Sat, Apr 23, 2016 at 1:46 PM,   wrote:
>>> > Hi
>>> >
>>> > I have a dataset of mocap (motion caption) positions as vectors which
>>> I am
>>> > going to train a DNN for this dataset.
>>> > the sample data would be like a 140-D dimension vector.
>>> > Is it possible to train a CNN for this kind of data? I have
>>> > how to use convolution layers for this kind of data as kernels are
>>> e.g.5x5
>>> > while the data is  a vector?
>>> >
>>> >
>>> > If I make the data in a form of matrix, is it possible to train a
>>> pretrained
>>> > CNN e.g. alexnet for this dataset?
>>> >
>>> > Best
>>> > Majid
>>> >
>>> > --
>>> > 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

[opencog-dev] randme openpsi to ... decider?

2016-08-02 Thread Linas Vepstas
The openpsi name is problematic:

-- Joscha Bach's psi is also open-source
-- openpsi is no longer the main psychological modeller for opencog
(the "component process model" now is)

This suggests that a better name is needed.

The functions implemented in openpsi perform a very important task of
selecting and choosing and deciding what to do, based on the need to
fulfill certain goals.   The goals need not be psychological goals, and the
chosen "things" are usually "actions" but not necessarily so.

"action selector" is one but its boring. "action formulator and selector"
ASAF ASF AFS AFAS is aonther mouthful.

How about "the decider"?
pluses: its short, its a term not used anywhere else in the system, so no
confusion about which subsystem it refers to.  Its unique enough that there
is not even a collision with most OS or compsci theory and no confusion
with NN or ANN theory.  Yet you can guess what it does, given just its
one-word name.

minuses: unfortunate reference to dubya.

--linas

-- 
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/CAHrUA35yrok%2BmW-VyPpOOw%3DRT1haUN4wTJr6tSqJungQ6K4WgQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Problems building Opencog

2016-08-03 Thread Linas Vepstas
Check your merge:
https://github.com/opencog/atomspace/blob/master/CMakeLists.txt#L15

that line has been there forever.  So have the cmake policy lines below it.

--linas

On Wed, Aug 3, 2016 at 1:10 AM, Kefeh Collins 
wrote:

> Hello,
>
> after i merged the fixes on the cmakefiles, i tried building it again
> to no avail then i tried rebuilding atomspace and hit a couple of warnings:
>
>
> *warnings from cmake ..*:
>
> CMake Warning at tests/persist/sql/odbc/CMakeLists.txt:67 (MESSAGE):
>   /usr/bin/psql: psql: FATAL: Peer authentication failed for user
>   "opencog_tester"
>
>
>
> CMake Warning at tests/persist/sql/odbc/CMakeLists.txt:82 (MESSAGE):
>   Postgres database not configured for unit tests! See the README!
>
>
> CMake Warning at tests/persist/sql/postgres/CMakeLists.txt:67 (MESSAGE):
>   /usr/bin/psql: psql: FATAL: Peer authentication failed for user
>   "opencog_tester"
>
>
>
> CMake Warning at tests/persist/sql/postgres/CMakeLists.txt:82 (MESSAGE):
>   Postgres database not configured for unit tests! See the README!
>
> ..
> ..
> ..
>
> CMake Warning (dev) in CMakeLists.txt:
>   No cmake_minimum_required command is present.  A line of code such as
>
> cmake_minimum_required(VERSION 3.5)
>
>   should be added at the top of the file.  The version specified may be
> lower
>   if you wish to support older CMake versions for this project.  For more
>   information run "cmake --help-policy CMP".
> This warning is for project developers.  Use -Wno-dev to suppress it.
>
> -- Configuring done
> CMake Warning (dev) at opencog/atoms/base/CMakeLists.txt:13 (ADD_LIBRARY):
>   Policy CMP0003 should be set before this line.  Add code such as
>
> if(COMMAND cmake_policy)
>   cmake_policy(SET CMP0003 NEW)
> endif(COMMAND cmake_policy)
>
>   as early as possible but after the most recent call to
>   cmake_minimum_required or cmake_policy(VERSION).  This warning appears
>   because target "atombase" links to some libraries for which the linker
> must
>   search:
>
> pthread, pthread
>
>   and other libraries with known full path:
>
> /home/kefeh/atomspace/build/opencog/truthvalue/libtruthvalue.so
> /usr/local/lib/libcogutil.so
>
>   CMake is adding directories in the second list to the linker search path
> in
>   case they are needed to find libraries from the first list (for backwards
>   compatibility with CMake 2.4).  Set policy CMP0003 to OLD or NEW to
> enable
>   or disable this behavior explicitly.  Run "cmake --help-policy CMP0003"
> for
>   more information.
>
>
>
> *from make install:*-- Install configuration: "Release"
> -- Up-to-date: /usr/local/include/opencog/atoms/NumberNode.h
> CMake Error at opencog/atoms/cmake_install.cmake:36 (file):
>   file INSTALL cannot set permissions on
>   "/usr/local/include/opencog/atoms/NumberNode.h"
> Call Stack (most recent call first):
>   opencog/cmake_install.cmake:37 (include)
>   cmake_install.cmake:38 (include)
>
> Makefile:105: recipe for target 'install' failed
> make: *** [install] Error 1
>
>
> Thanks
> Kefeh
>
> On Fri, Jul 29, 2016 at 2:09 AM, Linas Vepstas 
> wrote:
>
>>
>>
>> On Thu, Jul 28, 2016 at 10:12 AM, Kefeh Collins 
>> wrote:
>>
>>> Hello,
>>>
>>> My cmake version is verson 3.5.1, i don't know if that posses a problem.
>>>
>>>
>>>
>> Ahh, OK, that is a newer version of cmake than what is in trusty.
>>
>> I think I may have fixed this in
>> https://github.com/opencog/atomspace/pull/841
>> https://github.com/opencog/opencog/pull/2327
>>
>> I think that will fix it for you, but also, I suspect opencog works only
>> in trusty, so you are likely to hit additional bugs.
>>
>> --linas
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "opencog" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/opencog/Xkj7Zxjj8cg/unsubscribe.
>> To unsubscribe from this group and all its topics, 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/CAHrUA37Z2gOTjHDGm-d7fyiNu-W5%2B_JVoZQ7i-Fa%3DUfEBs1SdA%40mail.gmail.com
>> <https://groups.google.com/d/msgid/opencog/CAHrUA37Z2gOTjHDGm-d7fyiNu-W5%2B_JVoZQ7i-Fa%3

Re: [opencog-dev] Problems building Opencog

2016-08-04 Thread Linas Vepstas
install must be performed as root, e.g. by using sudo:  `sudo make install`

--linas

On Thu, Aug 4, 2016 at 6:19 AM, Kefeh Collins 
wrote:

> Hello,
>
>thank you, i had a problem with my merge which i have resolved, the
> cmake warnings are fewer now
>
> *cmake .. *:
>
> CMake Warning at tests/persist/sql/odbc/CMakeLists.txt:67 (MESSAGE):
>   /usr/bin/psql: psql: FATAL: Peer authentication failed for user
>   "opencog_tester"
>
>
>
> CMake Warning at tests/persist/sql/odbc/CMakeLists.txt:82 (MESSAGE):
>   Postgres database not configured for unit tests! See the README!
>
>
> CMake Warning at tests/persist/sql/postgres/CMakeLists.txt:67 (MESSAGE):
>   /usr/bin/psql: psql: FATAL: Peer authentication failed for user
>   "opencog_tester"
>
>
>
> CMake Warning at tests/persist/sql/postgres/CMakeLists.txt:82 (MESSAGE):
>   Postgres database not configured for unit tests! See the README!
>
>
> *make install:*
>
> -- Install configuration: "Release"
> -- Up-to-date: /usr/local/include/opencog/atoms/NumberNode.h
> CMake Error at opencog/atoms/cmake_install.cmake:36 (file):
>   file INSTALL cannot set permissions on
>   "/usr/local/include/opencog/atoms/NumberNode.h"
> Call Stack (most recent call first):
>   opencog/cmake_install.cmake:37 (include)
>   cmake_install.cmake:38 (include)
>
>
>
> Makefile:105: recipe for target 'install' failed
> make: *** [install] Error 1
>
>
> On Tue, Jul 26, 2016 at 3:29 PM, Kefeh  wrote:
>
>> Hello,
>> i have been trying t build Opencog and on running the cmake .. i
>> ran across some warnings and errors.
>>
>> Please see https://drive.google.com/open?id=0B1EsgPC1GsI5ODBGNDhUaXJmbDQ.
>>
>> Regards,
>> Kefeh
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "opencog" group.
>> To unsubscribe from this topic, visit https://groups.google.com/d/
>> topic/opencog/Xkj7Zxjj8cg/unsubscribe.
>> To unsubscribe from this group and all its topics, 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/f120344d-8da3-453f-8212-65ca2aa2f902%40googlegroups.com
>> 
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> 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/CAN9z%2BMq0sYtXhAV-anyO7i%2BpWhQk%2BtEd3jW1DS%2B1hT5T9poQQA%
> 40mail.gmail.com
> 
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA35BVJY95T22gqNu%3DsW4xh6ytSFbEm%2BaNfu6MES-3j3NWg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] how to train a CNN with feature vectors and not images?

2016-08-04 Thread Linas Vepstas
On Thu, Aug 4, 2016 at 5:29 PM, Andi  wrote:

>
>
>>
> This sounds like a SPARK-architecture could do it. SPARC T5
> 
>

Please re-read and re-think. The Sparc architecture is just another RISC
superscalar architecture, not really or fundamentally different than MIPS
or POWER, or even the risc superscalar core inside of the Intel x86 chips.
The primary difference is that the Sparc has a big register file and a
register window, used for the C/C++/Java stack push and pop, whereas the
other arches use those transistors register scoreboarding, coloring and so
on.

https://en.wikipedia.org/wiki/Superscalar_processor
https://en.wikipedia.org/wiki/Reduced_instruction_set_computing
https://en.wikipedia.org/wiki/SPARC
https://en.wikipedia.org/wiki/Scoreboarding


Again, the problem is how to traverse rhizomes quickly and efficiently,
given the non-locality of memory access.

--linas

-- 
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/CAHrUA365as6mn0ROrM4E%2BS2VoYCKJsoc0tn3h%3DJWW4u_hwV%2BHw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] how to train a CNN with feature vectors and not images?

2016-08-04 Thread Linas Vepstas
Hey,

If you want to port any algo to a GPU, or even make it run efficiently on a
CPU, you had better understand what caches are, and how they work.  This is
not a factoid about cpu design that you can just ignore: its fairly
central, as it is a bottleneck for many classes of computational problems.
 (It is also the reason why many other, most other algos run really really
really well on modern cpus, such as your cellphone.  Without caches, your
cellhone would be about as fast as a PC from about 20 years ago.)

--linas

On Thu, Aug 4, 2016 at 5:57 PM, Andi  wrote:

> Ty Linas!
> ->
>
> Am Dienstag, 2. August 2016 18:05:28 UTC+2 schrieb linas:
>>
>> Hi Andi,
>>
>> Ben has a good answer, and to emphasize, let me add this:   Think of the
>> atomspace as being a collection of trees.  The atoms are the nodes in the
>> tree.  Any one atom can appear in many trees, and so the whole thing is in
>> fact tangled into a big matt, like a rhizome
>> https://www.google.com/search?q=rhizome&tbm=isch
>>
>> What I already understood is that it is related to PROLOG-trees but with
> real-truth values and attention values.
>
>
>> The pattern matcher starts at one atom, and walks the rhizome, exploring
>> nearest neighbors, until all the entire neighborhood is explored (and a
>> match is found, or some other (local) computation is performed).
>>
>> The problem is that the atoms are scattered randomly through RAM, so when
>> the nearest neighbor walk happens, random locations in RAM get visited.
>> I'm guessing that there is a lot of cache-miss going on two:  If you have,
>> say, a CPU cache that is 8-way, 4-associative, then you could have maybe 32
>> atoms in the cache, but the chance that the 33rd atom will accidentally be
>> in one of the existing cache lines is just about zero, and so the graph
>> walk will have a 99.9% cache-miss rate.   (most graphs that get searched
>> have more that 32 atoms in them. )
>>
>> Ty for this precise technical information it will help me much by
> thinking about performance.
>
>>
>> Hmm, I have an idea -- I guess the atomsapce *could* keep track of
>> individual connected components  (create a bag of trees, which are
>> connected by one or more atoms) -- any given search is guaranteed to stay
>> in just one bag, and so maybe one could download the entire bag to the gpu
>> before starting a search.   Could work if the bags are small enough to fit
>> in GPU ram.
>>
>
> I had visions like that. Its a problem of mapping. this will be solved
> more in praxis than in theorie. We will see what can be done...
>
>
>>
>> Maybe allocation could be changed to improve cache locality: allocate
>> atoms so that they are more likely to be on the same cache line if they are
>> also connected.  But this becomes a hard, fiddly computer-science problem...
>>
>
> In the momend I am not so much familiar with caching technics. In my
> answer to Ben I wrote that maybe a SPARK-architecture could do it. As fare
> as I know and understand there is some room for cachecontrol...
>
> I think that after the current goals are achived - robots are doing well
> and good demos are there- than the project focus will come back to
> performance again. Maybe this will happen within about one year. If I get
> some help, from you and Ben , like I got here, from time to time - I
> hopefully will be there just in time!
> --Andi
>
>
>>
>> --linas
>>
>>
>> On Mon, Aug 1, 2016 at 3:26 PM, Andi  wrote:
>>
>>> Hello All,
>>> I do not want to disturb the ongoing work so an answer to this question
>>> is not urgent,
>>> but it will help me during my investigations within the next month.
>>>
>>> *What in the hell could prevent me to look at the Atomspace as a certain
>>> kind of Neuronal Network?*
>>>
>>> Please don't tell me:"Because it is a hypergraph" haha
>>>
>>> One of my aims is, try to port the whole thing, or some parts, to
>>> hardware. Maybe a bunch of some GPU's, PLD's and a CPU can do it. It seems
>>> that they are designing some interesting machines for Deep Learning - so
>>> maybe even nothing new has to be invented..
>>>
>>> For first steps I think it should at least be possible to use some
>>> GPU-power to do some work in parallel or is there really a theoretical
>>> barrier for paralleling some work that I cannot see in the moment?
>>>
>>> Please don't be afraid,  I know what kind of challenging task this is
>>> and would carry it on my own back. But maybe it is not so much work if the
>>> right approach is found...
>>> At least I want to investigate this - so any red lights blinking?
>>>
>>> --Andi
>>>
>>>
>>> Am Sonntag, 24. April 2016 07:07:25 UTC+2 schrieb Ben Goertzel:

 Indeed this is not an OpenCoggy question, but some of us may be able
 to help... is this dynamic data or instantaneous data you're trying to
 classify?



 On Sat, Apr 23, 2016 at 1:46 PM,   wrote:
 > Hi
 >
 > I have a dataset of mocap (motion caption) positions as vectors which
 I am
 > going to t

Re: [opencog-dev] Problems building Opencog

2016-08-04 Thread Linas Vepstas
ah, yes. You will need to pull and buld a new version of cogutils to fix
this. This is a very recent change.  Typically, changes like this are not
made very often, but it was needed, in this case.

Don't forget to rebuild the atomspace after doing cogutils

--linas

On Thu, Aug 4, 2016 at 5:54 PM, Kefeh Collins 
wrote:

> Hello,
>   Thanks a lot, it worked using " sudo make install ", so i have
> successfully built atomspace.
>
> i have another issues building opencog
>
> *make* :
> /home/kefeh/opencog/opencog/cogserver/server/CogServer.cc: In member
> function ‘virtual void opencog::CogServer::enableNetworkServer()’:
> /home/kefeh/opencog/opencog/cogserver/server/CogServer.cc:173:77: error:
> no matching function for call to ‘opencog::Config::get_int(const char
> [12], int)’
>  _networkServer = new NetworkServer(config().get_int("SERVER_PORT",
> 17001));
>
> ^
> In file included from /home/kefeh/opencog/opencog/
> cogserver/server/CogServer.cc:38:0:
> /usr/local/include/opencog/util/Config.h:83:9: note: candidate: int
> opencog::Config::get_int(const string&) const
>  int get_int(const std::string ¶meter_name) const;
>  ^
> /usr/local/include/opencog/util/Config.h:83:9: note:   candidate expects
> 1 argument, 2 provided
> /home/kefeh/opencog/opencog/cogserver/server/CogServer.cc: In member
> function ‘virtual void opencog::CogServer::serverLoop()’:
> /home/kefeh/opencog/opencog/cogserver/server/CogServer.cc:190:74: error:
> no matching function for call to ‘opencog::Config::get_int(const char
> [22], int)’
>   time_t cycle_duration = config().get_int("SERVER_CYCLE_DURATION", 100)
> * 1000;
>^
> In file included from /home/kefeh/opencog/opencog/
> cogserver/server/CogServer.cc:38:0:
> /usr/local/include/opencog/util/Config.h:83:9: note: candidate: int
> opencog::Config::get_int(const string&) const
>  int get_int(const std::string ¶meter_name) const;
>  ^
> /usr/local/include/opencog/util/Config.h:83:9: note:   candidate expects
> 1 argument, 2 provided
> /home/kefeh/opencog/opencog/cogserver/server/CogServer.cc: In member
> function ‘virtual void opencog::CogServer::loadSCMModules(std::vector<
> std::__cxx11::basic_string >)’:
> /home/kefeh/opencog/opencog/cogserver/server/CogServer.cc:724:44: error:
> no matching function for call to ‘opencog::Config::get(const char [12],
> const char [1])’
>  tokenize(config().get("SCM_PRELOAD", ""), 
> std::back_inserter(scm_modules),
>
> ^
> In file included from /home/kefeh/opencog/opencog/
> cogserver/server/CogServer.cc:38:0:
> /usr/local/include/opencog/util/Config.h:78:24: note: candidate: const
> string& opencog::Config::get(const string&) const
>  const std::string& get(const std::string ¶meter_name) const;
> ^
> /usr/local/include/opencog/util/Config.h:78:24: note:   candidate expects
> 1 argument, 2 provided
> opencog/cogserver/server/CMakeFiles/server.dir/build.make:158: recipe for
> target 'opencog/cogserver/server/CMakeFiles/server.dir/CogServer.cc.o'
> failed
> make[2]: *** [opencog/cogserver/server/CMakeFiles/server.dir/CogServer.cc.o]
> Error 1
> CMakeFiles/Makefile2:1090: recipe for target 
> 'opencog/cogserver/server/CMakeFiles/server.dir/all'
> failed
> make[1]: *** [opencog/cogserver/server/CMakeFiles/server.dir/all] Error 2
> Makefile:149: recipe for target 'all' failed
> make: *** [all] Error 2
>
>
>
>
> thanks
> Kefeh
>
>
> On Thu, Aug 4, 2016 at 8:01 PM, Linas Vepstas 
> wrote:
>
>> install must be performed as root, e.g. by using sudo:  `sudo make
>> install`
>>
>> --linas
>>
>> On Thu, Aug 4, 2016 at 6:19 AM, Kefeh Collins 
>> wrote:
>>
>>> Hello,
>>>
>>>thank you, i had a problem with my merge which i have resolved,
>>> the cmake warnings are fewer now
>>>
>>> *cmake .. *:
>>>
>>> CMake Warning at tests/persist/sql/odbc/CMakeLists.txt:67 (MESSAGE):
>>>   /usr/bin/psql: psql: FATAL: Peer authentication failed for user
>>>   "opencog_tester"
>>>
>>>
>>>
>>> CMake Warning at tests/persist/sql/odbc/CMakeLists.txt:82 (MESSAGE):
>>>   Postgres database not configured for unit tests! See the README!
>>>
>>>
>>> CMake Warning at tests/persist/sql/postgres/CMakeLists.txt:67 (MESSAGE):
>>>   /usr/bin/psql: psql: FATAL: Peer authentication failed for user
>>>   "opencog

Re: [opencog-dev] Problems building Opencog

2016-08-05 Thread Linas Vepstas
OK fixed. Also `sudo make isntall` here like elsewhere.

On Fri, Aug 5, 2016 at 9:56 AM, Kefeh Collins 
wrote:

> Hello,
>   i just pulled cogutils and on building it i still encounter problems
>
> *cmake ..*:
> CMake Warning (dev) at CMakeLists.txt:273 (ADD_CUSTOM_TARGET):
>   Policy CMP0037 is not set: Target names should not be reserved and should
>   match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
>   details.  Use the cmake_policy command to set the policy and suppress
> this
>   warning.
>
>   The target name "test" is reserved or not valid for certain CMake
> features,
>   such as generator expressions, and may result in undefined behavior.
> This warning is for project developers.  Use -Wno-dev to suppress it.
>
> *make install*:
>  -- Install configuration: "Release"
> -- Installing: /usr/local/include/opencog/util/ansi.h
> CMake Error at opencog/util/cmake_install.cmake:36 (file):
>   file INSTALL cannot copy file "/home/kefeh/cogutils/opencog/util/ansi.h"
> to
>   "/usr/local/include/opencog/util/ansi.h".
> Call Stack (most recent call first):
>   opencog/cmake_install.cmake:37 (include)
>   cmake_install.cmake:38 (include)
>
>
>
> Makefile:105: recipe for target 'install' failed
> make: *** [install] Error 1
>
> Regards
> Kefeh
>
>
> On Fri, Aug 5, 2016 at 12:13 AM, Linas Vepstas 
> wrote:
>
>> ah, yes. You will need to pull and buld a new version of cogutils to fix
>> this. This is a very recent change.  Typically, changes like this are not
>> made very often, but it was needed, in this case.
>>
>> Don't forget to rebuild the atomspace after doing cogutils
>>
>> --linas
>>
>> On Thu, Aug 4, 2016 at 5:54 PM, Kefeh Collins 
>> wrote:
>>
>>> Hello,
>>>   Thanks a lot, it worked using " sudo make install ", so i have
>>> successfully built atomspace.
>>>
>>> i have another issues building opencog
>>>
>>> *make* :
>>> /home/kefeh/opencog/opencog/cogserver/server/CogServer.cc: In member
>>> function ‘virtual void opencog::CogServer::enableNetworkServer()’:
>>> /home/kefeh/opencog/opencog/cogserver/server/CogServer.cc:173:77:
>>> error: no matching function for call to ‘opencog::Config::get_int(const
>>> char [12], int)’
>>>  _networkServer = new NetworkServer(config().get_int("SERVER_PORT",
>>> 17001));
>>>
>>> ^
>>> In file included from /home/kefeh/opencog/opencog/co
>>> gserver/server/CogServer.cc:38:0:
>>> /usr/local/include/opencog/util/Config.h:83:9: note: candidate: int
>>> opencog::Config::get_int(const string&) const
>>>  int get_int(const std::string ¶meter_name) const;
>>>  ^
>>> /usr/local/include/opencog/util/Config.h:83:9: note:   candidate
>>> expects 1 argument, 2 provided
>>> /home/kefeh/opencog/opencog/cogserver/server/CogServer.cc: In member
>>> function ‘virtual void opencog::CogServer::serverLoop()’:
>>> /home/kefeh/opencog/opencog/cogserver/server/CogServer.cc:190:74:
>>> error: no matching function for call to ‘opencog::Config::get_int(const
>>> char [22], int)’
>>>   time_t cycle_duration = config().get_int("SERVER_CYCLE_DURATION",
>>> 100) * 1000;
>>>^
>>> In file included from /home/kefeh/opencog/opencog/co
>>> gserver/server/CogServer.cc:38:0:
>>> /usr/local/include/opencog/util/Config.h:83:9: note: candidate: int
>>> opencog::Config::get_int(const string&) const
>>>  int get_int(const std::string ¶meter_name) const;
>>>  ^
>>> /usr/local/include/opencog/util/Config.h:83:9: note:   candidate
>>> expects 1 argument, 2 provided
>>> /home/kefeh/opencog/opencog/cogserver/server/CogServer.cc: In member
>>> function ‘virtual void opencog::CogServer::loadSCMMod
>>> ules(std::vector >)’:
>>> /home/kefeh/opencog/opencog/cogserver/server/CogServer.cc:724:44:
>>> error: no matching function for call to ‘opencog::Config::get(const char
>>> [12], const char [1])’
>>>  tokenize(config().get("SCM_PRELOAD", ""),
>>> std::back_inserter(scm_modules),
>>> ^
>>> In file included from /home/kefeh/opencog/opencog/co
>>> gserver/server/CogServer.cc:38:0:
>>> /usr/local/include/opencog/util/Config.h:78:24: note: candidate: const
>>>

[opencog-dev] Re: [hansonrobotics/HEAD] ROS NMPT Salience Detector: Degree Values and Salient Feature Tracking (#117)

2016-08-08 Thread Linas Vepstas
I have multiple issues with the so-called "saliency detector" in this pull
request: https://github.com/hansonrobotics/HEAD/pull/117 that I'm thinking
its better to discuss these in general, rather than simply in the context
of one pull request.

So:...

On Wed, Jul 27, 2016 at 10:06 AM, natnaelargaw 
wrote:

> the frequency of occurrence of a salient point with in a fixed turn around
> time t. Further more, this method norm


First off, the entire module seems to be mis-named -- it has nothing at all
to do with "saliency" -- rather, the device seems to be a motion-tracker.

Something can be highly salient, and completely still, but that is not what
this does, based on the description in the README.

Next, I'd like to see an API change. Put yourself in the place of opencog.
Suppose you were blind-folded,  and someone was whispering in your ear:
"hey, there is something important happening in the upper left. Oh wait,
now its less important. ... now its more important, again!  Oh and also,
there's something to your right, but its not very important."

What can you possibly do with that data?  WTF? How can I possibly build a
smart robot, when its effectively blind-folded, and has the above as
sensory input?

Thus, I suggest completely eliminating the "degree of saliency" measure
from the API, and replacing it by three things: the *size* of the moving
area, *how fast* its moving, and its color.

Now, blind-folded, you get the message: "its very small, its moving slowly,
and its black", and you might guess that its a fly buzzing around. "its big
and its green and its up high and its bouncing" and you might guess its a
helium balloon.  "its medium and its skin toned" and you might guess a
waving hand or arm.

Size speed and color should be easy to add, and would really be useful.

For bonus points, I'd like a spinning/waving measure.  So, for example, a
ceiling fan is "moving" but it never changes position. Similarly, a TV set
in the background is "moving", without changing its location.  Likewise,
anyone who is waving their hand -- the hand is moving but really stays in
the same place.This is very different from things the move and also
change position -- someone walking across the room is both moving and
changing position.

Another bonus measure: is it moving up, down, sideways?

There's four more bits of data that would be useful, unrelated to motion:
-- a general sense of how bright or dark the room is,
-- a general sense of the contrast in the image (sharp black/what, or
mostly washed-out grey)
-- sudden changes in overall lighting
-- average color for the entire visual field.

Sunlit rooms tend to have high contrast; lots of blue suggests the sky is
visible; a sudden change of lighting suggests that someone put their hand
over the camera.

Apparently, people cover the camera with their hands a lot during demos,
and I would really really like to know when that happens.

There's other stuff I'd like to see, that would allow the robot to actually
*learn*, but that is for a some future email.  The short version is that I
would like to be able to send the detector some little tiny snippets of
pseudo-code, and have it run that pseudo-code, and report when it triggers.
The pseudo-code would consist of little algorithmic combinations of speed,
color, movement, size, etc. and opencog would generate these and use them
as feature detectors.  I.e. rather than hard-coding (hand-coding) the
feature detectors, they would be generated dynamically, on the fly, by
opencog itself, rather than by human programmers.   This is an idea for the
future, though.  Important, but not urgent.

-- Linas

-- 
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/CAHrUA36VqAbpUC9stfFWgGge-P%2B7ojFYkHNxftJgN9knxQNpUg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Re: [hansonrobotics/HEAD] ROS NMPT Salience Detector: Degree Values and Salient Feature Tracking (#117)

2016-08-08 Thread Linas Vepstas
Oops, hit "send" on the email too soon.

Perhaps the #1 most important thing on the list is the "sudden change in
brightness" detector.   During the demos people either cover her camera or
get up in her face, and say things like "can you see me now", and I would
really like to have the robot know when this is happening -- this is
probably the #1 most important demoable feature, more important than
saliency, movement, anything else.

The #2 most important feature would be size-of-movement -- another thing
people do is to wave their hand directly in front of the camera:  From the
camera point of view, it would look like everything is moving everywhere --
the entire visual field is moving.  It doesn't have a location, because its
everywhere.  Again, this is a very important situation to recognize, and
relay to the robot.

Both of the above should be easy to implement, and are more important,
demo-wise, than "saliency".

--linas



On Mon, Aug 8, 2016 at 2:49 PM, Linas Vepstas 
wrote:

> I have multiple issues with the so-called "saliency detector" in this pull
> request: https://github.com/hansonrobotics/HEAD/pull/117 that I'm
> thinking its better to discuss these in general, rather than simply in the
> context of one pull request.
>
> So:...
>
> On Wed, Jul 27, 2016 at 10:06 AM, natnaelargaw 
> wrote:
>
>> the frequency of occurrence of a salient point with in a fixed turn
>> around time t. Further more, this method norm
>
>
> First off, the entire module seems to be mis-named -- it has nothing at
> all to do with "saliency" -- rather, the device seems to be a
> motion-tracker.
>
> Something can be highly salient, and completely still, but that is not
> what this does, based on the description in the README.
>
> Next, I'd like to see an API change. Put yourself in the place of
> opencog.  Suppose you were blind-folded,  and someone was whispering in
> your ear: "hey, there is something important happening in the upper left.
> Oh wait, now its less important. ... now its more important, again!  Oh and
> also, there's something to your right, but its not very important."
>
> What can you possibly do with that data?  WTF? How can I possibly build a
> smart robot, when its effectively blind-folded, and has the above as
> sensory input?
>
> Thus, I suggest completely eliminating the "degree of saliency" measure
> from the API, and replacing it by three things: the *size* of the moving
> area, *how fast* its moving, and its color.
>
> Now, blind-folded, you get the message: "its very small, its moving
> slowly, and its black", and you might guess that its a fly buzzing around.
> "its big and its green and its up high and its bouncing" and you might
> guess its a helium balloon.  "its medium and its skin toned" and you might
> guess a waving hand or arm.
>
> Size speed and color should be easy to add, and would really be useful.
>
> For bonus points, I'd like a spinning/waving measure.  So, for example, a
> ceiling fan is "moving" but it never changes position. Similarly, a TV set
> in the background is "moving", without changing its location.  Likewise,
> anyone who is waving their hand -- the hand is moving but really stays in
> the same place.This is very different from things the move and also
> change position -- someone walking across the room is both moving and
> changing position.
>
> Another bonus measure: is it moving up, down, sideways?
>
> There's four more bits of data that would be useful, unrelated to motion:
> -- a general sense of how bright or dark the room is,
> -- a general sense of the contrast in the image (sharp black/what, or
> mostly washed-out grey)
> -- sudden changes in overall lighting
> -- average color for the entire visual field.
>
> Sunlit rooms tend to have high contrast; lots of blue suggests the sky is
> visible; a sudden change of lighting suggests that someone put their hand
> over the camera.
>
> Apparently, people cover the camera with their hands a lot during demos,
> and I would really really like to know when that happens.
>
> There's other stuff I'd like to see, that would allow the robot to
> actually *learn*, but that is for a some future email.  The short version
> is that I would like to be able to send the detector some little tiny
> snippets of pseudo-code, and have it run that pseudo-code, and report when
> it triggers. The pseudo-code would consist of little algorithmic
> combinations of speed, color, movement, size, etc. and opencog would
> generate these and use them as feature detectors.  I.e. rather than
> hard-coding (hand-coding) the feature detect

Re: [opencog-dev] Question about LambdaLink

2016-08-08 Thread Linas Vepstas
That looks plausible, but I can't tell if that's really a PLN question, or
if its something the evaluator is supposed to handle.

Right now, the evaluator ignores  EquivalenceLink, it only handles
EqualLink and IdenticalLink.

When it evaluates this, it executes the two sides of the EqualLink, and
compares the result of the execution.   What you have written is not
executable, because there are no arguments supplied to either of the
lambdas.

So, instead, you seem to have something that PLN is supposed to handle --
whenever it sees one side of the equivalence, it can replace it by the
other side, during its search. Or something like that.   The semantics of
what you want to have happen here is unclear.  What is supposed to happen?

Anything that strays outside of the bounds of what is explicitly mentioned
on the wiki pages (i.e. http://wiki.opencog.org/w/LambdaLink) will almost
surely result in errors or lead down code paths where nothing is
implemented.

--linas


On Sat, Jul 30, 2016 at 10:18 AM, Roman Treutlein 
wrote:

> Hello,
>
> I just wanted to make sure my use of the LambdaLink inside the
> Lojban<->Atomese translator is correct.
>
> One use case is the following:
> EquivalenceLink
> LambdaLink
> VariableNode "1"
> EvaluationLink
> PredicateNode "pred"
> ListLink (VariableNode "1")
> LambdaLink
> VariableNode "2"
> ContextLink
> VariableNode "2"
> ConceptNode "Somthing" (Might be a EvaluationLink))
>
> I use this to define the PredicateNode "pred" so as to apply to things in
> whiches context  "Something" is true.
>
> Does this do what I want it to? If not is there a different way to do this?
>
> regards
> /roman
>
>
> --
> 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/99c37450-697a-4164-a3c5-80780584c05d%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA36NocZ0vdZFKVdp3XEopX%3D8OA6Y1op3g61SxwR2q6eb6Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Problems building Opencog

2016-08-09 Thread Linas Vepstas
Sadly, this is currently the "normal" situation. We've got a problem with
python sending its output to the wrong place; this needs to be fixed.  The
rest snow-ball from there.

--linas

On Tue, Aug 9, 2016 at 4:36 PM, Kefeh Collins 
wrote:

> Hello,
>  thanks that works, cogutil builds well, as well as atomspace but
> opencog wont build make test gives me these results
>
>
> *make test:*The following tests FAILED:
>   1 - AtomSpacePublisherModuleUTest (OTHER_FAULT)
>   8 - PythonModuleUTest (Failed)
>   9 - PyEvalUTest (OTHER_FAULT)
>  12 - ImportanceUpdatingAgentUTest (Failed)
> Errors while running CTest
> CMakeFiles/test.dir/build.make:57: recipe for target 'CMakeFiles/test'
> failed
> make[3]: *** [CMakeFiles/test] Error 8
> CMakeFiles/Makefile2:99: recipe for target 'CMakeFiles/test.dir/all' failed
> make[2]: *** [CMakeFiles/test.dir/all] Error 2
> CMakeFiles/Makefile2:106: recipe for target 'CMakeFiles/test.dir/rule'
> failed
> make[1]: *** [CMakeFiles/test.dir/rule] Error 2
> Makefile:197: recipe for target 'test' failed
> make: *** [test] Error 2
>
> Regards
> Kefeh
>
>
> On Fri, Aug 5, 2016 at 6:31 PM, Linas Vepstas 
> wrote:
>
>> OK fixed. Also `sudo make isntall` here like elsewhere.
>>
>> On Fri, Aug 5, 2016 at 9:56 AM, Kefeh Collins 
>> wrote:
>>
>>> Hello,
>>>   i just pulled cogutils and on building it i still encounter
>>> problems
>>>
>>> *cmake ..*:
>>> CMake Warning (dev) at CMakeLists.txt:273 (ADD_CUSTOM_TARGET):
>>>   Policy CMP0037 is not set: Target names should not be reserved and
>>> should
>>>   match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
>>>   details.  Use the cmake_policy command to set the policy and suppress
>>> this
>>>   warning.
>>>
>>>   The target name "test" is reserved or not valid for certain CMake
>>> features,
>>>   such as generator expressions, and may result in undefined behavior.
>>> This warning is for project developers.  Use -Wno-dev to suppress it.
>>>
>>> *make install*:
>>>  -- Install configuration: "Release"
>>> -- Installing: /usr/local/include/opencog/util/ansi.h
>>> CMake Error at opencog/util/cmake_install.cmake:36 (file):
>>>   file INSTALL cannot copy file "/home/kefeh/cogutils/opencog/util/ansi.h"
>>> to
>>>   "/usr/local/include/opencog/util/ansi.h".
>>> Call Stack (most recent call first):
>>>   opencog/cmake_install.cmake:37 (include)
>>>   cmake_install.cmake:38 (include)
>>>
>>>
>>>
>>> Makefile:105: recipe for target 'install' failed
>>> make: *** [install] Error 1
>>>
>>> Regards
>>> Kefeh
>>>
>>>
>>> On Fri, Aug 5, 2016 at 12:13 AM, Linas Vepstas 
>>> wrote:
>>>
>>>> ah, yes. You will need to pull and buld a new version of cogutils to
>>>> fix this. This is a very recent change.  Typically, changes like this are
>>>> not made very often, but it was needed, in this case.
>>>>
>>>> Don't forget to rebuild the atomspace after doing cogutils
>>>>
>>>> --linas
>>>>
>>>> On Thu, Aug 4, 2016 at 5:54 PM, Kefeh Collins 
>>>> wrote:
>>>>
>>>>> Hello,
>>>>>   Thanks a lot, it worked using " sudo make install ", so i have
>>>>> successfully built atomspace.
>>>>>
>>>>> i have another issues building opencog
>>>>>
>>>>> *make* :
>>>>> /home/kefeh/opencog/opencog/cogserver/server/CogServer.cc: In member
>>>>> function ‘virtual void opencog::CogServer::enableNetworkServer()’:
>>>>> /home/kefeh/opencog/opencog/cogserver/server/CogServer.cc:173:77:
>>>>> error: no matching function for call to ‘opencog::Config::get_int(const
>>>>> char [12], int)’
>>>>>  _networkServer = new NetworkServer(config().get_int("SERVER_PORT",
>>>>> 17001));
>>>>>
>>>>> ^
>>>>> In file included from /home/kefeh/opencog/opencog/co
>>>>> gserver/server/CogServer.cc:38:0:
>>>>> /usr/local/include/opencog/util/Config.h:83:9: note: candidate: int
>>>>> opencog::Config::get_int(const string&) const
>>>>>  int get_int(const std::string ¶meter_name) const;

Re: [opencog-dev] Question about LambdaLink

2016-08-10 Thread Linas Vepstas
Did you review this page:
http://wiki.opencog.org/wikihome/index.php/EquivalenceLink

Most of what is done there is done without the LambdaLink ... but then,
that wiki page was written before LambdaLink existed, and the vairable
scoping is implicitly assumed.

If you expect PLN to manipulate these structures, it would be wise to first
test PLN, and see if they actually work as expected.  They may not .. they
may be un-implemented.





On Wed, Aug 10, 2016 at 9:50 AM, Roman Treutlein 
wrote:

> Yes PLN is supposed to use this. In Lojban, there are
> so-called even-abstractors which take a relationship/sentence X and turn it
> into the predicate "arg1 is an event of X". This seems to be equivalent to
> saying "arg1 is a Context in which X happens/is true".
> This way PLN should be able to "understand" what exactly this predicate
> means.
>
> I might also want to use this to say that there are 2 equivalent
> Predicates but with changed argument orders.
>
> /roman
>
> On Monday, August 8, 2016 at 10:43:51 PM UTC+2, linas wrote:
>>
>> That looks plausible, but I can't tell if that's really a PLN question,
>> or if its something the evaluator is supposed to handle.
>>
>> Right now, the evaluator ignores  EquivalenceLink, it only handles
>> EqualLink and IdenticalLink.
>>
>> When it evaluates this, it executes the two sides of the EqualLink, and
>> compares the result of the execution.   What you have written is not
>> executable, because there are no arguments supplied to either of the
>> lambdas.
>>
>> So, instead, you seem to have something that PLN is supposed to handle --
>> whenever it sees one side of the equivalence, it can replace it by the
>> other side, during its search. Or something like that.   The semantics of
>> what you want to have happen here is unclear.  What is supposed to happen?
>>
>> Anything that strays outside of the bounds of what is explicitly
>> mentioned on the wiki pages (i.e. http://wiki.opencog.org/w/LambdaLink)
>> will almost surely result in errors or lead down code paths where nothing
>> is implemented.
>>
>> --linas
>>
>>
>> On Sat, Jul 30, 2016 at 10:18 AM, Roman Treutlein 
>> wrote:
>>
>>> Hello,
>>>
>>> I just wanted to make sure my use of the LambdaLink inside the
>>> Lojban<->Atomese translator is correct.
>>>
>>> One use case is the following:
>>> EquivalenceLink
>>> LambdaLink
>>> VariableNode "1"
>>> EvaluationLink
>>> PredicateNode "pred"
>>> ListLink (VariableNode "1")
>>> LambdaLink
>>> VariableNode "2"
>>> ContextLink
>>> VariableNode "2"
>>> ConceptNode "Somthing" (Might be a EvaluationLink))
>>>
>>> I use this to define the PredicateNode "pred" so as to apply to things
>>> in whiches context  "Something" is true.
>>>
>>> Does this do what I want it to? If not is there a different way to do
>>> this?
>>>
>>> regards
>>> /roman
>>>
>>>
>>> --
>>> 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/ms
>>> gid/opencog/99c37450-697a-4164-a3c5-80780584c05d%40googlegroups.com
>>> 
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>

-- 
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/CAHrUA35JZ8FO8H4z%2B_ONQVg3QiWTaUn%2BvEoodNV_3M%3DM1LpJ5w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Re: [hansonrobotics/HEAD] ROS NMPT Salience Detector: Degree Values and Salient Feature Tracking (#117)

2016-08-10 Thread Linas Vepstas
OK, well, if you just write a teensy sliver of code that simply turns the
head towards any direction where something "sufficiently salient" happened,
then sure, that makes for a livelier, more entertaining demo. And so maybe
that is worthwhile.

But it also keeps her at the "dumb robot" level, reacting to a stimulus
without any clue as to why -- its like a single-neuron circuit -- whenever
one end of the neuron gets tickled, the other end turns a motor.   I want
to move past single-neuron reactive circuitry.   I mean, doors that swing
out of your way when you approach them were were in all the supermarkets by
the 1960's -- turning your head to look at something "salient" is at about
the same level of sophistication.  Its been 50 years. Yes, get to that, but
then go farther.

--linas

On Tue, Aug 9, 2016 at 1:08 AM, Ben Goertzel  wrote:

> Hi LInas, many of your suggestions are good ones and should be added to
> the list
>
> However, the "visual saliency" term was not invented by us -- and the
> addition of this saliency detector was especially suggested by David H
> because in his prior work he has found similar code to be useful with
> his robots  So I guess I will trust him that it's a useful
> indicator to have, even though I agree with you that lots of other
> stuff is also useful
>
> The reason for adding a "Degree" was that without it, the saliency
> detector gave way too many false positives  Having a degree lets
> us tune a threshold denoting what is salient enough to bother doing
> anything about...
>
> ben
>
> On Mon, Aug 8, 2016 at 1:01 PM, Linas Vepstas 
> wrote:
> > Oops, hit "send" on the email too soon.
> >
> > Perhaps the #1 most important thing on the list is the "sudden change in
> > brightness" detector.   During the demos people either cover her camera
> or
> > get up in her face, and say things like "can you see me now", and I would
> > really like to have the robot know when this is happening -- this is
> > probably the #1 most important demoable feature, more important than
> > saliency, movement, anything else.
> >
> > The #2 most important feature would be size-of-movement -- another thing
> > people do is to wave their hand directly in front of the camera:  From
> the
> > camera point of view, it would look like everything is moving everywhere
> --
> > the entire visual field is moving.  It doesn't have a location, because
> its
> > everywhere.  Again, this is a very important situation to recognize, and
> > relay to the robot.
> >
> > Both of the above should be easy to implement, and are more important,
> > demo-wise, than "saliency".
> >
> > --linas
> >
> >
> >
> > On Mon, Aug 8, 2016 at 2:49 PM, Linas Vepstas 
> > wrote:
> >>
> >> I have multiple issues with the so-called "saliency detector" in this
> pull
> >> request: https://github.com/hansonrobotics/HEAD/pull/117 that I'm
> thinking
> >> its better to discuss these in general, rather than simply in the
> context of
> >> one pull request.
> >>
> >> So:...
> >>
> >> On Wed, Jul 27, 2016 at 10:06 AM, natnaelargaw <
> notificati...@github.com>
> >> wrote:
> >>>
> >>> the frequency of occurrence of a salient point with in a fixed turn
> >>> around time t. Further more, this method norm
> >>
> >>
> >> First off, the entire module seems to be mis-named -- it has nothing at
> >> all to do with "saliency" -- rather, the device seems to be a
> >> motion-tracker.
> >>
> >> Something can be highly salient, and completely still, but that is not
> >> what this does, based on the description in the README.
> >>
> >> Next, I'd like to see an API change. Put yourself in the place of
> opencog.
> >> Suppose you were blind-folded,  and someone was whispering in your ear:
> >> "hey, there is something important happening in the upper left. Oh
> wait, now
> >> its less important. ... now its more important, again!  Oh and also,
> there's
> >> something to your right, but its not very important."
> >>
> >> What can you possibly do with that data?  WTF? How can I possibly build
> a
> >> smart robot, when its effectively blind-folded, and has the above as
> sensory
> >> input?
> >>
> >> Thus, I suggest completely eliminating the "degree of saliency" measure
> >> from the API, and replacing it by three things: the *size* of t

[opencog-dev] What CYC has done wrong

2016-08-16 Thread Linas Vepstas
The below is an old presentation, from 2009, but its the first I've seen of
it.  Its long, I have not read it yet.   However, I suspect that it
probably says good things (I hope; else that would be something else that
CYC did wrong...)

http://c4i.gmu.edu/oic09/papers/Mistakes%20Were%20Made%20OIC%202009%20keynote.pdf

Everyone working on opencog theory should probably read it and memorize it
and apply those lessons to the things we do.

Thanks to Lukasz Stafiniak for pointing this out.

--linas

-- 
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/CAHrUA369vqLVG7xEx5vVS%2BASqtaKMNSVBc7S3rdxdU8gGgEFOQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] What CYC has done wrong

2016-08-16 Thread Linas Vepstas
So,
... the final analysis of what it did wrong is something else that it did
wrong?  Sigh.

--linas



On Tue, Aug 16, 2016 at 3:38 PM, Ben Goertzel  wrote:

> He's focusing on micro-level things they did wrong, but not
> confronting the possibility that making a huge handcoded KB is just
> the wrong thing to be doing...
>
> For instance he notes they have had to add 75 kinds of "in" to handle
> different sorts of "in" relationship ... but doesn't question whether
> it might be smarter to have the system instead learn various shades of
> "in", which could allow it to learn 1000s of context-specific senses
> not just 75 ...
>
> ben
>
>
>
> On Tue, Aug 16, 2016 at 1:30 PM, Linas Vepstas 
> wrote:
> > The below is an old presentation, from 2009, but its the first I've seen
> of
> > it.  Its long, I have not read it yet.   However, I suspect that it
> probably
> > says good things (I hope; else that would be something else that CYC did
> > wrong...)
> >
> > http://c4i.gmu.edu/oic09/papers/Mistakes%20Were%20Made%
> 20OIC%202009%20keynote.pdf
> >
> > Everyone working on opencog theory should probably read it and memorize
> it
> > and apply those lessons to the things we do.
> >
> > Thanks to Lukasz Stafiniak for pointing this out.
> >
> > --linas
> >
> > --
> > 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/CAHrUA369vqLVG7xEx5vVS%
> 2BASqtaKMNSVBc7S3rdxdU8gGgEFOQ%40mail.gmail.com.
> > For more options, visit https://groups.google.com/d/optout.
>
>
>
> --
> Ben Goertzel, PhD
> http://goertzel.org
>
> Super-benevolent super-intelligence is the thought the Global Brain is
> currently struggling to form...
>
> --
> 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/CACYTDBfej%2Bn9u6%3DSjVcZ5JOUjHo%3DG86EVRMiqu9PNP0SRXyTyg%
> 40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA36Nz3ZZ-8y%3DijdsLGo3Kyr_uG7uygLQc05_KfU%3DiXm1pw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] What CYC has done wrong

2016-08-20 Thread Linas Vepstas
Indeed. I just read through the slides now, and am quite surprised. He
never actually identifies what Cyc did wrong, and thus is unable to make
sugestions about what might work.  All of the issues that he mentions in
the slides became quite apparent to me, after using OpenCyc for a month or
so -- it was clear that it was very fragile, very inconsistent.  I
concluded that:

-- Its impossible for human beings to assemble a large set of
self-consistent statements that is bug-free.  There are simply too many
things to know; the system has to be able to automatically extract/convert
the needed relationships.

-- Essentially all common-sense logic cannot be converted into
crisp-logic.  Here's a Zen koan from Firesign Theatre: "Ben Franklin was
the only President of the United States who was *never* a President of the
United States."  Any system that takes a shallow, superficial mapping of
the words in that sentence will fail to understand the humor.  Cyc seemed
to always try to be as superficial, as close to the surface as possible,
and never attempted to encode deep knowledge. Without the ability to use
probability and/or fuzzy reasoning, one can't get the joke.

Two-thirds of the way through the presentation, Lenat does start talking
about pro-and-con reasoning, but somehow never quite takes the plunge into
probability: its as if he thought that simply taking a democratic vote of
pro and con statements is sufficient to determine truth -- but its not.

-- I do like a variation of the general concept of "micro-theories" that
Cyc uses, in the sense that there is a domain or context which is active,
in which all current thinking/speaking/deduction should happen in.   I also
like a related idea: the idea of "parallel universes" or "interpretations"
or "models(??)" or reality: during the course of a conversation (or during
the course of reasoning), one develops differing possible interpretations
of what is going on. These different interpretations will typically
contradict each-other, but will otherwise be reasonably self-consistent.
As additional evidence rolls in, some interpretations become untenable, and
must be discarded.  Other interpretations may simply become un-interesting,
simply because the conversations, the topic, has moved on, and the given
interpretation, although"true" and "self-consistent", does not offer any
insight into the current topic.  Attention-allocation must shift way from
such useless interpretations.

There is this sense of "contexts" both in Markov logic and in kripke
semantics: the machinery of Markov logic, although imperfect, does provide
a much more sophisticated way of combining pro vs. con evidence to
determine a "most-likely" interpretation.  I keep mentioning these two
things, rather than PLN, not because I beleive that they have better
probability formulas, but rather, because they provide mechanisms to
concurrently maintain multiple contradictory interpretations at once, and
eventually eliminate most of them, leaving behind a few that are the "most
likely".

I do believe that the above hint at how to avoid the mistakes of cyc --
some form of probabilistic reasoning and evidence is needed, and some way
to automate learning and discovery of novelty is needed.

Whatever. Gotta run...

--linas

On Fri, Aug 19, 2016 at 7:47 AM, Andi  wrote:

> ty, linas for this resource!
>
> To me it looks like they do not have and never had an idea about how to do
> it right...
>
> Seems they hoped that something intelligent could emerge form a knowledge
> base just if it is big enough. IMHO this is completely worng. The
> possibility of emergence exists just if the space in which this emergence
> occures contains  the ability of auto organisation (not self organisation,
> because at this stage there is no self that could do organisation).
>
>
>
>
>
>
>
> Am Dienstag, 16. August 2016 23:12:32 UTC+2 schrieb linas:
>>
>> So,
>> ... the final analysis of what it did wrong is something else that it did
>> wrong?  Sigh.
>>
>> --linas
>>
>>
>>
>> On Tue, Aug 16, 2016 at 3:38 PM, Ben Goertzel  wrote:
>>
>>> He's focusing on micro-level things they did wrong, but not
>>> confronting the possibility that making a huge handcoded KB is just
>>> the wrong thing to be doing...
>>>
>>> For instance he notes they have had to add 75 kinds of "in" to handle
>>> different sorts of "in" relationship ... but doesn't question whether
>>> it might be smarter to have the system instead learn various shades of
>>> "in", which could allow it to learn 1000s of context-specific senses
>>> not just 75 ...
>>>
>>> ben
>>>
>>>
>>>
>&

Re: [opencog-dev] opencog with crawled data

2016-08-23 Thread Linas Vepstas
On Tue, Aug 23, 2016 at 9:59 AM,  wrote:

> Hi all,
>
> I am new to this Opencog. If my questions sound stupid, please forgive me.
> I thought of using crawled text data as a knowledge source for opencog.
>

Sure


> I guess the following steps can achieve that(?!).
>
>1. Running "batch-process.sh" which produces output as cff.
>
> Yes.  Not a strictly neccessary step, but handy, to avoid having to
re-parse your data over and over.

>
>1. Running  "src/perl/cff-to-opencog.pl"  perl script. It coverts cff
>into hypergraphs, which is understandable by opencog.
>
> Yes. It may be bit-rotted, as it is not used regularly.  I think ManHin
played with this, while ingesting simple-english wikipedia.


>
>1. But how can i incorporate these hypergraphs into opencog.? Is there
>any way?
>
> Just send them into the cogserver. One way to do this is to netcat them to
port 17001.  There are other ways, to, e.g. directly reading them, as
files, at the guile prompt.

>
>1. Are these generated hypergraphs in the form of .scm file.?
>
> Yes.

>
>1.  (If so, then i  guess, i can load these files into Postgres.
>
> No. postgres is SQL, but scm is scheme.

>
>1. From database i can load atoms into atomspace(?!)).
>
> yes, but you'd need to set that up first. That is a bit harder, and is a
step you can skip at this point.

>
>1. I also read about "relex web crawler".
>
> It does not exist.

>
>1.  It automatically add the relex output to HGDB,
>
> That' never worked.

>
>1. where it automatically becomes a new atom. Is the crawler usable
>now?
>
> Nope. It was a bad idea then, its still a bad idea now.

>
> Thanks in advance!
>

The part you are missing is this:

It is not hard to get data into opencog, but once you have done so, what
will you do with it?

You should maybe answer this question for yourself, as you go along.

--linas

> --
> 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/0745df89-51bf-423b-bf45-6928a4a415dd%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA36wqRJmMNLhysZ7%2BJD06rRS0N8xFnL9E7quUQMURs0LBA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] What CYC has done wrong

2016-08-24 Thread Linas Vepstas
gt; -- Essentially all common-sense logic cannot be converted into
>> crisp-logic.  Here's a Zen koan from Firesign Theatre: "Ben Franklin was
>> the only President of the United States who was *never* a President of the
>> United States."  Any system that takes a shallow, superficial mapping of
>> the words in that sentence will fail to understand the humor.  Cyc seemed
>> to always try to be as superficial, as close to the surface as possible,
>> and never attempted to encode deep knowledge. Without the ability to use
>> probability and/or fuzzy reasoning, one can't get the joke.
>>
>> Two-thirds of the way through the presentation, Lenat does start talking
>> about pro-and-con reasoning, but somehow never quite takes the plunge into
>> probability: its as if he thought that simply taking a democratic vote of
>> pro and con statements is sufficient to determine truth -- but its not.
>>
>> -- I do like a variation of the general concept of "micro-theories" that
>> Cyc uses, in the sense that there is a domain or context which is active,
>> in which all current thinking/speaking/deduction should happen in.   I also
>> like a related idea: the idea of "parallel universes" or "interpretations"
>> or "models(??)" or reality: during the course of a conversation (or during
>> the course of reasoning), one develops differing possible interpretations
>> of what is going on. These different interpretations will typically
>> contradict each-other, but will otherwise be reasonably self-consistent.
>> As additional evidence rolls in, some interpretations become untenable, and
>> must be discarded.  Other interpretations may simply become un-interesting,
>> simply because the conversations, the topic, has moved on, and the given
>> interpretation, although"true" and "self-consistent", does not offer any
>> insight into the current topic.  Attention-allocation must shift way from
>> such useless interpretations.
>>
>> There is this sense of "contexts" both in Markov logic and in kripke
>> semantics: the machinery of Markov logic, although imperfect, does provide
>> a much more sophisticated way of combining pro vs. con evidence to
>> determine a "most-likely" interpretation.  I keep mentioning these two
>> things, rather than PLN, not because I beleive that they have better
>> probability formulas, but rather, because they provide mechanisms to
>> concurrently maintain multiple contradictory interpretations at once, and
>> eventually eliminate most of them, leaving behind a few that are the "most
>> likely".
>>
>> I do believe that the above hint at how to avoid the mistakes of cyc --
>> some form of probabilistic reasoning and evidence is needed, and some way
>> to automate learning and discovery of novelty is needed.
>>
>> Whatever. Gotta run...
>>
>> --linas
>>
>> On Fri, Aug 19, 2016 at 7:47 AM, Andi  wrote:
>>
>>> ty, linas for this resource!
>>>
>>> To me it looks like they do not have and never had an idea about how to
>>> do it right...
>>>
>>> Seems they hoped that something intelligent could emerge form a
>>> knowledge base just if it is big enough. IMHO this is completely worng. The
>>> possibility of emergence exists just if the space in which this emergence
>>> occures contains  the ability of auto organisation (not self organisation,
>>> because at this stage there is no self that could do organisation).
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Am Dienstag, 16. August 2016 23:12:32 UTC+2 schrieb linas:
>>>>
>>>> So,
>>>> ... the final analysis of what it did wrong is something else that it
>>>> did wrong?  Sigh.
>>>>
>>>> --linas
>>>>
>>>>
>>>>
>>>> On Tue, Aug 16, 2016 at 3:38 PM, Ben Goertzel 
>>>> wrote:
>>>>
>>>>> He's focusing on micro-level things they did wrong, but not
>>>>> confronting the possibility that making a huge handcoded KB is just
>>>>> the wrong thing to be doing...
>>>>>
>>>>> For instance he notes they have had to add 75 kinds of "in" to handle
>>>>> different sorts of "in" relationship ... but doesn't question whether
>>>>> it might be smarter to have the system instead learn various shades of
>>>>> "in", which could allow it to learn 1000s of co

Re: [opencog-dev] What CYC has done wrong

2016-08-24 Thread Linas Vepstas
On Mon, Aug 22, 2016 at 11:33 PM, Jan Matusiewicz  wrote:

> People could have a long discussion about the possible outcome. I wonder
> how would NARS, OpenCog or CYC respond if given such a riddle with 10 nice
> and a cat. Can anyone predict/easily check it?
>

There are multiple differences between these systems.

* CYC uses crisp boolean logic, and facts are entered by humans into its
knowledge-base.

* NARS uses a certain kind of fuzzy, imprecise logic, combining float pt
values using certain specific formulas.  I'm not sure how they build their
knowledge base -- but I believe that facts are extracted by reading text.

* OpenCog uses a probabilistic logic, combining float pt values using
certain specific formulas.  However, I designed the system so that it
should be "easy" to play with different kinds of formulas -- i.e. you could
implement the NARS formulas in the opencog framework, and this should be
fairly easy to do.  Ben dislikes the NARS formulas, and perhaps he's right
that the PLN formulas are better. I don't care, because the software allows
these formulas to be tweaked, and they will be, in the upcoming years.

OpenCog builds its knowledge base by reading text, i.e. "by learning",
although its ability to do so is still very primitive and crude and
broken-ish.

CYC probably "knows" a lot about cats, because in the last 30 years, a
bunch of humans have probably coded a lot of knowledge about cats into the
CYC knowledge-base.   I doubt it can solve the box+cats+mice problem,
though.

NARS -- no idea how much it knows about cats.

OpenCog -- we do not have any publicly available knowledgebase for
OpenCog.  We've build a few, over the years, and there's probably something
about cats in some of them, maybe.  We haven't focused on accumulating a
knowledgebase, because we haven't had the infrastructure to do much with
one.  I hope this will change "real soon now"

--linas




>
> On Tue, 23 Aug 2016 05:01 Ed Pell,  wrote:
>
>>
>> I like Pei Wang's NARS approach it allows many outcomes with varying
>> probabilities. As a human reasoning about the cat and mice I think most
>> likely cat eats one or more mice. Second most likely cat jumps out of box
>> it was thrown in. Third cat attacks mice chaos ensues, the box is tipped
>> over the mice flee the cat has a ball and may or may not eat one mouse.
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "opencog" group.
>> To unsubscribe from this topic, visit https://groups.google.com/d/
>> topic/opencog/y--WRlIxf3s/unsubscribe.
>> To unsubscribe from this group and all its topics, 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/1c51dff8-00bd-4a2a-8df8-3cf0642ef24f%40googlegroups.com
>> 
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> 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/CA%2B2nBRsH%2B_4KtxHGzvoUBaaqYFA9JstkUyh_
> trZZ-iHdf-Z5BA%40mail.gmail.com
> 
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA36hYR3yLSbFigxN3W4koMq8FZn%2B0PJJisht95MYGYGe2Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] What CYC has done wrong

2016-08-24 Thread Linas Vepstas
On Tue, Aug 23, 2016 at 7:05 PM, Ed Pell  wrote:

> All three of my answers did not come from inference. They came from a
> lifetime of experience with cats, boxes, and mice. It was 90% memory bases
> with maybe 10% logic/inference to gue the pieces together.
>

I suppose. A lot of inference/deduction is subconscious.  The word "cat"
evokes a huge number of mental images, in a human.  I sketched the computer
equivalent of this in the other email -- "evoking an image" is actually an
exploration of a connected graph of factoids. We can quibble about whether
this is knowledge or memory or inference -- there are algorithmic
trade-offs.

--linas

> --
> 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/201f0e05-a2a9-4b74-84d4-b0074555fe67%40googlegroups.com
> 
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA36DRabD5ZV%3DuCj91puAV-QKwrwTfUDYBoYTfopyqViQiA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] What CYC has done wrong

2016-08-24 Thread Linas Vepstas
On Tue, Aug 23, 2016 at 7:20 PM, Noah Bliss  wrote:

> With enough data, Cogprime should be able to make at least one guess which
> accounted for variables such as the cats age, when it last ate, how many
> mice, etc. I am confident it could do so based on how critically engrained
> pattern matching is in its design. Given enough contextual data such as
> observing cats eat nice,, knowing cats are mammals, knowing mammals only
> need to eat until they are full, etc. drawing a reasonable conclusion
> should be no major stretch for the system. That recent embodiment example
> in Minecraft posted a few weeks ago (the one with multiple bots, keys,
> chests, and animals) demonstrated the system's ability to assume truths
> based on fuzzy but similar observations. Of course, the variables it
> accounts for in its prediction would have to be variables it knows may have
> impact. E.g. if it had never seen a cat eat a mouse, it may not assume that
> it would eat mice in this instance.
>
>
> Tl;dr. I believe we have a solid contender so long as we stick to the
> basis of patterns and sufficiently educate our system both explicitly and
> through its own observations.
>

Thanks Noah!

--linas

>
> --
> 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/b40a25d7-a3a9-4406-8ae8-ee54fb025462%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA35YO3gA7gtQ8XefhvqvM328JbWO8e8NviKAdbYV8Q%3D1ag%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: opencog with crawled data

2016-08-24 Thread Linas Vepstas
Hi Vishnu,

Not sure how to reply to your message.   We have all sorts of half-finished
projects, and I'm not sure which one to steer your towards.  Improving chat
in all sorts of different ways is a big priority.

--linas

On Wed, Aug 24, 2016 at 4:46 AM,  wrote:

> Thanks Linas for the Reply!
>
> Once i have the data in opencog, I have the following ideas and i think,
> it is doable(?!):
>
>
>1.  Probably play with Pattern Mining (Using Moses, or doing Frequent
>Pattern Mining) which i read from "Engineering General Intelligence".
>2.  Using this crawled data as a knowledge source for chatbot
>demonstration. But I also think that, WSD, Reasoning, and other some
>components are not yet integrated. Still the chatbot learns something from
>the data? Do you think, is it worth trying ?
>
> I saw some discussions for embedding deep learning architecture (TensorFlow
> ?) into Opencog.  Is this idea still in Progress?
>
>
> Thanks and regards,
> Vishnu
>
> --
> 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/0fee8ccf-3b59-40f7-9f9a-7494e3962a64%40googlegroups.com
> 
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA34DmpHJgxYrp4ktEfvBTNDCRvHZdwfV4AucRaCXA-FnwA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] What CYC has done wrong

2016-08-25 Thread Linas Vepstas
Csecz Jan,

On Thu, Aug 25, 2016 at 2:05 AM, Jan Matusiewicz 
wrote:

> Hi Linas,
> Thank you for detailed explanations about evaluating graph of factoids.
> Surely it may reach some conclusion in this way. However, when I think
> about this example I create a simple model in which the cat's hunger is a
> variable which is constantly decreased by eating mice. When the cat is
> satiated it stops eating mice. It hunts later one mouse each time it is
> hungry. Can OpenCog create such models of situation with variables?
>

In principle, yes; in practice, I don't think anyone has done so, not even
as an example or demo. It actually would be a worth-while example -- i.e.
create a very simple atomspace, representing a sequence of points-in-time
vs. hunger, and have a "no longer hungry" state trigger some action.
Excellent task for someone trying to learn the system, as it will require
some deeper understanding and some invention and possibly some bug fixes.

OpenCog does have a TimeServer. Its a bit raw, under-utilized, probably
buggy, and certainly incomplete. The intent is that the TimeServer can
speed-up and automate time-relative queries, such as "before", "after",
"same time".

There is no built-in system for automating or speeding up any "when the
threshold of this drops below some level, trigger something".  We haven't
advanced to needing something like this yet.

Re; below: we do have a SpaceServer, which currently can deal with "near",
"far", "closer", "next to" type relationships.  There is no in-built system
form modelling the interiors or rooms.

There is a proposal to extend the SpaceServer to handle OctTrees, which in
principle would allow it to model walls, corridors, nooks, open sky,
fences, etc. however, no one has used it for that purpose yet, not even in
a demo or an example. This would be another good demo to write.

The space server does (or did??) interop with the MineCraft backend. Not
sure how.

Note that neither the space server nor the time server are needed to
represent space and time in opencog. They are there to optimize
performance, only.  You can model space and time just fine with atoms. It
just won't be very fast or efficient.   This whole area needs work.

--linas

>
> Imagination is also the ability to mentally put objects in space. Suppose
> a box has more complicated structure with some nooks and crannies inside.
> If I draw the scheme of a box with size and initial positions of mice and
> cat marked as well, a human could imagine(based on experience of watching
> Tom&Jerry :) ) where the mice will hide, will they be fast enough and if
> cat's legs are long enough to reach hidden mice. Can AI invent such
> simulations?
>
> On Thu, Aug 25, 2016 at 9:10 AM, Linas Vepstas 
> wrote:
>
>>
>>
>> On Tue, Aug 23, 2016 at 7:20 PM, Noah Bliss  wrote:
>>
>>> With enough data, Cogprime should be able to make at least one guess
>>> which accounted for variables such as the cats age, when it last ate, how
>>> many mice, etc. I am confident it could do so based on how critically
>>> engrained pattern matching is in its design. Given enough contextual data
>>> such as observing cats eat nice,, knowing cats are mammals, knowing mammals
>>> only need to eat until they are full, etc. drawing a reasonable conclusion
>>> should be no major stretch for the system. That recent embodiment example
>>> in Minecraft posted a few weeks ago (the one with multiple bots, keys,
>>> chests, and animals) demonstrated the system's ability to assume truths
>>> based on fuzzy but similar observations. Of course, the variables it
>>> accounts for in its prediction would have to be variables it knows may have
>>> impact. E.g. if it had never seen a cat eat a mouse, it may not assume that
>>> it would eat mice in this instance.
>>>
>>>
>>> Tl;dr. I believe we have a solid contender so long as we stick to the
>>> basis of patterns and sufficiently educate our system both explicitly and
>>> through its own observations.
>>>
>>
>> Thanks Noah!
>>
>> --linas
>>
>>>
>>> --
>>> 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/ms
>>> gid/opencog/b40a

Re: [opencog-dev] What CYC has done wrong

2016-08-25 Thread Linas Vepstas
Hi Ed,

Yeah, well, there is opencog (cog prime??) the abstract architecture, and
opencog the actual code base. I presume that the abstract architecture can
be mapped to various nifty algos. (e.g. scatter-gather map-reduce type
broadcasting that you allude to)  although figuring out how to do this well
is not easy (we've tried).  After that, how to get that into the current
code-base is a rather different challenge.

--linas

On Thu, Aug 25, 2016 at 8:43 PM, Ed Pell  wrote:

> Hi Linas, I believe we are basically in agreement. But I will comment
> anyway. I agree that inference and evoking an image give the same
> functional result. Inference by step by step traversing many serial nodes
> is slow. Evoking an image by broadcasting "cat" to the whole memory system
> and potentiating the "cat" related entries followed by broadcasting "mice"
> and super potentiating (or triggering) the relevant entries. The first can
> take thousands of time steps, the second takes about two time steps. Yes,
> additional steps to deal with the several memories thrown up.
>
> I like "compute close to memory" solutions.
>
> Ed
>
> On Thursday, August 25, 2016 at 1:08:35 AM UTC-4, linas wrote:
>>
>>
>>
>> On Tue, Aug 23, 2016 at 7:05 PM, Ed Pell  wrote:
>>
>>> All three of my answers did not come from inference. They came from a
>>> lifetime of experience with cats, boxes, and mice. It was 90% memory bases
>>> with maybe 10% logic/inference to gue the pieces together.
>>>
>>
>> I suppose. A lot of inference/deduction is subconscious.  The word "cat"
>> evokes a huge number of mental images, in a human.  I sketched the computer
>> equivalent of this in the other email -- "evoking an image" is actually an
>> exploration of a connected graph of factoids. We can quibble about whether
>> this is knowledge or memory or inference -- there are algorithmic
>> trade-offs.
>>
>> --linas
>>
>>>
>>>
>>

-- 
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/CAHrUA364p%2BBqvxXFstnYFe3HZiGpMdpTYgp0iRyvZQ8OfkN%2B-Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: opencog with crawled data

2016-08-26 Thread Linas Vepstas
On Fri, Aug 26, 2016 at 8:36 AM,  wrote:

>
> Thanks Linas for your reply. Actaully, it guides me well !! :-)
> One more question!
>  My data has timestamps and latitude, longitude info along with text.  Is
> it still possible to get the data into opencog?
>

Sure. You would have to write some new code to do this.  Every sentence is
tagged with a SentenceNode to identify it. You would have to write some
code to generate the following:

(EvaluationLink
(PredicateNode "timestamp, lat and long")
(ListLink
(TimeNode "Fri Aug 26 18:18:56 CDT 2016")
(ConceptNode "51.9244° N")
(ConceptNode "4.4777° E")
))



> Can I still be able to convert that into .scm  file?
>

as above.


>  Is Pattern Miner tailored to handle such data?
>

? This is a non-sequiter question.   The pattern miner looks for patterns,
in a very generic way.  Don't know what it might spot.   The above is just
some arbitrary pattern.  Maybe the pattern miner will discover that a lot
of your sentences that have certain words in them always come from the same
latitude. Who knows.

--linas


>> Regards,
>>
> VishnuPriya
>
> --
> 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/5188f4ef-2878-48bf-af13-a0e8847408ba%40googlegroups.com
> 
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA372N0sEbGdtjQHv428rk4MKd59y-_smtQXWObUdfmiMqQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: opencog with crawled data

2016-08-26 Thread Linas Vepstas
Oops I forgot to add the sentence node:

(EvaluationLink
(PredicateNode "sentencenode, timestamp, lat and long")
(ListLink
(SentenceNode "abc123-456-def")
(TimeNode "Fri Aug 26 18:18:56 CDT 2016")
(ConceptNode "51.9244° N")
(ConceptNode "4.4777° E")
))

But you could also do this:

(EvaluationLink
(PredicateNode "sentence and location")
(ListLink
 (SentenceNode "abc123-456-def")
 (EvaluationLink
 (PredicateNode "timestamp, lat and long")
 (ListLink
 (TimeNode "Fri Aug 26 18:18:56 CDT 2016")
(ConceptNode "51.9244° N")
   (ConceptNode "4.4777° E")
)))

which allows you to use the same location in multiple sentences.  You can
invent other formats too.

--linas

On Fri, Aug 26, 2016 at 6:25 PM, Linas Vepstas 
wrote:

>
>
> On Fri, Aug 26, 2016 at 8:36 AM,  wrote:
>
>>
>> Thanks Linas for your reply. Actaully, it guides me well !! :-)
>> One more question!
>>  My data has timestamps and latitude, longitude info along with text.  Is
>> it still possible to get the data into opencog?
>>
>
> Sure. You would have to write some new code to do this.  Every sentence is
> tagged with a SentenceNode to identify it. You would have to write some
> code to generate the following:
>
> (EvaluationLink
> (PredicateNode "timestamp, lat and long")
> (ListLink
> (TimeNode "Fri Aug 26 18:18:56 CDT 2016")
> (ConceptNode "51.9244° N")
> (ConceptNode "4.4777° E")
> ))
>
>
>
>> Can I still be able to convert that into .scm  file?
>>
>
> as above.
>
>
>>  Is Pattern Miner tailored to handle such data?
>>
>
> ? This is a non-sequiter question.   The pattern miner looks for patterns,
> in a very generic way.  Don't know what it might spot.   The above is just
> some arbitrary pattern.  Maybe the pattern miner will discover that a lot
> of your sentences that have certain words in them always come from the same
> latitude. Who knows.
>
> --linas
>
>
>>> Regards,
>>>
>> VishnuPriya
>>
>> --
>> 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/ms
>> gid/opencog/5188f4ef-2878-48bf-af13-a0e8847408ba%40googlegroups.com
>> <https://groups.google.com/d/msgid/opencog/5188f4ef-2878-48bf-af13-a0e8847408ba%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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/CAHrUA341LA-33c-6%2Bhrus%3DQRhwX8wNLPj6TvrmhPDc1Pfv58Kg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] What CYC has done wrong

2016-08-27 Thread Linas Vepstas
On Sat, Aug 27, 2016 at 1:33 AM, Jan Matusiewicz 
wrote:

> Thank you very much for your explanations and interesting discussion. I
> understand that TimeSpaceServer could be potentially used for solving mice
> and cat problem with complex box structure. What bother me, however is that
> treatment of space is different than in human cognition, too much
> secondary. Small child would first create concept of cat or mouse and
> their behavior (running, playing) based on images and videos (both seen
> directly or on computer screen). Only later they may form it into
> predicates like "every mouse is a mammal". Predators also learn this way
> about classification and behavior of their victims.
>

Yes. As you state, video and image processing is very complex.

Other emails did sketch a way of allowing video and audio to become
first-class, in opencog.  The thought experiment goes something like this:

Suppose you had a single-bit visual sensor to the world, and a single-bit
audio sensor: these returned only brightness, and loudness.  After
observing the world with these, you might be able to deduce that sometimes,
sudden changes in brightness and loudness are correlated.  The reason I
picked this one-bit example is that its straight-forward to envision how to
encode this input into opencog atoms, and how to use the pattern miner to
discover correlations.

But of course, one bit is not enough.  Suppose instead, one had a visual
field with thousands or millions of pixels, and an audio sensor with  good
dynamic range and time resolution.  Imagine that, from somewhere (e.g.
hand-coded, by a human) you had some filters: for example, a loudness
filter that triggers whenever the sound volume changes by 10 decibels in
1/10th of a second.   Another filter that triggers only for high
frequencies. A third filter the triggers only in a narrow band near 440 Hz.
Imagine a decent collection of these.

Imagine also a similar set for video: a filter that triggers only if the
left side of the screen is a lot brighter than the right side. A filter
that triggers only if the upper half of the view is a lot bluer than the
bottom half, and so on.

This collection of filters are each pumping out a set of atoms into the
atomspace.  One can use pattern mining to search for correlations between
events. For example, this could be done by having a genetic-programming
process, such as the MOSES "knob-turning" tree-mutation generator, randomly
combine these various inputs into some program tree:  e.g. "if the top half
of the visual field is blue, and there is a sudden change in volume in a
narrow band near 440 Hz, then trigger an event".  Clearly, this event will
almost never trigger "in real life", and so we discard it (because the
novelty scoring for the pattern miner says that this is a boring event).
However, there may be other events that do seem significant, that do
trigger: e.g. a sudden change of brightness, coupled to the upper-half
being blue, coupled to a change in audio volume.  This is an event that
would trigger: we call it "walking out of a door in the daytime".

Because it triggered, it is subject to the reinforcement learning.  We want
to keep this particular combination around.  In practice, there is a
performance problem: Its highly inefficient to evaluate the moses tree that
generates this input, and do so 10 times a second.  So once we decide to
keep a particular pattern, we can (we should, we must) compile it down to
some fairly efficient assembly that could run on some GPU. Technically
challenging, but conceptually easy: the program tree already encodes
everything we need to know for this stimulus, and so "compiling" really is
the right word to describe what has to happen.

Once compiled, cpu resources are freed up to explore other combinations:
what correlates well with going out of doors?  Perhaps the leg motors were
turning when the moving-out-of-doors event happened??  Perhaps there is
some annoying human being asking "hey what just happened just now?"

Clearly, this kind of random exploration of correlated sensory events
requires absolutely huge and fantastic amounts of CPU time, and training
time. Clearly, in my description above, I'm stealing ideas partly from
genetic programming (i.e. moses) but also from neural nets (reinforcement)
 Building something fast and efficient that can do the above would be a
giant task, and when completed, it might not even work very well. It might
work poorly.

One reason that people are infatuated with deep-learning neural nets is
that NN's provide a concrete, achievable architecture that is proven to
work, and is closely described in thousands of papers and books, so any
joe-blow programmer can sit down and start coding up the algorithms, and
get some OK results. By contrast, what I describe above is unclear,
hand-wavy, is missing specific formulas and adequate pseudo-code, so who
the heck is smart enough to try coding that up, based on such a short
sketch?  Add to that the risk t

Re: [opencog-dev] Docker Container

2016-08-28 Thread Linas Vepstas
Please take a look at https://github.com/opencog/docker

On Sun, Aug 28, 2016 at 2:33 PM, Ed Pell  wrote:

> Please consider distributing Opencog in a docker container.
>
> --
> 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/b755053a-3083-4b2d-a714-d7b96cd41890%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA36YLqdpWN8RqedKoEbJM_-WR4OHB5cg5znPTXRaFX%2BRVw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] What CYC has done wrong

2016-08-28 Thread Linas Vepstas
On Sun, Aug 28, 2016 at 2:30 PM, Ed Pell  wrote:

> Linas, does it pump into the atomspace or into a working-memory-atomspace?
>
It does not seem like information you want to retain for the long term.
>

Right. We don't have any particularly clear-cut answer on this; it remains
an issue to be further developed.  Atoms places in the space-time server do
NOT go in the main atomspace, thus avoiding the overhead of indexing there.
However, they are necessarily indexed in the octree, which incurs a
different kind of overhead.

In principle, one can run multiple atomspaces, and multiple cogservers; in
practice, this is only infrequently done (with one notable exception: the
pattern matcher creates working-memory-atomspaces which get created, used
and discarded in fractions of a millisecond).


> Yes! Predefined filters. Biological neural networks have the advantage of
> preexisting filters discovered by evolution over hundreds of millions of
> years. Both NN and symbolic approaches will need preexisting filters.
>

Anything that is predefined and hard-coded can be "easily" wrapped in an
atom.  (for example, as a coding/implementation example, the ParallelLink
creates threads, and JoinLink joins them. They're to itty bitty C++ classes
that interact with the operating system to do things.)

Ben has long been excited about creating new atoms that (for example) wrap
up TensorFlow and/or theano or other GPU-based fast solvers. Still would be
a good project.

Perhaps screwing around with these could provide the kind of bandwidth
needed for audio or video processing.


> Maybe given enough time both could "evolve" the needed filters but I know
> we do not want to wait that long.
>

Well, how long is that?  As a bootstrapping problem? Clearly, it is
important, in the long run, to make sure the system can abstract and learn
on its own: we cannot possibly hard-code the contents of the system.   This
goes back to the CYC's core mistake: the attempt to hard-code the
knowledge-base by humans.

You will have another, different CYC-type failure, if you attempt to
hand-code (by humans) the visual subsystem.  Automation is kind-of the
whole point of deep learning, etc.

--linas

>
>
> The filters can be software defined filters feeding into neural networks.
> They can be neural network filters feeding into software. And yes the other
> two combinations.
>
> Ed
>
> On Saturday, August 27, 2016 at 6:15:36 PM UTC-4, linas wrote:
>>
>>
>>
>> On Sat, Aug 27, 2016 at 1:33 AM, Jan Matusiewicz 
>> wrote:
>>
>>> Thank you very much for your explanations and interesting discussion. I
>>> understand that TimeSpaceServer could be potentially used for solving mice
>>> and cat problem with complex box structure. What bother me, however is that
>>> treatment of space is different than in human cognition, too much
>>> secondary. Small child would first create concept of cat or mouse and
>>> their behavior (running, playing) based on images and videos (both seen
>>> directly or on computer screen). Only later they may form it into
>>> predicates like "every mouse is a mammal". Predators also learn this way
>>> about classification and behavior of their victims.
>>>
>>
>> Yes. As you state, video and image processing is very complex.
>>
>> Other emails did sketch a way of allowing video and audio to become
>> first-class, in opencog.  The thought experiment goes something like this:
>>
>> Suppose you had a single-bit visual sensor to the world, and a single-bit
>> audio sensor: these returned only brightness, and loudness.  After
>> observing the world with these, you might be able to deduce that sometimes,
>> sudden changes in brightness and loudness are correlated.  The reason I
>> picked this one-bit example is that its straight-forward to envision how to
>> encode this input into opencog atoms, and how to use the pattern miner to
>> discover correlations.
>>
>> But of course, one bit is not enough.  Suppose instead, one had a visual
>> field with thousands or millions of pixels, and an audio sensor with  good
>> dynamic range and time resolution.  Imagine that, from somewhere (e.g.
>> hand-coded, by a human) you had some filters: for example, a loudness
>> filter that triggers whenever the sound volume changes by 10 decibels in
>> 1/10th of a second.   Another filter that triggers only for high
>> frequencies. A third filter the triggers only in a narrow band near 440 Hz.
>> Imagine a decent collection of these.
>>
>> Imagine also a similar set for video: a filter that triggers only if the
>> left side of the screen is a lot brighter than the right side. A filter
>> that triggers only if the upper half of the view is a lot bluer than the
>> bottom half, and so on.
>>
>> This collection of filters are each pumping out a set of atoms into the
>> atomspace.  One can use pattern mining to search for correlations between
>> events. For example, this could be done by having a genetic-programming
>> process, such as the MOSES "knob-turning" tree-mut

Re: [opencog-dev] Chatbot and the Error: wrong type argument in Position

2016-08-28 Thread Linas Vepstas
Dunno. You may want to open a github report, and provide some additional
details, like which modules you loaded, etc.

This code is being hacked on almost every day; maybe something got broken
recently.

--linas

On Sun, Aug 28, 2016 at 2:17 PM,  wrote:

> Hello all,
>
> I tried chatbot demonstration. I had my Relex and Cog server running.  I
> got the Error "wrong type argument".
>
> guile> (nlp-parse john is generous")
> guile> (process-query "Priya" "who is generous?")
>
> Hello Priya, you said: "who is generous?"
> You made an Interrogative SpeechAct
> wrong-type-arg
> (display Wrong type argument in position ~A: ~S (2 0) (0))
> Sorry, I don't understand it
>
> 
>
> I also tried chatbot-psi
>
> I did the following steps.:
> guile> (use-modules (opencog) (opencog nlp) (opencog nlp aiml) (opencog
> openpsi))
> guile> (add-to-load-path "/home/vishnu/Documents/opencog_relatedPackages/
> opencog/opencog/nlp/chatbot-psi")
> guile> (load-from-path "main.scm")
> guile> (load-from-path "aiml-rules.scm")
>
> guile> (aiml-get-response-wl (token-seq-of-sent "hello"))
>
>
> ERROR: In procedure apply-smob/1:
> ERROR: In procedure cog-type: Wrong type argument in position 1 (expecting
> opencog atom): "hello"
> ABORT: wrong-type-arg
>
> -
>
> Am i missing anything? how can i solve the problem?  Any guidelines would
> be very much  helpful.
>
>
> Thanks in advance.
>
>
>
>
> --
> 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/325457a4-ffb5-4456-9a1d-5f37c7f83cba%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA34LSss%2B9Mqb9-1rOb6RCXmUrtDZE%3DGM1uO5bOFWZ_JDhA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] future of atomese

2016-08-29 Thread Linas Vepstas
Hi Ben,

I don't quite see where you are going with this.  Let me re-iterate some
random unstructured thoughts that I've said before, and see where they
might fit in.  Like riffing on a melody.

* First, I'd rather not have human being program in atomese -- I kind of
wish it really was a knowledge-representation substrate, and some kind of
learning algorithms would generate and manipulate atomese.

* I do admit that, when human beings do code in atomese, a nicer syntax, or
something would be nice. Earlier today, I explained to David DeMaris that
one can create timelines in atomese just fine (using ParallelLink, JoinLink
and SleepLink) but if you want it to pause (sleep) for random amounts of
time (e.g. using RandomLink) then programming gets awkward. Doable but
awkard.

* But what's the point of hand-written snippets of atomese, anyway? The
goal was to have automated learning algos manipulating the graphs and the
automated algo might have a really hard time understanding some complicated
RandomLink with math in it. ... so why are we doing this?

* The nice thing about types and type theory is that type-checking programs
are gauranteed to terminate in finite time, always. This is a useful
property that we currently do not leverage in atomese.

* Type-checking terminates because, in the theory of term rewriting, type
checking is .. I forget... strongly confluent, or something like that.

* Term re-writing is exactly what we want to do, when converting
EvaluationLinks into PredicateNodes, or converting between various forms in
the EquivalenceLink. We don't have any architected way of doing this.  The
chainer and threign beaste pln rules seem to do this in some ad-hoc ways.
I think you call them "rules" in PLN, but there's no C++ code or API that I
can call to answer the question "here's a graph, do we already have an
equivalent graph somewhere in the atomspace?"  (for example, by tracing
through EquivalenceLink)

* I am concerned by the excessive obsession with lambda calculus and the
already heavy over-use of LambdaLink.  Down that way leads madness.  We
need to spend a lot more time thinking "term re-writing" and a whole lot
less thinking "lambda"  -- and this does seem to fit with some sort of
AGDA-vision, because proofs are kind-of-ish about term re-writing, and
about termination.

* Which brings me back to Kripke Semantics and possible worlds. I have no
clue how AGDA does it's stuff, but, in the "real world", with probabilistic
reasoning, I just don't see any way at all of avoiding the need for
possible worlds during the exploration of a proof.

* And so, creating a system for managing possible worlds during proof
exploration seems to be an important, neglected task. (I'm not sure, I
sometimes suspect that what you used to call "inference trails" is a
similar-but-different idea).

* So, the thing that we really need, is not so much a nice surface syntax
for atomese, but a nice surface syntax for inference control.   Let me
explain: right now, PLN goes off and explores in some random direction, and
promptly hits a combinatorial explosion and all is lost, and so you invent
ECAN to place some reins on this beast.   But ECAN is this opaque automated
system, and we can guess at what it might be doing, but its hard to
visualize, and maybe its doing the right thing, and maybe its not.   So I'm
thinking -- lets make inference paths -- the sequence of steps taken during
a search for a proof -- lets make that explicitly visible, a first-class
object that can be seen and manipulated and explored.  Something that can
be pruned, or allow to grow, like a good gardener tending a plant: Lets
watch the many shoots of inference, and see which seem good and which bad,
and then design an automated system to rein in, to control the directions
in which inference goes.

* The problem that I see with agda, and with haskell, is that they go off
and pursue proofs on their own, with no visibility to the programmer about
what they are doing.  Trust the system. haskell is infamous for having
performance that is hard to predict: you look at haskell code, and you
can't tell quite how long it might take.  So, I'd like to have "visible
inference" (in PLN, using kripke semantics) so that we can have ECAN or its
follow-ons can "watch PLN think" -- stay focused, stay on track, not get
overwhelmed by combinatoric explosion.

--linas


On Mon, Aug 29, 2016 at 6:12 PM, Ben Goertzel  wrote:

> OK -- I see the light now ...
>
> What we need to do is
>
> 1) make a surface syntax for Atomese that is effectively like Agda,
> but a good bit prettier
>
> 2) make an ultra-fast type checker that encompasses moderately complex
> dependent types
>
> 3) then instead of using slow Agda, and incurring the overhead of
> going Agda ==> Haskell ==> C++ ... we just go straight NewAtomese ==>
> C++, and everything is fast as well as elegant (well everything except
> the slow things actually happening inside OpenCog...)
>
> ... in line with the general principle

[opencog-dev] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-08-29 Thread Linas Vepstas
It will take me a while to digest this fully, but one error/confusion (and
very important point) pops up immediately: link-grammar is NOT cartesian,
and we most definitely do not want cartesian-ness in the system.  That
would destroy everything interesting, everything that we want to have.
Here's the deal:

When we parse in link-grammar, we create multiple parses.  Each parse can
be considered to "live" in its own unique world or universe (it's own
Kripke frame)  These universes are typically incompatible with each other:
they conflict. Only one parse is right, the others are wrong (typically --
although sometimes there are some ambiguous cases, where more than one
parse may be right, or where one parse might be 'more right' than another).

These multiple incompatible universes are symptomatic of a "linear type
system".  Now, linear type theory finds applications in several places: it
can describe parallel computation (each universe is a parallel thread) and
also mutex locks and synchronization, and also vending machines: for one
dollar you get a menu selection of items to pick from -- the ChoiceLink
that drove Eddie nuts.

The linear type system is the type system of Linear logic, which is the
internal language of the closed monoidal categories, of which the closed
cartesian categories are a special case.

Let me return to multiple universes -- we also want this in PLN reasoning.
A man is discovered standing over a dead body, a bloody sword in his hand
-- did he do the deed, or is he simply the first witness to stumble onto
the scene?  What is the evidence pro and con?
This scenario describes two parallel universes: one in which he is guilty,
and one in which he is not. It is the job of the prosecutor, defense, judge
and jury to figure out which universe he belongs to.  The mechanism is a
presentation of evidence and reasoning and deduction and inference.

Please be hyper-aware of this, and don't get confused: just because we do
not know his guilt does not mean he is "half-guilty", -- just like an
unflipped coin is not a some blurry, vague superimposition of heads and
tails.

Instead, as the evidence rolls in, we want to find that the probability of
one universe is increasing, while the probability of the other one is
decreasing.  Its just one guy -- he cannot be both guilty and innocent --
one universe must eventually be the right one,m and it can be the only one.
 (this is perhaps more clear in 3-way choices, or 4-way choices...)

Anyway, the logic of these parallel universes is linear logic, and the type
theory is linear type theory, and the category is closed monoidal.

(Actually, I suspect that we might want to use affine logic, which is per
wikipedia "a substructural logic
 whose proof theory
rejects the structural rule 
of contraction .
It can also be characterized as linear logic
 with weakening
.")

Anyway, another key point: lambda calculus is the internal language of
*cartesian* closed categories.  It is NOT compatible with linear logic or
linear types.   This is why I said in a different email, that "this way
lies madness".  Pursuit of lambda calc will leave us up a creek without a
paddle, it will prevent us from being able to apply PLN to
guilty/not-guilty court cases.


BTW, vector spaces are NOT cartesian closed! They are the prime #1 most
common example of where one can have tensor-hom adjunction, i.e. can do
currying, and NOT be cartesian!  Vector spaces *are* closed-monoidal.

The fact that some people are able to map linguistics onto vector spaces
(although with assorted difficulties/pathologies) re-affirms that
closed-monoidal is the way to go.  The reason that linguistics maps poorly
onto vector spaces is due to their symmetry -- the linguistics is NOT
symmetric, the vector spaces are.So what we are actually doing (or need
to do) is develop the infrastructure for *cough cough* a non-symmetric
vector space.. which is kind-of-ish what the point of the categorial
grammars is.

Enough for now.

--linas


On Mon, Aug 29, 2016 at 4:41 PM, Ben Goertzel  wrote:

> Linas, Nil, etc. --
>
> This variation of type theory
>
> http://www.dcs.kcl.ac.uk/staff/lappin/papers/cdll_lilt15.pdf
>
> seems like it may be right for PLN and OpenCog ... basically,
> dependent type theory with records (persistent memory) and
> probabilities ...
>
> If we view PLN as having this sort of semantics, then RelEx+R2L is
> viewed as enacting a morphism from:
>
> -- link grammar, which is apparently equivalent to pregroup grammar,
> which is a nonsymmetric cartesian closed category
>
> to
>
> -- lambda calculus endowed with the probabilistic TTR type system,
> which is a locally cartesian closed category
>
> https://ncatlab.org/nlab/show/relation+between+type+

Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-08-30 Thread Linas Vepstas
Hi Ben,

Well, it might not have to be linear, it might be affine, I have not
thought it through myself. What is clear is that cartesian is clearly wrong.

The reason I keep repeating the guilt/innocence example is that its not
just the "exclusive nature of disjuncts in link-grammar", but rather, that
it is a generic real-world reasoning problem.

I think I understand one of the points of confusion, though. In digital
circuit verification (semiconductor chip industry), everyone agrees that
the chips themselves behave according to classical boolean logic - its all
just ones and zeros.  However, in verification, you have to prove that a
particular chip design is working correctly.  That proof process does NOT
use classical logic to achieve its ends -- it does use linear logic!
Specifically, the proof process goes through sequences of Kripke frames,
where you verify that certain ever-larger parts of the chip are behaving
correctly, and you use the frames to keep track of how the various
combinatorial possibilities feed back into one another.  Visualize it as a
kind of lattice: at first, you have a combinatoric explosion, a kind of
tree or vine, but then later, the branches join back together again, into a
smaller collection. Those that fail to join up are either incompletely
modelled, or indicate a design error in the chip.

There's another way of thinking of chip verification: one might say, in any
given universe/kripke frame, that a given transistor is in one of three
states: on, off, or "don't know", with the "don't know" state corresponding
to the "we haven't simulated/verified that one yet".   The collection of
possible universes shrinks, as you eliminate the "don't know" states during
the proof process.This kind of tri-valued logic is called
"intuitionistic logic" and has assorted close relationships to linear logic.

These same ideas should generalize to PLN:  although PLN is itself a
probabilistic logic, and I do not advocate changing that, the actual
chaining process, the proof process of arriving at conclusions in PLN,
cannot be, must not be.

I hope the above pins down the source of confusion, when we talk about
these things.  The logic happening at the proof level, the ludics level, is
very different from the structures representing real-world knowledge.

--linas

On Tue, Aug 30, 2016 at 9:28 AM, Ben Goertzel  wrote:

> Linas,
>
> Alas my window of opportunities for writing long emails on math-y
> stuff has passed, so I'll reply to your email more thoroughly in a
> couple days...
>
> However, let me just say that I am not so sure linear logic is what we
> really want  I understand that we want to take resource usage into
> account in our reasoning generally... and that in link grammar we want
> to account for the particular exclusive nature of the disjuncts ...
> but I haven't yet convinced myself linear logic is necessarily the
> right way to do this... I need to take a few hours and reflect on it
> more and try to assuage my doubts on this (or not)
>
> -- ben
>
>
> On Tue, Aug 30, 2016 at 6:14 AM, Linas Vepstas 
> wrote:
> > It will take me a while to digest this fully, but one error/confusion
> (and
> > very important point) pops up immediately: link-grammar is NOT cartesian,
> > and we most definitely do not want cartesian-ness in the system.  That
> would
> > destroy everything interesting, everything that we want to have.  Here's
> the
> > deal:
> >
> > When we parse in link-grammar, we create multiple parses.  Each parse
> can be
> > considered to "live" in its own unique world or universe (it's own Kripke
> > frame)  These universes are typically incompatible with each other: they
> > conflict. Only one parse is right, the others are wrong (typically --
> > although sometimes there are some ambiguous cases, where more than one
> parse
> > may be right, or where one parse might be 'more right' than another).
> >
> > These multiple incompatible universes are symptomatic of a "linear type
> > system".  Now, linear type theory finds applications in several places:
> it
> > can describe parallel computation (each universe is a parallel thread)
> and
> > also mutex locks and synchronization, and also vending machines: for one
> > dollar you get a menu selection of items to pick from -- the ChoiceLink
> that
> > drove Eddie nuts.
> >
> > The linear type system is the type system of Linear logic, which is the
> > internal language of the closed monoidal categories, of which the closed
> > cartesian categories are a special case.
> >
> > Let me return to multiple universes -- we also want this in PLN
> reasoning. A
> > m

Re: [opencog-dev] Chatbot and the Error: wrong type argument in Position

2016-08-31 Thread Linas Vepstas
On Wed, Aug 31, 2016 at 8:11 AM,  wrote:

>
> I tried chatbot demonstration also by installing https://github.com/
> hansonrobotics/HEAD. I did not compile and install the modules (such as
> atomspace, cogutils, opencog...) manually. It itself automatically
> installed all the modules required. But then also i got the following error.
>
> guile> (process-query "Priya" "who is generous?")
> Hello Priya, you said: "who is generous?"
> You made an Interrogative SpeechAct
> Sorry, I don't understand it
>

That last bit is printed by  nlp/chatbot/bot-api.scm line 83 when an
exception is caught. Right before that, it should print the actual
exception -- if nothing else, it should print two newline characters.  Are
you saying that there was no exception text printed?

I just changed the code to print "Sorry, I caught an exception\n" instead
of "Sorry, I don't understand it" just to make that clear.

--linas

-- 
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/CAHrUA35UuMLOhv7TQS%2BdSrCXOrf2O1VuWZL2dphpk%2BXtRZhnEw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Pattern Miner and missing libTestPatternMinerAgent.so

2016-08-31 Thread Linas Vepstas
On Tue, Aug 30, 2016 at 4:44 PM,  wrote:

> Thanks for the reply Ben.
>
>  Yeah I checked the post. But I could not understand about the linkage
> problem.
>
> NIL---> "Anyway, if the pattern miner on that branch isn't better I
>> obviously
>> prefer to use the one on the master. Just haven't figured out what is
>> the missing function corresponding to that symbol
>> _ZN7opencog11OBJECT_NODEE, but I should soon."
>
>
>NIL---> "I feel the dumbest person on earth... That object is
>opencog::OBJECT_NODE
>!!! Now I just need to find the missing linkage. "
>
>Totally unable to figure it out :-(
>

Is this still an issue?
 OBJECT_NODE is defined in spacetime/atom_types.script and the way to
resolve the linkage issue is to link to libspacetime-types.so

However, I am confused, because .. oh never mind. the makefile for
timeoctomap is wrong. I will fix in here in 10 minutes.

--linas



>> To view this discussion on the web visit https://groups.google.com/d/
> msgid/opencog/785f8e87-5a15-421f-9ec5-6da3e2c249d9%40googlegroups.com
> 
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA34Pg%2BHGwBd3K2mKh-ucSd0wwwYWf-489-v0SvWEM%2ByZ8Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Pattern Miner and missing libTestPatternMinerAgent.so

2016-08-31 Thread Linas Vepstas
Here: this commit should fix this problem (and Nil's original problem)

https://github.com/opencog/opencog/commit/260f95a01af82ff47b56bfa4405a9dcca6b4d7ef

--linas

On Wed, Aug 31, 2016 at 12:05 PM, Linas Vepstas 
wrote:

>
>
> On Tue, Aug 30, 2016 at 4:44 PM,  wrote:
>
>> Thanks for the reply Ben.
>>
>>  Yeah I checked the post. But I could not understand about the linkage
>> problem.
>>
>> NIL---> "Anyway, if the pattern miner on that branch isn't better I
>>> obviously
>>> prefer to use the one on the master. Just haven't figured out what is
>>> the missing function corresponding to that symbol
>>> _ZN7opencog11OBJECT_NODEE, but I should soon."
>>
>>
>>NIL---> "I feel the dumbest person on earth... That object is
>>opencog::OBJECT_NODE
>>!!! Now I just need to find the missing linkage. "
>>
>>Totally unable to figure it out :-(
>>
>
> Is this still an issue?
>  OBJECT_NODE is defined in spacetime/atom_types.script and the way to
> resolve the linkage issue is to link to libspacetime-types.so
>
> However, I am confused, because .. oh never mind. the makefile for
> timeoctomap is wrong. I will fix in here in 10 minutes.
>
> --linas
>
>
>
>>> To view this discussion on the web visit https://groups.google.com/d/ms
>> gid/opencog/785f8e87-5a15-421f-9ec5-6da3e2c249d9%40googlegroups.com
>> <https://groups.google.com/d/msgid/opencog/785f8e87-5a15-421f-9ec5-6da3e2c249d9%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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/CAHrUA36Ur59hPxghn6cMWtgiemoL-o-WqZUD%2BLdUok99krVwBA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: SCM file: Beginners Info

2016-08-31 Thread Linas Vepstas
cff-to-opencog.pl only runs the relex stages of the NLP processing.  It has
only one purpose in life: to be able to parse large wikipedia or other
texts, and save them to a file, so that you do NOT have to re-parse them
later on.

It probably does not make sense for you to mess with cff-to-opencog.pl,
because, at this point in time, it probably does not make sense for you to
try to create huge, giant batches of parsed text.

The cff-to-opencog.pl was orignally created to do corpus linguistics -- to
build up giant databases of statistics on various linguistic phenomena.
Unless you are also doing this, its kind-of pointless to mess with it.

--linas



On Wed, Aug 31, 2016 at 2:45 AM,  wrote:

> Thanks for the reply AmeBel!!
>
>
>
>
> On Wednesday, 31 August 2016 04:18:29 UTC+2, AmeBel wrote:
>>
>> Hi,
>>
>> Yes, John.scm makes sense. That is the relex output. If you want the
>> pattern you described, then you need to use relex2logic. See
>> http://wiki.opencog.org/wikihome/index.php/Running_Relex
>> 2Logic_with_OpenCog ?
>>
>> you will get
>>
>>  (EvaluationLink
>>(PredicateNode "eats@120c7dae-5ae2-49f0-a50c-85cecfe1c104")
>>(ListLink
>>   (ConceptNode "John@edc25b98-bb81-4916-badd-fd06b829c3c0")
>>   (ConceptNode "apple@4ade504b-c8f1-41be-bec6-0186f1e81103")
>>)
>> which is not the fully abstracted(aka normalized) version.
>>
>> On Wednesday, August 31, 2016 at 6:29:49 AM UTC+8, vishnup...@gmail.com
>> wrote:
>>>
>>>
>>>
>>> Hello All,
>>>
>>> I have a text file "John.txt", which has  the following:
>>>
>>> John eats apple.
>>> Mary eats mango.
>>> End.
>>> Mike eats orange.
>>>
>>>
>>> I have converted it into cff (which is in the form of xml, "John.xm"l)
>>>  by using "batch-process.sh"  and in turn converted  that into scm
>>> (John.scm) using ./cff-to-opencog.pl. Because when i straightly tried
>>> converting a text file into scheme file, i got only this:
>>>
>>> (ReferenceLink (stv 1 1)
>>> (DocumentNode "document@f313865f-35a5-48eb-8f56-92786a7a4d57")
>>> (ListLink
>>> )
>>> )
>>>
>>>
>>>
>>> I expected "John.scm" to be something  like this :
>>>
>>> (EvaluationLink
>>>(PredicateNode "eat")
>>> (ListLink
>>> (VariableNode "John")
>>> (ConceptNode “apple")
>>>  )
>>>
>>>
>>>
>>> (EvaluationLink
>>>(PredicateNode "eat")
>>> (ListLink
>>> (VariableNode "Mary")
>>> (ConceptNode “mango")
>>>  )
>>>
>>>
>>> But the "John.scm" appears to be somewhat different.  Is this file
>>> making sense?  or should i make my own script instead of ./
>>> cff-to-opencog.pl.
>>> This question may sound stupid. But may help beginners.
>>>
>>> (I have attached scm, txt and xml file for reference)
>>>
>>> Any guidelines would be very helpful.
>>>
>>>
>>> Thanks in advance
>>> Vishnu
>>>
>>>
>>> --
> 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/0804f639-b951-4421-be6d-c42dec3d1d51%40googlegroups.com
> 
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA36qN6v5v_0TfUjRmnuFk344nPUzqPyqEZKXOF9JHQcJTw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-08-31 Thread Linas Vepstas
erences that are "simpler"
> in the sense of resource utilization, and hence more plausible
> according to some variant of Occam's Razor...
>
> But this is layering resource-awareness on top of the logic, and using
> it in the control aspect, rather than sticking it into the logic as
> linear and affine logic do...
>
> The textbook linear logic example of
>
> "I have $5" ==> I can buy a sandwich
> "I have $5" ==> I can buy a salad
> |- (oops?)
> "I have $5" ==> I can buy a sandwich and I can buy a salad
>
> doesn't impress much much, I mean you should just say
>
> If I have $5, I can exchange $5 for a sandwich
> If I have $5, I  can exchange $5 for a salad
> After I exchange $X for something else, I don't have $X anymore
>
> or whatever, and that expresses the structure of the situation more
> nicely than putting the nature of exchange into the logical deduction
> apparatus  There is no need to complicate one's logic just to
> salvage a crappy representational choice...
>
> In linear logic: It is no longer the case that given A implies B and
> given A, one can deduce both A and B ...
>
> In PLN, if one has
>
> A 
> (ImplicationLink A B) 
>
> one can deduce
>
> B 
>
> but there is some math to do to deduce sB and nB, and one can base
> this math on various assumptions including independence assumptions,
> assumptions about the shapes of concepts, etc.
>
> In short I think if we extent probabilistic TTR to be "TTR with 
> truth values", then we can use lambda calculus with a type system
> drawn from TTR and with each statement labeled with a  truth
> value ... and then we can handle the finitude of evidence without
> needing to complicate the base logic...
>
> A coherent and sensible way to assess  truth values for
> statements with quantified variables was given by me and Matt in 2008,
> in
>
> http://www.agiri.org/IndefiniteProbabilities.pdf
>
> Don't let the third-order probabilities worry you ;)
>
> ...
>
> In essence, it seems, the linear logic folks push a bunch of
> complexity into the logic itself, whereas Matt and I pushed the
> complexity into the truth values, and the Occam bias on proofs (into
> which resource utilization should be factored)
>
> -- Ben
> .
>
>
>
> On Tue, Aug 30, 2016 at 6:52 PM, Linas Vepstas 
> wrote:
> > Hi Ben,
> >
> > Well, it might not have to be linear, it might be affine, I have not
> thought
> > it through myself. What is clear is that cartesian is clearly wrong.
> >
> > The reason I keep repeating the guilt/innocence example is that its not
> just
> > the "exclusive nature of disjuncts in link-grammar", but rather, that it
> is
> > a generic real-world reasoning problem.
> >
> > I think I understand one of the points of confusion, though. In digital
> > circuit verification (semiconductor chip industry), everyone agrees that
> the
> > chips themselves behave according to classical boolean logic - its all
> just
> > ones and zeros.  However, in verification, you have to prove that a
> > particular chip design is working correctly.  That proof process does NOT
> > use classical logic to achieve its ends -- it does use linear logic!
> > Specifically, the proof process goes through sequences of Kripke frames,
> > where you verify that certain ever-larger parts of the chip are behaving
> > correctly, and you use the frames to keep track of how the various
> > combinatorial possibilities feed back into one another.  Visualize it as
> a
> > kind of lattice: at first, you have a combinatoric explosion, a kind of
> tree
> > or vine, but then later, the branches join back together again, into a
> > smaller collection. Those that fail to join up are either incompletely
> > modelled, or indicate a design error in the chip.
> >
> > There's another way of thinking of chip verification: one might say, in
> any
> > given universe/kripke frame, that a given transistor is in one of three
> > states: on, off, or "don't know", with the "don't know" state
> corresponding
> > to the "we haven't simulated/verified that one yet".   The collection of
> > possible universes shrinks, as you eliminate the "don't know" states
> during
> > the proof process.This kind of tri-valued logic is called
> > "intuitionistic logic" and has assorted close relationships to linear
> logic.
> >
> > These same ideas should generalize to PLN:  although PLN is itself a
> > probabilistic logic, and I do not 

Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-08-31 Thread Linas Vepstas
s, is itself a form of "resource usage based Occam's razor
> weighting".   Because the links and link-combinations with higher
> probability based on the corpus, are the ones that the OpenCog system
> doing the parsing has more reason to retain in the Atomspace --- thus
> for higher-weighted links or link-combinations, the "marginal memory
> usage" required to keep those links/link-combinations in memory is
> less.  So we can view the probability weighting of a potential parse
> as proportional to the memory-utilization-cost of that parse, in the
> context of a system with a long-term memory full of other parses from
> some corpus (or some body of embodied linguistic experience,
> whatever...).
>
> Currently it seems to me that the probabilistic weighting of parses
> (corresponding to possible situations) is already handling
> resource-management implicitly and we don't need linear logic to do
> that here...
>
> Of course these things are pretty subtle when you really think about
> them, and I may be missing something...
>
> ben
>
>
> On Wed, Aug 31, 2016 at 1:10 AM, Ben Goertzel  wrote:
> >  Linas,
> >
> > Actually, even after more thought, I still don't (yet) see why linear
> > logic is needed here...
> >
> > In PLN, each statement is associated with at least two numbers
> >
> > (strength, count)
> >
> > Let's consider for now the case where the strength is just a
> probability...
> >
> > Then in the guilt/innocence case, if you have no evidence about the
> > guilt or innocence, you have count =0   So you don't have to
> > represent ignorance as p=.6 ... you can represent it as
> >
> > (p,n) = (*,0)
> >
> > The count is the number of observations made to arrive at the strength
> figure...
> >
> > PLN count rules propagate counts from premises to conclusions, and if
> > everything is done right without double-counting of evidence, then the
> > amount of evidence (number of observations) supporting the conclusion
> > is less than or equal to the amount of evidence supporting the
> > premises...
> >
> > This does not handle estimation of resource utilization in inference,
> > but it does handle the guilt/innocence example
> >
> > As for the resource utilization issue, certainly one can count the
> > amount of space and time resources used in drawing a certain inference
> > ... and one can weight an inference chain via the amount of resources
> > it uses... and one can prioritize less expensive inferences in doing
> > inference control.  This will result in inferences that are "simpler"
> > in the sense of resource utilization, and hence more plausible
> > according to some variant of Occam's Razor...
> >
> > But this is layering resource-awareness on top of the logic, and using
> > it in the control aspect, rather than sticking it into the logic as
> > linear and affine logic do...
> >
> > The textbook linear logic example of
> >
> > "I have $5" ==> I can buy a sandwich
> > "I have $5" ==> I can buy a salad
> > |- (oops?)
> > "I have $5" ==> I can buy a sandwich and I can buy a salad
> >
> > doesn't impress much much, I mean you should just say
> >
> > If I have $5, I can exchange $5 for a sandwich
> > If I have $5, I  can exchange $5 for a salad
> > After I exchange $X for something else, I don't have $X anymore
> >
> > or whatever, and that expresses the structure of the situation more
> > nicely than putting the nature of exchange into the logical deduction
> > apparatus  There is no need to complicate one's logic just to
> > salvage a crappy representational choice...
> >
> > In linear logic: It is no longer the case that given A implies B and
> > given A, one can deduce both A and B ...
> >
> > In PLN, if one has
> >
> > A 
> > (ImplicationLink A B) 
> >
> > one can deduce
> >
> > B 
> >
> > but there is some math to do to deduce sB and nB, and one can base
> > this math on various assumptions including independence assumptions,
> > assumptions about the shapes of concepts, etc.
> >
> > In short I think if we extent probabilistic TTR to be "TTR with 
> > truth values", then we can use lambda calculus with a type system
> > drawn from TTR and with each statement labeled with a  truth
> > value ... and then we can handle the finitude of evidence without
> > needing to complicate the base logic...
> >
> > A coherent and s

Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-08-31 Thread Linas Vepstas
And so here is the blog post -- its a lightly reformatted version of this
email, with lots of links to wikipedia and a few papers.

http://blog.opencog.org/2016/08/31/many-worlds-reasoning-about-reasoning/

I really really hope that this clarifies something that is often seen as
mysterious.

--linas

On Wed, Aug 31, 2016 at 4:16 PM, Linas Vepstas 
wrote:

> Hi Ben,
>
> What's TTR?
>
> We can talk about link-grammar, but I want to talk about something a
> little bit different: not PLN, but the *implementation* of PLN.   This
> conversation requires resolving the "category error" email I sent, just
> before this.
>
> Thus, I take PLN as a given, including the formulas that PLN uses, and
> every possible example of *using* PLN that you could throw my way.  I have
> no quibble about any of those examples, or with the formulas, or with
> anything like that. I have no objections to the design of the PLN rules of
> inference.
>
> What I want to talk about is how the PLN rules of inference are
> implemented in the block of C++ code in github.   I also want to assume
> that the implementation is complete, and completely bug-free (even though
> its not, but lets assume it is.)
>
> Now, PLN consists of maybe a half-dozen or a dozen rules of inference.
> They have names like "modus ponens" but we could call them just "rule MP"
> ... or just "rule A", "rule B", etc...
>
> Suppose I start with some atomspace contents, and apply the PLN rule A. As
> a result of this application, we have a "possible world 1".  If, instead,
> we started with the same original atomspace contents as before, but applied
> rule B, then we would get "possible world 2".  It might also be the case
> that PLN rule A can be applied to some different atoms from the atomspace,
> in which case, we get "possible world 3".
>
> Each possible world consists of the triple (some subset of the atomspace,
> some PLN inference rule, the result of applying the PLN rule to the input).
>
>
> Please note that some of these possible worlds are invalid or empty: it
> might not be possible to apply the choosen PLN rule to the chosen subset of
> the atomspace.  I guess we should call these "impossible worlds".  You can
> say that their probability is exactly zero.
>
> Observe that the triple above is an arrow:  the tail of the arrow is "some
> subset of the atomspace", the head of the arrow is "the result of applying
> PLN rule X", and the shaft of the arrow is given a name: its "rule X".
>
> (in fancy-pants, peacock language, the arrows are morphisms, and the
> slinging together, here, are kripke frames. But lets avoid the fancy
> language since its confusing things a lot, just right now.)
>
> Anyway -- considering this process, this clearly results in a very shallow
> tree, with the original atomspace as the root, and each branch of the tree
> corresponding to possible world.  Note that each possible world is a new
> and different atomspace: The rules of the game here are that we are NOT
> allowed to dump the results of the PLN inference back into the original
> atomsapce.  Instead, we MUST fork the atomspace.  Thus, if we have N
> possible worlds, then we have N distinct atomspaces. (not counting the
> original, starting atomspace)
>
> Now, for each possible world, we can apply the above procedure again.
> Naively, this is a combinatoric explosion. For the most part, each
> different possible world will be different than the others. They will share
> a lot of atoms in common, but some will be different.
>
> Note, also, that *some* of these worlds will NOT be different, but will
> converge, or be "confluent", arriving at the same atomspace contents along
> different routes.  So, although, naively, we have a highly branching tree,
> it should be clear that sometimes, some of the branches come back together
> again.
>
> I already pointed out that some of the worlds are "impossible" i.e. have a
> probability of zero. These can be discarded.  But wait, there's more.
> Suppose that one of the possible worlds contains the statement "John
> Kennedy is alive" (with a very very high confidence) , while another one
> contains the statement "John Kennedy is dead" (with a very very high
> confidence).  What I wish to claim is that, no matter what future PLN
> inferences might be made, these two worlds will never become confluent.
>
> There is also a different effect: during inferencing, one might find
> oneself in a situation where the atoms being added to the atomspace, at
> each inference step, have lower and lower probability. At some point, this
> suggests that one s

Re: [opencog-dev] General info about Chatbot

2016-08-31 Thread Linas Vepstas
Unless you are running some learning algorithm then nothing at all is being
learned.

--linas

On Wed, Aug 31, 2016 at 5:34 PM,  wrote:

> Hello all,
>
> According to, https://github.com/opencog/opencog/tree/master/opencog/
> nlp/chatbot,
> if i am not wrong,  currently we can carry out simple 'wh' dialogues with
> chatbot.(?!)
>
> But i have a question. I know, this could sound silly and stupid.
> But i still want to know, whether it is  somehow capable of doing a
> certain task.
>
> Giving batches of some crawled data to chatbot and asking it in turn,
> "what have you learnt "?
>
> Feeding chatbot new crawled data frequently, (then probably saving it in
> Postgres?!) and in turn asking what's new have you learnt?
>
>
>
> Thanks in advance.
> Vishnu
>
>
>
>
>
>
>
>
>
>
>
>
> --
> 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/b01c9b54-84e4-4488-9dc1-0d724f0fbba5%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA37e395iwFkPHqimG_Vk3%2BfgqA1BJkPpx1gKVy4Y%2B_0jaA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] What CYC has done wrong

2016-08-31 Thread Linas Vepstas
Sure. Not sure what to say.  The human brain certainly has the ability to
perform affine transformations at 60 frames per second.  Presumably, babies
learn how to do this by moving their heads around, and seeing how the
visual input changes. I'm not a physio-psychologist, but if i recall
correctly, it takes 3 months or 1+ years for the child visual system to
stabilize, and additional learning (hand-eye coordination) continues
through the teens and young adulthood.  That represents -- lets see -- 30
frames per second x 3600 seconds/hour x 12 waking hours/day x 400 days =
500 million frames of training data. -- five-thousand hours of training
data.

That's a lot of data.

--linas


On Tue, Aug 30, 2016 at 1:23 AM, Jan Matusiewicz 
wrote:

>
>> You will have another, different CYC-type failure, if you attempt to
>> hand-code (by humans) the visual subsystem.  Automation is kind-of the
>> whole point of deep learning, etc.
>>
>> This would be great if the system could also learn how to interpret
> visual data without a need to hard code anything. However, I am afraid it
> would be more chalanging than anything else. Humans have built-in visual
> processing system. Imagine that someone presents you images in a form of
> sequence of color codes of consecutive pixels like #FF88AA#0F0F0F and
> expect to match images presenting the same object seen from different
> angle. This would be a very difficult task for human.
>
> It is chalanging enough to make a system, which learn that cat ("C")
> chases and eats every mouse ("M") if the only input given is a time-based
> sequence of text screen-shots of the situation like
> 
> M...
> 
> C...
> 
> M..M
> 
> Transforming character matrix representation into list of animals with
> their current position, finding that x, y of C approaches x, y of some M,
> etc. would not be easy. That's why testing OpenCog in Minecraft environment
> seems like a good first step.
>
> >One reason that people are infatuated with deep-learning neural nets is
> >that NN's provide a concrete, achievable architecture that is proven to
> >work, and is closely described in thousands of papers and books, so any
> >joe-blow programmer can sit down and start coding up the algorithms, >and
> get some OK results
> I also experienced that when I say Artificial Intelligence, people think:
> Neural Networks. Too few people try different approaches.
>

-- 
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/CAHrUA34L-mbXvqpzSO224hQRdJmYXaznzny1kv%3DuqHx%2BtRvOgg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-09-01 Thread Linas Vepstas
Hi Ben,

On Thu, Sep 1, 2016 at 12:09 PM, Ben Goertzel  wrote:

>
> About Kripke frames etc. --- as I recall that was a model of the
> semantics of modal logic with a Possibly operator as well as a
> Necessarily operator   But in PLN we have a richer notion of
> possibility than in a standard modal logic,


Hey, I'm guessing that you're tired from travel, as here you repeat the
same confusion from before. There is a difference between "reasoning"
(which is what PLN does) and "reasoning about reasoning" (which is what I
am talking about).

What I am talking about applies to any rule-based system whatsoever, its
not specific to PLN. As long as you keep going back to PLN, you will have
trouble figuring out what I'm saying.   This is why I keep trying to create
non-PLN examples. But every time I create a non-PLN example, you zip back
to PLN, and that misses the point of it all.

-- linas


>
>
> On Thu, Sep 1, 2016 at 6:36 AM, Linas Vepstas 
> wrote:
> > And so here is the blog post -- its a lightly reformatted version of this
> > email, with lots of links to wikipedia and a few papers.
> >
> > http://blog.opencog.org/2016/08/31/many-worlds-reasoning-
> about-reasoning/
> >
> > I really really hope that this clarifies something that is often seen as
> > mysterious.
> >
> > --linas
>
>

-- 
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/CAHrUA340RO1zNghUpNsB5ij3m%3Dq2hxGdW_xZfFsGXC4JW9EpMQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Pattern Miner and missing libTestPatternMinerAgent.so

2016-09-01 Thread Linas Vepstas
you have to provide the full explicit path to the module, starting with the
leading slash.  Clearly, whatever default paths that are being searched do
not include the directory in which the thing lives, for you.

--linas

On Thu, Sep 1, 2016 at 11:12 AM,  wrote:

>
> Thanks Linas for the reply.
>
> Sorry it was an incomplete post.
>
>> After making modifications in the CmakeLists.txt  as per the commit,
>>>  From the build directory of opencog, i did
>>>
>>
>1.  cmake ..
>2.  make
>3.  sudo make install.
>4.  started the cogserver on the port 17001
>5.  Then  loaded  opencog> loadmodule
>opencog/learning/PatternMiner/libTestPatternMinerAgent.so
>6.  Unable to load module 
> "opencog/learning/PatternMiner/libTestPatternMinerAgent.so".
>Check the server logs for details
>
>
> Still libTestPatternMinerAgent.so is missing.  In the cogserver log, it
> says no such file or directory.
>
> Am i missing anything?
>
> -Vishnu
>
>

-- 
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/CAHrUA34K2FiRu7-qmWBKi-XOVQa8qtOW_v0ZD1GUwF%2B%2BqR0MtQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Chatbot and the Error: wrong type argument in Position

2016-09-01 Thread Linas Vepstas
well, its hard to guess where it is, without a backtrace.  You should add
these lines to your `~/.guile` file:
```
(debug-enable 'backtrace)
;;; Record positions of source code expressions.
  (read-enable 'positions)
```

I believe that the above should be enough to pinpoint the issue.

--linas

On Thu, Sep 1, 2016 at 7:22 AM,  wrote:

> Now it says, it caught an Exception, which is as follows:
>
> guile> Hello luser, you said: "are you a bot"
> You asked a Truth Query
> I can't process truth query for now
>
> guile> (nlp-parse "mary eats apple")
> ((SentenceNode "sentence@b2d9f1db-524d-4c79-a7e2-5e28f0db00b2")
> )
> guile> (nlp-parse "tom eats mango")
> ((SentenceNode "sentence@b3820f2c-5ae4-4029-ab0d-089d790ca0e2")
> )
> guile>(process-query "luser" "who eats apple")
> Hello luser, you said: "who eats apple"
> You made an Interrogative SpeechAct
> wrong-type-arg
> (display Wrong type argument in position ~A: ~S (2 0) (0))
> Sorry, I caught an exception
>
> But what is this wrong type argument?
> How can i fix this?
>
>>
>>

-- 
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/CAHrUA37KgH0qJKFUS3wSZjygcvDuk5kSt3RYFX8d205hQeNcWQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Chatbot and the Error: wrong type argument in Position

2016-09-01 Thread Linas Vepstas
Sigh.  I guess the catch was suppressing the print.  The following will
print this:

https://github.com/opencog/opencog/commit/251baccce6cb51bea92bdce5771d2be87fdd9e6b

--linas


On Thu, Sep 1, 2016 at 5:00 PM,  wrote:

>
>
> My .guile file is as follows :
>>
>
> (use-modules (ice-9 readline)) (activate-readline)
> (debug-enable 'backtrace)
> ;;; Record positions of source code expressions.
> (read-enable 'positions)
> (add-to-load-path "/usr/local/share/opencog/scm")
> (add-to-load-path ".")
> (use-modules (opencog))
> (use-modules (opencog nlp chatbot))
> (use-modules (opencog query))
> (use-modules (opencog exec))
> (load-from-path "opencog.scm")
>
>
> But sill i did not get any backtrace! am i missing anything here?
>

-- 
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/CAHrUA367PEzv7znLdpajfSk2PZjP8P-S%3DrAfhCTS9XixATRrbA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] traversing a large graph

2016-09-01 Thread Linas Vepstas
On Mon, Aug 22, 2016 at 7:53 PM, Ed Pell  wrote:

>
> With a graph we could mark each node with a sparse coded vector and sip
> distant nodes on a first pass. If we have time and are "deep thinking" we
> can consider more distant nodes.
>

The opencog graphs are already represented as edges and vertexes, not
vectors,  so they are already sparse.  The concept of distance that you
refer to is called "attention", and "attention allocation" helps focus on
those atoms that are important for achieving the current task.  (Every atom
has an attention value associated with it).

--linas

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

-- 
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/CAHrUA36i0O5kaMNSY5wY-zjiYKB6f5xXjreTShfpvgH4H3yKJA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Chatbot and the Error: wrong type argument in Position

2016-09-02 Thread Linas Vepstas
Hmm.

Man Hin, the process-query interfaces work fine for me, I cannot reproduce
the above error. The stack trace points at line 76 of fuzzy.scm  as the
source of the problem.  But then it says that its argument 2, and argument
2 is at line 100

My guess is that setlinks is not an actual guile list, which is what
append-map is expecting. Adding additional prints to this code might
clarify the fault.

Why its broken only for Vishnu, and not for me, I don't know.

--linas



On Wed, Aug 31, 2016 at 8:57 AM, Leung Man Hin 
wrote:

> it is recommended to use the newer chatbot (chatbot-psi) via the `chat`
> commend, e.g. (chat "who is generous?"), or call it via the webui with HEAD
> running, thanks
>
>
> On Wed, Aug 31, 2016 at 9:11 PM,  wrote:
>
>>
>> I tried chatbot demonstration also by installing https://github.com/
>> hansonrobotics/HEAD. I did not compile and install the modules (such as
>> atomspace, cogutils, opencog...) manually. It itself automatically
>> installed all the modules required. But then also i got the following error.
>>
>> guile> (process-query "Priya" "who is generous?")
>> Hello Priya, you said: "who is generous?"
>> You made an Interrogative SpeechAct
>> Sorry, I don't understand it
>>
>>
>>
>>> --
>> 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/ms
>> gid/opencog/face1c29-b967-4054-a0bc-e15b3b2f2484%40googlegroups.com
>> 
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> 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/CAMfi0BKBi1EUhGQfVfEy2GKY4RDZU-LjPLjLak%2Btk731d1gWzQ%
> 40mail.gmail.com
> 
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA35WaYq%2BF1iWa_jWsbaTYoy-9GAFumSZV7rUz_fb_Phtig%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: Help with a couple of issues

2016-09-02 Thread Linas Vepstas
Labas Algirdai,

The opencog website went down earlier today. I don't know why.  I will try
to investigate

--linas

On Fri, Sep 2, 2016 at 2:17 AM,  wrote:

>
> Amen thank you for looking into it.
>
> I am having some trouble with the opencog wiki, when I go to some page I
> get a bunch of errors. However I tried running cogserver with
> development.conf and opencog.conf and with either of these it won't load
> the libcustomatomtypes.so module.
>
>
> On Friday, September 2, 2016 at 5:19:31 AM UTC+3, AmeBel wrote:
>>
>> Hi,
>> on the first, I think you made a mistake in starting the cogserver, b/c I
>> tested it works. See http://wiki.opencog.org/wi
>> kihome/index.php/OpenCog_shell#Starting_Cogserver
>> on the second, if I am not mistaken the python api has changed, but
>> concept blending hasn't been updated to recent API.
>>
>> On Thursday, September 1, 2016 at 8:42:35 PM UTC+8,
>> algirdas@gmail.com wrote:
>>>
>>>
>>> Hello,
>>>
>>> I've been playing around with the OpenCog tutorial recently and ran into
>>> several issues that maybe someone can help me with.
>>>
>>> My config is: OpenCog on Osboxes Ubuntu 14.04.5 on VirtualBox 5.1.4.
>>> I ran octool and then successfully installed (or so I think) opencog,
>>> atomspace, cogutils and moses.
>>>
>>> When I try to perform - loadmodule examples/atomtypes/libcustomat
>>> omtypes.so
>>> I get the Unable to load module "examples/atomtypes/libcustomatomtypes.so"
>>> error.
>>>
>>> The second problem is with Conceptual blending, when I try to do -
>>> from.blending.blend import ConceptualBlending, I get this error:
>>>
>>> Traceback (most recent call last):
>>>   File "", line 1, in 
>>>   File "/home/osboxes/OPENCOG/opencog/opencog/python/blending/blend.py",
>>> line 4, in 
>>> from blending.src.chooser.chooser_finder import ChooserFinder
>>>   File 
>>> "/home/osboxes/OPENCOG/opencog/opencog/python/blending/src/chooser/chooser_finder.py",
>>> line 3, in 
>>> from blending.src.chooser.choose_in_sti_range import
>>> ChooseInSTIRange
>>>   File "/home/osboxes/OPENCOG/opencog/opencog/python/blending/src/
>>> chooser/choose_in_sti_range.py", line 1, in 
>>> from opencog.atomspace import Handle
>>> ImportError: cannot import name Handle
>>>
>>> Any help would be much appreciated.
>>>
>> --
> 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/03a0e926-3c79-477b-b1f7-7a00a3a1e92a%40googlegroups.com
> 
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA34svr6o1EA_m-aDxCXhG6aLwVS9OG0X5WHuRBdjB0hneg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-09-02 Thread Linas Vepstas
Hi Nil,


>
>> These same ideas should generalize to PLN:  although PLN is itself a
>> probabilistic logic, and I do not advocate changing that, the actual
>> chaining process, the proof process of arriving at conclusions in PLN,
>> cannot be, must not be.
>>
>> I hope the above pins down the source of confusion, when we talk about
>> these things.  The logic happening at the proof level, the ludics level,
>> is very different from the structures representing real-world knowledge.
>>
>
> Oh, it's a lot clearer then! But in the case of PLN inference control we
> want to use meta-learning anyway, not "hacks" (sorry if I upset certain)
> like linear logic or intuitionistic logic.


Well, hey, that is like saying that 2+2=4 is a hack --

The ideas that I am trying to describe are significantly older than PLN,
and PLN is not some magical potion that somehow is not bound by the rules
of reality, that can in some supernatural way violate the laws of
mathematics.


> However, I feel an area where something similar to linear logic, etc,
> might be very worthwhile thinking of is in estimating how much evidences
> inference traces have in common, as to have the revision rule work
> correctly. This is kinda the only way I manage to relate these
> barely-understandable-word-soup-sounding-to-me abstract proposals to
> PLN.  Would really love to look deep into that once it becomes more
> prioritized though.


OK, so in the blog post, at what point did things get too abstract, and too
hard to follow?

--linas

>
>

-- 
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/CAHrUA37k1QEYSYB%2BEqzBh%2BWKV2wFuXhwsCO0nsFH0GwZH%2B2%2BiQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-09-02 Thread Linas Vepstas
Hi Nil,


> Observe that the triple above is an arrow:  the tail of the arrow is
>> "some subset of the atomspace", the head of the arrow is "the result of
>> applying PLN rule X", and the shaft of the arrow is given a name: its
>> "rule X".
>>
>
> Aha, I finally understand what you meant all these years!
>
> I already pointed out that some of the worlds are "impossible" i.e. have
>> a probability of zero. These can be discarded.  But wait, there's more.
>> Suppose that one of the possible worlds contains the statement "John
>> Kennedy is alive" (with a very very high confidence) , while another one
>> contains the statement "John Kennedy is dead" (with a very very high
>> confidence). What I wish to claim is that, no matter what future PLN
>> inferences might be made, these two worlds will never become confluent.
>>
>
> I don't think that's true. I believe they should at least be somewhat
> confluent, I hope at least, if not then PLN inference control is
> pathological. Sure you can't have John Kennedy being half-alive and
> half-dead but that is not what a probability distribution means.


OK, the reason I focused on having separate, distinct copies of the
atomspace at each step is that you (or some algo) gets to decide, at each
point, whether you want to merge two atomspaces back together again into
one, or not.

Today, by default, with the way the chainers are designed, the various
different atomspaces are *always* merged back together again (into one
single, global atomspace), and you are inventing things like
"distributional TV" to control how that merge is done.

I am trying to point out that there is another possibility: one could, if
desired, maintain many distinct atomspaces, and only sometimes merge them.
  So, for just a moment, just pretend you actually did want to do that.
How could it actually be done?  Because doing it in the "naive" way is not
practical.  Well, there are several ways of doing this more efficiently.
One way is to create a new TV, which stores the pairs (atomspace-id,
simple-TV)  Then, if you wanted to merge two of these "abstract" atomspaces
into one, you could just *erase* the atomspace-id.  Just as easy as that --
erase some info. You could even take two different (atomspace-id,
simple-TV)  pairs and mash them into one distributional TV.

The nice thing about keeping such pairs is that the atomsapce-id encodes
the PLN inference chain.  If you want to know *how* you arrived at some
simple-TV, you just look at the atomspace-id, and you then can know how you
got there -- the inference chain is recorded, folded into the id.  To
create a distributional-TV, you simply throw away the records of the
different inference chains, and combine the simple-TV's into the
distributional TV.

I hope this is clear.   The above indicates how something like this could
work -- but we can't talk about if its a good idea, or how it might be
useful, till we get past that.


> I can't comment on link-grammar since I don't understand it.


Well, its a lot like PLN -- it is a set of inference rules (called
"disjuncts") that get applied, and each of these inference rules has a
probability associated with it (actually, log-probability -- the "cost").
However, instead of always merging each the result of each inference step
back into a single global atomspace (called a "linkage"), one keeps track
of multiple linkages (multiple distinct atomspaces).  One keeps going and
going, until it is impossible to apply any further inference rules.  At
this point, parsing is done.  When parsing is done, one has a few or dozens
or hundreds of these "linkages" (aka "atomspaces")

A parse is then the complete contents of the "atomspace" aka "linkage".
At the end of the parse, the "words" (aka OC Nodes, we actually use
WordNodes after conversion) are connected with "links" (aka OC
EvaluationLinks)

Let me be clear: when I say "its a lot like PLN", I am NOT hand-waving or
being metaphorical, nor am I trying to be abstract or obtuse.  I am trying
to state something very real, very concrete, very central.  It might not be
easy to understand; you might have to tilt your head sideways to get it,
but it really is there.

Anyway, moving on -- Now, you could, if you wished, mash all of the
"linkages"(atomspaces) back together again into just one -- you could put a
distributional TV on each "link"(EvaluationLink), and mash everything into
one.   You could do even more violence, and mash such a distributional TV
down to a simple TV.   It might even be a good idea to do this! No one has
actually done so.

Historically, linguists really dislike the
single-global-atomspace-with-probabilistic-TV's idea, and have always gone
for the many-parallel-universes-with-crisp-TV's model of parsing. This
dates back to before chomsky, before tesniere and is rooted in 19th or
18th-century or earlier concepts of grammar in, for example, Latin, etc. --
scholastic thinking maybe even to the 12th century.  The core concepts are
already present, ther

Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-09-02 Thread Linas Vepstas
Yes. I am starting to get very annoyed. Whenever I talk about
CompositeTruthValue, which I did earlier, I get the big brushoff. Now, when
I finally was able to sneak it back into the conversation, I once again get
the big brushoff.

I am starting to get really angry about this. I am spending wayyy too much
time writing these emails, and all I get is blank stares and the occasional
snide remark back.  This is just not that complicated, but as long as you
do not bother to apply your considerable brainpower to all of this, the
conversation is utterly completely stalled.

I'm pretty angry right now.

--linas


On Fri, Sep 2, 2016 at 10:44 PM, Ben Goertzel  wrote:

> Linas,
>
> On Sat, Sep 3, 2016 at 10:50 AM, Linas Vepstas 
> wrote:
> > Today, by default, with the way the chainers are designed, the various
> > different atomspaces are *always* merged back together again (into one
> > single, global atomspace), and you are inventing things like
> "distributional
> > TV" to control how that merge is done.
> >
> > I am trying to point out that there is another possibility: one could, if
> > desired, maintain many distinct atomspaces, and only sometimes merge
> them.
> > So, for just a moment, just pretend you actually did want to do that.
> How
> > could it actually be done?  Because doing it in the "naive" way is not
> > practical.  Well, there are several ways of doing this more efficiently.
> > One way is to create a new TV, which stores the pairs (atomspace-id,
> > simple-TV)  Then, if you wanted to merge two of these "abstract"
> atomspaces
> > into one, you could just *erase* the atomspace-id.  Just as easy as that
> --
> > erase some info. You could even take two different (atomspace-id,
> simple-TV)
> > pairs and mash them into one distributional TV.
>
> I note that we used to have something essentially equivalent to this,
> for basically this same reason.
>
> It was called CompositeTruthValue, and was a truth value object that
> contained mutliple truth values, indexed by a certain ID.The ID
> was a version-ID not an atomspace-ID, but same difference...
>
> A dude named Linas Vepstas got rid of this mechanism, because he
> (probably correctly) felt it was a poor software design ;)
>
> The replacement methodology is to use EmbeddedTruthValueLink and
> ContextAnchorNode , as in the example
>
> Evaluation
>   PredicateNode "thinks"
>   ConceptNode "Bob"
>   ContextAnchorNode "123"
>
> EmbeddedTruthValueLink <0>
>   ContextAnchorNode "123"
>   Inheritance Ben sane
>
> which uses more memory but does not complicate the core code so much...
>
> -- Ben
>
>
>
>
> --
> Ben Goertzel, PhD
> http://goertzel.org
>
> Super-benevolent super-intelligence is the thought the Global Brain is
> currently struggling to form...
>
> --
> You received this message because you are subscribed to the Google Groups
> "link-grammar" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to link-grammar+unsubscr...@googlegroups.com.
> To post to this group, send email to link-gram...@googlegroups.com.
> Visit this group at https://groups.google.com/group/link-grammar.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA36PPmUTY9EG2_EGNS8%3DUUnScRLzZQ8oOqMCrTMPWSDAAA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-09-02 Thread Linas Vepstas
GOD DAMN IT BEN

Stop writing these ninny emails, and start thinking about what the hell is
going on.  I've explained this six ways from Sunday, and I get the
impression that you are just skimming everything I write, and not bothering
to read it, much less think about it.

I know you are really really smart, and I know you can understand this
stuff, (cause its really not that hard)  but you are simply not making the
effort to do so.  You are probably overwhelmed with other work -- OK --
great -- so we can maybe follow up on this later on. But reading your
responses is just plain highly unproductive, and just doesn't lead
anywhere.  Its not interesting, its not constructive, it doesn't solve any
of the current problems in front of us.

--linas

On Fri, Sep 2, 2016 at 10:50 PM, Ben Goertzel  wrote:

> On Sat, Sep 3, 2016 at 9:59 AM, Linas Vepstas 
> wrote:
> > Hi Nil,
> >
> >>
> >>>
> >>> These same ideas should generalize to PLN:  although PLN is itself a
> >>> probabilistic logic, and I do not advocate changing that, the actual
> >>> chaining process, the proof process of arriving at conclusions in PLN,
> >>> cannot be, must not be.
> >>>
> >>> I hope the above pins down the source of confusion, when we talk about
> >>> these things.  The logic happening at the proof level, the ludics
> level,
> >>> is very different from the structures representing real-world
> knowledge.
> >>
> >>
> >> Oh, it's a lot clearer then! But in the case of PLN inference control we
> >> want to use meta-learning anyway, not "hacks" (sorry if I upset certain)
> >> like linear logic or intuitionistic logic.
> >
> >
> > Well, hey, that is like saying that 2+2=4 is a hack --
> >
> > The ideas that I am trying to describe are significantly older than PLN,
> and
> > PLN is not some magical potion that somehow is not bound by the rules of
> > reality, that can in some supernatural way violate the laws of
> mathematics.
>
> Hmm, no, but forms of logic with a Possibly operator are kinda crude
> -- they basically lump all non-crisp truth values into a single
> category, which is not really the most useful thing to do in most
> cases...
>
> Intuitionistic is indeed much older than probabilistic logic; but my
> feeling is it is largely superseded by probabilistic logic in terms of
> practical utility and relevance...
>
> It's a fair theoretical point, though, that a lot of the nice theory
> associated with intuitionistic logic could be generalized and ported
> to probabilistic logic -- and much of this mathematical/philosophical
> work has not been done...
>
> As for linear logic, I'm still less clear on the relevance.   It is
> clear to me that integrating resource-awareness into the inference
> process is important, but unclear to me that linear logic or affine
> logic are good ways to do this in a probabilistic context.   It may be
> that deep integration of probabilistic truth values provides better
> and different ways to incorporate resource-awareness...
>
> As for "reasoning about reasoning", it's unclear to me that this
> requires special treatment in terms of practicalities of inference
> software   Depending on one's semantic formalism, it may or may
> not require special treatment in terms of the formal semantics of
> reasoning  It seems to me that part of the elegance of dependent
> types is that one can suck meta-reasoning cleanly into the same
> formalism as reasoning.   This can also be done using type-free
> domains (Dana Scott's old work, etc.)   But then there are other
> formalisms where meta-reasoning and base-level reasoning are
> formalized quite differently...
>
> -- Ben
>
> -- Ben
>
> --
> You received this message because you are subscribed to the Google Groups
> "link-grammar" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to link-grammar+unsubscr...@googlegroups.com.
> To post to this group, send email to link-gram...@googlegroups.com.
> Visit this group at https://groups.google.com/group/link-grammar.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA36KRnFJkF9ELaOeDjmm%3DYWfY%2BSY42kaitevYJkS_H2nfg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-09-02 Thread Linas Vepstas
On Fri, Sep 2, 2016 at 11:19 PM, Ben Goertzel  wrote:

> Hmm, I don't feel like I'm brushing you off.   I'm actually trying to
> understand why you think linear or affine logic is needed --- I don't
> get why, I suspect you have some intuition or knowledge here that I'm
> not grokking, and I'd honestly love more
> clarification/elaboration/explanation from you...
>

Well, the blog post
http://blog.opencog.org/2016/08/31/many-worlds-reasoning-about-reasoning/
 really tries to lay down the most basic ideas.  As you read it, I believe
that you should be reminded of the old idea of "inference trails" which I
diligently tried not to mention, because I am afraid it will confuse the
issue.

If you read that, and think "how could one implement multiple atomspaces
efficiently", then, yes, ContextLink and/or CompositeTruthValue is a way of
doing that.

I claim that all the high-falutin mathematical terminology and concepts
apply to this particular situation, but discussing that further, just right
now, seems unproductive.  So let me set that aside.

But I do have the general sense that, as we move data through the system,
using either ContextLinks, or something else that implements the multiverse
model, would be useful.

There is a natural, obvious point of contact for this: every parse given to
you, by relex, is effectively its own "universe", already.  That's just the
way LG and relex were designed. Its how just about all parsers are
designed.  The classic example is "I saw the man with the telescope", which
has two parses, each parse is its own universe.  One parse is:

_subj(see, I)
_obj(see, man)
_advmod(see, with)
_pobj(with, telescope)

the other parse is nearly identical:

_subj(see, I)
_obj(see, man)
_prepadj(man, with)
_pobj(with, telescope)

We have several choices with how to deal with this.  We can try to keep
these in separate "universes", maybe using ContextLinks (for example --
there are other ways, too), and then accumulate evidence until we can rule
out one of these interpretations.

The other approach, that Nil was advocating with his distributional-TV
proposals, is to jam these two into one, and say that_advmod(see, with)
is half-true, and _prepadj(man, with) is half-true, -- and then somehow
hope that PLN is able to eventually sort it out.   We currently don't do
this approach, because it would break R2L -- the R2L rules would probably
mis-behave, because they don't know how to propagate half-truths.

My gut instinct is that keeping the two different interpretations of "I saw
the man with the telescope"  separate, for as long as possible, is better.
Using the distributional-TV to (prematurely) merge them into one will
probably lead to confusion.

However, this idea of keeping contexts separate, and when one should or
should not merge them together, requires some sort of common shared
vocabulary, so that we can talk about it.   The existing code talks about
"parses" and "interpretations" and "word instances" and, maybe that is all
that is needed, for now.

But I suspect that it won't be enough, not for long, because PLN inferences
done on one "interpretation" almost necessarily have to be distinct from
the inferences one on the other interpretations, and we don't have good
control over this.   Maybe ContextLinks or maybe ContextualTruthValues
would be good for this. Maybe inference trails might help. I dunno.   The
reason I dunno is because this level of abstraction is too low; it is too
hard to think and plan and design at that level.  More abstraction makes
understanding easier.

My hope was that, by talking about these other kinds of logics, it would
clarify the issues -- for example, by understanding that "parsing" and
"reasoning" are really the same kind of thing, and that therefore, the
various tricks and techniques and algorithms developed  for parsing could
be applied to reasoning as well.  Backward and forward chaining are very
crude, very primitive tools. Far superior algorithms have been invented.
I'm quite sure that we can do a lot lot better than merely backward/forward
chaining in PLN.  But we can't get there until we start talking at the
correct level of abstraction.

-- Linas


> About ContextLink / CompositeTruthValue -- an interesting relevant
> question is whether we want/need to use it in the PLN backward chainer
> which Nil is now re-implementing  Quite possibly we do...
>
>
>
> On Sat, Sep 3, 2016 at 12:11 PM, Linas Vepstas 
> wrote:
> > Yes. I am starting to get very annoyed. Whenever I talk about
> > CompositeTruthValue, which I did earlier, I get the big brushoff. Now,
> when
> > I finally was able to sneak it back into the conversation, I once again
> get
> > the big br

Re: [opencog-dev] Re: [Link Grammar] Re: probabilistic type theory with records ... variants of categorial grammar & semantics, etc.

2016-09-02 Thread Linas Vepstas
Here is other way of saying it.

On Fri, Sep 2, 2016 at 11:26 PM, Ben Goertzel  wrote:

>
>   Some of these things we're discussing are not going to be
> practically relevant in OpenCog for a while, but some of them might be
> important for Nil's near-future work on backward chaining and
> inference control...
>

Almost everything that I am talking about is aimed directly and explicitly
at the concept of forward and backward chaining.   I claim even more: of
all of the algorithms that are known for performing reasoning,
forward/backward chaining are the worst and the slowest and the
lowest-performance of all.   They are the most primitive possible tools for
performing reasoning -- they are CPU hogs that get stuck in the mud of
combinatorial explosion.

>
> What I'm thinking is to posit a specific example of a real-world
> situation and corresponding reasoning problem and then write down how
> it would be formulated using
>
> -- classical logic
> -- intuitionistic logic
> -- PLN
>

Nothing that I care to talk about depends in the slightest on  this
choice.  Whatever I  care to say about one applies equally well to the
other two.  The differences between them mostly do not matter, at all, for
the conversation that I wish to have.  One could add some
green-cheese-from-the-moon logic to the list, and it just plain would not
matter. It just doesn't matter.

The discussion I wish to have is about reasoning itself: the manner in
which one applies rules to data.  So far, you have mentioned only two:
forward and backward chaining.  I claim that there are many many more
possibilities, that are far superior to these two.

>
> and then identify a corresponding "reasoning about reasoning" problem
> and write down how ti would be formulated in these various ways... and
> see how the semantics can be formalized or otherwise expressed in each
> case...
>

The rules about reasoning are formulated in the same way, independently of
the actual logic which you wish to use.

Well, this is actually a kind-of white lie. If you know that your reasoner
is going to manipulate expressions written in classical predicate logic,
then you can cheat in various ways. By "cheat" I mean "optimize performance
of your reasoning algorithm".But I would rather avoid getting tangled
in the cheats/optimizations, at least, for a little while, and discuss
reasoning in general, completely independent of the logical system on which
the reasoning is being performed.

>
> Regarding inference control, I could then use said example as an
> illustration of my prior suggestion regarding
> probabilistic-programming-based inference control... and perhaps you
> could use it to explain how you think linear or affine logic can be
> useful for inference control?
>

I think we need to take multiple steps backwards first, and long before we
talk about inference control, we first need to agree on what we mean when
we say "inference".  Right now, we don't share a common concept of what
this is.

The blog post attempts to provide a provisional definition of inference.

I claim that inference is like parsing, and that algorithms suitable for
parsing can be transported and used for inference. I also claim that these
algorithms will all provide superior performance to backward/forward
chaining.

Until we can start to talk about inference as if it was a kind of parsing,
then I think we'll remain stuck, for a while.

--linas


>
> I could come up with an example or two myself but I'm afraid I might
> come up with one that doesn't fully illustrate the points you're
> trying to make...
>
> Going through this stuff in detail in the context of some specific
> example might help un-confuse others besides you, me and Nil who are
> listening into this thread as well...
>
> This is not urgent but could be interesting...
>
> ben
>
>
> On Sat, Sep 3, 2016 at 12:17 PM, Linas Vepstas 
> wrote:
> > GOD DAMN IT BEN
> >
> > Stop writing these ninny emails, and start thinking about what the hell
> is
> > going on.  I've explained this six ways from Sunday, and I get the
> > impression that you are just skimming everything I write, and not
> bothering
> > to read it, much less think about it.
> >
> > I know you are really really smart, and I know you can understand this
> > stuff, (cause its really not that hard)  but you are simply not making
> the
> > effort to do so.  You are probably overwhelmed with other work -- OK --
> > great -- so we can maybe follow up on this later on. But reading your
> > responses is just plain highly unproductive, and just doesn't lead
> anywhere.
> > Its not interesting, its not constructive, it doesn't solve any of the
> > current

Re: [opencog-dev] Re: OpenCog.org appears to be broken.

2016-09-03 Thread Linas Vepstas
Working on it. It might take a few days, the person(s) who maintain it are
out.  --linas

On Sat, Sep 3, 2016 at 3:33 PM, Noah Bliss  wrote:

> Hitting the "view source" tab, scrolling down, then copying out the data
> into any old word processor seems to be my preferred work-around right now.
>
> --
> 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/2f1a7ffe-a5b9-4391-a866-5597b7ec64a0%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA35kZforHo%2BPAkmEO%3D%3Dt-Bhhzqd%2BGa7vqoUqUk2eFssULw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: opencog with crawled data

2016-09-09 Thread Linas Vepstas
Hi,

On Wed, Sep 7, 2016 at 4:57 AM,  wrote:

>
> I think, i should do the following (?!)
>
> write probably a python script that produces the following output for
> every json file:
>
> (EvaluationLink
> (PredicateNode "sentence, location and body")
> (ListLink
>  (SentenceNode "an unique string ")
>  (EvaluationLink
>  (PredicateNode " coordinates, country, continent, body")
>  (ListLink
> (ConceptNode "-86.3222")
> (ConceptNode  "32.3934")
> (ConceptNode  "US" )
> (ConceptNode  "northamerica")
>  (ConceptNode  ".we need a new channel trump
>tv!!.)
>   .
>   .
>   . )))
>
>
> Then i can give this to pattern miner.
>
> Am i missing anything here?
>

Well, the pattern miner won't perform any parsing of the sentences for you,
so the most likely thing it will do is find that there's lots of things
with  (ConceptNode  "US" ) in them, and that this is highly correlated
with  (ConceptNode  "northamerica")  After that, it might find patterns in
the lat/log.  It does NOT do any string compares of the names of any nodes.

Unless you put at least WordNodes in there, you will get no text analysis.

--linas


>
>
> Thanks in advance.
>
>
>
> On Tuesday, September 6, 2016 at 4:05:43 PM UTC+2, vishnup...@gmail.com
> wrote:
>>
>> Hello all,
>>
>> I have attached a small example Json file, which is generated from
 twitter stream. I will be getting lots of Json chunks like this. How can i
 give this to pattern miner. i.e. can i convert it to hypergraph? What are
 the steps involved?. what would be the best way to start with.

>>> Any guidelines would be very much helpful.
>>>
>>
>> Thanks in advance
>>
>

-- 
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/CAHrUA35xEmMUgKyYVPqOufs-0LucDNCuNsoTmpGWgsrg29CcNg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: opencog with crawled data

2016-09-12 Thread Linas Vepstas
What Ben said -- you should run your data through the NLP pipeline.

On Mon, Sep 12, 2016 at 5:50 PM,  wrote:

> Hi Linas,
>
>
> (EvaluationLink
> (PredicateNode "sentence, location and body")
> (ListLink
>  (EvaluationLink
>  (PredicateNode "coordinates, country, continent, body")
>  (ListLink
> (WordNode "-86.3222")
> (WordNode  "32.3934")
> (WordNode  "US" )
> (WordNode  "northamerica")
>  (WordNode  ".we need a new channel trump tv!!.")
>
> 
>
>
>1. Do you mean something like this? How the input should be?   (i
>tried giving it, but it says unbound variable "WordNode")
>2. If i have say for ex,
>   1. ((WordNode "US") (WordNode  "trump is a candidate") )
>   2. ((WordNode "US") (WordNode  "trump tv") )
>   3. ((WordNode "US") (WordNode  " trump wins ") )
>   4. ((WordNode "US") (WordNode  " trump president?") )
>
>will it find that sentences that have "trump" always comes from
> US?(.. (wordNode "US") (WordNode "Trump")...).
>
> Any guidelines would be helpful
>
> Thanks in advance,
> Vishnu
>
>
>
> On Saturday, 10 September 2016 04:37:09 UTC+2, linas wrote:
>>
>> Hi,
>>
>>
>> On Wed, Sep 7, 2016 at 4:57 AM,  wrote:
>>
>>>
>>> I think, i should do the following (?!)
>>>
>>> write probably a python script that produces the following output for
>>> every json file:
>>>
>>> (EvaluationLink
>>> (PredicateNode "sentence, location and body")
>>> (ListLink
>>>  (SentenceNode "an unique string ")
>>>  (EvaluationLink
>>>  (PredicateNode " coordinates, country, continent, body")
>>>  (ListLink
>>> (ConceptNode "-86.3222")
>>> (ConceptNode  "32.3934")
>>> (ConceptNode  "US" )
>>> (ConceptNode  "northamerica")
>>>  (ConceptNode  ".we need a new channel trump
>>>tv!!.)
>>>   .
>>>   .
>>>   . )))
>>>
>>>
>>> Then i can give this to pattern miner.
>>>
>>> Am i missing anything here?
>>>
>>
>> Well, the pattern miner won't perform any parsing of the sentences for
>> you, so the most likely thing it will do is find that there's lots of
>> things with  (ConceptNode  "US" ) in them, and that this is highly
>> correlated with  (ConceptNode  "northamerica")  After that, it might find
>> patterns in the lat/log.  It does NOT do any string compares of the names
>> of any nodes.
>>
>> Unless you put at least WordNodes in there, you will get no text analysis.
>>
>> --linas
>>
>>
>>>
>>>
>>> Thanks in advance.
>>>
>>>
>>>
>>> On Tuesday, September 6, 2016 at 4:05:43 PM UTC+2, vishnup...@gmail.com
>>> wrote:

 Hello all,

 I have attached a small example Json file, which is generated from
>> twitter stream. I will be getting lots of Json chunks like this. How can 
>> i
>> give this to pattern miner. i.e. can i convert it to hypergraph? What are
>> the steps involved?. what would be the best way to start with.
>>
> Any guidelines would be very much helpful.
>

 Thanks in advance

>>>
>>

-- 
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/CAHrUA35wKGA5%2BW0FZi63szJuM0aF95JyAAyLpZqBt5JXDqLz0Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: opencog with crawled data

2016-09-13 Thread Linas Vepstas
Ah! Now we're getting somewhere!

On Tue, Sep 13, 2016 at 8:55 AM,  wrote:

>
> I just took a simple sentence  "apple is fruit"
> ---> (nlp-parse "apple is fruit")
> ---> (parse-get-r2l-outputs (ParseNode 
> "sentence@2ac41081-45a2-44c6-aae4-a95451a9ae21_parse_0"
> (stv 1 0.991)))
> I got the following as output:
>

Looks good to me.

>
>
> Then i parsed another sentence and got R2L results. After that, I put  r2l
> outputs of both sentences in a scm file (input.scm)  and gave it to pattern
> miner. But it threw ERROR (segmentation_fault.png).
>

:-(
OK, so .. here's the deal:

-- Clearly, the segfault is bad, and needs to be fixed!

-- there are two versions of the pattern miner, the one here, and the one
in a different (older) branch of opencog.  Shujing Ke did most of her work
in the older branch, and no one has ported her changes to the current
code.  This should also probably be done.  The older branch is here:
https://github.com/opencog/opencog/branches  PatternMinerEmbodiment -- you
can see that she has made 65 updates, but that her code is 4639 commits
behind master!  It might be the case that her code will nt segfault, no one
knows.

-- its not entirely obvious to Nil or to me that the Pattern Miner is
correctly written, anyway.  We need to review it.  There is a very highly
specialized version of a pattern miner on the language-learning code, and I
was planning on perhaps replacing that by a general-purpose miner, but have
not gotten around to it. Its a big project.

TL;DR: We need someone to roll up their sleeves, and take control of the
pattern Miner, and fix it, advance it, improve it, etc.

>
> how can i give bunch of sentences and get R2L outputs, which in turn i can
> give to pattern miner?
>

Well, that is the magic question, isn't it?  I'm not sure what state the
pattern-miner demos and examples are in. A good place to start would be to
review those, and then write a new one, explicitly dealing with language
issues.

>
>
> I also thought a way to do this:
> --->  converting bunch of lines into cff  by using "batch-process.sh"  and
> in turn converting  that into scm ./cff-to-opencog.pl
> 
>  .
>
>

cff is useful only for saving some CPU time during bulk processing.  Right
now, the system is not ready for bulk processing, so saving some CPU cycles
is not worth the effort.


> But it will be in the form of relex output.
> so picking some WordInstanceNode of each sentence from the relex output
> and doing the below to get R2L outputs.
>
> (cog-incoming-set (car (cog-incoming-set (ConceptNode (cog-name
> (WordInstanceNode "apple@2d15518b-c626-4ce3-8e6d-ecd07d3f9e46"))
> But it would be tedious!!
>

why is that tedious?  That's more or less how you're supposed to do it: its
a giant graph, you have to chase the edges of the graph to get what you
want.  Your code is not the most elegant way to chase through an edge, but
its not atypical. There are various InheritanceLinks, etc. in place to
simplify such searches.  There are also various utilities and macros for
some of this stuff (in the utilities.scm and nlp-utilities.scm files)

--linas


>
>
> in general, how can i handle this, i.e. giving bunch of sentences and
> getting r2l outputs?
>
>
>
>
>
>
>
>
>
>
>
>
>>

-- 
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/CAHrUA36WH_H92k8KnxtR62AZz-%2Bc%2BOY3D%3DLJ_KB_Up1-oJ3vVg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Embodied Language

2016-09-13 Thread Linas Vepstas
Attached is a pre-pre-draft of a description of what the current
embodiment-language system does, including a walk-through of the current
code, and how that code could be extended.

It might be that I am too early in sending this out, and I should have
written more first. C'est la vie.  Release early, release often is the
standard open-source mantra.

--linas

-- 
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/CAHrUA34E3shwdWJjEa%2B7_tkPJggH0GP_9EGM_9Y0UxOuE4wfhg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


embodiment.pdf
Description: Adobe PDF document


Re: [opencog-dev] make error opencog (no lib logger.so)

2016-09-14 Thread Linas Vepstas
Hi,

You appear to be compiling some stunningly ancient version of opencog.  I
don't know how you did that.  Where did you find this beast?  How did you
find it?

You should go to github, and follow the instructions there.

--linas

On Wed, Sep 14, 2016 at 9:41 AM,  wrote:

> When i make opencog from build directory, it failed. Something went wrong
> with logger.so.
>
>
>

-- 
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/CAHrUA36JKwDUDX5F_-3hqS96ThYyuOjZRFVEiAQgM5FuDS-_yA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] make error opencog (no lib logger.so)

2016-09-14 Thread Linas Vepstas
On Wed, Sep 14, 2016 at 1:59 PM,  wrote:

> Hey Linas,
>
> I cloned PatternMinerEmbodiment branch and ran it ;-).   Since you told
> shujinkge has made changes and no one imported it.   Just trying whether i
> can run patternminer without segmentation fault with this.
>

Ahh! OK, that makes sense. You best bet would be to copy the contents of
the PatternMiner directory there, into the current tree, and try to fix up
whatever breakages there are.

The more difficult but more correct way to do this would be to cherry-pick
her commits ...

--linas

>
>
> --Vishnu
>
>
> On Wednesday, 14 September 2016 18:54:00 UTC+2, linas wrote:
>>
>> Hi,
>>
>> You appear to be compiling some stunningly ancient version of opencog.  I
>> don't know how you did that.  Where did you find this beast?  How did you
>> find it?
>>
>> You should go to github, and follow the instructions there.
>>
>> --linas
>>
>> On Wed, Sep 14, 2016 at 9:41 AM,  wrote:
>>
>>> When i make opencog from build directory, it failed. Something went
>>> wrong with logger.so.
>>>
>>>
>>>

-- 
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/CAHrUA34sx5nsaGX2hD2CdwboJ4vFswtJ0e%2Bd7s7Meu1z8gFtjg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


[opencog-dev] Re: Embodied Language

2016-09-14 Thread Linas Vepstas
Yes, good point. I will add that.

--linas

On Wed, Sep 14, 2016 at 3:38 PM, Ed Pell  wrote:

>
> Linas, I would added a third model other. The three would be self, world,
> other. Where "other" my have two versions a generic other (person) and many
> copies of specific other (Alice, Bob, ...). Yes, other could be part of the
> world model but it feels special enough to me to have its own category.
> Specific other models can be based on profession, religious orientation,
> location, etc. That is we have internal models of "high level executive of
> large corporation", "school teacher", "southerner", "French person", etc.
>
> Cheers,
> Ed
>

-- 
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/CAHrUA34ds%2Bf%2BN8_QZj8qS7xvFiCQSXt8XLzjWvKv7iRAJeodtQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] unbound Variable cog-satisfying-set and loading scm file

2016-09-15 Thread Linas Vepstas
On Thu, Sep 15, 2016 at 10:28 AM,  wrote:

> Hello,
>
> my ~/.guile has
>
> (use-modules (ice-9 readline)) (activate-readline)
> (add-to-load-path "/usr/local/share/opencog/scm")
> (add-to-load-path ".")
> (use-modules (opencog))
> (use-modules (opencog query))
> (use-modules (opencog exec))
> (load-from-path "opencog.scm")
>

You almost surely should not be doing this last line.


>
> 1. When i run,
>   -->(define find-body(GetLink(ChoiceLink(EvaluationLink(PredicateNode
> "tweet-info")(ListLink(VariableNode "$body")(ConceptNode "Montgomery")))
> (EvaluationLink(PredicateNode "tweet-info")(ListLink (VariableNode
> "$body")(ConceptNode "Washington"))
>
>  -->(cog-satisfying-set find-body),
>
> it throws a following error:
>

Beats me, it works for me. My best guess is that some earlier compile
failed, and/or you did not do a "make install" after some compile, or that
possibly you have some old version of the query module that does not
contain cog-satisfying-set.  You can verify by hand that its there,
in /usr/local/share/opencog/scm/opencog/query.scm

Looking at that file, it tries to load two shared libraries: libexecution
and libquery berhaps one or both of these are borked or not installed.
 You can verify these by saying

ldd -r /usr/local/lib/opencog/libexecution.so  and also libquery and make
sure there are no errors about unlinked functions.

It is also possible that, by directly loading opencog.scm, which you should
never do, that you clobbered the LTDL_LIBRRY_PATH causing the two libraries
not to be found.


>
>
> 2. I have the following in my testAtomspace.scm file
>
>
>
> when i run
>  (add-to-load-path "/home/vishnu/Documents/opencog_relatedPackages/
> opencog/build")
> (add-to-load-path "/home/vishnu/Documents/opencog_relatedPackages/
> opencog/opencog/scm")
> (load-from-path "testAtomspace.scm")
>
> It always shows only the last part :
>

That's normal.  You can suppress even that by adding *unspecified* to the
bottom of the file, and so nothing at all will be printed.

--linas

>
>
>
> Thanks in advance ,
> Vishnu
>
>
>
> --
> 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/cb5a0ebe-6095-42ee-ba2a-fcea5453dc6d%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHrUA36R6Pp--SJtoCF6LwSJm%2B8HprX2D49qtM4SqYh6x3m4%3Dw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] Re: opencog with crawled data

2016-09-15 Thread Linas Vepstas
On Thu, Sep 15, 2016 at 10:12 AM,  wrote:

>
> So should i post this segmentation fault in github?
>

Sure. It would be better if you fixed it!


>
> --Thanks
> Vishnu
>
>
>
>>
>> :-(
>> OK, so .. here's the deal:
>>
>> -- Clearly, the segfault is bad, and needs to be fixed!
>>
>> -- there are two versions of the pattern miner, the one here, and the one
>> in a different (older) branch of opencog.  Shujing Ke did most of her work
>> in the older branch, and no one has ported her changes to the current
>> code.  This should also probably be done.  The older branch is here:
>> https://github.com/opencog/opencog/branches  PatternMinerEmbodiment --
>> you can see that she has made 65 updates, but that her code is 4639 commits
>> behind master!  It might be the case that her code will nt segfault, no one
>> knows.
>>
>> -- its not entirely obvious to Nil or to me that the Pattern Miner is
>> correctly written, anyway.  We need to review it.  There is a very highly
>> specialized version of a pattern miner on the language-learning code, and I
>> was planning on perhaps replacing that by a general-purpose miner, but have
>> not gotten around to it. Its a big project.
>>
>> TL;DR: We need someone to roll up their sleeves, and take control of the
>> pattern Miner, and fix it, advance it, improve it, etc.
>>
>>>
>>> how can i give bunch of sentences and get R2L outputs, which in turn i
>>> can give to pattern miner?
>>>
>>
>> Well, that is the magic question, isn't it?  I'm not sure what state the
>> pattern-miner demos and examples are in. A good place to start would be to
>> review those, and then write a new one, explicitly dealing with language
>> issues.
>>
>>>
>>>
>>> I also thought a way to do this:
>>> --->  converting bunch of lines into cff  by using "batch-process.sh"
>>>  and in turn converting  that into scm ./cff-to-opencog.pl
>>> 
>>>  .
>>>
>>>
>>
>> cff is useful only for saving some CPU time during bulk processing.
>> Right now, the system is not ready for bulk processing, so saving some CPU
>> cycles is not worth the effort.
>>
>>
>>> But it will be in the form of relex output.
>>> so picking some WordInstanceNode of each sentence from the relex output
>>> and doing the below to get R2L outputs.
>>>
>>> (cog-incoming-set (car (cog-incoming-set (ConceptNode (cog-name
>>> (WordInstanceNode "apple@2d15518b-c626-4ce3-8e6d-ecd07d3f9e46"))
>>> But it would be tedious!!
>>>
>>
>> why is that tedious?  That's more or less how you're supposed to do it:
>> its a giant graph, you have to chase the edges of the graph to get what you
>> want.  Your code is not the most elegant way to chase through an edge, but
>> its not atypical. There are various InheritanceLinks, etc. in place to
>> simplify such searches.  There are also various utilities and macros for
>> some of this stuff (in the utilities.scm and nlp-utilities.scm files)
>>
>> --linas
>>
>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>

>>

-- 
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/CAHrUA36pSoDMEqBFUj%2BpFpDCpCwjWSt8nZyMz9xmNy4PMy1WJQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] make error opencog (no lib logger.so)

2016-09-15 Thread Linas Vepstas
Yes, git-rebase sounds like it could work. If you manage to get it to work,
please create a pull request. I'd like to review and merge it.

--linas

On Thu, Sep 15, 2016 at 4:37 AM,  wrote:

> Thanks Linas for the reply.
>
>  yeah!!!  i can copy the contents of pattern miner from older branch to
> the current and can build opencog.
>
> The more difficult but more correct way to do this would be to cherry-pick
> her commits ...
>
>  i think i could also try git rebase --onto instead of cherry picking. I
> read somewhere, when it comes to range of commits, cherry picking is not
> practical ?!
>
>
> --Vishnu
>
> On Wednesday, 14 September 2016 22:55:03 UTC+2, linas wrote:
>>
>>
>>
>> On Wed, Sep 14, 2016 at 1:59 PM,  wrote:
>>
>>> Hey Linas,
>>>
>>> I cloned PatternMinerEmbodiment branch and ran it ;-).   Since you told
>>> shujinkge has made changes and no one imported it.   Just trying whether i
>>> can run patternminer without segmentation fault with this.
>>>
>>
>> Ahh! OK, that makes sense. You best bet would be to copy the contents of
>> the PatternMiner directory there, into the current tree, and try to fix up
>> whatever breakages there are.
>>
>> The more difficult but more correct way to do this would be to
>> cherry-pick her commits ...
>>
>> --linas
>>
>>>
>>>
>>> --Vishnu
>>>
>>>
>>> On Wednesday, 14 September 2016 18:54:00 UTC+2, linas wrote:

 Hi,

 You appear to be compiling some stunningly ancient version of opencog.
 I don't know how you did that.  Where did you find this beast?  How did you
 find it?

 You should go to github, and follow the instructions there.

 --linas

 On Wed, Sep 14, 2016 at 9:41 AM,  wrote:

> When i make opencog from build directory, it failed. Something went
> wrong with logger.so.
>
>
>
>>

-- 
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/CAHrUA36sP7-FaHFE-BWPqWKaWJzyA_VtjFPMaLOvXGFDaQS5NA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [opencog-dev] OpenCV for preliminary visual processing?

2016-09-16 Thread Linas Vepstas
Hi Noah,

Sounds like a good idea!  We currently do not have any clear-cut plans, but
let me tell you a little about what has been done so far.   Currently, the
main visual interface is in the repo
https://github.com/opencog/ros-behavior-scripting/ ... and its pretty
pathetic as vision goes.   It does use OpenCV, but only as input into a
hacked version of pi_vision, and that is used to detect human faces, and
map them to 3D locations.  Actually, I think that the pi_vision has been
replaced by the CMT tracker, recently, which seems to work a bit better,
maybe.  The ID's of the faces are placed as atoms into the atomspace.  Its
super-simple, and super-low-bandwidth: basically a handful of atoms that
say "I can see face 42 now" and that's it. The 3D locations of the
faces are NOT kept in the atomspace -- they are kept off-line, mostly
because of bandwidth concerns.  30 frames a second of x,y,z points is not a
lot, but is pointless, because we currently can't do reasoning with that
info, anyway.

Re: new or moving objects: someone recently added support for "visual
saliency", and I flamed them a bit for how it was done: the information
pumped into the atomspace was a very simple message: "something is
happening in the visual field!" which is kind-of useless.  Tell me, at
least, is it big, or is it small, near or far, moving fast or moving
slowly?  Is it "windmilling" i.e. moving-without-moving, like clapping
hands?  or just someone standing there, swaying side to side?

With that kind of info, one can, at least, do some sort of scripted
reactions: the robot can say "Hey I think I see a fly" or "what's that
going on behind your left shoulder?"  Anyway, that general kind of input is
handled byhttps://github.com/opencog/ros-behavior-scripting/ .. the
actual "state" of what is seen, what's going on is in src/self-model.scm
 and so additional stuff can be added there, like "I see something small
moving"...  scripted responses are in the file "behavior.scm", so if
something is seen, that is where you can script a response.

All of the above is "short term". In the long term, it really has to be
learning.  For that, it has to be something completely different. This
email is kind-of long already but ... the idea is to pattern-mine: "if 33%
of the screen is red and X happened at the same time, this is important,
remember and learn that!"  Except this never happens.  So instead, lets
(randomly) try "if 33% of the screen is blue and X happened at the same
time..." well, hey, that DOES happen, it means you went outside on a sunny
day. So this should be remembered and recorded as an important
filter-event, that converts visual stuff into knowledge.  The tricky part
here is that this is ... CPU intensive, requires lots of training. Its a
much much harder problem.  But.. enough.

Anyway, the upshot is: "there are no rules" -- we've done very little
almost nothing with vision, so you can do anything you want.

Re: python for opencog -- your best bet is to just poke atoms into the
atomspace with netcat, for example, like here:
https://github.com/opencog/ros-behavior-scripting/blob/master/face_track/face_atomic.py#L82-L87
called from here:
https://github.com/opencog/ros-behavior-scripting/blob/master/face_track/face_atomic.py#L62-L66

and uses netcat here:
https://github.com/opencog/ros-behavior-scripting/blob/master/face_track/netcat.py

Currently, this is probably the best way to use python to get data into and
out of the atomspace.

--linas


On Fri, Sep 16, 2016 at 10:37 AM, Noah Bliss  wrote:

> I'm going to be showing a great deal of ignorance in this post, but who
> knows, it might help.
>
> I understand an issue recently discussed with embodiment concerns methods
> for processing visual input. It's well known that at this time sending raw
> video into atomspace is a bad idea and that humans have built in visual
> processors that assist our conscious minds in understanding what our eyes
> see. (Obvious simple example being that the image is preflipped).
>
> I understand opencog has (in some form) a python api which leads me to
> think using the visual processing engine OpenCV may not be a bad idea. It
> has a fantastic python api, allows for exporting specific data from raw
> video such as "33% of the screen is red", or  there are 2 lines in the
> field of view." it also has a PHENOMINAL foreground/background separation
> engine that allows only a processing of new or moving objects in the field
> of view.
>
> While a more mature opencog engine may prefer a more "raw" processor, I
> see OpenCV as a great place to start for getting useful information into
> atomspace quickly.
>
> I have yet to start work on this, heck, I have yet to fully learn the
> ropes of the current opencog system, but I wanted to at least drop the info
> here in case anyone else had comments or wanted to get a head-start on me.
>
> Best regards my friends.
> Noah B.
>
> PS: My personal experience with OpenCV was specifically dealing with
> a

Re: [opencog-dev] OpenCV for preliminary visual processing?

2016-09-16 Thread Linas Vepstas
On Fri, Sep 16, 2016 at 8:41 PM, Noah Bliss  wrote:

> Thank you for the info Linas,
>
> I'll look at the current code and see if I can get a more complete
> implementation of OpenCV started. You mentioned another dev's overly simple
> integration which, while better than nothing, hardly fulfills our goal or
> utilizes the full potential of OpenCV.
>
> With luck maybe I can get the visual end of opencog a bit more useful than
> a glorified motion detector. :P
>

I think the "saliency detector" code is buried somewhere in here:
https://github.com/hansonrobotics/HEAD -- building and running that is
probably the easiest way to get a working end-to-end demo.

Thanks again! I'll report back any major advances, otherwise check the pull
> requests and maybe my branch of you get curious.
>
> As a side, if I am not mistaken, atomspace does most of its storage in sql
> right?
>
Only if you actually turn that on. Otherwise everything is in RAM.


> Perhaps I could see about offloading visual processing to a dedicated
> machine along with whatever camera/sensor is being used, and get that set
> up with an "atomspace client" that could dump pre-formatted atoms straight
> into the db.
>
netcat does that.  The python snippet with netcat was an example.

For everything else, we use ROS. There's a bit of a learning curve for ROS,
but its the ideal way for running multi-machine, distributed processing.

--linas

> If there aren't any logistical restrictions to this method, it could
> provide a more modular design to opencog and also reduce unnecessary
> primary server strain.
>
> Noah B.
>
> On Fri, Sep 16, 2016, 12:25 Linas Vepstas  wrote:
>
>> Hi Noah,
>>
>> Sounds like a good idea!  We currently do not have any clear-cut plans,
>> but let me tell you a little about what has been done so far.   Currently,
>> the main visual interface is in the repo https://github.com/
>> opencog/ros-behavior-scripting/ ... and its pretty pathetic as vision
>> goes.   It does use OpenCV, but only as input into a hacked version of
>> pi_vision, and that is used to detect human faces, and map them to 3D
>> locations.  Actually, I think that the pi_vision has been replaced by the
>> CMT tracker, recently, which seems to work a bit better, maybe.  The ID's
>> of the faces are placed as atoms into the atomspace.  Its super-simple, and
>> super-low-bandwidth: basically a handful of atoms that say "I can see face
>> 42 now" and that's it. The 3D locations of the faces are NOT kept in
>> the atomspace -- they are kept off-line, mostly because of bandwidth
>> concerns.  30 frames a second of x,y,z points is not a lot, but is
>> pointless, because we currently can't do reasoning with that info, anyway.
>>
>> Re: new or moving objects: someone recently added support for "visual
>> saliency", and I flamed them a bit for how it was done: the information
>> pumped into the atomspace was a very simple message: "something is
>> happening in the visual field!" which is kind-of useless.  Tell me, at
>> least, is it big, or is it small, near or far, moving fast or moving
>> slowly?  Is it "windmilling" i.e. moving-without-moving, like clapping
>> hands?  or just someone standing there, swaying side to side?
>>
>> With that kind of info, one can, at least, do some sort of scripted
>> reactions: the robot can say "Hey I think I see a fly" or "what's that
>> going on behind your left shoulder?"  Anyway, that general kind of input is
>> handled byhttps://github.com/opencog/ros-behavior-scripting/ .. the
>> actual "state" of what is seen, what's going on is in src/self-model.scm
>>  and so additional stuff can be added there, like "I see something small
>> moving"...  scripted responses are in the file "behavior.scm", so if
>> something is seen, that is where you can script a response.
>>
>> All of the above is "short term". In the long term, it really has to be
>> learning.  For that, it has to be something completely different. This
>> email is kind-of long already but ... the idea is to pattern-mine: "if 33%
>> of the screen is red and X happened at the same time, this is important,
>> remember and learn that!"  Except this never happens.  So instead, lets
>> (randomly) try "if 33% of the screen is blue and X happened at the same
>> time..." well, hey, that DOES happen, it means you went outside on a sunny
>> day. So this should be remembered and recorded as an important
>> filter-event, that converts visual stuff into knowl

  1   2   3   4   5   6   7   8   9   10   >