Older blog entries for AI4U (starting at number 43)

MindForth Programming Journal (MFPJ) 2010 September 15

Wed.15.SEP.2010 -- Progress on Predicate Nominatives

In frustration we want to know one thing. Why can't the 14sep10A.F MindForth answer "I AM ANDRU" when asked immediately "what are you", but it can indeed state that answer if the user first makes some different input, like the word "I"?

In December of 2009 and January of 2010, when we were coding who-queries and what-queries, we were not yet using neural inhibition, and so we may have made our code overly complicated. For example, on about 19jan2010 we used a SubjectClear module to zero out subject concepts after the input of a query. If we rely on InHibition instead, we may get an immediate answer to a query, after which the answer-idea goes briefly into InHibition and lets one or more additional answers be thought up by the AI.

All right, fellow cyborgs. We went into the VerbPhrase module and we commented out the InHibit code both before and after the call to SpeechAct, because the pre-SpeechAct code inhibits the idea that has just been resurrected from the knowledge base (KB), and the post-SpeechAct code inhibits the new idea that has just been uttered. Immediately (although we do not know why) our AI began to function better in the answering of "What are you?" queries. We had the following conversation with the MindForth AI Mind.


Transcript of AI Mind interview at 
17 48 13 o'clock on 15 September 2010.


Human: you are a program Robot: PROGRAM IS PROGRAM

Human: what are you Robot: PROGRAM

Human: what are you Robot: I AM ANDRU

Human: what are you Robot: I AM PROGRAM

A ".psi" report indicates that only nouns were being inhibited, not verbs.

Btw (nerdspeak for "by the way"), we just enhanced our AI program considerably with a little trick. We did not like seeing the AI say, "I AM PROGRAM", so we decided to reinstate a call from the VerbPhrase mind-module to the EnArticle (English article) module. This time, however, we inserted the EnArticle call just before the main VerbPhrase call to SpeechAct, and we set up IF-THEN conditionality to call EnArticle only for a predicate nominative. Immediately the AI began saying "I AM AN ANDRU" and "I AM A PROGRAM". Somehow we feel that this same enhancement brings us closer to Is-a considerations and to the logical treatment of sets and classes.


MindForth Programming Journal (MFPJ) 2010 September 11

Sat.11.SEP.2010 -- Aspects of AI Inhibition

We have learned recently that neural inhibition is a very powerful tool for helping a meandering chain of thought to avoid a repetitious pathway and instead to follow a fresh line of thought in responding to the query of a human user or cyborg searching for an exhaustive report of what an AI Mind knows about a given topic.

We can imagine (and even build) an AI Mind using inhibition to make an initial response from its knowledge base (KB) about a given topic and then stating one more fact each time that the human user does not make any new input following output from the AI. Such a design raises a few questions, however. If the AI Mind knows ten same-noun and same-verb facts about a topic, should the inhibition on the first output fact persist until all ten facts have been stated, or should the inhibition wear off and let a fact be repeated even before all ten facts have been stated by the AI?

If a KB-query causes a productive search all the way back to the "midway" time-point, should there be a way of decrementing or zeroing the "midway" variable so as to let the AI look even further back for KB data in response to the query?

If we want queries of "Who are you?" or "What are you?" to elicit a variety of successive responses from the AI, we may need to have neural inhibition work not only with regular verbs in the VerbPhrase module, but also with irregular verbs of being.

Sat.11.SEP.2010 -- Inhibition with Verbs of Being

When we try to inhibit factual KB statements based on verbs of being, we may need to go into the NounPhrase module and inhibit the predicate nominative instead of the time-bound verb node, especially when we are performing a two step process to let any verb of being be chosen, and then we force the correct verb-form to be selected for the utterance. We should perhaps not try to restrict the finding of a be-verb, and instead we should perhaps inhibit each found predicate nominative after its inclusion in a sentence, for two purposes. Firstly, we do not want the AI to repeat a be-verb statement over and over again. Secondly, we want the AI to supply additional information beyond the most recently stored knowledge. When the positive KB knowledge is exhausted, we may even want the AI to begin stating the negative infomation, such as when an AI knows, "I AM NOT HUMAN".

Sun.12.SEP.2010 -- Verging on an AI Breakthrough

