MindForth Programming Journal
AI4U Blog -- Thurs.25.SEP.2008



1. Tasks in Creating Artificial Intelligence for Robotic Embodiment

[ ] 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.
[31.AUG.2008] Permanently sub-activate verbs of being as a default.
[1.SEP.2008] Introduce whatIs module as prompter of verbs of being.
[3.SEP.2008] Use KB-traversal to make the AI more interesting.
[12.SEP.2008] Makes entry of "you" activate concept of "I".
[17.SEP.2008] Enables the AI to answer "YES" to fact-seeking questions.
[25.SEP.2008] Enables thinking with intransitive verbs of being.


2. Sat.20.SEP.2008 -- MACHINE REASONING

Today it suddenly occurs to us that our 17.SEP.2008 success
in having the AI Mind use the new kbSearch module to answer
questions with "YES" when warranted, may help us go one step
beyond into the realm of machine reasoning. The kbSearch module
demonstrates a powerful function in the artificial neural
network of an AI Mind -- the ability to use spreading activation
not only in the generation of ideas, but also in the retrieval
of ideas from a knowledge base (KB). We may be able to make an
inference engine or some other showcase of machine reasoning.


3. Thurs.25.SEP.2008 -- CREATING THE beVerb MODULE

For the inclusion of verbs of being, we may start with
separate modules for present-tense irregular verb forms
just to try them out, and perhaps later consolidate them
into a more general module. Since there are so few verbs
of being in the present tense in English, we can have an
amVerb module, an isVerb module, and an areVerb module.

The main question with the verbs of being is, what will
invoke them? In our work of 29.AUG.2008 we got away from
having English automatically call the SVO syntax module by
default, and instead we introduced the Predicate module as
originally a clone of verbPhrase, which we quickly modified.

The English module actually calls nounPhrase, and then
Predicate by a foregone conclusion. If the pronoun "I" is
the most active concept showing up in nounPhrase,
obviously the AI can proceed to call the amVerb module
to say "I AM (whatever)". So we should be more concerned with
how a noun will win the thought-selection race in nounPhrase
and then call isVerb or areVerb instead of a transitive verb,
although we can certainly think of going into Predicate by
default and branching into amVerb, isVerb or areVerb in the
case of some exception. But what would be the exception?
It would probably just be spreading activation, emanating
from the selected subject-noun (or pronoun) and moving
into a verb of being. As we reasoned on 1.SEP.2008 in our
work on the whatIs module, one "sure-fire" source of
incentive to spread-act into a verb of being is any
question coming in from a human user with a verb of being,
and also internal thinking that amounts to a verb of being.
So now maybe we can go into the actual Predicate code and
start constructing the conditional traps for branching out
of Predicate and into a verb-of-being module.

Before we actually write the code, let us record here the idea
that a beVerb (verb-of-being) module, since it is not transitive,
may lead after the verb to a noun, or an adjective, or even to
just an adverb, as in, for example, "I am here." And (what is
really beautiful), it can lead to a name, such as, "I am Andru".

As we have opened up the MindForth source code, we get the idea
of creating a beVerb module directly, instead of amVerb, isVerb
or areVerb, so as not to have to change our ad-hoc modules and
consolidate them into a more general module. Let us try to
achieve our purpose with the following rough draft of a beVerb
module. We are aware that the Predicate module may have already
found the particular verb of being, anyway, thus obviating our
rationale for having a separate module for each verb of being.


\ The beVerb module aims for the following entelechy goals.
\ [ ] It shall possibly take the form of an infinitive. 
\ [ ] It shall possibly transit to a noun, adjective or adverb.
\ [ ] It shall use an intransitive verb without a direct object.
\ beVerb is a module for letting the chain of thought escape 
\ from generating a subject-verb-object (SVO) sentence based on 
\ a transitive verb and for generating instead a sentence of 
\ thought much freer in form by virtue of using a verb of being.
:  beVerb ( intransitive verbs of being )  \ 25sep2008
;  \ 25sep2008 End of beVerb; return to Predicate module.
We test the code by running MindForth, and the code still runs.
Of course, the new beVerb module does not yet do anything.
It is just there, in between the Conjoin and Predicate modules.

Into Predicate we inserted the following code to trap for "ARE":

      motjuste @ 67 = IF beVerb THEN  \ 25sep2008 For verb "ARE"
