Wait ... we can have nested ScopeLinks, so that a variable embedded in
two ScopeLInks can be bound by the outer one or the inner one... no?

On Wed, Oct 12, 2016 at 4:08 PM, Linas Vepstas <linasveps...@gmail.com> wrote:
>
>
> On Wed, Oct 12, 2016 at 12:53 PM, Nil Geisweiller <ngeis...@googlemail.com>
> wrote:
>>
>>
>>
>> On 10/12/2016 06:55 PM, Linas Vepstas wrote:
>>>
>>> Well, yes, but Nil,, look at the core issue: the variable X in the
>>> Implication link is bound, but the unit test is pretending that its
>>> free.  My question is: are you *sure* you really want the
>>> implicationLink to inherit from Scope Link (and thus, always bind it's
>>> variables)?
>>
>>
>> X is supposed to be free in the ImplicationLink,
>
>
> Really?  The C++ code has ImplicationLink inheriting from ScopeLink, thus
> making it bound.  Perhaps ImplicationLink should not inherit from ScopeLink?
>
> ?
>
>>
>> bound to the PutLink. Yes I am sure I want it free in the ImplicationLink.
>> Having ImplicationLink inherit Scope should not prevent that. The syntax
>> itself is ambiguity free, if there are ambiguities in the code it's a bug
>> and it should be fixed.
>>
>> Again, I'm happy to fix anything related to that once the issue reappears.
>>
>> Nil
>>
>>>
>>> --linas
>>>
>>>
>>> On Wed, Oct 12, 2016 at 10:39 AM, Nil Geisweiller
>>> <ngeis...@googlemail.com <mailto:ngeis...@googlemail.com>> wrote:
>>>
>>>     OK, when they fail again I guess you might feel free to push to the
>>>     master, as we're apparently using as a dev branch, and then I'll fix
>>>     that.
>>>
>>>     Nil
>>>
>>>     On 10/12/2016 06:17 PM, Linas Vepstas wrote:
>>>
>>>         No, actually, I worked around that.
>>>
>>>         The only reason that PutLinkUTest currently passes is because
>>>         PutLink
>>>         fails to treat ScopeLinks correctly.  When that gets fixed, the
>>> unit
>>>         test will fail ... the issue remains the same.
>>>
>>>         --linas
>>>
>>>         On Tue, Oct 11, 2016 at 11:57 PM, Nil Geisweiller
>>>         <ngeis...@googlemail.com <mailto:ngeis...@googlemail.com>
>>>         <mailto:ngeis...@googlemail.com
>>>         <mailto:ngeis...@googlemail.com>>> wrote:
>>>
>>>              Are these unit tests still failing?
>>>
>>>              Nil
>>>
>>>
>>>              On 10/11/2016 08:36 PM, Linas Vepstas wrote:
>>>
>>>                  47 unit tests fail ... I'm not sure if they all fail
>>>         for the same
>>>                  reason, though.
>>>
>>>                  For example PutLink
>>>
>>>                  (PutLink
>>>                      (LambdaLink
>>>                        (VariableList
>>>                          (TypedVariableLink
>>>                            (VariableNode "$X")
>>>                            (TypeNode "PredicateNode")
>>>                          )
>>>                          (TypedVariableLink
>>>                            (VariableNode "$Y")
>>>                            (TypeNode "PredicateNode")
>>>                          )
>>>                        )
>>>                        (AndLink
>>>                          (EvaluationLink
>>>                            (PredicateNode "acquainted")
>>>                            (ListLink
>>>                              (VariableNode "$X")
>>>                              (VariableNode "$Y")
>>>                            )
>>>                          )
>>>                          (ImplicationLink
>>>                            (VariableNode "$X")  ; this is
>>>         alpha-converted to $foo1233
>>>                            (PredicateNode "is-human")
>>>                          )
>>>                          (ImplicationLink
>>>                            (VariableNode "$X") ; this is
>>>         alpha-converted  to $bar456
>>>                            (PredicateNode "is-human")
>>>                          )
>>>                        )
>>>                      )
>>>                      (ListLink
>>>                        (PredicateNode "is-Self")
>>>                        (PredicateNode "is-Bob")
>>>                      )
>>>                  )
>>>
>>>                  So, because the implication link is scoped, the result
>>>         of the
>>>                  variable
>>>                  substitution is
>>>
>>>                  (AndLink
>>>                      (ImplicationLink
>>>                        (VariableNode "$foo123")
>>>                        (PredicateNode "is-human")
>>>                      )
>>>                      (ImplicationLink
>>>                        (VariableNode "$bar456")
>>>                        (PredicateNode "is-human")
>>>                      )
>>>                      (EvaluationLink
>>>                        (PredicateNode "acquainted")
>>>                        (ListLink
>>>                          (PredicateNode "is-Self")
>>>                          (PredicateNode "is-Bob")
>>>                        )
>>>                      )
>>>                  )
>>>
>>>                  which is not what the unit test expects. The problem
>>>         with using
>>>                  either
>>>                  ScopeLink or LambdaLink is that it becomes impossible
>>>         to have a
>>>                  stable
>>>                  variable name -- it can be alpha-converted to anything,
>>>         so any
>>>                  algo that
>>>                  depends on having a fixed, well-known variable name
>>>         will fail.
>>>
>>>                  In this case -- I am not sure -- if you want
>>>         ImplicationLink to be
>>>                  scoped, then the unit test is wrong.  But is the unit
>>>         test is right,
>>>                  then implication link must not be scoped.  I cannot
>>>         tell which
>>>                  one is
>>>                  wanted.
>>>
>>>                  --linas
>>>
>>>
>>>
>>>                  On Tue, Oct 11, 2016 at 12:12 PM, Nil Geisweiller
>>>                  <ngeis...@googlemail.com
>>>         <mailto:ngeis...@googlemail.com> <mailto:ngeis...@googlemail.com
>>>         <mailto:ngeis...@googlemail.com>>
>>>                  <mailto:ngeis...@googlemail.com
>>>         <mailto:ngeis...@googlemail.com>
>>>
>>>                  <mailto:ngeis...@googlemail.com
>>>         <mailto:ngeis...@googlemail.com>>>> wrote:
>>>
>>>                       Linas,
>>>
>>>                       I don't have time to get into that right now. If
>>>         you can
>>>                  point to
>>>                       where exactly it breaks (like a unit test on your
>>>         branch)
>>>                  it would
>>>                       help. In any case I look carefully into that and
>>> reply
>>>                  tomorrow.
>>>
>>>                       Nil
>>>
>>>
>>>                       On 10/11/2016 06:55 PM, Linas Vepstas wrote:
>>>
>>>                           You made it inherit from ScopeLink, thus
>>>         making the
>>>                  variables in it
>>>                           implicitly scoped.  Then you added the file
>>>                  ImplicationLink.cc,
>>>                           and have
>>>                           notes in there, complaining about how
>>>         variables are
>>>                  implcitly
>>>                           scoped.
>>>                           The wiki page for it,
>>>         http://wiki.opencog.org/w/ImplicationLink
>>>         <http://wiki.opencog.org/w/ImplicationLink>
>>>                  <http://wiki.opencog.org/w/ImplicationLink
>>>         <http://wiki.opencog.org/w/ImplicationLink>>
>>>                           <http://wiki.opencog.org/w/ImplicationLink
>>>         <http://wiki.opencog.org/w/ImplicationLink>
>>>                  <http://wiki.opencog.org/w/ImplicationLink
>>>         <http://wiki.opencog.org/w/ImplicationLink>>> still
>>>                           says things that are wrong (re alpha
>>>         conversion -- each
>>>                  lambda gets
>>>                           alpha converted, so the "sugar syntax" section
>>>         cannot
>>>                  possibly
>>>                           be right).
>>>
>>>                           I'm asking, because I'm trying to fix #910 by
>>>         doing the
>>>                  alpha
>>>                           conversion
>>>                           correctly, and the result of the fix is that
>>>         unit tests
>>>                  with
>>>                           implication
>>>                           links in them now fail.  The whole thing
>>>         smells bad.
>>>
>>>                           Either ImplicationLinks do inherit from
>>>         ScopeLink, in which
>>>                           case, there
>>>                           should be no complaints about how the
>>>         ScopeLink works:
>>>                  it does
>>>                           the right
>>>                           thing.  If you don't like what the scopeLink
>>>         does, then
>>>                           ImplicationLinks
>>>                           should NOT inherit from it ...
>>>
>>>                           In either case, the wiki page needs fixing,
>>>         because the
>>>                  alpha
>>>                           conversion
>>>                           conversation we had recently renders that page
>>>         incoherent.
>>>
>>>                           I don't really care, one way or the other, but
>>>         I do need to
>>>                           understand
>>>                           the intended design well enough to be able to
>>>         fix bugs, and
>>>                           right now, I
>>>                           don't understand what ImplicationLink is, or
>>>         how its
>>>                  supposed to
>>>                           work.
>>>
>>>                           --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/CAHrUA35RygO2MWjZJ2MfEA2TCvBC8kjvFDVvj2-CNmqP2e9PLQ%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/CACYTDBe%3DzQ2XZ1HxtUfujgB_LvRFmig7eia_KOxh8dSZsLSn3A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to