Mind.Forth Programming Journal (MFPJ) Tues.15.JAN.2008
Yesterday on 14 January 2008 the basic scaffolding for
the Moving Wave Algorithm of artificial intelligence
was installed in Mind.Forth and released on the Web.
Now it is time to clean up the code a little and to
deal with some stray activations that interfere with
the proper generation of meandering streams of thought.
First in psiDamp we are re-introducing the single call
to psiDecay, so that post-thought "lopsi" concepts
will gradually lose their activation over time.
We need to get rid of the "newpsi" and "prequel" and
"psicrest" variables, because with "lopsi" and "hipsi"
we were able to get the job done in exemplary fashion.
Having eliminated or commented out the obsolete variables,
now we are trying to debug the stray activations. When
we enter a known word like "kids" or "robots" and we
press [RETURN], we get a line of output such as follows.
Robot: ROBOTS WHAT DO ROBOTS DO
The AI speaks the word "ROBOTS" because it is starting
an SVO sentence with "ROBOTS" as the subject. At first,
the activation of ROBOTS sends a "spike" of twenty (20)
to the verb NEED -- which has no subconscious activation
because it exists in enBoot and not as a recent thought.
ROBOTS #39 w. act 48 at I = 186 sending spike 20 to
seq #74 NEED at act 0 yields 20 and zone = 181
20 (lim = 63) for t=183 NEED engram; spike = 20 R
The enBoot verb "NEED" gets rejected with a message-line.
verbPhr: detour because verb-activation is only 12
We see from the following diagnostic output display that
the Audition module has been calling psiDamp to de-activate
the ROBOTS concept after the hearing of each individual
letter in the ROBOTS word.
R
psiDamp called for urpsi = 39 by module ID #104 Audition
psiDecay called to reduce all conceptual activations.
O
psiDamp called for urpsi = 39 by module ID #104 Audition
psiDecay called to reduce all conceptual activations.
B
psiDamp called for urpsi = 39 by module ID #104 Audition
psiDecay called to reduce all conceptual activations.
O
psiDamp called for urpsi = 39 by module ID #104 Audition
psiDecay called to reduce all conceptual activations.
T
psiDamp called for urpsi = 39 by module ID #104 Audition
psiDecay called to reduce all conceptual activations.
S
psiDamp called for urpsi = 39 by module ID #104 Audition
psiDecay called to reduce all conceptual activations.
psiDamp called for urpsi = 39 by module ID #104 Audition
psiDecay called to reduce all conceptual activations.
psiDamp called for urpsi = 39 by module ID #104 Audition
psiDecay called to reduce all conceptual activations.
Well, isn't that result weird? By briefly changing the
"module ID #" above to "42" for external input and to "35"
for internal flow, we discovered multiple psiDamp calls
during the internal reentry of each word being thought.
R
psiDamp called for urpsi = 39 by module ID #35
psiDecay called to reduce all conceptual activations.
O
psiDamp called for urpsi = 39 by module ID #35
psiDecay called to reduce all conceptual activations.
B
psiDamp called for urpsi = 39 by module ID #35
psiDecay called to reduce all conceptual activations.
O
psiDamp called for urpsi = 39 by module ID #35
psiDecay called to reduce all conceptual activations.
T
psiDamp called for urpsi = 39 by module ID #35
psiDecay called to reduce all conceptual activations.
S
psiDamp called for urpsi = 39 by module ID #35
psiDecay called to reduce all conceptual activations.
psiDamp called for urpsi = 39 by module ID #35
psiDecay called to reduce all conceptual activations.
The concept of ROBOTS keeps being set to the same "residuum"
by psiDamp, but the NEED concept keeps getting psi-decayed
until its activation drops too low for validation as a good
verb to go with the word ROBOTS as a subject.
We vaguely suspect that the reentry of each character
in ROBOTS is being treated as if the character were a
whole word by itself, so that the "trough" triggger
code gets activated not merely once, but many times.
Aha! During reentry, the SPEECH module is setting
"pov" to "35" and calling AUDITION for each character
being "pronounced" by the SPEECH module. Therefore
the Audition "trough" trigger is being set to one (1)
for each and every character being reentered from
the SPEECH mind-module. There should be some easy
fix for this bug, such as perhaps creating a special
flag to indicate that reentry is in progress. However,
at this point we would like to remark that, after the
extremely difficult lopsi/hipsi coding of yesterday,
we may finally be in the close-to-True-AI phase
where the major bugs have been solved and we are
only clearing out minor bugs -- which nevertheless
prevent the AI from functioning flawlessly as True AI.
We had better check the table of variables and the
JavaScript Mind.html source code to see if there is
already a flag for reentry.
Maybe we could stop calling psiDamp from Audition
during reentry, and call it from somewhere else,
like perhaps the oldConcept module.
We could have a flag that lets reentrant Audition
call psiDamp one single time, after which the flag
is knocked out of commission, until the end of
SPEECH, where the flag is set wide open again.
But what would be a good name for such a flag?
Let's try using a Latin "obstat" variable.
Wow! It worked! The AI stopped saying
Robot: ROBOTS WHAT DO ROBOTS DO
and switched to stating its knowledge from enBoot.
Robot: ROBOTS NEED I
We now have used "obstat" in the Audition module.
pov @ 35 = IF \ 13jan2008 During internal re-entry...
1 trough +! \ 13jan2008 Increment trough per character.
trough @ 1 = IF \ 13jan2008 A once-per-cycle event.
obstat @ 0 = IF \ 15jan2008 If nothing stands in the way...
lopsi @ urpsi ! \ 14jan2008
\ 104 caller ! \ 13jan2008 Audition identified by AI4U page.
35 caller ! \ 15jan2008 Temporary test of too many calls.
psiDamp \ 13jan2008 Knock down cresting concept.
hipsi @ lopsi ! \ 14jan2008 "Changing of the guard."
0 caller ! \ 13jan2008 Reset "caller" for safety.
0 urpsi ! \ 13jan2008 Reset urpsi
1 obstat ! \ 15jan2008 No more psiDamp until end of SPEECH
THEN \ End of test for quasi-nihil-obstat condition.
THEN \ 13jan2008 End of trough-trigger test.
THEN \ 13jan2008 End of POV-test.
And we reset "obstat" at the end of the SPEECH code.
LOOP \ End of loop of up to 40 engram-fetches.
0 match ! \ In case not otherwise reset.
0 obstat ! \ 15jan2008 Restore ability of Audition to psi-damp words.
; \ End of Speech; return to nounPhrase, verbPhrase, etc.
We have solved an important bug, so we will upload
our code as yet another improved version of MindForth.
There are still some problems with activations going
awry, but the AI Mind functions a lot better than it
did yesterday. Luckily, the AI sometimes asks a question,
which should be interesting for users in Tutorial mode.
As we upload the current code for release on the
Web, we should make clear that Franks AI Mind at
http://AIMind-I.com is an independent Forthmind in
the evolution of artificial intelligence and may or
may not eventually incorporate the algorithmic changes
being developed here for use in the original Forthmind.
ATM/Mentifex
--
http://mentifex.virtualentity.com/mind4th.html
-----
This list is sponsored by AGIRI: http://www.agiri.org/email
To unsubscribe or change your options, please go to:
http://v2.listbox.com/member/?member_id=8660244&id_secret=86398700-9df5c7