At the same time we temporarily inserted an announcement message
into the beVerb code, to let us know when beVerb is being called.
Then we got the following positive output.
Robot:  CATS EAT FISH
Human: robots

Robot: ROBOTS  NEED  THE I

Robot:  ROBOTS NEED THE I
Human: what are robots

Robot: ROBOTS  beVerb has been called.NEED  THE I

Robot:  ROBOTS NEED THE I
Human:

User Command:  halt
The output cited above tells us that the user input question,
"what are robots", was enough to trigger the calling of the
beVerb module, although the Predicate module naturally ignored
the foray into beVerb and continued to create an SVO sentence
based on a transitive verb. Now we might as well put in traps
for a few more verbs of being. We increase the traps as follows.
      motjuste @ 57 = IF beVerb THEN  \ 25sep2008 For verb "AM"
      motjuste @ 66 = IF beVerb THEN  \ 25sep2008 For verb "IS"
      motjuste @ 67 = IF beVerb THEN  \ 25sep2008 For verb "ARE"
Then we save the source code file, "fload 25sep08A.F" and enter
"alife" to run the Mind. We get the following output, in part.
Robot:  CATS EAT FISH
Human: what is fish

Robot: FISH  beVerb motjuste = 66 EAT  BUGS

Robot:  FISH EAT BUGS
Human: what are you

Robot: I  beVerb motjuste = 67 
beVerb motjuste = 57 
beVerb motjuste = 57 
beVerb motjuste = 57 
beVerb motjuste = 57 
beVerb motjuste = 57 
beVerb motjuste = 57 
beVerb motjuste = 57 AM  THE I

Robot:  I AM THE I
Human:

User Command:  halt

It is not yet clear why the beVerb module issued eight
reports in a row before Predicate finished its sentence --
which, by the way, was still an SVO sentence, because
beVerb has not yet been fleshed out with code for generating
a sentence with an intransitive verb of being. It is interesting
that Predicate first calls beVerb for the psi #67 verb "ARE"
but then calls beVerb seven more times for motjuste #57 "AM".
Possibly activation was building up on the "AM" verb and
the incipient thought could not reach a conclusion until
the "AM" verb attained an activation higher than a threshold.

It looks as though Predicate is making multiple calls to beVerb
because we accidentally placed our trapping code inside the loop
that tries to find the "motjuste" verb. Let's trying moving the
three lines of trap-code from inside the loop to below the loop.

We no longer get multiple calls from Predicate to beVerb.
We get the following sample of output.

Robot:  CATS EAT FISH
Human: what is fish

Robot: FISH  EAT  BUGS

Robot:  FISH EAT BUGS
Human: who are you

Robot: I  beVerb motjuste = 57
AM  THE I

Robot:  I AM THE I
Human:

User Command:  halt

Although we would like to examine all the weird output
we have been getting, in order to determine the causes,
we need to press ahead and build up the beVerb module
into a module that truly, if haphazardly, generates a
sentence of thought based on an intransitive verb of being.
We need to complete the beVerb module as soon as possible
because MindForth has never yet been able to think with
intransitive verbs of being. Prior to 2008, we were always
too busy debugging the operation of the AI Mind as a
thinker of basic subject-verb-object thoughts using a
transitive verb and a direct object. Then in recent weeks
we have had to decouple or split up the elements of the
subject-verb-object sentence as found in the SVO module.
We did so by bypassing SVO entirely and by having the English
module first call nounPhrase and then call Predicate, with
no presumption that a subject-verb-object sentence will be
built upon a transitive verb -- as was the SVO presumption.

Now we have fleshed out the beVerb module in a very temporary
way. We use the SPEECH module to say the verb, and we have
inserted into beVerb a call to the nounPhrase module, even
though there should be conditional code to decide whether to
say a noun, an adjective, an adverb, or whatever, after the
intransitive verb of being. We just want to upload our work
to the Web, now that MindForth after a dozen years of slow
development has in beVerb a primitive module for thinking
with intransitive verbs. The whole process of such thinking
is now a candidate for refinement and improvement. The behavior
of the AI Forthmind is now subtly different from the way it was
before. It no longer accidentally uses a verb of being; it uses
one on purpose.


4. 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


5. Resources

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

For discussion of Win32Forth, visit the Yahoo win32forth group
http://groups.yahoo.com/group/win32forth/messages


6. 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.

MindForth Robot AI Mind User Manual
http://mentifex.virtualentity.com/m4thuser.html

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.