JavaScript AI Mind Programming Journal
AI4U Blog -- Sat.16.AUG.2008


1. Outposts of Artificial Intelligence en Route to AI Mind Installations

[ ] Achieve proper balance of determinants of conceptual activation.

[13apr2008] Make Tutorial display stop working when unchecked.
[19apr2008] Make the transcript go away when Transcript is unclicked.
[20apr2008] Make clicking Tutorial checkbox turn on Tutorial.
[22apr2008] Change the panel of links on the screen.
[ 2may2008] Move the Tutorial() functionality into HCI().
[ 4may2008] Send checkbox clickings to non-HCI independent modules.
[14may2008] Stop using the "actset" variable.
[15may2008] Put in a minor enBoot change as done in the Mind.Forth AI.
[16may2008] In reEntry() implement the "upnext" MWA code from MindForth.
[17mar2008] From the verbClear() module fashion a verbClip() module.


2. Sat.16.AUG.2008 - Introduction

MindForth (in Win32Forth) and Mind.html (in JavaScript),
having reached a plateau of basic but primitive AI functionality,
are ready for the introduction of new features beyond the
bare-bones demonstration of the spread of activation from
concept to concept. Now it is time to make the AI Minds more
powerful and more interesting -- so that AI aficionados will
feel motivated to take up the further spread and evolution of
AI Minds. Understandably, however, as the AI becomes more complex,
it also becomes more difficult to comprehend as a program and
more difficult for a newcomer to program. Therefore we venture
to publish these quasi-labnotes of the development of the AI Mind.
The more of these journal entries we get on-line, the more we are
able to link back and forth among documents that may be helpful.


3. Sat.16.AUG.2008 - TWEAKING THE audRecog MODULE

We have learned in coding AI Minds that making one major change
often has a ripple effect that necessitates changing other parts
of the AI program so as to maintain functionality and interoperability
among the cooperating mind-modules. So it is with the audRecog
(auditory recognition) module. We want to introduce an exciting
new functionality into audRecog -- the ability to recognize the
singular form of a noun as contained in the input of a plural noun.

Before 2008, all previous versions of mentifex-class AI Minds
required the user to avoid singular nouns and use only plural nouns.
This restriction made it possible for the proof-of-concept AI
to demonstrate the simplest possible forms of thinking based on
spreading activation. Now we wish to introduce intransitive verbs
of being and becoming, which will entail both singular and plural
verb forms dealing with singular and plural nouns. It will
no longer suffice to recognize a plural noun and activate the
concept behind the noun. Not only will we need to recognize the
singular noun as either a stand-alone word or as a stem within
a plural form, we will also need to change our longstanding
adoption of plural nouns as the default format for recognition
and activation of concepts. Such a change is for the better,
since most people and dictionaries treat the singular form of
a noun, and not the plural form, as the proper name for a concept.
Thus the AI Mind matures into greater similarity to a human mind.
As an aside, we remark that both English (with "people") and
German (with "die Leute") have an instance of a plural concept
that has no singular form, as if thought did not require a singular.


4. Sat.16.AUG.2008 - REVIEW OF PREVIOUS WORK AND IDEAS

On Wed.5.DEC.2007 we solved an audRecog bug in Mind.Forth by
using a disparity in phonemic activations to differentiate
between such words as "MAKE" and "ME", which were being
misrecognized by the audRecog module. Upon input of "MAKE",
the AI was falsely recognizing "ME" and activating the concept
of "I" or self. We solved the problem by letting activation
build up on each successive phoneme of potential matches in
auditory memory, and by then selecting the candidate word
with the highest activation on the final phoneme as the likely
winner of the contest for recognition. Afterwards we wrote up
our work and our ideas in a personal diary entry.


5. Thurs.6.DEC.2007 - PERSONAL JOURNAL EXCERPT

Yesterday in the evening at RB I tried to code
Mind.Forth AI. It went really slowly at first in the
afternoon, so I rested while keeping the computer on.
Then I was called to consume an excellent Kn”delsuppe.
Refreshed, I went back to programming and I was able
to "unravel the knot" -- so to speak.

