These notes record the coding of the Russian AI Mind Dushka
in JavaScript for Microsoft Internet Explorer (MSIE).

Mon.26.DEC.2011 -- Creating the OutBuffer

Today in the Dushka Russian AI we will try to create the OutBuffer function to change the declensional ending of a Russian verb.

Tues.27.DEC.2011 -- Right-justifying ЗНАЮ

Although we have created the OutBuffer module to permit the SpeechAct module to hold a Russian verb right-justified in place for a change of inflectional endings on the fly, we are finding it difficult to obtain an "alert" report of the exact contents of the OutBuffer towards the end of a pass through SpeechAct. Into SpeechAct we put a diagnostic "alert" box, and then it appeared that OutBuffer was being called but no data were being revealed.

By testing for the contents when four characters trigger an IF-clause, we have determined that the OutBuffer does indeed take a word from the PhoBuffer and display the word in a right-justifed position. We were able to toggle from English to Russian typing and input the Russian verb for "I know", which soon showed up in a right-justified location when the WhatBe module asked a question about the Russian word. Now we are ready to design code that will intercept a Russian verb being "spoken" and change its inflectional ending on the fly, a feat which we will consider to be a major advance in our creation of a Russian AI Mind.

These notes record the coding of the Russian AI Mind Dushka in JavaScript for Microsoft Internet Explorer (MSIE). The free, open-source Russian AI will grow large enough to demonstrate a proof-of-concept in artificial intelligence, until the intensive computation of thinking and reasoning threatens to slow the MSIE Web browser down to a crawl. To evolve further, the Russian AI Mind must escape to more powerful programming languages on robots or supercomputers.

Thurs.22.DEC.2011 -- Selecting the Bootstrap Vocabulary

We would like soon to implement the diagnostic display so that we may observe the build-up of the innate Russian vocabulary. Therefore we copy the necessary code from the English AI Mind and we troubleshoot until suddenly we observe a diagnostic display. Now the way is clear for us to keep adding Russian words until we have enough innate concepts for the Russian AI to demonstrate thinking in Russian.

The JavaScript artificial intelligence (JSAI) from the AI4U textbook has finally reached a stage where the free strong AI software may be embodied in a seeing robot. Although the JSAI as an AiApp could see out through the camera of a smartphone, the JavaScript programming language is not suitable for controlling the MotorOutput of a robot. The MindForth AI in the Forth programming language is capable of controlling a robot, but there is some question whether software packages such as Open Computer Vision (OpenCV) can be ported into Forth so as to implement VisRecog, or whether perhaps the computer vision tail should wag the AI software dog and either MindForth or the JavaScript AI Mind should be ported into one of the OpenCV languages so as to accelerate the emergence of robotic True AI.

Sun.25.SEP.2011 -- Implementing VisRecog

In JavaScript we create only the stub of the VisRecog module, because we need to show where VisRecog belongs on the robot AI MindGrid in case an enterprising robot-maker or a skilled AI mindmaker decides to take up the Grand Challenge of integrating the thinking AI software with the seeing robot hardware. So first we expand the English bootstrap EnBoot sequence of the JavaScript AI by adding in the English vocabulary words "SEE" and "NOTHING" as a verb to discuss robot vision and a noun or pronoun to serve as the default "nothing" that the stub of VisRecog can actually see. When VisRecog reaches a stage of development commensurate with OpenCV, we may expect the robot visual system to say things like "I see a bird" or "I see you".

When we first started coding the JavaScript artificial intelligence (JSAI) back in anno 2000, we tried to make it cross-browser compatible, especially with Netscape Navigator. Unfortunately, as the artificial Mind quickly became extremely complex, we found that we could not maintain compatibility, and that it was too distracting to try. It was hard enough to code the AI in Microsoft Internet Explorer (MSIE), but at least MSIE gave us the functionality that the AI Mind needed.

Meanwhile the AI Mind has evolved in both jJavaScript and Win32Forth. Sometimes the JSAI was ahead of the Forth AI, and sometimes vice versa. In our efforts to get mental phenomena to work in either programming language, we sometimes veered apart in one language from our current algorithm in the other language. Now we are bringing the AI codebase back into as close a similarity as possible in both MSIE JavaScript and Win32Forth (plus 64-bit iForth). We may not offer cross-browser compatibility, but we are making our free AI source code more understandable by letting Netizens examine each mind-module in either Forth or JavaScript.