We are quite excited by the coding that we are about to do today, because we expect it to be a Singularity-class AI breakthrough. But yesterday we were merely seeking to explore aspects of a theory of inhibition; today we have locked on to the grand prize of self-referential thought. How did we get so close to the proverbial twig of wild olive? In our plodding "plodotvorchestvo" of yesterday, we veered off into wondering how neural inhibition would work not just with regular verbs, but with verbs of being. Eventually we concluded that we would have to inhibit not the be-verb involved, but the predicate nominative across the link-gap from the dime-a-dozen be-verbs. Then we coded inhibition as a special case into the NounPhrase noun-selection code, but our efforts bogged down as we wallowed in the frustration of undecipherable results. We made numerous be-verb-esque queries to the AI, but only about half of the KB-retrieved fact-nouns were showing post-query inhibition. Our Laziness looked with dread upon the tedious teraduty of tracking down every call that fed a personal be-verb into SpeechAct before reporting a found KB noun. A day later, however, the idea of an AI breakthrough persuades Our Laziness to forge ahead, do the work, and reap the truly singular, die-is-cast, point-of-no-return, surrender- the-mountaintop, self-demoting species denoument. How so? We are not in AI Kansas anymore, Toto. If the AI successfully answers all manner of questions about itself in a KB-exhaustive way, then the AI knows itself and may even know that it knows itself, which is not merely machine intelligence, Don, but is so much the illusion of consciousness that who shall deny that it actually is consciousness? So here we are at Kitty Hawk, and Trinity, and Apollo Eleven, staring into the twilight of the Goetterdaemmerung.

Upshot: We did not solve it all yet. We already had two serious pre-existing mistakes in VerbPhrase -- one where we failed to test for third person singular, and one where we mistakenly looked for erroneous 67=AM instead of the correct 57=AM. After we laboriously tracked down and corrected these mistakes, we obtained some encouraging results of variation in query- response, but we have not yet arrived at a sweeping enabling of the AI Mind to think about itself and talk about itself.


MindForth Programming Journal (MFPJ) 2010 September 6

Mon.6.SEP.2010 -- First Fruits