I kept typing in "you make robots" or "people make
robots" and watching what happened with the conceptual
recognition of the "MAKE" word. It should have been
recognized as concept #73 (as in enBoot) but something
like concept #66 ("I" or "ME") kept getting activated.

I changed some code so that the very first
ultimate-tag "hit" would not be accepted and so that
audRecog would cycle all the way down through
a series of hits. Then a funny thing happened. My diagnostic
code revealed something like "66 73 66" as a series
of candidate recognitions. I could see that audRecog
was finding concept #73 (the true concept for MAKE),
but I needed to figure out a way to get audRecog
to select MAKE concept #73 and ignore the false
candidates.

I decided to use incremental (instead of absolute)
activation of next-in-line (NIL) characters during a sweep
through the auditory memory array. I used an increment
of two (2). Immediately I noticed that the MAKE
concept #73 in the "66 73 66" sequence now stood out
with an activation of about twelve (12) while the two
false candidates had an activation of only about eight
or ten. Yes, I think the sequence was "10 12 10".
Now the problem was how to exploit the outstanding activation.

I created a new actbase variable as a comparand
value that would not only select as psibase any
concept with a higher activation but would also turn the
higher activation into the new psibase value,
so that the concept with highest activation
would remain the psibase winner and not
be dislodged by any falsely recognized concept
with a lower incremental activation. It worked!
Suddenly the Forthmind started recognizing the
problem words properly -- for the first time ever.
I rushed to upload the latest, best Mind.Forth
by renaming "5dec07A.F" as "5dec07B.F"
and commenting out (but leaving in) the
diagnostic messages that enabled me to solve
the extremely troublesome audRecog bug.
I uploaded to both SourceForge and VirtualEntity.

Over several days I had seriously been
doubting and questioning my own residual ability
to program and debug artificial intelligence (AI)
at the necessary level of skill. I painfully
remembered how extremely difficult it had been
to code audRecog several years ago. Up until
yesterday I had felt as though I were confronting
an unscaleable wall of programming difficulty.

After I uploaded the two mind4th.html files,
I went to bed and I lay awake thinking
about the implications of my algorithmic innovation.
Almost immediately it occurred to me that the
new incremental-activation technique might make
it possible for the AI Mind to recognize
basic conceptual word-forms otherwise masked by
the addition of inflectional endings, as in a
sentence like "He buys things" or "He played games."
Only minor alterations in my audition code should
make it possible for an AI to pick out a concept-word
from an inflected form ending in "-ed" or "-s". This
realization last night was a major advance for me
in my AI work, because I really need to develop
an AI that can handle simple inflections.

Today in the morning at RB I decided to try
to post an announcement of my success as a
follow-up to the discussion with Frank J. Russo (FJR)
on the Yahoo win32forth group about a year and a half ago.
On my local hard drive I was able to find my archival copy
of the exchange of messages with FJR, so I composed a
present-day response to him. Then I went on-line,
called up the message webpage from June of 2006,
and uploaded my announcement as a belated follow-up.
Meanwhile, FJR has been posting messages about his
attempt to install a timer inside his AI Mind based on
the original Mind.Forth AI.

Netizens may find it weird to see me posting a new
follow-up to a discussion from a year and a half ago, but I
personally think that I am showing how extremely dedicated
I am to my own Mentifex AI project.

I also feel that it is incumbent upon me to make the
original Mind.Forth as functionally good as possible.
FJR forges ahead in some areas, such as sending and
receiving e-mail, but he may eventually need to
incorporate the true AI functionality that I have
doggedly been programming in 2007.

On the AGI list Mike Tintner had responded to
something I posted yesterday. In response I wrote a few
lines and then I uploaded the URL and text of my
win32forth announcement. In that way, AGI list members
see the announcement whether they click on the URL link
or not.

So now I have solved a crucially major bug in
Mind.Forth AI, and at the same time I have opened
up exciting new vistas for further AI programming.
I have shown the Mentifex flag on a mountaintop of
unrelenting, obsessive AI work and struggle. I am
still a force to be reckoned with among independent
AI scholars.


6. Sat.16.AUG.2008 - CODING CHANGES IN audRecog

