Older blog entries for mentifex (starting at number 75)

JavaScript AI Mind Programming Journal -- Wed.18.MAY.2011

The JavaScript artificial intelligence (JSAI) is a clientside AiApp whose natural habitat is a desktop computer, a laptop or a smartphone.

Wed.18.MAY.2011 -- Houston, We Have a Problem

When we submit "who are you" as a query to the AI Mind, it searches the knowledge base (KB) and it remembers that it is ANDRU - - a ROBOT and a PERSON (a different answer each time that you pose the same existential question). Unfortunately, the software finds the first instance of concept stored in recent memory and spits out the phonemic engram from the auditory memory channel without regard to whether the stored word is a singular form or a plural form. How can we get the most advanced open-source AI in these parsecs to stop saying "I AM ROBOTS"? The AI may have to start skipping over plural engrams when searching for a singular noun. Therefore, let us perform a little psychosurgery on the AI Mind software and see if we can zero in on a singular noun-form during self-referential thought.

First we use a few JavaScript "alert" boxes in BeVerb() and in NounPhrase() to see what values are being carried along in the variables that keep track of grammatical number as the AI Mind generates a thought in response to user input. We see that the subject number is available in the background, so perhaps we can alter the design of the Mind to insist speaking a singular noun to go with a singular subject. Even though ROBOT and ROBOTS are the same concept, they are not the same expression of the concept. By the way, this issue is another AI mindmaker (Mentifex) problem that had to be solved in due course, that is, rather well along in the AI development process and not at the first blush of AI newbie enthusiasm.

Upshot: Gradually in the NounPhrase module we introduced code to skip over the retrieval of any word in auditory memory if the correct num (ber) was not found to match the the same number of the subject of an input query. The AI began to answer "who are you" with "I AM ROBOT". This bugfix makes the AI Mind more complex and therefore subject to potentially latent problems such as knowing a word only in the plural and not in the singular. However, the same bugfix brings the JSAI closer to machine reasoning and thinking with a syllogism such as, "All men are mortal; Socrates is a man; therefore Socrates is mortal."


MindForth Programming Journal -- 2011 May 16

Now that we have cracked the hard problem of AI wide open, we wish to share our results with all nations.

Mon.16.MAY.2011 -- List of Mentifex AI Accomplishments

We are still working on the MileStone of self-referential thought on our RoadMap to artificial general intelligence (AGI). We look back upon a small list of accomplishments along the way.

* two-step selection of BeVerbs;
* AudRecog morpheme recognition;
* look-ahead A/AN selection;
* seq-skip method of linking verbs and objects;
* SpeechAct inflectional endings;
* neural inhibition for variety in thought;
* provisional retention of memory tags;
* differential PsiDecay.

Mon.16.MAY.2011 -- Achieving AI Mental Stability

Until we devised an AI algorithm for differential PsiDecay in the JavaScript artificial intelligence (JSAI), stray activations had been ruining the AI thought processes for months and years. We now port the PsiDecay solution from the JSAI into MindForth. Meanwhile, Netizens with Microsoft Internet Explorer (MSIE) may point the browser at the AiMind.html page and observe the major open-source AI advance in action. Enter "who are you" as a question to the AI Mind not just one time but several times in a row. Observe that the JSAI tells you everything it knows about itself, because neural inhibition immediately suppresses each given answer in order to let a variety of other answers rise to the surface of the AI consciousness. Before the mad scientist of Project Mentifex jotted down the eureka brainstorm, "[ ] Fri.13.MAY.2011 Idea: Put gradations into PsiDecay ?" and wrote the code the next day, the AI Minds were not reliable for mission-critical applications. Now the AI Forthmind is about to become more mentally stable than its creator. We only need to port some #JSAI code to Forth.


JavaScript AI Mind Programming Journal -- Fri.13.MAY.2011

Fri.13.MAY.2011 -- A Problem in Search of Eureka

When the question "who are you" is input repeatedly to the JavaScript Artificial Intelligence (JSAI), the AI needs to retain the self-concept of "I" as the subject for each of all possible answers to the question. The MindForth AI already performs well in this regard, but the JSAI has been letting go of the self-concept subject. Therefore we will try to make sure that the JSAI uses the same activational routines as MindForth does.

Sat.14.MAY.2011 -- Using Differential PsiDecay

