opencog / opencog-nix

Build definitions for the NIX package manager
7 stars 4 forks source link

[opencog] MicroplanningUTest passes but has spacetime import error (Unbound variable: opencog-ext-path-spacetime-types) #51

Closed Radivarig closed 3 years ago

Radivarig commented 4 years ago

The test does pass but I might have misses some folder to include. Is there a way to squeeze out more info from this error? I can reproduce it by hand from the build environment, with calling guile and (use-modules (opencog spacetime))

Found in these two places:

λ grep -rne "opencog-ext-path-spacetime-types"
spacetime/opencog/spacetime/atom-types/spacetime.scm:10:(load-extension (string-append opencog-ext-path-spacetime-types "libspacetime-types") "spacetime_types_init")
spacetime/opencog/spacetime/atom-types/CMakeLists.txt:23:ADD_GUILE_EXTENSION(SCM_CONFIG spacetime-types "opencog-ext-path-spacetime-types")

Maybe similar: opencog#3615

test 5
    Start 5: MicroplanningUTest

5: Test command: /home/radivarig/projects/opencog-dev/source/build/tests/nlp/microplanning/MicroplanningUTest
5: Test timeout computed to be: 10000000
5: [2019-12-11 21:06:05:947] [INFO] Using config file found at: /home/radivarig/projects/opencog-dev/source/build/tests/nlp/microplanning/../../../../lib/opencog-test.conf
5: 
5: ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
5: ;;;       or pass the --no-auto-compile argument to disable.
5: ;;; compiling /nix/store/c35jz30bplvw8q3bqwiq5mzfvpjwh3xl-spacetime/share/guile/site/opencog/spacetime.scm
5: ;;; opencog/spacetime.scm:10:16: warning: possibly unbound variable `opencog-ext-path-spacetime-types'
5: ;;; compiled /home/radivarig/projects/opencog-dev/source/.cache/guile/ccache/2.2-LE-8-3.A/nix/store/c35jz30bplvw8q3bqwiq5mzfvpjwh3xl-spacetime/share/guile/site/opencog/spacetime.scm.go
5: ;;; compiling /home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning.scm
5: ;;; compiled /home/radivarig/projects/opencog-dev/source/.cache/guile/ccache/2.2-LE-8-3.A/home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning.scm.go
5: ;;; compiling /home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/main.scm
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:504:61: warning: possibly unbound variable `match-sentence-forms'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:502:37: warning: possibly unbound variable `get-time-weight'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:492:40: warning: possibly unbound variable `get-atom'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:491:42: warning: possibly unbound variable `get-atom'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:399:24: warning: possibly unbound variable `get-main-weight-proc'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:382:64: warning: possibly unbound variable `get-supp-weight-proc'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:355:88: warning: possibly unbound variable `get-atom'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:354:98: warning: possibly unbound variable `cog-has-node?'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:339:64: warning: possibly unbound variable `get-atom'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:336:75: warning: possibly unbound variable `get-atom'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:311:64: warning: possibly unbound variable `get-main-weight-proc'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:285:45: warning: possibly unbound variable `get-atom'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:103:8: warning: possibly unbound variable `microplanning-init'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:99:55: warning: possibly unbound variable `get-utterance-types'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:99:34: warning: possibly unbound variable `get-chunks'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:97:38: warning: possibly unbound variable `insert-anaphora'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:57:8: warning: possibly unbound variable `<chunks-option>'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:57:8: warning: possibly unbound variable `make'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:145:38: warning: possibly unbound variable `make'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:145:38: warning: possibly unbound variable `<atomW>'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:167:54: warning: possibly unbound variable `get-atom'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:176:56: warning: possibly unbound variable `make'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:176:56: warning: possibly unbound variable `<chunks-set>'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:204:46: warning: possibly unbound variable `make'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:204:46: warning: possibly unbound variable `<chunks-set>'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:219:59: warning: possibly unbound variable `get-leftover-count'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:225:56: warning: possibly unbound variable `is-subset?'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:230:32: warning: possibly unbound variable `less-leftover?'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:234:32: warning: possibly unbound variable `less-chunks?'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:245:93: warning: possibly unbound variable `get-length'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:246:96: warning: possibly unbound variable `get-length'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:248:80: warning: possibly unbound variable `less-variation?'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:442:29: warning: possibly unbound variable `match-sentence-forms'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:442:71: warning: possibly unbound variable `cog-has-atom-type?'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:527:51: warning: possibly unbound variable `match-sentence-forms'
5: ;;; opencog/scm/opencog/nlp/microplanning/main.scm:527:99: warning: possibly unbound variable `get-form-limit'
5: ;;; compiled /home/radivarig/projects/opencog-dev/source/.cache/guile/ccache/2.2-LE-8-3.A/home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/main.scm.go
5: ;;; compiling /home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/sentence-forms.scm
5: ;;; compiled /home/radivarig/projects/opencog-dev/source/.cache/guile/ccache/2.2-LE-8-3.A/home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/sentence-forms.scm.go
5: ;;; compiling /home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/helpers.scm
5: ;;; compiled /home/radivarig/projects/opencog-dev/source/.cache/guile/ccache/2.2-LE-8-3.A/home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/helpers.scm.go
5: ;;; compiling /home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/anaphora-noun-item.scm
5: ;;; compiled /home/radivarig/projects/opencog-dev/source/.cache/guile/ccache/2.2-LE-8-3.A/home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/anaphora-noun-item.scm.go
5: ;;; compiling /home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/anaphora-nouns-list.scm
5: ;;; compiled /home/radivarig/projects/opencog-dev/source/.cache/guile/ccache/2.2-LE-8-3.A/home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/anaphora-nouns-list.scm.go
5: ;;; compiling /home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/anaphora.scm
5: ;;; opencog/scm/opencog/nlp/microplanning/anaphora.scm:92:77: warning: possibly unbound variable `get-chunk'
5: ;;; opencog/scm/opencog/nlp/microplanning/anaphora.scm:92:48: warning: possibly unbound variable `mod-chunk'
5: ;;; opencog/scm/opencog/nlp/microplanning/anaphora.scm:89:63: warning: possibly unbound variable `get-utterance-link'
5: ;;; opencog/scm/opencog/nlp/microplanning/anaphora.scm:88:43: warning: possibly unbound variable `get-utterance-type'
5: ;;; opencog/scm/opencog/nlp/microplanning/anaphora.scm:87:46: warning: possibly unbound variable `get-chunk'
5: ;;; opencog/scm/opencog/nlp/microplanning/anaphora.scm:74:64: warning: possibly unbound variable `mod-link'
5: ;;; opencog/scm/opencog/nlp/microplanning/anaphora.scm:66:73: warning: possibly unbound variable `get-link'
5: ;;; opencog/scm/opencog/nlp/microplanning/anaphora.scm:63:56: warning: possibly unbound variable `mod-link'
5: ;;; opencog/scm/opencog/nlp/microplanning/anaphora.scm:35:58: warning: possibly unbound variable `get-utterance-type'
5: ;;; opencog/scm/opencog/nlp/microplanning/anaphora.scm:35:38: warning: possibly unbound variable `get-sentence-forms'
5: ;;; opencog/scm/opencog/nlp/microplanning/anaphora.scm:30:35: warning: possibly unbound variable `get-chunks'
5: ;;; opencog/scm/opencog/nlp/microplanning/anaphora.scm:26:28: warning: possibly unbound variable `clone-set'
5: ;;; compiled /home/radivarig/projects/opencog-dev/source/.cache/guile/ccache/2.2-LE-8-3.A/home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/anaphora.scm.go
5: ;;; compiling /home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/chunks-option.scm
5: ;;; compiled setup opencog=
5: setup nlp=
5: setup lg-dict=
5: setup spacetime=Backtrace:
5:           19 (apply-smob/1 #<catch-closure 7f5ffb9033a0>)
5:           18 (apply-smob/1 #<catch-closure 7f5ffb903260>)
5: In ice-9/boot-9.scm:
5:    2312:4 17 (save-module-excursion _)
5: In ice-9/eval-string.scm:
5:      38:6 16 (read-and-eval #<input: string 7f5ffba008c0> #:lang _)
5: In ice-9/eval.scm:
5:    721:20 15 (primitive-eval _)
5: In ice-9/psyntax.scm:
5:   1235:36 14 (expand-top-sequence _ _ _ #f _ _ _)
5:   1182:24 13 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
5:    285:10 12 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) …)
5: In ice-9/boot-9.scm:
5:   3365:20 11 (process-use-modules _)
5:    222:17 10 (map1 (((opencog spacetime))))
5:   3366:31  9 (_ ((opencog spacetime)))
5:   2788:17  8 (resolve-interface (opencog spacetime) #:select _ #:hide …)
5:   2714:10  7 (_ (opencog spacetime) _ _ #:ensure _)
5:   2982:16  6 (try-module-autoload _ _)
5:    2312:4  5 (save-module-excursion _)
5:   3002:22  4 (_)
5: In unknown file:
5:            3 (primitive-load-path "opencog/spacetime" #<procedure 7f…>)
5: In opencog/spacetime.scm:
5:       7:0  2 (_)
5: In ice-9/boot-9.scm:
5:    751:25  1 (dispatch-exception 0 unbound-variable ("module-look…" …))
5: In unknown file:
5:            0 (apply-smob/1 #<catch-closure 7f5ffb9031e0> # "module-…" …)
5: 
5: ERROR: In procedure apply-smob/1:
5: In procedure module-lookup: Unbound variable: opencog-ext-path-spacetime-types
5: ABORT: unbound-variable
5: setup r2l=
5: setup sureal=
5: setup micropanning=
5: Running cxxtest tests (2 tests)[DEBUG] BEGIN TEST: test_declarative
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (InterpretationNode "MicroplanningNewSentence")to
5: (VariableNode "$interp")
5: [DEBUG] [SuReal] In variable_match, type mismatch!
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (InterpretationNode "MicroplanningNewSentence")to
5: (InterpretationNode "sentence@73cbe607-c500-435c-9893-16704bb84be1_parse_0_interpretation_$X")
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (InterpretationNode "MicroplanningNewSentence")to
5: (InterpretationNode "sentence@c32280f6-14d5-4af1-adfb-ec99494c1dd4_parse_0_interpretation_$X")
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (InterpretationNode "MicroplanningNewSentence")to
5: (InterpretationNode "sentence@c98270c2-c94e-47ec-8d57-94d67930c972_parse_0_interpretation_$X")
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (InterpretationNode "MicroplanningNewSentence")to
5: (InterpretationNode "sentence@bb54d100-5325-400d-ac0b-9f5d2c1bd4bf_parse_0_interpretation_$X")
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (InterpretationNode "MicroplanningNewSentence")to
5: (InterpretationNode "sentence@8ea9842b-a66c-42bf-8a32-1cbaa596c457_parse_0_interpretation_$X")
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (InterpretationNode "MicroplanningNewSentence")to
5: (InterpretationNode "sentence@b98794e2-4a35-4642-b0ac-59914848df22_parse_0_interpretation_$X")
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (InterpretationNode "MicroplanningNewSentence")to
5: (InterpretationNode "sentence@6c386699-9d21-4d1f-8eec-ff8518c18d90_parse_0_interpretation_$X")
5: [DEBUG] [SuReal] Start pred is: (EvaluationLink (PredicateNode "climbs@cc237a97-1cde-4939-bf7e-93d607eb3d7d") (ListLink (ConceptNode "robot@91c3e125-bca8-42f3-8a48-deea6a29c0de") (ConceptNode "tree@160bc480-942c-4421-b798-04c004c011f5")))
5: [DEBUG] [SuReal] Loop candidate: (EvaluationLink (PredicateNode "grow@4cf777c1-a989-4aac-831c-8c1175d4b197") (ListLink (ConceptNode "they@deb8f479-5b5a-447c-9ef3-c31a60e21371")))
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (PredicateNode "climbs@cc237a97-1cde-4939-bf7e-93d607eb3d7d")to
5: (PredicateNode "grow@4cf777c1-a989-4aac-831c-8c1175d4b197")
5: [DEBUG] [SuReal] Loop candidate: (EvaluationLink (PredicateNode "burns@e491539f-5f54-487b-ace6-d1055a422ec5") (ListLink (VariableNode "$9ZTKrfM3TuQYIXPmcF92hkGLUJmL6y5fS9uP") (ConceptNode "tree@70199077-d25f-4abd-9519-5fddd34c5e18")))
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (PredicateNode "climbs@cc237a97-1cde-4939-bf7e-93d607eb3d7d")to
5: (PredicateNode "burns@e491539f-5f54-487b-ace6-d1055a422ec5")
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (ConceptNode "robot@91c3e125-bca8-42f3-8a48-deea6a29c0de")to
5: (VariableNode "$9ZTKrfM3TuQYIXPmcF92hkGLUJmL6y5fS9uP")
5: [DEBUG] [SuReal] In variable_match, type mismatch!
5: [DEBUG] [SuReal] Loop candidate: (EvaluationLink (DefinedLinguisticPredicateNode "definite") (ListLink (ConceptNode "tree@70199077-d25f-4abd-9519-5fddd34c5e18")))
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (PredicateNode "climbs@cc237a97-1cde-4939-bf7e-93d607eb3d7d")to
5: (DefinedLinguisticPredicateNode "definite")
5: [DEBUG] [SuReal] In variable_match, type mismatch!
5: [DEBUG] [SuReal] Loop candidate: (EvaluationLink (DefinedLinguisticPredicateNode "definite") (ListLink (ConceptNode "dogs@e80edc9e-b5c5-4cae-90d9-eb91296b2e18")))
5: [DEBUG] [SuReal] Loop candidate: (EvaluationLink (PredicateNode "grow@cbf77b70-75b4-4902-9339-a54639377ec4") (ListLink (ConceptNode "dogs@e80edc9e-b5c5-4cae-90d9-eb91296b2e18")))
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (PredicateNode "climbs@cc237a97-1cde-4939-bf7e-93d607eb3d7d")to
5: (PredicateNode "grow@cbf77b70-75b4-4902-9339-a54639377ec4")
5: [DEBUG] [SuReal] Loop candidate: (EvaluationLink (DefinedLinguisticPredicateNode "possession") (ListLink (ConceptNode "dogs@e80edc9e-b5c5-4cae-90d9-eb91296b2e18") (ConceptNode "apple@dd5f32bb-5bca-4b23-81f0-39f71e06b55f")))
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (PredicateNode "climbs@cc237a97-1cde-4939-bf7e-93d607eb3d7d")to
5: (DefinedLinguisticPredicateNode "possession")
5: [DEBUG] [SuReal] In variable_match, type mismatch!
5: [DEBUG] [SuReal] Loop candidate: (EvaluationLink (DefinedLinguisticPredicateNode "definite") (ListLink (ConceptNode "orange@138d2783-960d-4030-86d9-e19597d3b5e9")))
5: [DEBUG] [SuReal] Loop candidate: (EvaluationLink (DefinedLinguisticPredicateNode "definite") (ListLink (ConceptNode "cat@9f3565d0-834e-4b30-a598-11cfb8adb3b9")))
5: [DEBUG] [SuReal] Loop candidate: (EvaluationLink (DefinedLinguisticPredicateNode "definite") (ListLink (ConceptNode "I@58decb35-c9b0-4328-88a2-f1d0ff42470d")))
5: [DEBUG] [SuReal] Loop candidate: (EvaluationLink (PredicateNode "climbs@0addbb01-d017-47ff-bd2d-c7a2afa3c60c") (ListLink (ConceptNode "cat@9f3565d0-834e-4b30-a598-11cfb8adb3b9") (ConceptNode "table@54e19a50-96a3-48c4-805b-954e1c91dce6")))
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (PredicateNode "climbs@cc237a97-1cde-4939-bf7e-93d607eb3d7d")to
5: (PredicateNode "climbs@0addbb01-d017-47ff-bd2d-c7a2afa3c60c")
5: [DEBUG] [SuReal] In variable_match, trying to ground:
5: (ConceptNode "robot@91c3e125-bca8-42f3-8a48-deea6a29c0de")to
5: (ConceptNode "cat@9f3565d0-834e-4b30-a598-11cfb8adb3b9")
...

(removed ~14000 lines)

5: [DEBUG] [SuReal] In grounding, no common InterpretationNode found!
5: [DEBUG] [SuReal] In grounding, trying to find a common interpretation between:
5: (InheritanceLink (ConceptNode "pine@981c495c-1111-4bb2-8f7f-164a1122cae6") (ConceptNode "tree@160bc480-942c-4421-b798-04c004c011f5"))(EvaluationLink (PredicateNode "mean@524fdbed-149e-47ce-a2a2-494e80962580") (ListLink (ConceptNode "I@5219488c-e6f1-413a-8494-77deeb9f33f3") (ConceptNode "pine@981c495c-1111-4bb2-8f7f-164a1122cae6")))(InheritanceLink (InterpretationNode "sentence@c98270c2-c94e-47ec-8d57-94d67930c972_parse_0_interpretation_$X") (DefinedLinguisticConceptNode "DeclarativeSpeechAct"))
5: [DEBUG] [SuReal] In grounding, no common InterpretationNode found!
5: [DEBUG] END TEST: test_interrogative
5: .OK!
5: /home/radivarig/projects/opencog-dev/source/.cache/guile/ccache/2.2-LE-8-3.A/home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/chunks-option.scm.go
5: ;;; compiling /home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/chunks-set.scm
5: ;;; compiled /home/radivarig/projects/opencog-dev/source/.cache/guile/ccache/2.2-LE-8-3.A/home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/chunks-set.scm.go
5: ;;; compiling /home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/atomW.scm
5: ;;; compiled /home/radivarig/projects/opencog-dev/source/.cache/guile/ccache/2.2-LE-8-3.A/home/radivarig/projects/opencog-dev/source/build/opencog/scm/opencog/nlp/microplanning/atomW.scm.go
5: ;;; compiling /home/radivarig/projects/opencog-dev/source/tests/nlp/microplanning/r2l-atomspace.scm
5: ;;; compiled /home/radivarig/projects/opencog-dev/source/.cache/guile/ccache/2.2-LE-8-3.A/home/radivarig/projects/opencog-dev/source/tests/nlp/microplanning/r2l-atomspace.scm.go
5: ;;; compiling /home/radivarig/projects/opencog-dev/source/tests/nlp/microplanning/test-atomspace.scm
5: ;;; compiled /home/radivarig/projects/opencog-dev/source/.cache/guile/ccache/2.2-LE-8-3.A/home/radivarig/projects/opencog-dev/source/tests/nlp/microplanning/test-atomspace.scm.go
5: ;;; compiling /home/radivarig/projects/opencog-dev/source/tests/nlp/microplanning/test-results.scm
5: ;;; compiled /home/radivarig/projects/opencog-dev/source/.cache/guile/ccache/2.2-LE-8-3.A/home/radivarig/projects/opencog-dev/source/tests/nlp/microplanning/test-results.scm.go
5/9 Test #5: MicroplanningUTest ...............   Passed   44.95 sec
linas commented 4 years ago

Arghhh. Unmaintained software. Try commenting out the use-modules spacetime.

linas commented 4 years ago

Perhaps fixed in commit opencog/spacetime@95265b7c5a72524064691fa8263b6f2f56d38398 which is modeled after opencog/cogserver#7 also opencog/spacetime@762312d1084de70fc216583615c81ddb8e242373

Radivarig commented 3 years ago

This test is currently disabled https://github.com/opencog/opencog/commit/1f3cbd39e3d908c56450cd5e67c846c564ec1966#diff-8412b3595148242efb752f6a0c943f5ce62354b4ccf3e38819f8b254f488a11b