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

Reply via email to