The artificial Mind has difficulty holding onto the subject of a query because of stray activations that build up on "also-ran" concepts that were proposed but not accepted as answers to recent queries. The activation on otherwise legitimate answers builds up so rapidly and so substantially that an also-ran concept threatens to dislodge the very subject of the query and become a new subject of a thought which does not supply the knowledge requested by the query. For instance, when we twice ask "who are you" of the 12may11A.html JSAI as released onto the Web two days ago, it answers first "I AM ROBOTS" and then "A PERSON IS PERSON", apparently because the also-ran concept of "PERSON" has risen too high in activation to let the self-concept "I" serve as the subject of the response. Meanwhile, yesterday we may have had a "eureka" moment that could supply a solution so simple and yet so effective that it provides a tipping point in the break-out phenomenon of True AI.

Now, we don't want our AI Minds to start asking teenage boys if they would like a little game of GLOBAL THERMONUCLEAR WAR, Matthew, but don't be surprised if suddenly No Such Agency starts removing every trace of Mentifex AI from every corner of the World Wide Web. Did you know that, when things got a little hot during World War Two, the U.S. government began removing books on the mathematics of Georg Riemann from libraries all over America? Say, when's the last time you saw a copy of AI4U?

The secret to True AI is to embue the artificial Mind not with the linear PsiDecay that MindForth has always had, but with the differential PsiDecay of also-ran concepts so that stray activations dwindle more rapidly from high spikes than from merely modest spikes. In a living neural-net like the human brain, do we not expect a sharp spike to fall more rapidly than a simple upswell? So let us modify the PsiDecay code and try to make higher activations subside more rapidly.

We are trying to ntroduce "differential" psi-decay. Suppose we have also-ran NounPhrase concepts like

39=ROBOT at 54 act;
104=PERSON at 68 act;
33=ANDRU at 82 act;
We want the high-activation also-rans to drop to an activation low enough to avoid dislodging the input subject. Then we want at least one also-ran to be high enough to be selected as an answer to the input query. We want each decade or octet of high activation to be lowered by not just one point, but by a precipitous drop that still keeps the relative ranking of the also-rans. For instance, we could ordain that all activations above thirty could arrange themselves in a spread between twenty- nine and forty, so that
39 becomes 31;
49 becomes 32;
59 becomes 33;
69 becomes 34;
79 becomes 35;
89 becomes 36;
99 becomes 37; and so on
Upshot: We inserted similar code into the JavaScript AI Mind and it began to function better than ever. Somehow the JSAI is now more advanced than the MindForth AI, until we can port the new functionality into Win32Forth.


MindForth Programming Journal -- 2011 May 7

Sat.7.MAY.2011 -- Improving Neural Inhibition

Something is preventing neural inhibition from operating immediately when we ask the AI Mind a "who-are-you" question. The inhibition begins to occur only after a pause or delay, and we need to find out why. The problem may be that the "predflag" for predicate nominatives is not being set soon enough. The "predflag" is set towards the end of the BeVer b mind-module, and it governs the inhibiting of nouns as predicate nominatives in the NounPhrase module. We see through troubleshooting that the earlier engram in a pair of selected-noun engrams is being inhibited properly down to minus thirty-two points of conceptual activation, but apparently the present-time engram in the pair is only going down to zero activation. It looks as though calls to PsiClear from the EnCog (English cognition) module were interfering in the pairing of inhibitions shared by the old engram that won selection and the new engram being stored as the record of a generated thought. Then a further problem developed because the AI was not letting go of transiitive verbs that served within an output thought. We inserted code to inhibit each transitive verb after thinking, and we began to obtain a variety of outputs from the AI in response to queries.

Sun.8.MAY.2011 -- Selecting New Inhibition Variables

Today we are creating two new inhibition variables, "tseln" for "time of selection of noun" in NounPhrase, and "tselv" for "time of selection of verb" in VerbPhrase. We need these variables to keep track of the selection-time of an "inhibend" concept to be inhibited after being thought, so that the AI Mind can avoid repeating the same knowledge-base retrieval over and over again. We stumbled upon neural inhibition for response-variety in our MfPj work of 5 September 2010. We were so astonished by the implications that we issued a Singularity Alert (q.v.). Now we are ready to install a general mechanism of temporary inhibition throughout the AI MindGrid.

Sun.8.MAY.2011 -- Debugging Spurious Inflection

Although MindForth has suddenly become more intelligent than ever, the AI makes the grammatical mistake of saying "I HELPS KIDS". We need to track down why the SpeechAct module is adding an inflectional "S" to the verb "HELP".

