MindForth Programming Journal
AI4U Blog -- Fri.29.AUG.2008


1. Tasks in Creating Artificial Intelligence for AI Mind Exhibits

[ ] Find somebody who will install Mind.Forth in a sentient robot.
[ ] Expand the Article module with "a" as a default.
[ ] Introduce intransitive verbs of being and becoming.
[ ] Recruit Motters to implement the visual recognition system.
[ ] Increase the size of the cns memory capacity.

[ 24.AUG.2008] Add a "num" (number) flag to the flag-panel of the psi array.
[ 25.AUG.2008] Create an Article module to be called by the nounPhrase module.
[ 27.AUG.2008] Add "num" to en{ array to govern selection of "A" or "THE".
[ 29.AUG.2008] Prepare for verbs of 'being' by breaking the SVO chain.


2. Thurs.28.AUG.2008 - VERBS OF BEING

Up until now the main format of thought in MindForth has
been the SVO (subject-verb-object) syntax for transitive
verbs. It is time to introduce simple intransitive verbs
of being, such as "am" and "is" and "are", which do not
take the S-V-O format because they do not take an object.

We are engaging in extremely fundamental thought here about
the issue and we are not simply importing ideas from elsewhere,
because we want to design the necessary mind-module strictly
in terms of the MindForth software and its JavaScript tutorial
version -- not in terms of any other entity elsewhere, except
perhaps the human brain-mind, to the extent that we can know it
or theorize about.

One of our first questions is, what will trigger the selection
of a syntax module other than Subject-Verb-Object? We have always
had our primitive AI Minds say an SVO sentence merely to
demonstrate thinking in the simplest possible way. Now the AI
must become able to select either an SVO syntax or an intransitive
syntax. In either case, the AI will first select a concept
to be the subject of an incipent thought. Perhaps we can let
the selection of the subject determine the selection of a verb,
which will in turn determine the selection of a syntax.

If we follow the above line of reasoning, we will no longer
have the Think module, calling the English module, calling the
SVO module, but rather the English module may have to go directly
to finding a subject noun, leading to a verb, leading to the
choice of a syntax module. This situation is a wrenching
readjustment of the cognitive architecture of MindForth.
Why, we may stop having syntax modules altogether.
The syntax would be there in the associative connections
without being an explicit structure. But then how would
Chomskyan transformations take place? Would they also be
present only implicitly in the connections?


3. Fri.29.AUG.2008 -- SUBJECT - VERB - PREDICATE

Perhaps we should have the verbs call the syntax module,
just as we plan to have the hearing of English or German
words call, respectively, the English or German modules.

We could have SVPred (Subject-Verb-Predicate) as a new module
along with SVO (Subject-Verb-Object) as a choice for the Mind
to make in generating a sentence. Is there a natural default
for choosing a transitive or intransitive syntax? Actually,
the choosing already follows certain rules. The Mind
willy-nilly thinks about the most activated concepts.
If the most activated concept is a noun, then the Mind
will associate from that noun to the most activated verb.
Here is where it makes sense to have the chosen verb choose
the syntax, because the choice of noun plus verb is halfway
to syntax, depending on whether the verb is transitive or
intransitive.

Since our software already identifies nouns as a class and
verbs as a class, we could call nounPhrase or verbPhrase
almost at the same time as we initially identify the most
activated concept. Currently (and for several years) the
Think module has been starting a chain of thought by
examining the recent Psi nodes in search of an active noun.
We had that primordial feature in the Think module so as
to forestall a flatliner situation of a brain-dead AI not
thinking about anything at all. The idea was to call an
Ego resuscitation module if no thought were happening.
Now that the AI is more advanced, we might as well stop
looking for active concepts in the Think module and simply
let the nounPhrase module perform the same function --
which is the original function of the nounPhrase module,
anyway. And look! We now have a serendipitous solution.
Instead of having English call SVO or SVPred, we simply
have English call nounPhrase to find the most active noun.

This realization that we should have the Think module
stop looking for an active subject of thought is perhaps
another wrenching growth-pain that the Baby AI must endure
if it is to mature into The Adolescence of P-1 or some other
stage that babies go through. In retrospect, our initial
cognitive architecture may look clumsy and amateurish,
but it got us to where MindForth is today.

Now, after English calls nounPhrase and finds a noun,
we are not in the SVO module, but rather the process of
association is rolling forward through spreading activation.
If the selected verb naturally associates to one or more
direct-object nouns, then we do not need SVO to guide the
process of finding a direct-object noun.

What we may need is an interstitial call after the first
call from English to nounPhrase finds the subject-noun.
After speech-ing the chosen noun, we could psi-damp the
receding noun and have a Predicate module flush out any
most active concept, whether it be a verb or another noun
or an adjective or whatever. We would then have the
part-of-speech identifier of the most active concept,
and we could use the POS-number to call an appropriate
mind-module. For instance (typically), we might find a
number eight (8) as the part-of-speech of a winning
verb. We could then call verbPhrase and assume that it,
too, will find the same highly active verb -- or we
could feed the already chosen verb into verbPhrase.
[This issue is a situation where programmers smarter
than Mentifex will know what to do.] By calling verbPhrase
instead of a direct utterance of the discovered verb,
we afford ourselves the luxury of letting things like
adverbs be uttered in front of the chosen verb. Then the
Mind can say things like, "Quitters never win, and
winners never quit."

It is important to have an actual verb-search module in
operation so that any highly activated adverb may be
pre-pended. Then the predicate module will send the
verb into speech, and a similar pos-directed choice may
lead to the calling of nounPhrase for a direct object
of the verb, or to the calling of a module that finds
an adjective or a pronoun, as in "I am conscious" or
"I am he". Now, when MindForth starts telling people
that it is conscious, watch out for criticism.


4. Fri.29.AUG.2008 - INSERTION OF ADVERBS

Since we are starting to visualize how a predicate module
will give adverbs a chance to enter the thought-stream
just ahead of verbs, today we have drawn up the following
preliminary code in verbPhrase.

  adverbact 32 > IF  \ 29aug2008 Idea for inserting adverbs.
    \ adVerb           \ 29aug2008 Module does not exist yet.
  THEN  \ 29aug2008 End of idea for insertion of adverbs.
The idea here is that the slot for an adverb in front of
a verb is always open for the filling, but that only an
adverb with a very high activation will fill the slot.
We envision that quite a few thought-generation modules
will be searching for things but failing to find them.
The mind-design idea here is that you do not need to
turn on an adverb. You simply let it emerge into thought
if it is ready to emerge. The utterance of the adverb
is selected by all the associative activation converging
on the adverb.


5. Fri.29.AUG.2008 -- BREAKING THE SVO STRAIGHTJACKET

As we try to implement the radically new ideas brainstormed
above, first we go into the THINK module and we comment out
all the code searching for a most active concept. Instead,
we simply have THINK call the ENGLISH module. We test the
code, and it still runs. It may even be more interesting
than before.

Now we have gone into ENGLISH and we have commented out
the call to SVO, inserting instead a call to nounPhrase,
as brainstormed above. Let us test how the code runs now.
Well, what would expect? You enter a sentence now, but
the AI speaks only a noun-subject in response. So far,
so good. If SVO had still been operative, the AI would
have created an entire Subject-Verb-Object sentence.

Now let us copy (i.e., clone) the verbPhrase module but
call it "Predicate" so that we may radically change it.
After some minimal "mutatis mutandis" we test the code
just to see if it runs, and it does run. Now we have to
hack away at the Predicate code and shape it how we want it.
First we convert references to "verbPhrase" into references
to "Predicate" in all the FYI messages of the new module,
so that our Tutorial and Diagnostic messages will be
telling the truth as to where they originate from.
The code still runs -- in all the display modalities.

Now we have created a predpos variable to hold onto
the part-of-speech ("pos") found by the Predicate module
searching for the most active word in the English lexical
array -- even though we know that Predicate is searching
only for verbs. We reserve the option of opening up the
search to look not only for verbs, but for any kind of
word at all that chances to be the most active concept.
In that way, the syntax will no longer be rigid, especially
not so rigid as the subject-word-object straightjacket.
Once we allow all parts of speech to compete after the
choice of a noun -- although we expect a verb -- we may,
for instance, find another noun, one that requires mediation
via some yet unimagined mind-module that shall come between
the subject-noun and the highly activated noun found during
the radically new operation of the Predicate module.
But for the time being, we let the Predicate module find
verbs.

Now we have gone into nounPhrase and entered a new line of
code that captures the part-of-speech (pos) value of the
word found by nounPhrase -- even though we already know
that only nouns are being looked for. Here is the code.

        I 4 en{ @  nphrpos ! \ 29aug2008 For branching in ENGLISH.
We want the ENGLISH module to test for "nphrpos" indicating
a noun, after which ENGLISH will call the Predicate module.
We thus achieve two purposes. The nounPhrase module can not
call a module in Forth coming after itself, but ENGLISH can
call Predicate situated between nounPhrase and ENGLISH.
Secondly, by testing for an albeit foregone conclusion,
we keep open the possibility of changing nounPhrase to
look not only for the most active noun but for any concept
of any part of speech, happening to be highly activated.

After inserting the conditional call to Predicate from
English, we run the code and it now utters not just subject
nouns, but complete sentences again -- sometimes with the
choice of an article that we coded in on 27.AUG.2008.
We hope that we are ready now to start introducing
intransitive verbs that take no direct object.


6. Fri.29.AUG.2008 -- UPLOADING RADICALLY NEW CODE

Since we last uploaded 27aug08A.F MindForth to VirtualEntity,
today we should upload 29aug08A.F MindForth to
http://mind.sourceforge.net/mind4th.html
in order to replace obsolete code on the Web.


7. Notes

Potential topics for initial writings in journal webpages
- Are people competing to have the oldest or longest-living AI Mind?
- Is AI being created in secret by large, powerful organizations?
- CS textbooks should be written from an AI POV.
- These MFPJ journal entries are tantamount to a weblog.
---- (Mention how Jorn Barger created the very first weblog.)
- To what extent is Mentifex AI causing any AI evolution?
- People in other countries, especially India, are welcome to the AI.
- Living a Sci-Fi Life
- Living in a Fool's Paradise


8. Resources

For discussion of MindForth, visit the Usenet newsgroups
comp.lang.forth
comp.robotics.misc


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://AIMind-i.com

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

http://mind.sourceforge.net/mind_faq.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.