On
25.AUG.2008 we created the
Article mind-module in MindForth.
Just to demonstrate and debug its functionality, we had the new
module insert the article "THE" before nouns in the generation
of a subject-verb-object
(SVO)
sentence. When the user typed in,
"fish eat bugs," the AI responded, "THE FISH EAT THE BUGS."
Such arbitrary insertion of "THE" is not desirable in a
freely thinking AI Mind, but we had to demonstrate the basic
ability of our software to insert articles into its thinking.
Now we would like to enhance the Article module with the
ability to insert the indefinite article "A" before a noun.
Since the thinking software will have to make a choice
between inserting "A" or inserting "THE", we will introduce
"nphrnum" as a
nounPhrase num(ber) variable derived from
the
psi num(ber) flag on a noun-concept that has been selected
by the nounPhrase module for inclusion in a sentence of thought.
Now we have prevented the Forthmind from automatically inserting
"THE" by requiring the nphrnum variable to be set to a
value of two (2) for the plural number. Since nothing thus far is
changing the nphrnum variable, the AI stops saying "THE".
Next we insert code into
Article for saying "A" as the indefinite
article, and we do not at first require the passing of a conditional
test. Rather goofily, the AI starts inserting "A" as the article
before all nouns in the
SVO generation of sentences of thought.
For example, after we type in "fish eat bugs", the AI later says,
"A FISH EAT A BUGS". We will soon modify the Article code to make
the insertion of "A" dependent upon some sort of flag-test, but
first we have had to see that the AI was capable of inserting
the indefinite article "A" willy-nilly before each and every
SVO
noun. In this regard, we often wonder if we are building up our
AI Mind functionality in roughly the same sequence as Nature
built up the functionality of the human brain-mind over time.
Now that the Article module is ready to receive and act upon
nphrnum flags coming from the
nounPhrase module,
it is time to make some num(ber) flags available when nounPhrase
selects a noun to use as the subject or direct object in a thought.
Since we have not yet set any "num" flags in the
enBoot sequence,
and since the "act" settings in enBoot are all at zero and are
therefore not even necessary, we will start to replace some
"act" settings with "num" settings in the enBoot sequence.
After running the AI Mind in Forth, we enter ".psi" to check
the flags (quasi-neuronal associative tags) on all the psi concepts.
We discover that setting one enBoot concept "num" flag to "1"
or "2" is causing the interstitial "num" flags to receive the
same value erroneously, so we go into
Instantiate and zero out
the value of the "num" variable. The problem goes away.
Now we have "num(ber)" flag settings for all the nouns in the
English bootstrap
(enBoot)
psi-array sequence, as follows:
TRUTH 1 num ! singular
ROBOTS 2 num ! plural
PERSONS 2 num ! plural
PEOPLE 2 num ! plural
FEAR 1 num ! singular
KIDS 2 num ! plural
PERSONS 2 num ! plural
PERSONS 2 num ! plural
KIDS 2 num ! plural
We would like to use the above "num" settings to make
nounPhrase call the Article module with a "nphrnum" flag,
but nounPhrase selects its nouns from the English lexical
array and not from the psi conceptual array. Therefore
maybe we should insert a "num" flag into the flag-panel
of the English array. We can not simply pass the "num"
value up from the psi array, because
Reify moves many
concepts up into English, not just one. Such a drastic
change in the English array flag-panel may be worthwhile,
if it turns out that it is good to fetch auditory word
engrams that are already in the plural and therefore do
not need to have a plural transformation worked on them.
In almost a repeat of when we changed the psi array in our
work of
24aug2008, we modify the following code
\ Memory channel arrays. ATM 21jul2002; 24aug2008
cns @ 8 CHANNEL psi{ ( Mindcore concept array "psi" )
cns @ 6 CHANNEL en{ ( English lexicon array "en" )
cns @ 6 CHANNEL aud{ ( Auditory memory channel array "aud" )
by having not six (6) but seven (7) English columns in the new code:
\ Memory channel arrays. ATM 21jul2002; 24aug2008; 27aug2008
cns @ 8 CHANNEL psi{ ( Mindcore concept array "psi" )
cns @ 7 CHANNEL en{ ( English lexicon array "en" )
cns @ 6 CHANNEL aud{ ( Auditory memory channel array "aud" )
We "fload 27aug08A.F" and enter "alife" to test the code.
It runs well, but now we must do the mutatis mutandis work
of making all the necessary changes so that all the panel-flags
bumped over by the insertion of the "num" flag will work right.
Well, when we first made the changes involving "en{" flags,
the software ran but did not work right. It kept replacing
nouns with the word "YES" -- indicating that the wrong
auditory engram-fetch tag was going down to zero and saying
"YES" as the first word found in auditory memory. We went
back in and used the Win32Forth search function to look for
all instances of "en{" in case we had overlooked any changes.
We found several instances where we had to make corrections,
including some cases from our recent insertion of "num" into
the psi flag-panel. Soon we got the AI to work beautifully.