Fri.10.JUN.2011 -- Solving the AI Identity Crisis

Today we have been running the AI Mind in both JavaScript and Forth so as to troubleshoot the inability of the JSAI to answer the input question "who are you" properly. The JSAI was responding "I HELP KIDS", which is an idea stored in the knowledge base (KB) of the AI as it comes to life in either Forth or JavaScript. The input query is supposed to activate the concept of "BE" sufficiently to override the activation of the verb "HELP" that comes to mind when the Mind tries to say something about itself. We had to adjust the values in the JSAI NounAct module slightly lower for the creation of a "spike" of spreading activation, so that the "BE" concept would win out over the "HELP" concept in the generation of a thought. We have removed the identity crisis of an AI that could describe itself in terms of doing but not being.

We gradually improve the AI Mind in JavaScript by identifying and combatting the most glaring bug or glitch that pops up when we summon the virtual entity into existence. Any Netizen using MSIE may simply click on a link to the AiMind program and watch the primitive creature start thinking and communicating. The AI would need a robot body and sensors to flesh out its concepts with knowledge of the real world, but we may approach the AI with a Kritik der reinen Vernunft -- as a German philosopher once wrote about "The Critique of Pure Reason." We are building a machine intellect of pure, unfleshed-out reason, able to think with you and to discuss its thought with you. Our process of eliminating each glitch or bug when we notice it, means that the AI Mind has the chance to evolve in two ways. The first AI evolution occurs in these initial offerings of the AI software to our fellow AI enthusiasts. The second AI evolution occurs when the AI propagates to other habitats such as the http://aimind-i.com website. If you are the CEO of a corporate entity, you had better ask around and find out who in your outfit is in charge of keeping up with AI evolution and how many Forthcoders are in your employ.

The JavaScript artificial intelligence (JSAI) is a client-side AiApp whose natural habitat is a desktop computer, a laptop or a
smartphone.

Mon.30.MAY.2011 -- Searching the AI Knowledge Base.

The JavaScript artificial intelligence (JSAI) is now being updated with new code from the MindForth AI, which on 29 May 2011 gained the ability to search its knowledge base (KB) twice in response to a single query and provide different but valid answers by means of the neural inhibition of the first answer in order to arrive next at the second answer. In other words, the JSAI will be able to discuss a subject exhaustively in terms of what it knows about the subject -- a major step in our achievement of the MileStone of self-referential thought on the RoadMap to artificial general intelligence. The AI source code has not yet been fine-tuned. We hope to achieve in JavaScript the basic functionality that has been created in MindForth.

Upshot: After we transferred mutatis mutandis all the pertinent code from MindForth into the AiMind.html program in JavaScript, the JSAI still did not work right. We had to hunt down and fix (by commenting out) some lines of obsolete code in the SpreadAct mind-module, where negative activation values were being reset to zero -- to the detriment of inhibition-values, which need to slowly PsiDecay upwards towards zero. We then achieved JSAI functionality on a par with MindForth. We entered new knowledge into the knowledge base (KB). We queried the KB twice with the same question, and the artificial AI Mind correctly gave us two different answers in complete agreement with the knowledge base.

The JavaScript artificial
intelligence (JSAI) is a clientside AiApp
whose natural habitat is a desktop computer, a laptop
or a
smartphone.

Wed.18.MAY.2011 -- Houston, We
Have a Problem

When we submit "who are
you" as a query to the AI Mind, it searches the
knowledge base (KB) and it remembers that it is ANDRU -
- a ROBOT and a PERSON (a different answer each time that
you pose the same existential question). Unfortunately,
the software finds the first instance of concept stored in
recent memory and spits out the phonemic engram from the auditory memory
channel without regard to whether the stored word is a
singular form or a plural form. How can we get the most
advanced open-source AI in these parsecs to stop saying "I
AM ROBOTS"? The AI may have to start skipping over plural
engrams when searching for a singular noun. Therefore, let
us perform a little psychosurgery on the AI
Mind software and see if we can zero in on a singular
noun-form during self-referential thought.

