opencog / opencog

A framework for integrated Artificial Intelligence & Artificial General Intelligence (AGI)

Home Page:http://wiki.opencog.org/w/Development

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ghosts unit tests failing.

linas opened this issue · comments

Ghost unit tests no longer pass, for unknown reason. The last passed in pull req #3632 on 4 March 2020 and fail on #3636 which does nothing but modify the README.

The last time all 11 unit tests ran and passed was https://circleci.com/gh/opencog/opencog/2422 (later pull reqs did not run all tests!?)

There were only two changes: first change is 852c6a4 which uses the standard macros for gcc, but caused only two unit tests to run !?

The second change is a4506de which changes only the README, and causes all 11 unit tests to run, and three to fail.

The root cause is presumably some change in some other repo. From what I can tell, its not an atomspace change.

Found the root cause...

Spend the day git bisecting but unable to track down which change in which repo triggered the failures.

The 4 March 2020 URE does not cause the unit tests to pass. Nor does AtomSpace from that timeframe. Nor does PLN. So I conclude changes to those repos did not cause the failure. Not clear what's left to blame, though...

when I load ghost by hand : get this:

scheme@(guile-user)> (define parser (cs-parser))
ice-9/boot-9.scm:1669:16: In procedure raise-exception:
Unbound variable: CONCEPT

... beats me...

@leungmanhin could you take a look at it? It seems to be the last issue in the way of completing opencog->singnet merge.

when I load ghost by hand : get this:

scheme@(guile-user)> (define parser (cs-parser))
ice-9/boot-9.scm:1669:16: In procedure raise-exception:
Unbound variable: CONCEPT

... beats me...

@linas I can't reproduce this, and simply loading the cs-parse.scm file seems fine, was anything loaded before running this line as you recall?

For the GhostSyntaxUTest, I see there's only one case failing, which requires matching against the relex2logic outputs. When I tried running it in the shell, I saw no relex2logic output was generated, and it actually looks like relex2logic is broken, i.e. no relex2logic output is generated for any sentence after parsing it using nlp-parse...

scheme@(guile-user)> (use-modules (opencog) (opencog nlp) (opencog nlp relex2logic) (opencog nlp chatbot))
scheme@(guile-user)> (set-relex-server-host)
$1 = "172.17.0.3"
scheme@(guile-user)> (sent-get-r2l-outputs (car (nlp-parse "this is a test")))
$2 = ()

Created #3639 to keep track of it.

For the other failing test GhostProcedureUTest, which tests the simple PLN inference procedures we crafted before. It fails at a function call pln-get-nlp-inputs where an abstract version of the relex2logic outputs is expected to be returned, but since there no relex2logic output generated for the input sentences, it returns nothing, causing the test to fail...

So looks like R2L is the cause.

After applying the fix suggested by Nil here: #3639 (comment)

The GhostSyntaxUTest now passes, but GhostProcedureUTest still fails with:

%%%% Starting test ghost-procedure-tests  (Writing full log to "ghost-procedure-tests.log")
Warning: Unwind-only `stack-overflow' exception; skipping pre-unwind handler.
Warning: Unwind-only `stack-overflow' exception; skipping pre-unwind handler.
Warning: Unwind-only `stack-overflow' exception; skipping pre-unwind handler.
Warning: Unwind-only `stack-overflow' exception; skipping pre-unwind handler.
Stack overflow

Looking into it...

The tests no longer fail after #3639