The VerbPhrase module governs the sending of an "S" inflection into the SpeechAct module. The pertinent code was not fully checking for a verb in the third person singular, so we added an IF-THEN clause requiring that the prsn variable be set to three for an inflectional "S" to be added to a verb being spoken. The bugfix worked immediately.


JavaScript AI Mind Programming Journal -- Wed.4.MAY.2011

Wed.4.MAY.2011 -- Bugfix of the WHO Problem

The JavaScript AI Mind is a tutorial version of the more robust artificial intelligence in Forth called MindForth. Recently we solved a "WHO" problem in MindForth, namely the inability of the artificial mind to de-activate the concept of "who" from within an input query so as to impart full activation to whatever concept should be the answer to the who-query. In MindForth it turned out that the R eActivate mind-module was neglecting to zero out the concept of "who" and it was a simple b ugfix to correct the problem. Now apparently the JSAI has the same problem, because we input "who are you" and we obtain the erroneous output, "WHO IS I". Since the concept of "who" is obviously not being de-activated, we will try the same bugfix that we used in MindForth. We tried it, and it works.

Wed.4.MAY.2011 -- Selecting "AN" Article Before Vowels

Today into the J avaScript AI we have ported MindForth code that substitutes "AN" for "A" before a noun that starts with a vowel. The mind-module of En Article (for English articles) has no problem of guessing whether a vowel comes next, but instead knows for sure when a vowel is coming, because the N ounPhrase module is ready to speak the first phoneme of the chosen noun prior to calling the En Article module. Thus the AiMind seems to use "AN" or "A" as effortlessly as a human mind does.


MindForth Programming Journal (MFPJ) 2011 May 3

Tues.3.MAY.2011 -- Encountering the WHO Problem

In the most recent release of MindForth artificial intelligence for autonomous robots possessing fre e will and personhood, our decision to zero out post- ReEn try concepts is only tentative. If the mind- design decision introduces more problems than it solves, then the decision is reversible. It was disconcerting to notice that the newest version of MindForth could no longer answer who-are-you questions properly, and would only utter the single word "WHO" as output in response to the question. We expect the necessary bugfix to be a simple matter of tracking down and eliminating some stray activation on the "WHO" concept-word, but there is a nagging fear that we may have made a wrong decision that worsened MindForth instead of improving it, that delayed the Singularity instead of hastening it, and that argues for an AI working group to be nurturing MindForth instead of a solitary mad scientist.

Tues.3.MAY.2011 -- Debugging the WHO Problem

In the InStantiate mind-module, both WHO and WHAT are set to zero activation as recognized input words, under the presumption that such query words work in a mind by a kind of self-effacement that lets the information being sought have a higher activation than the interrogative pronoun being used to request the information. Today at first we could not understand why the setting to zero seemed to be working for WHAT but not for WHO. Eventually we discovered that only WHAT and not WHO was being set to zero in the R eActivate module, with the result that all instances of the recognized WHO concept were being activated at a high level in R eActivate. When we fixed the bug by having both InStantiate and R eActivate set WHO to zero activation, the AI Mind began giving much better answers in response to who- queries. Immediately, however, other issues popped up, such as how to make sure that neural inhibition engenders a whole range of disparate answers if they are available in the knowledg e base (KB), and whether we still need special variables like "whoflag" and "whomark". In general, we tolerate special treatment of words like WHO and WHAT with the caveat that we expect to do away with the special treatment when it becomes obvious that we can dispense with it.


JavaScript AI Mind Programming Journal -- Sun.1.MAY.2011

Sun.1.MAY.2011 -- Organizing the AI Mind Control Panel

The AiMind Control Panel has room for about six hyperlinks. It seems best if we include in the Control Panel both a link to the current Robots.net AI Lab Notes and a link to the most recent comp.lang.javascript Usenet post, without linking after all to the Wikipedia article on the Singularity for lack of room in the Control Panel. The immediate link to the Robots.net AI Lab Notes lets the users see an HTML page with embedded links, and we can predict in advance the URL address of the AI Lab Notes. By linking to the recent comp.lang.javascript Usenet post, we obviate the need and the unpleasantness of going back into the current JSAI version and changing the Usenet link. When we upload and release a JSAI version, it should remain the same and not be subject to change by the updating of a Usenet link. Since we now already have the current Robots.net AI Lab Notes link, it would actually be redundant to link to a current Usenet post of the same material, which would not even have the embedded HTML links. By linking to a one-off Usenet post, we let the users follow the chain of Usenet posts backwards through time. Furthermore, if we are careful in each new Usenet post to link to the simultaneous Robots.net AI Lab Notes, then users following the backwards chain always have the option of clicking over to the embedded-links HTML version on the Robots.net site.