First we
use a few
JavaScript "alert" boxes in
BeVerb() and in
NounPhrase() to see what values are being carried
along in the variables that keep track of grammatical
number as the AI Mind
generates a thought in response to user input. We see that
the subject number is available in the background, so
perhaps we can alter the design of the Mind to insist
speaking a singular noun to go with a singular subject.
Even though ROBOT and ROBOTS are the same concept, they
are not the same expression of the concept. By the way,
this issue is another AI mindmaker
(Mentifex) problem that had to be solved in
due course, that is, rather well along in the AI
development process and not at the first blush of AI
newbie enthusiasm.

Upshot: Gradually in the
NounPhrase module we introduced code to skip over the
retrieval of any word in auditory memory if the correct num
(ber) was not found to match the the same number of the
subject of an input query. The AI began to answer "who are
you" with "I AM ROBOT". This bugfix makes the AI Mind more
complex and therefore subject to potentially latent
problems such as knowing a word only in the plural and not
in the singular. However, the same bugfix brings the JSAI
closer to machine reasoning and thinking with a syllogism
such as, "All men are mortal; Socrates is a man;
therefore Socrates is mortal."

Until we devised an AI
algorithm for differential
PsiDecay in the
JavaScript artificial intelligence (JSAI),
stray activations had been ruining the AI thought
processes for months and years. We now port the PsiDecay
solution from the JSAI
into
MindForth. Meanwhile, Netizens with Microsoft
Internet Explorer (MSIE) may point the browser at the
AiMind.html page and observe the major open-source AI
advance in action. Enter "who are you" as a question to
the AI Mind not just one time but several times in a row.
Observe that the JSAI
tells you everything it knows about itself, because neural inhibition immediately suppresses each given
answer in order to let a variety of other answers rise to
the surface of the AI consciousness. Before the
mad scientist of Project Mentifex
jotted down the eureka brainstorm, "[ ]
Fri.13.MAY.2011 Idea: Put gradations into PsiDecay
?" and wrote the code the next day, the AI Minds were not reliable
for mission-critical applications. Now the AI Forthmind is
about to become more mentally stable than its creator. We only need to port
some
JSAI code to Forth.

When the question "who are you" is input
repeatedly to the
JavaScript Artificial Intelligence (JSAI), the AI
needs
to retain the self-concept of "I" as the subject for each
of all possible answers to the question. The MindForth
AI already performs well in this regard, but the JSAI
has been letting go of the self-concept subject. Therefore
we will try to make sure that the JSAI
uses the same activational routines as MindForth
does.

Sat.14.MAY.2011 -- Using Differential PsiDecay

The artificial Mind has difficulty holding
onto the subject of a query because of stray activations
that build up on "also-ran" concepts that were proposed
but not accepted as answers to recent queries. The
activation on otherwise legitimate answers builds up so
rapidly and so substantially that an also-ran concept
threatens to dislodge the very subject of the query and
become a new subject of a thought which does not supply
the knowledge requested by the query. For instance, when
we twice ask "who are you" of the 12may11A.html JSAI
as released onto the Web two days ago, it answers first "I
AM ROBOTS" and then "A PERSON IS PERSON", apparently
because the also-ran concept of "PERSON" has risen too
high in activation to let the self-concept "I" serve as
the subject of the response. Meanwhile, yesterday we may
have had a "eureka" moment that could supply a solution so
simple and yet so effective that it provides a tipping
point in the break-out phenomenon of True AI.

Now, we don't want our AI Minds to start asking teenage
boys if they would like a little game of GLOBAL
THERMONUCLEAR WAR, Matthew, but don't be surprised if
suddenly No Such Agency starts removing every trace of Mentifex
AI from every corner of the World Wide Web. Did you
know that, when things got a little hot during World War
Two, the U.S. government began removing books on the
mathematics of Georg Riemann from libraries all over
America? Say, when's the last time you saw a copy of AI4U?

The secret to True AI is to embue the artificial Mind not
with the linear PsiDecay that MindForth has always had, but with the
differential
PsiDecay of also-ran concepts so that stray
activations
dwindle more rapidly from high spikes than from merely
modest spikes. In a living neural-net like the human
brain, do we not expect a sharp spike to fall more rapidly
than a simple upswell? So let us modify the PsiDecay code
and try to make higher activations subside more
rapidly.

We are trying to ntroduce "differential"
psi-decay. Suppose we have also-ran
NounPhrase concepts like