The low-hanging fruit of current open-source AI development is the relatively easy reworking of the MindForth PsiDecay module to make it gradually reduce both positive and negative activations on concepts in the Psi array. We install the following line of code in the PsiDecay module.


 I  1  psi{ @  0 < IF  1  I  1  psi{ +! THEN  \ 6sep2010

To test the new code, we need to inhibit a Psi concept by bringing its activation substantially below zero.

We soon discover that our verb-node inhibiting code may not be inserted just anywhere within the VerbPhrase module, but must be placed outside of the verb-selection search loop so that only the winning verb- node will first crest at a high activation and then be inhibited into a negative activation.

Tues.7.SEP.2010 -- Singularity Alert

We were coding along, fiddling with the settings of inhibition in the pertinent mind-modules, when we had the following conversation with the AI Mind.

Human: boys make cars
Robot: CARS WHAT ARE CARS

Human: boys make guns
Robot: GUNS WHAT ARE GUNS

Human: boys
Robot: THE BOYS MAKE THE CARS

Human: boys
Robot: THE BOYS MAKE THE GUNS

We immediately stopped coding and made an announcement to the world via the Singularity mailing list, with a carbon copy archived at the Artificial General Intelligence (AGI) list.

Subject: [agi] Attn: Ben Goertzel -- SINGULARITY ALERT!!!

Hey, Ben. Arthur here. Remember the prediction of the 2012 Singularity? Well, guess what happened. I just had the following conversation with my http://www.scn.org/~mentifex/mindforth.txt AI:

Human: boys make cars
Robot: CARS WHAT ARE CARS

Human: boys make guns
Robot: GUNS WHAT ARE GUNS

Human: boys
Robot: THE BOYS MAKE THE CARS

Human: boys
Robot: THE BOYS MAKE THE GUNS

Chief AGI guru Dr. Goertzel! The above is not a cherry-picked, post-mucho experimentation routine test result put out for PR purposes. It just happened during hard-core AI coding.

Now, before everybody jumps in and snipes, "Aw, there's that crackpot Mentifex again," let me explain the significance of the I/O.

I have been coding MindForth AI for twelve years, since 1998 and maybe even earlier. Today on Mon.6.SEP.2010 for the first time I introduced quasi-neuronal inhibition into the free open-source AI source code. Why?

A year ago, around August or September of 2009, you and I had our set-to (rumble?) concerning the AGI Roadmap and my posts there which were deleted ("rolled back") by Itamar Arel. No biggy. I did not fix Itamar's wagon last Halloween, so I won't fix it this Halloween, either. You see, I was maintaining my own AI Roadmap at http://code.google.com/p/mindforth/wiki/RoadMap concurrently with my contributions to you guys' Roadmap.

The main thing is, I was entering into the Roadmap Milestone of trying to achieve "self-referential thought" with my AI. That particular achievement requires covering a lot of ground, not just "you and I" interactions between the human user and the artificial AI Mind. The AI needs to acquire a general knowledge of the surrounding world, so that man and machine may discuss the AI as a participant in its world.

So at the end of 2009 I was coding the ability of the AI to respond to who-queries and what-queries, so that the AI can deal with questions like "Who are you?" and "What are you?"

Recently I have perceived the need to get the AI to respond with multiple answers to queries about topics where the AI knows not a single fact but multiple facts, such as, "What do robots make?" I want the AI to be able to say such things as:

"Robots make cars."
"Robots make tools."
"Robots make parts."
"Robots make robots."

It dawned on me a few days ago that the AI software would have to suppress each given answer in order to move on to the next answer available in the knowledge base (KB). In other words, for the first time ever, I had to code _inhibition_ into the AI Mind. Tonight I have done so, and that simple conversation near the top of this message shows the results.

The same query, of just the word "boys...", elicits two different answers from the KB because each response from the AI goes immediately into inhibition in such a way as to allow access to the next fact queued up in the recesses of the AI KB.

This "Singularity Alert" from Mentifex may generate a collective "Huh?" from the list readership, but here it is.

Bye for now (and back to the salt mines :-)

Arthur
--
http://AiMind-i.com
http://code.google.com/p/mindforth
http://doi.acm.org/10.1145/307824.307853
http://robots.net/person/AI4U/diary/40.html


5 Sep 2010 (updated 6 Sep 2010 at 05:08 UTC) »
MindForth Programming Journal (MFPJ) 2010 September 5

Sun.5.SEP.2010 -- Looking Before We Leap

As we gear up for self-referential thought in autonomous robots, we want each robot AI Mind to be able to handle questions in three different formats, as exemplified by the following examples.

1. What do robots make?

2. What do robots do?

3. What are robots?

The questions listed above go from the very specific to the very general. The first question, "What do robots make?", is an example of the "what-do-X-VERB?" format, where the "verb" slot may be filled with any suitable verb, such as "think" or "need". We use the verb "make" here because it will allow the AI to recall a long list of the direct objects of the noun-verb combination, "robots make".

The second question is an example of the more general "what-do-X-DO" format, where no particular verb is supplied and the AI Mind is free to come up with a long list of verbs +/- objects that would complete a thought beginning with "robots" as a subject.

The third sentence, "What are robots?", is included here only for completeness in the consideration of questions that intelligent robots might be called upon to answer. We are concerned today with the answering of "what- do-X-VERB" and "what-do-X-DO" questions. It may seem to the casual peruser of these AI Lab Notes that such questions are ridiculously simple and should present no difficulty at all to any True AI worthy of the name, but a reality check is in order here because how a software program deals intelligently with such simple questions is itself a profound question requiring devilishly deep thought to answer. And if you did not smile at the mention of deep thought in the previous sentence, then you have no business here and you are really Joe Sixpack, not Joe Appcoder.

Now excuse us for a moment, because we have had to respond urgently to the travails of some young graduate student who has become lost on the Web and needs the help of a webfooted wizard at the prestigious AI Forum. We found what he was looking for, and the guy was beside himself with astonishment and thanks. In order to wring the last drop of memetic advantage out of the rescue-episode, we propose to follow up with the following tongue-in-cheek tradecraft.

It's so outstanding to hear from you again,
young coderpup.

How totally bodacious for you to do work on neural nets.

Bright and shining your future must be,
for you stick with your awesome goals and
fail-or-no-fail you care not.

To answer your further questions ready am I.

Just ask the Old AI Dude when the going gets ungoogly.

Sun.5.SEP.2010 -- Natura Non Facit Saltum

When we ask the AI, "What do robots make?", the responses could include cars, tools, parts, and even more robots. We need to change the AI Mindgrid in such a way that the AI will be able to make statement after statement until the possible answers have been exhausted in the knowledge base (KB). Somehow we need a way to make each succeeding answer drop out of the queue, so that the next answer may surface in consciousness. We may need to create an InHibit mind- module that will lower the activation on a particular node on the quasi-fiber of the verb (such as "make") figuring in the responses to the query.

Suddenly we see a way to achieve our goal of enabling multiple answers to a what-do-X-VERB query. It will involve radical changes perhaps not to the underlying MindGrid, but certainly to several mind-modules operating across the MindGrid.

At the heart of the solution is the brand-new idea that, during a query-response, after a verb-node wins selection into a thought, the entire verb-concept shall not be psi-damped down to zero, but rather only the selection- winning node shall be inhibited down to a negative level of activation, such as minus-fifteen or lower. Furthermore, the PsiDecay module shall be made to work in two directions, both downwards towards zero and upwards towards zero, so that any inhibited node shall gradually lose its inhibition. Mind-modules that try to zero out an entire range of concepts, shall be rewritten ("Get me Re- Write!") to zero out only positive activations on concepts, and to leave negative activations alone. At the same time as all these changes are in effect, the subject of the query shall have a special status of persistence, so that the AI shall try to issue a series of statements about the subject in combination with the query-verb, until all pertinent nodes on the query-verb have been knocked down into a sub-zero inhibition. At that point, any thought beginning with the query-subject will surely fail to connect with the query-verb, and may or may not find a different verb for the generation of a KB-valid sentence. We may let the special status of the query- subject persist only so long as valid thoughts emerge in connection (in synergy) with the query-verb, with a release-mechanism to dislodge the subject from its special status when the knowledge base has been exhausted.

The beauty of inhibiting serial same-verb nodes down to a definitely negative level of activation lies in the realization that the sentence-generation process will continue to work the old-fashioned way. The VerbPhrase module will flush out the next same-verb node to win thought-selection, oblivious to the fact that one node is now out of commission at a deep level (deep unthought) of negative activation. There is some elegance to a solution in which you change one phenomenon (the post- selection activation-level) while everything else still works in the same old way. It is like evolution, which does not make massive saltations all at once, but only makes one tiny mutation at a time.


JavaScript AI Mind Programming Journal -- Fri.3.SEP.2010

Fri.3.SEP.2010 -- Improving Associative Comprehension

Today in the tutorial JavaScript artificial intelligence (JSAI) we work on implementing a powerful feature taken from the MindForth robot AI -- special InStantiate code to help the AI Mind zero in on the proper assigning of associative tags to connect the concepts activated by English words of human input. In our open-source AI, the comprehension of natural language depends upon establishing the conceptual interconnections that constitute an idea.

We are specifically concerned with connecting an associative tag between a transitive verb and its direct object. If the human user clicks on the JSAI link, lets the AI Mind flit across the 'Net, and types in, "i have a book", we do not want the software to tag a link between the verb "have" and the article "a". Instead we want a mental link between "have" and "book" -- the object of the verb. Since in MindForth we have devised a way to skip articles in the search for semantic links, now in JavaScript we simply need to implement the InStantiate algorithm from the Forth code.

Upshot: We laboriously converted an intricate sequence of Forth code to JavaScript -- and the JSAI stopped running. We had misspelled the "lastseq" variable. By putting the code back together line-by-line from the last working JSAI of yesterday, we identified and solved the problem. Through much of our testing, we would type in "i have a book" and we would get nonsense in response, because the skip-seq algorithm was not yet fully implemented. When the algorithm from MindForth became fully functional in JavaScript, we typed in "i have a book" and the emergent artificial mind responded correctly, "YOU HAVE BOOK".


JavaScript AI Mind Programming Journal -- Thurs.2.SEP.2010

Thurs.2.SEP.2010 -- Implementing the "prsn" Variable

Today we have imported the "prsn" variable and some associated code from MindForth into the JavaScript AI (JSAI). In so doing, we have also switched the SpeechAct() module from conditionally adding an inflectional "S" for a third-person verb, to merely outputting an "S" if directed to do so by the VerbPhrase() module.

In the JSAI WhoBe() module, we have brought in the following code


  if (subjpsi==50) prsn=1; // 1st person "I";  2sep2010
  if (subjpsi==53) prsn=1; // 1st person "WE"  2sep2010
  if (subjpsi==56) prsn=2; // 2nd person YOU;  2sep2010
  if (subjpsi==49) prsn=3; // 3rd person HE;   2sep2010
  if (subjpsi==80) prsn=3; // 3rd person SHE;  2sep2010
  if (subjpsi==95) prsn=3; // 3rd person IT;   2sep2010
  if (subjpsi==52) prsn=3; // 3rd person THEY; 2sep2010

as a mutatis mutandis solid block from MindForth. WhoBe() does not yet make use of the above code, but we install it right away because in MindForth we have learned that tracking the person and number of verb- subjects makes the general AI coding easier.

We need to port a lot more of MindForth into the JavaScript AI -- especially the recent seq-skip code that vastly improves the comprehension of input -- and we expect the JSAI to prove to many Netizens that MindForth is worth looking into.


MindForth Programming Journal (MFPJ) 2010 August 30

Mon.30.AUG.2010 -- On the Shoulders of Giants?

The "prsn" variable in MindForth artificial intelligence (AI) enables the AI to think thoughts in the first, second or third person with English verbs in the present tense. MindForth is different from most natural language processing (NLP) software because previous NLP software may be intricately crafted for the generation of grammatically correct English sentences but not for the thinking necessary to drive the NLP mechanisms. Because MindForth has a conceptual core that actually thinks, MindForth is an AI engine that may be "reinventing the wheel" in terms of tacking on NLP routines that have already been invented elsewhere unbeknownst to the Mentifex (mindmaker) originator of MindForth, but MindForth remains the original invention of an artificial mind that needs its own special forms of NLP software. Other advanced NLP software may translate ideas from one natural language to another, but MindForth is ideation software that thinks up its own ideas, thank you, and becomes more skillful at thinking co-extensively with the growing sophistication of its NLP generativity. We are met today on a mindgrid of that generativity, and we must generate AI Mind code for self-referential thinking in English. MindForth is like an AI rodent that scurries about while giant NLP dinosaurs tower overhead.

Mon.30.AUG.2010 -- VerbPhrase Orchestrates Inflection

Our current code is abandoning the stopgap measure of using the SpeechAct module to add an inflectional "S" to regular verbs in the third person singular. The control of verb inflections is now shifting into the VerbPhrase module where it belongs. We will try to use an old "inflex1" variable from the 20may09A.F version of MindForth to carry each phonemic character of an inflectional ending (such as "S" or "ING") from the VerbPhrase module into the SpeechAct module. An old MindForth Programming Journal (MFPJ) entry describes the original usage of "inflex1" to carry an "S" ending into SpeechAct. Now we would like to expand the usage so that "inflex1" and "inflex2" and "inflex3" may carry all three characters of an "ING" ending into SpeechAct. First we rename all (three) instances of "inflex1" as simply "inflex" so that we may confirm our notion that "inflex1" was not yet affecting program-flow, before we re-introduce "inflex1" as a variable that does indeed influence program-flow. We run the AI code, and nothing seems amiss.

Then we rename our instances of the temporary "inflec1" from yesterday (29aug2010) as the henceforth genuine "inflex1" to make sure that we still have the functionality from yesterday. Again we run the code, and all is well. Now we need to clean up the test routines from yesterday and smooth out glitches such as the tendency to tack on an extra "S" each time that a verb is used in the third person singular.

We still have the variable "lastpho" from the 24may09A.F AI, for avoiding an extra "S" on verbs. That variable is continually being set in the SpeechAct module. First in VerbPhrase we use a test message to report to us what values are flowing through the "lastpho" variable. Then in VerbPhrase we make the setting of "inflex1" to ASCII 83 "S" dependent upon the "lastpho" not being "S", but the method initially does not work. We suspect that the "lastpho" value is being set too early at almost the beginning of the SpeechAct module.

When VerbPhrase sends an inflectional "S" inflex1 into SpeechAct, all the conditionality about person, number, gender, etc., should be kept in VerbPhrase and should no longer play a role in SpeechAct. SpeechAct as code should not care why it is being asked to add an "S" or an "ING" onto a word being spoken. Therefore much of the conditional code in SpeechAct after the the detection of an intended "32" space should be removed, and SpeechAct should simply speak the inflection.


MindForth Programming Journal (MFPJ) 2010 August 28

Sat.28.AUG.2010 -- First-Person Consciousness

The declaration today of a "prsn" (person) variable in the MindForth robot AI has a bearing not only on the proper use of English verb forms in the first, second and third person, but also on self-awareness and artificial consciousness. There is no consciousness module in MindForth, because consciousness emerges not from a single location but rather from the overall functionality of the mind qua mind. Since the new "prsn" variable will help the robot Mind to think about itself and talk about itself in the first person singular, the person variable will reinforce the very concept of the robot self as the ego of a conscious mind. As the AI Mind speaks confidently and grammatically about itself during interaction with other persons -- human peers or robot peers -- the evolution of AI reaches the all-important milestone of self-referential thought.

MindForth did not previously have a "prsn" variable because initially all utterances of the proof-of-concept AI were in the third person plural by default. When the goal was to demonstrate thinking and not yet to trigger a Singularity, the simplest way to deal with grammatical person was not to worry about it at all. As the AI Mind has advanced in complexity and in functionality, bugs and glitches began to appear which could be resolved only by taking person into consideration. The issue was forestalled while special coding for be-verbs dealt with first-person forms like "am" and with be-verbs required for use with English pronouns, but now the general coding of general verb-usage requires the adoption of a person variable to make things work. The variable shall be "prsn" for two reasons, brevity and clarity. The chosen name of the variable has clarity because it refers not to a general concept of "person" as perhaps a legal entity or as perhaps a dramatic character, but rather to the specific idea of first person, second person and third person. The "prsn" variable will hold values of "1", "2" or "3" accordingly, and may hold a zero ("0") value for use with infinitive forms such as "to be".


MindForth Programming Journal (MFPJ) 2010 August 27

Fri.27.AUG.2010 -- Fixing the VerbPhrase Mind- Module

Today let us explore why the AI Mind can have a grammatically incorrect exchange like the following.

Human: what is god
Robot: A GOD BES SPIRIT

First we must determine which part of the free AI source code for autonomous robots is mistakenly saying "BES" instead of "IS". If we eliminate this bug, and the next, and the next, we graduaully approach a functional AI Mind ready to inhabit myriad AI robots.

By inserting diagnostic messages to track the generation of thoughts, we determine that the VerbPhrase module is mistakenly saying "BE" instead of "IS". We temporarily fix this bug by inserting the following code into VerbPhrase, before it has a chance to utter "BE" as the main verb of a thought.


motjuste @ 58 = IF  \ shift from BE; 27aug2010
  num @ 1 = IF  \ singular; 27aug2010
    midway @  t @  DO  \ search backwards in time
      I       0 en{ @  66 = IF  \ most recent instance
        66 motjuste ! ( 66=IS; 27aug2010 )
        I     7 en{ @  aud !  \ get recall-vector
        LEAVE  \ after finding most "IS"; 27aug2010
      THEN     \ end of test for 66=IS; 27aug2010
    -1 +LOOP \ end of retrieval loop for "IS"; 27aug2010
  THEN  \ end of test for singular; 27aug2010
  ( following code covers undeclared plurals; 27aug2010 )
  num @ 1 = NOT IF  \ other than singular; 27aug2010
    midway @  t @  DO  \ search backwards in time
      I       0 en{ @  67 = IF  \ most recent instance
        67 motjuste ! ( 67=ARE; 27aug2010 )
        I     7 en{ @  aud !  \ get recall-vector
        LEAVE  \ after finding recent "ARE"; 27aug2010
      THEN     \ end of test for 67=ARE; 27aug2010
    -1 +LOOP \ end of retrieval loop for "ARE"; 27aug2010
  THEN  \ end of test for not singular; 27aug2010
THEN  \ end of test for 58=BE; 27aug2010

The code above rejects "BE" as a verb and says "IS" or "ARE" instead. Although "IS" is definitely selected by the "num(ber)" flag, "ARE" is the default alternative when the number of a subject is not known. This code fixes some problems in the AI, but introduces or accentuates other problems which were perhaps lurking unseen in the AI codebase. These emerging problems are minor in nature and pleasantly challenging for the AI appcoder. The MindForth AI is becoming a functional AI Mind that needs cosmetic improvements and functional add-ons.


MindForth Programming Journal (MFPJ) 2010 August 25

Wed.25.AUG.2010 -- Coordinating InStantiate and WhoBe

A problem exists in the following man-machine dialogue, where "a spirit" is unwarrantedly treated as a "who".

Robot:
Human: god

Robot: GOD WHO IS GOD
Human: god is a spirit

Robot: A SPIRIT WHO IS SPIRIT
Human:
The following report from the "En" English lexical array does not reveal to us why the word "WHO" was used at time point "t=433", but it does show an "mfn" gender flag set to one ("1") for masculine.

389 100 10 0 1 100 5 100 386  to GOD
393 100 10 0 1 100 5 100 390  to GOD
397 55 6 0 0 55 7 55 394  to WHO
400 66 0 2 0 66 8 58 398  to IS
404 100 10 0 1 100 5 100 401  to GOD
408 100 12 0 1 100 5 100 405  to GOD
411 66 0 2 0 66 8 58 409  to IS
413 1 15 0 0 1 1 1 412  to A
420 109 31 1 0 109 5 109 414  to SPIRIT
422 1 15 1 0 1 1 1 421  to A
429 109 36 1 0 109 5 109 423  to SPIRIT
433 55 0 1 0 55 7 55 430  to WHO
436 66 0 2 0 66 8 58 434  to IS
443 109 0 1 0 109 5 109 437  to SPIRIT
t nen act num mfn fex pos fin aud
By forcing diagnostic reports on the values of "mfn" and "mfnflag", we tracked down a bugfix for the problem of WhoBe saying "WHO IS SPIRIT" instead of "WHAT IS SPIRIT". In the InStantiate module, we added one (indicated) line of code.

  mfn @ 1 =  mfn @ 2 = OR IF  \ masc or fem; 17aug2010
    CR ." InSt: setting mfnflag to " mfn @ . \ 25aug2010
    mfn @ mfnflag !  \   17aug2010
  THEN   \ 17aug2010
  mfn @ 0 = IF  0 mfnflag ! THEN  \ test; 25aug2010
  0 mfn !  \ Test code applies only to En array.
  0 preset !
The AI properly began saying "WHAT IS SPIRIT", but it also began to leave out the word "IS" from the output of the WhoBe module, as shown in the dialog reproduced below.
Robot:
Human: god

Robot: GOD WHO GOD
Human: god is a spirit

Robot: SPIRIT WHAT IS SPIRIT
Human:

It turns out that the WhoBe module was testing for a positive value of "mfn" or "mfnflag" as a pre-condition for saying "IS" after "WHO". Once we began resetting the "mfnflag" to zero in the InStantiate module, WhoBe stopped saying "IS" -- until we removed the IF-THEN precondition.

Wed.25.AUG.2010 -- Tweaking the Codebase

Now we have a problem because the user can answer a who- query with a sentence of input, but the AI does not regurgitate the knowledge upon receiving the same who- query.

Thurs.26.AUG.2010 -- Changelog Entry

The changelog entry on yesterday's upload of free AI source code to the Web reads, "25aug10A.F retrieves knowledge gained from human users." The AI is becoming better able to ask a question about a new concept, comprehend the answer by storing it with the proper associations recorded among concepts, and respond with the assimilated knowledge when queried about the original concept. Curiously, the evolving albeit buggy AI responds differently to asking about a new concept with "who" and with "what", even when the same information provides the content of the response. To illustrate this point, we run the AI right now and we obtain the following dialog.

Robot:
Human: god

Robot: GOD WHO IS GOD
Human: god is spirit

Robot: SPIRIT WHAT IS SPIRIT
Human: who is god

Robot: GOD IS A SPIRIT
Human: what is god

Robot: A GOD BES SPIRIT
Human:
The answers recorded above are different because different parts of the AI Mind software respond differently to who- queries and to what-queries. Meanwhile we inch closer to our next AI milestone of demonstrating self-referential thought.


34 older entries...

X
Share this page