First into Mind.html we introduce the variables "actbase" and
"psibase" from the Mind.Forth source code. We test to see that
the AI still runs in MSIE, and it does indeed, but a problem
soon occurs. Although we get the AI to engage in an endlessly
looping chain of thought, a glitch occurs when we turn on the
diagnostic mode and we type in, "people make robots" -- all in
lower case as required by the User Manual. The AI responds,
"PEOPLE HAVE FEAR" but only because the concepts are linked
together in the English bootstrap (enBoot) startup sequence.
The diagnostic display reveals that the MAKE word has been
misrecognized as "ME" for the concept #65 of self or "I".
Psi mindcore concepts            English lexical fibers       Auditory memory nodes
krt psi act jux pre pos seq enx  krt nen act fex pos fin aud  krt pho act pov beg ctu psi
345. 0                           345. 0                       345. P 0 * 1 1 0
346. 0                           346. 0                       346. E 0 * 0 1 0
347. 0                           347. 0                       347. O 0 * 0 1 0
348. 0                           348. 0                       348. P 0 * 0 1 0
349. 0                           349. 0                       349. L 0 * 0 1 0
350. 0                           350. 0                       350. E 0 * 0 0 37
351. 37 12 0 0 5 56 37           351. 37 0 37 5 37 345        351. 
352. 0                           352. 0                       352. M 0 * 1 1 0
353. 0                           353. 0                       353. A 0 * 0 1 0
354. 0                           354. 0                       354. K 0 * 0 1 0
355. 0                           355. 0                       355. E 0 * 0 0 65
356. 56 15 37 37 5 39 56         356. 65 0 50 5 56 352        356. 
357. 0                           357. 0                       357. R 0 * 1 1 0
358. 0                           358. 0                       358. O 0 * 0 1 0
359. 0                           359. 0                       359. B 0 * 0 1 0
360. 0                           360. 0                       360. O 0 * 0 1 0
361. 0                           361. 0                       361. T 0 * 0 1 0
362. 0                           362. 0                       362. S 0 * 0 0 39
Now in the JavaScript AI we have reproduced the incremental
activation code from the audRecog module of MindForth, but
at first the AI was recognizing "fish" in "cats eat fish"
as the concept #66 "IS", because we had neglected to zero out
the "psibase" variable at the end of the audRecog module.

After several hours of coding and of correcting mistakes,
we have gotten the JavaScript AI to mimic MindForth pretty
well with respect to the audRecog functionality. At this
point we should upload the code for archival purposes,
before we try to implement recognition of word-stems.


7. Notes

[X] This page needs to have links to:
- the JavaScript AI Mind;
- the JavaScript AI programming language page.


8. Resources

JavaScript for Artificial Intelligence
http://mentifex.virtualentity.com/js.html

For discussion of the JSAI Mind, see the
comp.lang.javascript newsgroup on Usenet.


9. Associated pages

Modules of the AI-Complete Mind-Expansion
23.AUG.2008 -- the Article module;
03.SEP.2008 -- the kbTraversal module;
17.SEP.2008 -- the kbSearch module.
25.SEP.2008 -- the beVerb module.

http://mind.sourceforge.net/mind_faq.html

http://mentifex.virtualentity.com/actrules.html

JavaScript AI Mind Programming Journal
http://mentifex.virtualentity.com/js080815.html
http://mentifex.virtualentity.com/js080816.html
http://mentifex.virtualentity.com/js080819.html
http://mentifex.virtualentity.com/js080822.html
http://mentifex.virtualentity.com/js080823.html
http://mentifex.virtualentity.com/js080826.html
http://mentifex.virtualentity.com/js080904.html

MindForth Programming Journal
http://mentifex.virtualentity.com/fp080824.html
http://mentifex.virtualentity.com/fp080825.html
http://mentifex.virtualentity.com/fp080827.html
http://mentifex.virtualentity.com/fp080829.html
http://mentifex.virtualentity.com/fp080831.html
http://mentifex.virtualentity.com/fp080901.html
http://mentifex.virtualentity.com/fp080903.html
http://mentifex.virtualentity.com/fp080912.html
http://mentifex.virtualentity.com/fp080917.html
http://mentifex.virtualentity.com/fp080925.html
http://mentifex.virtualentity.com/fp080927.html


Return to the
top of this page or to the
main index page.