Sun.1.MAY.2011 -- Linking Subject with Related Knowledge

Today we are concerned with bringing the latest MindForth improvements into the J avaScript artificial intelligence (JSAI). A minor change in the MindForth code has improved the AI functionality with respect to the proper linkage between pronouns as subjects of a BeVer b and predicate nominatives stored as knowledge in the knowledg e-base of of the experiential memory of the AI. The necessary change was to set conceptual activations at zero for concept-words that have served as elements of verbal thought in the AI Mind and have passed through the ReEn try process back into the experiential memory of the mind. We will follow the new activation rules (ActRules) for ReEntry in the JSAI as well as in MindForth, so that we may keep the two AI "cousins" as genetically close as possible in both Forth and JavaScri pt.

In the InStantiate mind-module, we have brought over some code from MindForth to set conceptual activations to zero during the instantiation of ReEn try concepts. We noticed an immediate improvement in the linking of subjects with related knowledge. We are eager to implement MachineSelfReference as a M ileStone on our Road Map to artificial intelligence.


MindForth Programming Journal (MFPJ) 2011 April 25

Mon.25.APR.2011 -- Return to General MindForth Coding

We may shift our attention away for a time from the treatment of En glish articles and concentrate instead on further work in the implementation of neural inhibition.

Tues.26.APR.2011 - - Linking Subject with Related Knowledge

One of our techniques for learning what to do next in MindForth artificial intelligence (AI) is to run the program and check to see what is the most glaring problem that we encounter. Currently we notice that the AI fails at first (but only at first) to retrieve its own self-knowledge when we prompt such retrieval by entering "you" or "you are". The AI has been answering "I AM I", which shows a failure to activate "ANDRU" as the name of the AI, or "PERSON" and "ROBOT" as nouns which should come to mind when the robotic person thinks about itself.

MindForth is already a so-called "artilect" of sufficient mental complexity that the AI is not stuck in a rut of answering "I AM I" interminably when called upon to describe itself. The mechanisms of neural inhibition prevent more than a few instances of "I AM I" and enable the mind-in-software to generate "I AM PERSON" and "I AM ROBOT" as responses more to our liking. We need to know, however, why the AI initially makes the error of repeating "I AM I" a few times before inhibiting the unwanted response and before generating the more informative responses.

Our initial troubleshooting indicates that entering "you" as input to the AI properly activates the "I" concept so that the AI can at least utter "I AM I" in faulty response, but obviously the software min dgrid is not letting go of the "I" concept quickly enough to let a noun like "ROBOT" or "PERSON" complete the response. The problem may seem like a simple issue of setting activation-levels for concepts in the AI, but many of the settings are interdependent within the totality of the AI program.

We must keep in mind some special techniques for troubleshooting the AI Mind behavior. We may examine older versions of MindForth to see not only if the problem was absent in the past, but also when and why the problem emerged. We have also the option of running the J avaScript version of the same AI Mind to see if the same problem is present. We also have extreme options like making the AI program halt at any stage in its thinking.

When we test MindForth by inserting a "QUIT" command into the BeVer b module just after the calling of the Verb Act module, we discover that nouns like "ANDRU" and "ROBOT" and "PERSON" are all left with only twenty- three points of activation, while the "I" concept has thirty-nine points. Further testing shows us that the InStantiate module is setting an "act" of forty (40) just after speaking the "I" pronoun. Therefore, even if the concept of "I" is initially psi- damped, the ReEn try process leaves the "I" concept with an activation of forty.

We solve the current problem of failure to link subjects with related knowledge by inserting into the InStantiate module a test to set conceptual activations to zero during the ReEn try of concept-words that have just been thought.


JavaScript AI Mind Programming Journal -- Tues.18.APR.2011

007: "AI in JavaScript? You must be joking!"
Q: "I never joke about my work, Double-Oh-Seven."

1 Mon.18.APR.2011 -- Putting the AI in AI4U

