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