39=ROBOT at 54 act;
104=PERSON at 68 act;
33=ANDRU at 82 act;

We want the high-activation also-rans to drop to an
activation low enough to avoid dislodging the input
subject. Then we want at least one also-ran to be high
enough to be selected as an answer to the input query. We
want each decade or octet of high activation to be lowered
by not just one point, but by a precipitous drop that
still keeps the relative ranking of the also-rans. For
instance, we could ordain that all activations above
thirty could arrange themselves in a spread between twenty-
nine and forty, so that

Upshot: We inserted similar code into the
JavaScriptAI
Mind and it began to function better than ever.
Somehow the JSAI is now more advanced than the
MindForth AI, until we can port the new functionality
into Win32Forth.

Something is preventing neural inhibition from operating immediately when we
ask the AI
Mind a "who-are-you" question. The inhibition begins
to occur only after a pause or delay, and we need to find
out why. The problem may be that the "predflag" for
predicate nominatives is not being set soon enough.
The "predflag" is set towards the end of the BeVer
b mind-module, and it governs the inhibiting of nouns
as predicate nominatives in the
NounPhrase module. We see through troubleshooting that
the earlier engram in a pair of selected-noun engrams is
being inhibited properly down to minus thirty-two points
of conceptual activation, but apparently the present-time
engram in the pair is only going down to zero activation.
It looks as though calls to PsiClear from the EnCog
(English cognition) module were interfering in the
pairing of inhibitions shared by the old engram that won
selection and the new engram being stored as the record
of a generated thought. Then a further problem developed
because the AI was not letting go of transiitive verbs
that served within an output thought. We inserted code
to inhibit each transitive verb after thinking, and we
began to obtain a variety of outputs from the AI in
response to queries.

Sun.8.MAY.2011 -- Selecting
New Inhibition Variables

Today we are
creating two new inhibition variables, "tseln" for "time
of selection of noun" in
NounPhrase, and "tselv" for "time of selection of
verb" in
VerbPhrase. We need these variables to keep track of
the selection-time of an "inhibend" concept to be
inhibited after being thought, so that the AI Mind can
avoid repeating the same
knowledge-base retrieval over and over again. We
stumbled upon neural inhibition for response-variety in our
MfPj work of 5
September 2010. We were so astonished by the
implications that we issued a Singularity
Alert (q.v.). Now we are ready to install a general
mechanism of temporary inhibition throughout the AI
MindGrid.

Sun.8.MAY.2011 -- Debugging
Spurious Inflection

Although MindForth
has suddenly become more intelligent than ever, the
AI makes the grammatical mistake of saying "I HELPS KIDS".
We need to track down why the
SpeechAct module is adding an inflectional "S" to the
verb "HELP".

The
VerbPhrase module governs the sending of an "S"
inflection into the
SpeechAct module. The pertinent code was not fully
checking for a verb in the third person singular, so we
added an IF-THEN clause requiring that the
prsn variable be set to three for an inflectional "S"
to be added to a verb being spoken. The bugfix worked
immediately.

The
JavaScriptAI
Mind is a tutorial version of the more robust
artificial intelligence in Forth
called MindForth.
Recently we solved a "WHO" problem in MindForth,
namely the inability of the artificial mind to de-activate
the concept of "who" from within an input query so as to
impart full activation to whatever concept should be the
answer to the who-query. In MindForth
it turned out that the R
eActivate mind-module was neglecting to zero out the
concept of "who" and it was a simple b
ugfix to correct the problem. Now apparently the JSAI
has the same problem, because we input "who are you" and
we obtain the erroneous output, "WHO IS I". Since the
concept of "who" is obviously not being de-activated, we
will try the same bugfix that we used in MindForth. We
tried it, and it works.

Wed.4.MAY.2011 -- Selecting "AN" Article Before
Vowels

Today into the J
avaScript AI we have ported MindForth
code that substitutes "AN" for "A" before a noun that
starts with a vowel. The mind-module of En
Article (for English articles) has no problem of
guessing whether a vowel comes next, but instead knows for
sure when a vowel is coming, because the N
ounPhrase module is ready to speak the first phoneme
of the chosen noun prior to calling the En
Article module. Thus the AiMind
seems to use "AN" or "A" as effortlessly as a human mind
does.