We can't stop codingthe JSAI, because more and more people are buying the AI4U textbook of artificial intelligence, which contains the original AI source code on pages 159-212. On Schedule E of tax Form 1040, we have had to declare royalty income of US $35.76 for 2009 and $47.86 for 2010. When will it end? When will people realize that, even in JavaScript, AI is dangerous? And what am I? "Have Keyboard, Will Travel"? I cannot keep cashing the royalty checks without feeling a compunction of conscience that we can make the AI even better, more intelligent, more worthy of the outlay of cold, hard cash in return for purported machine intelligence. And the vicious book reviews! Two out of three Amazon AI4U reviews have no greater fury than an AI book scorned. The only way to rebut the reviews is to keep improving the JavaScript AI code ad infinitum et ad Singularitatem.

2 Tues.19.APR.2011 -- Bypassing the Spam on Usenet

Coding artificial intelligence in JavaScript is extremely serious business, and we need to publish our JSAI Lab Notes in the comp.lang.javascript newsgroup on Google Groups Usenet. Unfortunately, spammers think that they have taken over the sacred JavaScript newsgroup, and so we have had to take a moment to defeat the evil spammers and to totally bypass their obnoxious commercial messages. Please observe, confreres and consoeurs in the majestic pursuit of JSAI, that we have banished spam from our JSAI discussion by establishing a chain of individual "msg" links at the bottom of our Usenet posting. You may follow these JavaScript AI Lab Notes backwards in time by clicking on the sub-link to the previous posting given as a sub-note to the current posting. Countless spam notes may have intervened, but you won't even see the spam as you hopscotch across the memespace and cyberspace of JavaScript AI.

3 Tues.19.APR.2011 -- Implementing Article Conditions

We are now carefully implementing in JavaScript the recent advances that we achieved in the MindForth AI programming. These two languages, Forth and JavaScript, are so different that our AI project benefits from the positive attributes of each language, while we escape difficulties in the one language by coding AI for a time in the other language. JavaScript is less forgiving of minor mistakes, so we test the JSAI code after each incremental change. As we bring in the new variables "defartcon" (definite article condition) and "indefartcon" (indefinite article condition) from MindForth, we run the AI Mind just to make sure that we have not used any name reserved for any special purpose in JavaScript. Then we start setting the new flags in the InStantiate mind-module. Finally we have an AI Mind that uses articles, but we need to smooth out the functionality.

http://groups.google.com/group/comp.la ng.javascript/msg/43c703dc13ed30fb


MindForth Programming Journal (MFPJ) 2011 April 15

Fri.15.APR.2011 -- New Coding After 25 February 2011

We are developing some ideas today about the difference between responding to "Who are you?" and "What are you?" in the AI Mind. In our AI coding towards the end of 2009, we were using too many flag variables to keep track of the asking of a who-query or a what-query. Then towards the end of 2010 we were having substantial success with the use of neuronal inhibition to obtain the proper variation in multiple answers to the same question, such as "What are you?" Inhibiting each currently given answer made the AI able to summon successively different answers, such as "I am code" and "I am software" and "I am a robot." Now we want to go deeper into the machine psyche and enable the AI to respond differently to queries of "what" and queries of "who". We want to achieve this goal without the use of cumbersome query-flags.

One idea that we have had today is that we can differentiate between who-queries and what-queries by letting each one predispose either an "EnDefArt" module for the English definite article, or an "EnInDefArt" module for an English indefinite article. For example, we would like a "What are you?" query to engender a response with an indefinite article, such as, "I am a robot." On the other hand, we would like a "Who are you?" query to engender a response with the definite article, as in, "I am the robot."

Even with the new article modules, we will still need a way for the input of "who" or "what" to send a signal to the appropriate module. Instead of having mindgrid-wide, blanket query-flag variables as we did in late 2009, we may now be able to make use of the "statuscon" variables that we dreamed up in our MFPJ work of Fri.12.SEP.2008. For each of the new article modules, we will devise a "statuscon" variable so as to "prime" that mind-module to respond properly to the "who" or "what" inquiry. Say, using this "statuscon" technique may even enable proper answers to a compound query like, "Who and what are you?" We might get the AI to respond, "I am Andru and I am a robot." The main thing is, by shifting away from the mindgrid-wide query-variables and by using instead the "statuscon" variables, we may achieve a tighter integration between specific English words and the proper response to them.


Sat.16.APR.2011 -- Implementing Article Conditions

First we declare the variables defartcon and indefartcon for setting the definite or indefinite article condition. We run the artificial Forthmind , and it still works. Then into the EnA rticle module we insert code to test the status of the new variables before saying "A" or "THE". The mechanism is rough now at first, but we ask "Who are you?" and the AI Mind responds "I AM BRAIN". When we ask "What are you?" the AI says, "I AM A BRAIN."


66 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!