MindForth Programming Journal
AI4U Blog -- Wed.17.SEP.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.
[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.


2. Sat.13.SEP.2008 -- QUESTIONS EXPECTING "YES" OR "NO"

In our work of 11.SEP.2008 we developed the idea of a
status-con(dition) variable that would sit inside a
mind-module and govern the likelihood of the module
actually performing its main function. We soon realized
that the use of statuscon variables in the NLP modules
would permit an AI Mind to speak tersely and leave out
those syntactical structures whose modules did not have
a sufficiently high statuscon level. Now we see a further
use for statuscon variables, in the "yes" or "no"
answering of questions.

Suppose that there were a "speechcon" variable in the
Speech module, governing the likelihood that a thought
would go into Speech. With such a "speechcon" control,
it would be possible for ideas to be thought but not
go into Speech. This arrangement would be especially
useful in the answering of questions expecting a "yes"
or "no" answer.

If a human user were to ask an AI Mind, "Do people have
brains?" and the knowledge base (KB) of the AI contained
the fact, "People have brains," the AI could think that
thought silently from associative memory and answer,
"Yes, people do have brains," or merely the word "Yes."
Basically, the AI would be thinking the thought twice,
once to remember it, and once more to speak it aloud.
We could even have modules of "Affirmative" and "Negative"
just to say "yes" or "no." But how would the choice of
"yes" or "no" be arrived at?

We could have the initial input words of "do" or "does"
launch the use of a "token" or "baton" variable to
accompany the query of memory in search of the "yes"
or "no" answer. For clarity, we could even call it the
"yesorno" variable to state explicitly what it is for.

A very unnatural way to pass the baton of the "yesorno"
variable would be to assemble a long digit containing
the psi concept numbers of the two or three concepts
in the human query. Then, at each stage of remembering
any pertinent knowledge, the "yesorno" variable could
remain on "yes-track" as long as the indicated concepts
were being activated in the generation of the remembered
thought. But such a method would be too artificial.

A more natural inquiry would be for the AI to think to
itself each successive word in the question, starting
with "PEOPLE." If the word PEOPLE is in the KB, the
yesorno variable will contain a true-value, such as
one (1), or at least be positive. If the thinking of
the word PEOPLE associates to the word "HAVE," then
the yesorno variable will continue to hold a "true" value.
If "PEOPLE HAVE" associates to many direct objects but
not to "BRAINS", then the yesorno variable will no longer
hold a "true" value. Then the AI will not answer "yes."
It may instead answer, "I DO NOT KNOW."

If the AI were asked the question, "Do people fly cars?",
it might be able to state, "PEOPLE DRIVE CARS" after
saying "I DO NOT KNOW." Such a thought could arise not
by some function of the yesorno variable, but simply
because the query activated the concepts involved.

We could have a kbSearch module, sort of like the
nounPhrase and verbPhrase modules, that would silently
think the word "PEOPLE" while testing for a match of
the "HAVE" concept after activating "PEOPLE."
If the thinking of "PEOPLE" sufficiently activated
the verb "HAVE", then yesorno would stay at "true".
The word "HAVE" would then be thought, to see if it
sloshed activation over onto "BRAINS" -- requiring a
high activation level, to prevent spurious objects
from skewing the results.

Say, a more drastic method would be to let the yesorno
baton variable operate during the actual reception of
the input. If the word PEOPLE is even found during the
input (by oldConcept, naturally), the baton variable
would be positively true. As HAVE came in, finding
activation spreading from PEOPLE to HAVE in memory
would keep the baton positively true. Likewise
activation sloshing over from "PEOPLE HAVE" to
"BRAINS" would deliver the yesorno variable in a
positively "true" state to the end of the input,
thus potentially triggering an Affirmative "yes",
with or without a statement of the remembered fact.

So the question words "do" or "does" would launch the
kbSearch module, which could also be called the
Memory module or the Remember module. During the
operation of kbSearch, the psi concept number for each
incoming word would be piped into nounAct or verbAct
or whatever was necessary, just to measure the ensuing
associations. No NLP module would be generating a sentence.
The kbSearch would just be shepherding the baton through
the process of remembrance. The kbSearch module, operating
at the speed of thought, would quickly do its job as soon
as each full word of input were recognized. In fact,
as soon as PEOPLE went into nounAct and spread its
activation to associated verbs like HAVE, the word
HAVE coming in could test for a "highest" joint
activation with the initial activation spreading from
PEOPLE and the oldConcept activation from HAVE itself.
(We have to check and make sure that oldConcept causes
relative and not absolute activations.) In other words,
kbSearch would not have to pick out HAVE from a group
of verbs activated by PEOPLE, but rather we would have
most active "motjuste" or "memoire" and do a kind of
"memoire @ psi @ = IF 1 baton +! THEN". And as an ELSE
statement, baton could be set to zero. If baton is
still true or positive at the end of the input stream,
then the Affirmative "yes" would be triggered.

It might be good to use the idea "PEOPLE DRIVE CARS"
so that the AI could answer queries in the affirmative,
and then make some other kind of answer to the question,
"Do people fly cars?" Probably the AI would say, "I DO
NOT KNOW." The ability of the AI to answer questions
accurately with "YES" or "NO" or "I DO NOT KNOW" would
be most impressive and would propitiate the Turing test.


3. Mon.15.SEP.2008 -- CREATING THE kbSearch MODULE

Two days ago we began the kbSearch programming by creating the
following snippet of code to detect first-word "DO" input.

  ordo @ 1 = IF  \ 13sep2008 Looking for "DO" as first word.
    \ CR ." oldC: ordo and psi = " ordo @ . psi @ .  \ 13sep2008
    psi @ 59 = IF  \ 13sep2008 If first incoming word is "DO" query
      ." oldC: Detecting a DO question " CR \ 13sep2008 kbSearch
    THEN  \ 13sep2008
  THEN  \ 13sep2008  \ 13sep2008 End of test for first input word.
Now we will build up the easy parts first as a prelude to
creating the most difficult part of the software. First we
had better decide where to stub in the new kbSearch module.

Since kbSearch is going to be similar to nounPhrase and
verbPhrase, let us insert the kbSearch module in between
the Article module and the nounPhrase module, as if
nounPhrase were a senior predecessor of kbSearch, and
just in case kbSearch needs to call the Article module.
We insert the following preliminary stub of kbSearch.

\ The kbSearch module aims for the following entelechy goals.
\ [ ] Elaborate as prompted on "YES" or "NO" responses.
\ [ ] Supply related ideas as afterthoughts to replies.
\ [ ] Answer NO if a definite negation is found in memory.
\ [ ] Answer I DO NOT KNOW if no affirmation is found.
\ [ ] Answer YES if query-baton remembers the fact in question.
\ [ ] Follow spread of activation through affirmative remembrance.
\ [ ] Use a baton variable to accompany a positive remembrance.
\ [ ] It shall seek remembrance of an idea input as a question. 
\ [ ] It shall search the KB for affirmation or negation. 
\ [ ] It shall be activated by input of a "DOES...?" question.
\ [ ] It shall be activated by input of a "DO...?" question
\ kbSearch is a special module to search the knowledge base (KB) 
\ in order to answer "YES" or "NO" to fact-finding questions.
:  kbSearch ( knowledge base search )  \ 15sep2008
;  \ 15sep2008 End of kbSearch; return to ...?
Our MFPJ entry for 31.AUG.2008 describes how we started to state
entelechy goals or "specs" for each mind-module. Doing so slows
our work down when we are eager to program, but taking the care
to state the goals is probably salubrious in the long run. A recent
Dr. Dobbs Journal article on Modern Forth by Mr. Stephen Pelc
of MicroProcessor Engineering Ltd. emphasizes the importance of
knowing the "specs" of software before trying to code the software.
Although the Mentifex AI project would have agreed with such a
sensible proposition in the past, we did not know how to state
the goals until we dreamed up the entelechy declaration as a
kind of preamble for each mind-module. Note that the easiest
goals are stated at the bottom of the list, so that the goals
can be checked off as accomplished from the bottom up. Note also
that creation of the AI Mind software is an ongoing process and
does not require the immediate implementation of all the goals
at the same time. Stating the goals should let other programmers
decide what aspect of any particular module they would like to
work on.

When we test the software with the above stub inserted, the AI Mind
still runs. Now we need to let detection of a "DO..?" question
trigger the calling of the kbSearch module. An immediate problem
is that the oldConcept module, which detects the input of "DO"
as the first word in potentially a fact-finding question, is high
up in the MindForth source code and therefore can not call the
kbSearch module which we want to reside far further down in the
code, among the throught-generation modules. We have encountered
this same problem several times. Generally, since all the NLP
generation modules derive eventually from the Think module
located near the bottom of the source code, there is usually
some way to have a high-level module call a subordinate module,
even if we have to use a "flag" variable to do so. In the present
case, we may actually have to block the AI from thinking its own
thought while it searches its knowledge base for affirmation or
negation of the incoming DO-query.

We ask ourselves, what calls oldConcept in the first place? It is
called by Audition, which in turn is called by Sensorium. But does
the AI Mind have to finish the input of a complete sentence before
it can do any thinking of its own? Maybe reception of auditory input
should be only provisional, with a software option of jumping up to
a high-level module upon perception of various startling or special
inputs, like the use of "DO...?" as the lead-in to a question. Well,
that idea could make things very complicated, but maybe the AI Mind
needs the complexity, anyway. Why should an intelligent mind have to
wait for the input of a complete thought? Should the AI not have the
ability and the option of reacting vehemently to any concept at all
at any place early or late in the input stream? Meanwhile, this
discussion seems to be heading in the direction of making the AI
functionality more natural and more human-like.

This one little problem of invoking the kbSearch module may be forcing
us to rethink the entire operation of the AI Mind. We are using a
von Neumann architecture to simulate a massively parallel (maspar)
entity, and we may not be getting away with it. If we would feel
"weird" about subordinating the Sensorium to the Think module,
as if those two areas were too distinct to merge, then we might
at least have to insert into the main-loop Alife module some
conditional logic, probably flag-based, to govern the suddenly
provisional Sensorium activity. Oh, but that idea is still so
vexingly complicated, because, how do we get back into the
Sensorium/Audition/oldConcept continuum once we have interrupted it?

As an aside, let us mention that here we have an independent AI
scholar "Mentifex," self-chosen for the task, going out on a limb
and designing unproven, barely tested AI Mind structures with no
guidance other than the previously accumulated structures stretching
back over more than a decade of AI programming. Please consider the
idea that Mentifex here has slowly, incrementally trained himself
to engage in the profound thinking of putting together AI Mind
components. These more recent AI software initiatives of 2008
were not even possible back in 1998, when Dr. Paul Frenger wrote
the first official computer-science paper about the project:
Mind.Forth: Thoughts on Artificial Intelligence and Forth.
We can barely keep the general contents of the AI codebase in mind
as we program, but consciously or subconsciously we have learned
tried-and-true techniques and we have created an elaborate local
file system for holding on steadfastly to even minor advances.
We expect that, if the AI begins to show definite progress,
more and more individuals and AI shops will take up the work
which must seem not only dense and impenetrable at the outset
but downright idiotic, misguided and lunatic in its weirdness.
We have slowed our coding down recently to embark on a major
appeal for educational science museums to display the AI Mind
software and thus attract additional workers at play in the
fields of the mind. We fully expect that science museums will
at first have only disdain for such primitive AI software,
but we figure that gradual improvements in the software will
gradually make AI Mind exhibits more appealing to museums.
We feel that MindForth already displays museum-worthy thinking,
and that it has been necessary to plant the seed of the idea
of having AI Mind exhibits so that the proposal may gain the
proverbial "mindshare" that things need to get a foot in the door.


4. Tues.16.SEP.2008 -- CALLING kbSearch

Obedient to Occam's Razor, maybe we can try the simple solution
first and perhaps avoid reconfiguring the entire AI Mind structure.
Maybe we can position the new kbSearch module in between the
oldConcept module and the modules that house and govern the KB.
But then how are we going to call the Reify module? Do we need
to relocate Reify? Has Reify always been in the wrong place in
the Forth sequence of mind-modules?

Well, we move kbSearch to just before oldConcept, so that
oldConcept may call kbSearch. We declare the yesorno variable.
At the end of oldConcept we install a test to call kbSearch
if yesorno has become positive -- which happens if a DO-query
is detected by oldConcept. (Meanwhile we wonder what happens
if the DO-query contains a previously unknown "new" concept.)
Into kbSearch we insert a string message to announce that
kbSearch has been called by oldConcept. We run the AI program.
When we eventually start entering a DO-query of "Do cats eat
fish?", we see the kbSearch message not only after entry of
"DO" but after each word in the query, because the positive
yesorno variable calls kbSearch after every word of input.
Now we have to decide something. Maybe we should use a
separate flag to have oldConcept make the first call to
kbSearch. It would be somewhat like the "recon" flag for
asking questions. We could always discard the flag later
if it is not really needed. So what would be a good flag?
Let us try using "kbquiz" as the flag for oldConcept to
call kbSearch. We get the following exchange.

Robot: CATS EAT FISH
Human: do oldC: Detecting a DO question
kbSearch has been called by oldConcept.cats eat fish

Robot: FISH EAT BUGS
So the software reports to us that the start of a DO-query
has been detected and that kbSearch has been called a single
time. What if "do you do robots" were the input query?
The second "do" should not trip the kbquiz flag.
Robot: CATS EAT FISH
Human: do oldC: Detecting a DO question
kbSearch has been called by oldConcept. cats eat fish

Robot: FISH EAT BUGS

Robot: FISH EAT BUGS
Human: do oldC: Detecting a DO question
kbSearch has been called by oldConcept. you do robots

Robot: ROBOTS NEED CATS
Well, the good news is that the second "DO" does not
trip the kbquiz flag. The bad news is that the interplay
of associative activations needs tightening up, because
the AI spuriously asserts: "ROBOTS NEED CATS". Probably
the recent query input of "do cats eat fish" has left
too much activation on the CATS concept. Of course,
psiDecay is gradually lowering that activation, but
obviously not fast enough. We may eventually have to
pepper the kbSearch process with a lot of calls to
psiDecay, so that kbSearch can do its work and not be
hampered by lots of stray activations running around.
Such a consideration is just one more part of what we
need to keep in mind as we try to program the AI.
So now we have seen the AI call kbSearch at the start
of a DO-query. What next? What is kbSearch supposed to do?
It needs to search for the next word coming in, typically
a noun as the subject of the sentence of the DO-query.
But the next word after "DO" has not yet come in.
How do we get kbSearch to take hold of the next word?
Maybe we could use the "ordo" variable that tells us
the word-order numbering of the words of input.
Robot: CATS EAT FISH
Human: do oldC: Detecting a DO question
kbSearch: ordo = 1 cats eat fish

Robot: FISH EAT BUGS
As may be clear from the output shown above, we have
changed the kbSearch announcement message to include a
display of the value of the "ordo" variable, which is
one (1) above because "DO" coming in was word #1.
But we really want to deal with word #2 -- whatever it
is going to be. We may have to go back into oldConcept
and prepare some method of passing the psi number of
word #2 to the kbSearch module. We may also have to do
a similar thing in newConcept, just in case the DO-query
includes a noun or a verb previously unknown to the AI.
Robot: CATS EAT FISH
Human: do oldC: Detecting a DO question
kbSrch: ordo & psi = 1 59 cats eat fish

Robot: FISH EAT BUGS
The exchange above shows where we have forced kbSearch
to reveal the current values of both "ordo" and "psi".
The psi number of the first word "DO" is fifty-nine (59).
If we can get oldConcept (but not yet newConcept) to pass
the psi number of the next incoming word to kbSearch, then
kbSearch may actually begin to seek the word in memory.

It is beginning to look as if we can have kbSearch get
called as each successive word of a DO-query comes in,
but only do things with the non-initial words.
Is it time to use the "yesorno" variable? We could tell
oldConcept to keep calling kbSearch to report each psi
concept number only as long as "yesorno" remains positive.
If we do it this way, "yesorno" will be performing double
duty -- as a companion "baton" during the search of the KB,
and as a status-flag to tell oldConcept to keep sending
words for kbSearch to search for.

Robot: CATS EAT FISH
Human: do oldC: Detecting a DO question
kbSrch: ordo & psi = 1 59
kbSrch: ordo & psi = 1 59
cats kbSrch: ordo & psi = 2 76
eat kbSrch: ordo & psi = 3 77
fish
kbSrch: ordo & psi = 4 78

Robot: FISH EAT BUGS
In the above exchange, we see the psi concept numbers
of "CATS EAT FISH" as "76 77 78" -- the order in which
the psi concept numbers were assigned as the AI "learned"
each new word during previous human input. It is not yet
clear why kbSearch is called twice after the "DO" word,
but it should be easy to determine why. The stage is set
now for kbSearch to activate each incoming DO-query concept
and see if the baton gets passed along so that the AI can
state a simple Affirmative "YES" answer to the DO-query.
We assume that we will create an Affirmative module to
say "YES" and a Negative module to say "NO" if necessary,
although for many queries "I DO NOT KNOW" is the answer.

We have run out of time to program right now on 16.SEP.2008,
but we may mull over the state of the AI between sessions.
Today's work thus far shows how much easier it is to code
an already functional AI than to debug an AI that never worked
right -- as was the case up until 2008. Even if we code
kludgy, much too elaborate structures, once we have the
functionality that we seek, we can make things simpler.

Here we would like to mention Site Meter visit #50,223 to
http://mentifex.virtualentity.com/mind4th.html on Sep 11 2008
at 1:37:15 pm. by
Domain Name uspto.gov ? (U.S. Government)
IP Address 151.207.244.# (U.S. Patent and Trademark Office)
ISP U.S. Patent and Trademark Office
Is there some young Albert Einstein surfing the Web for AI
while he puts in his time at the American (not Swiss) USPTO?
Has an AI patent applicant listed MindForth as "prior art"?
Is somebody patenting MindForth out from under Mentifex here?
We do not know, and we are only mildly curious about the issue.


5. Wed.17.SEP.2008 -- TAKING "YES" FOR AN ANSWER

Now we have moved the entire Reify module in between Parser
and kbSearch, so that kbSearch will be able to call Reify.
The AI still runs. Next we need to have kbSearch look for the
first word of the idea contained in the DO-query. Let us refer
to that word as word #2, because word #1 was the word "DO".
Apparently our searches will be conducted in the English
"en{" array, not in the psi array. Although at first we only
need to find word #2, we should probably activate the word
at the same time, because we want to see if word #2 activates
query-word #3. Hmm... We already know that query word #2 is
there in the knowledge base (KB), because oldConcept found it.
So we should probably just pipe the word into nounAct so as to
activate it.

Breezily coding along, we built up a seach routine in kbSearch,
looking for the second word of the imputed query-idea, since we
already knew the first idea-word from oldConcept. At first we
did not bother looking specifically for verbs, which resulted
in the idea-noun having more activation than the idea-verb.
So we made the snippet look only for verbs, and we got the
following excellent output.

Transcript of AI Mind interview at 16 53 38 o'clock on 17 September 2008.
do oldC: Detecting a DO question
kbSrch: ordo & psi = 1 59
kbSrch: ordo & psi = 1 59
robots kbSrch: ordo & psi = 2 39
kbSrch: query-word #2 = psi = 39
make kbSrch: ordo & psi = 3 73
kbSrch: query-word #3 = psi = 73
qw#3 psi act memoire = 73 25 74
The beauty of the above output is that robots do not
MAKE (psi #73), they NEED (psi #74) -- according to
the miniature knowledge base contained in the enBoot.
So the baton variable yesorno, if we had been using it,
would have gone to false, on the way to not answering
"YES" to any question starting out, "Do robots make...?"
Now let's try it with, "Do robots need...?"
Transcript of AI Mind interview at 17 2 53 o'clock on 17 September 2008.
do kbSrch: ordo & psi = 7 59
robots kbSrch: ordo & psi = 8 39
need kbSrch: ordo & psi = 9 74
Something was wrong with the above output.
The ordo variable was not being reset to zero,
and so the software was not working right.
In between runs, we entered "0 ordo !" to reset.
Then we got the following much better output.
Transcript of AI Mind interview at 17 8 53 o'clock on 17 September 2008.
do oldC: Detecting a DO question
kbSrch: ordo & psi = 1 59
kbSrch: ordo & psi = 1 59
robots kbSrch: ordo & psi = 2 39
kbSrch: query-word #2 = psi = 39
need kbSrch: ordo & psi = 3 74
kbSrch: query-word #3 = psi = 74
qw#3 psi act memoire = 74 25 74
In the excellent output shown above, the user has
entered "do robots need" without carriage-return.
The software finds that the most active "memoire"
is indeed the psi #74 word "NEED", so a yesorno
baton would still be true. Now the real test comes
when we try to continue on to a direct object.
Transcript of AI Mind interview at 17 34 3 o'clock on 17 September 2008.
do oldC: Detecting a DO question
kbSrch: ordo & psi = 1 59
qw#4 psi act memoire = 59 0 0
kbSrch: ordo & psi = 1 59
qw#4 psi act memoire = 59 0 0
people kbSrch: ordo & psi = 2 37
kbSrch: query-word #2 = psi = 37
qw#4 psi act memoire = 37 0 0
have kbSrch: ordo & psi = 3 70
kbSrch: query-word #3 = psi = 70
qw#3 psi act memoire = 70 25 70
qw#4 psi act memoire = 70 0 70
fear kbSrch: ordo & psi = 4 71
kbSearch: About to search for direct object. qw#4 psi act memoire = 71 40 71
We coded a search for a direct-object noun and we asked
the AI "do people have fear", because the enBoot says that
people do have a fear. The output above shows that we
neglected to enclose the query-word #4 report within the
conditional IF-THEN statement for query-word #4, but it
does not matter. The psi #71 word "FEAR" was searched for,
and it was indeed found, so the "yesorno" baton may indeed
be able to deliver an Affirmative "YES" answer.
First we clean up the code a bit and we get nicer output.
Transcript of AI Mind interview at 17 43 18 o'clock on 17 September 2008.
do oldC: Detecting a DO question
kbSrch: ordo & psi = 1 59
kbSrch: ordo & psi = 1 59
people kbSrch: ordo & psi = 2 37
kbSrch: query-word #2 = psi = 37
have kbSrch: ordo & psi = 3 70
kbSrch: query-word #3 = psi = 70
qw#3 psi act memoire = 70 25 70
fear kbSrch: ordo & psi = 4 71
kbSearch: About to search for direct object.
qw#4 psi act memoire = 71 40 71
After a lot of trial-and-error programming, we got the
"yesorno" baton to be incremented in value as the kbSearch
module kept finding a match-up of an idea in memory with
an input query-idea. Below we ask, "do people have fear".
Transcript of AI Mind interview at 18 26 27 o'clock on 17 September 2008.
do oldC: Detecting a DO question
kbSrch: ordo & psi = 1 59
kbSrch: ordo & psi = 1 59
people kbSrch: ordo & psi = 2 37
kbSrch: query-word #2 = psi = 37
have kbSrch: ordo & psi = 3 70
kbSrch: query-word #3 = psi = 70
qw#3 psi act memoire yesorno = 70 25 70 2
fear kbSrch: ordo & psi = 4 71
kbSearch: About to search for direct object.
qw#4 psi act memoire yesorno = 71 40 71 3
Below we ask "do people have truth", which is not known
to the AI, so the "yesorno" baton ends up being zeroed out.
Transcript of AI Mind interview at 18 31 29 o'clock on 17 September 2008.
do oldC: Detecting a DO question
kbSrch: ordo & psi = 1 59
kbSrch: ordo & psi = 1 59
people kbSrch: ordo & psi = 2 37
kbSrch: query-word #2 = psi = 37
have kbSrch: ordo & psi = 3 70
kbSrch: query-word #3 = psi = 70
qw#3 psi act memoire yesorno = 70 25 70 2
truth kbSrch: ordo & psi = 4 68
kbSearch: About to search for direct object.
qw#4 psi act memoire yesorno = 68 40 71 0
Now we need to find a way for the positive "yesorno" baton
to cause the AI to answer "YES" to an input DO-query when
warranted. We need to create an Affirmative module and we
need to call it from another module superior in sequential
rank to the SPEECH module that must say the word "YES".
Maybe we should do this task in the English module after
a conditional test of the "yesorno" flag.

We have stubbed in the Affirmative yes-module just after SPEECH
and our test messages indicate that we may fill in the yes-code.

Transcript of AI Mind interview at 19 0 13 o'clock on 17 September 2008.
do oldC: Detecting a DO question
kbSrch: ordo & psi = 1 59
kbSrch: ordo & psi = 1 59
people kbSrch: ordo & psi = 2 37
kbSrch: query-word #2 = psi = 37
have kbSrch: ordo & psi = 3 70
kbSrch: query-word #3 = psi = 70
qw#3 psi act memoire yesorno = 70 25 70 2
fear
kbSrch: ordo & psi = 4 71
kbSearch: About to search for direct object.
qw#4 psi act memoire yesorno = 71 40 71 3
ENGLISH: yesorno wants to say YES
 Affirmative is ready to say YES
Today for the first time our AI Mind answered "Yes" to a query
of its knowledge-base (KB). In response to the question,
"do people have fear", the AI answered "YES" in its output.
Transcript of AI Mind interview at 19 11 3 o'clock on 17 September 2008.
do oldC: Detecting a DO question
kbSrch: ordo & psi = 1 59
kbSrch: ordo & psi = 1 59
people kbSrch: ordo & psi = 2 37
kbSrch: query-word #2 = psi = 37
have kbSrch: ordo & psi = 3 70
kbSrch: query-word #3 = psi = 70
qw#3 psi act memoire yesorno = 70 25 70 2
fear
kbSrch: ordo & psi = 4 71
kbSearch: About to search for direct object.
qw#4 psi act memoire yesorno = 71 40 71 3
ENGLISH: yesorno wants to say YES
 Affirmative is ready to say YES
YES kbSrch: ordo & psi = 1 32

Robot: A kbSrch: ordo & psi = 2 1
kbSrch: query-word #2 = psi = 1
FEAR kbSrch: ordo & psi = 3 71
kbSrch: query-word #3 = psi = 71
qw#3 psi act memoire yesorno = 71 15 70 0
 WHAT IS FEAR

Robot:  YES A FEAR WHAT IS FEAR
Human:
It was unpleasant to see extra output beyond "YES",
so we inserted an EXIT command into the ENGLISH module
to force it to say only "YES" and then wait for input.


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


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


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