Name: A.T. Murray
Member since: 2004-03-29 15:57:17
Last Login: 2012-02-05 04:27:04

Homepage: http://www.scn.org/~mentifex/AiMind.html

Notes:

AI4U is the title of the *leading textbook of
artificial intelligence (AI) for robots. AI needs robots
and robots need AI. AI4U teaches students about the free,
open-source AI Mind software known as MindForth in Forth
and as AiMind.html in JavaScript.

MindForth is available for installation in your robot.
You will need to download the Forth programming language
and the free AI source code in order to give your robot
an artificial mind capable of interacting with you on a
person-to-person basis.

You have the opportunity to translate or
"port" the MindForth AI into another programming language
more suitable than Forth in your work with robots.
Meanwhile, you may learn Forth in order to develop your
own branch of AI evolution originating in your own robot
and passing its AI genome onto the descendants of your
robot lineage over time. Diversity in AI evolution is
good; monotony is moribund. Equipped with a powerful AI
Mind, your robot stands a better chance in the survival of
the fittest.

*AI4U leads the way in ideas if not in sales.




Recent blog entries by AI4U

Artificial Intelligence in Russian

Fri.3.FEB.2012 -- Recognizing Inflections

For the Russian-thinking Dushka AI Mind, we have perhaps stumbled upon a way to avoid the hard-coding of noun paradigms and instead to let the Russian AI learn the inflected endings of Russian nouns from its own experience. For example, right now the Russian artificial intelligence (RuAi) fails to recognize the Psi concept #501 БОГ in the following exchange.

Human: я уважаю бога ("I honor God.")
Robot: ТЫ УВАЖАЕШЬ БОГА ("You honor God.")

Robot: ЧТО БОГА ТАКОЕ ("What is God?")

The diagnostic display reveals that the software has almost recognized the word for God.

559. Б 0 * 1 1 0
560. О 0 * 0 1 0
561. Г 0 * 0 1 501
562. А 0 * 0 0 902
Aha! Suddenly it becomes clear that two things are happening. The Psi concept #501 is indeed being recognized at first, but perhaps the provisional-recognition "prc" variable is not being set, and so AudInput calls NewConcept as if the AI were learning a new word instead of recognizing an old word.

Sat.4.FEB.2012 -- Learning Russian Like a Human Child

Now in a very rough way we have trapped for "zad1" in the AudRecog module so as to recognize a noun (БОГА ) with one character of inflection added onto it. Because the noun was indeed recognized, the InStantiate "seqneed" mechanism tagged the noun in the "ruLexicon" with a "dba" of "4" to indicate a direct-object accusative case. In other words, the Russian AI learned a new noun-form as a human child would learn it, that is, from the speech patterns of another speaker of Russian.


Artificial Intelligence in Russian

Tues.31.JAN.2012 -- Generating and Recognizing Verbs

In our Dushka Russian AI we have the problem that new verb-forms generated on the fly by the VerbGen module are not being recognized and tagged with critical parameters as they settle into auditory memory. However, it looks as though a verb does get recognized if the "audpsi" tags for the verb in auditory memory extend far back enough to cover the stem of the verb. Therefore, instead of devising ways to bypass the operation of ReEntry calling AudMem, calling AudRecog, we should perhaps instead implement a "backfill" of any verb generated in the VerbGen module to let the "audpsi" tags extend back to the last "pho(neme)" of the verb-stem. Then the "provisional recall" mechanism in AudRecog ought to recognize the verb-form generated by the VerbGen module.

We created a "vip" variable to hold the value of "motjuste" when
VerbPhrase
calls VerbGen and to transfer the known concept-number of the verb, near the end of the stem in VerbGen, into the provisional "prc" variable for AudRecog. In this way, we got the AI internally to recognize and record verb-forms generated internally by the VerbGen module. However, to get the AI to call the correct verb-forms, we had to modify some recent OldConcept code for deciding what "dba" value to store with a lexical item. Now we have a problem with tagging the "dba" of a simple word like МЕНЯ when it comes in.

We can not rely on the form of МЕНЯ to tell us its "dba" because it could be genitive or accusative. We need to extract clues from the incoming sentence in order to assign the proper "dba" during the storage of МЕНЯ.

Wed.1.FEB.2012 -- Tagging Engrams with Parameters

We can perhaps rely on the "seqneed" mechanism of InStantiate to provide the "dba" parameter for a noun or pronoun entering the mind as user input. (Perhaps the "seqneed" variable should change to a "seqseek" variable for greater clarity.) We may be able to strengthen the use of "seqneed" by adding a kind of "pass-over" when a preposition is encountered, so that the software continues to look for a direct-object noun when a preposition-plus-noun combination is detected and skipped.

Where the InStantiate module tests for a "seqneed" of "5" and encounters a satisfying noun or pronoun to become a "seq" for the verb, we make the assumption that the time "t" identifies the temporal location of the noun or pronoun in both the Psi array and the "ruLexicon" array. We insert two lines of code to first "examine" the Russian lexical array and then to substitute a numeric "4" for the "ru4" flag of the "dba" value. Since the noun or pronoun is going to be the "seq" of the verb, that same noun or pronoun warrants a "dba" of "4" as a direct object that should be in the accusative case. However, we may need to make other arrangements if the verb is intransitive and the noun must be in the nominative as a predicate nominative.



Artificial Intelligence in Russian

1. Sun.29.JAN.2012 -- Verbs Without Direct Objects

Today in the Dushka Russian AI we begin to address a problem that occurs also in our English AI Mind. Sometimes a verb does not need an object, but the AI needlessly says "ОШИБКА" for "ERROR" after the verb. We need to make it possible for a verb to be used by itself, without either a direct object or a predicate nominative. One way to achieve this goal might be to use the jux flag in the Psi conceptual array to set a flag indicating that the particular instance of the verb needs no object.

We have previously used the "jux" flag mainly to indicate the negation of a verb. If we also use "jux" with a special number to indicate that no object is required, we may have a problem when we wish to indicate both that a verb is negated and that it does not need an object, as in English if we were to say, "He does not play."

One way to get double duty out of the "jux" flag might be to continue using it for negation by inserting the English or Russian concept-number for "NOT" as the value in the "jux" slot, but to make the same value negative to indicate that the verb shall both be negated and shall lack an object, as in, "He does not resemble...."

During user input, we could have a default "jux" setting of minus-one ("-1") that would almost always get an override as soon as a noun or pronoun comes in to be the direct object or the predicate nominative. If the user enters a sentence like "He swims daily" without a direct object, the "jux" flag would remain at minus-one and the idea would be archived as not needing a direct object.

2. Sun.29.JAN.2012 -- Using Parameters to Find Objects

While we work further on the problem of verbs without objects, we should implement the use of parameters in object-selection. First we have a problem where the AI assigns activation-levels to a three-word input in ascending order: 23 28 26. These levels cause the problem that the AI turns the direct object into a subject, typically with an erroneous sentence as a result.
In RuParser, let us see what happens when we comment out a line of code that pays attention to the "ordo" word-ordervariable. Hmm, we get an even more pronounced separation: 20 25 30.

Here we have a sudden idea: We may need to run incoming pronouns through the AudBuffer and the OutBuffer in order unequivocally to assign "dba" tags to them. When we were using separate "audpsi" concept-numbers to recognize different forms of the same pronoun, the software could pinpoint the case of a form. We no longer want different concept-numbers for the same pronoun, because we want parameters like "dba" and "snu" to be able to retrieve correct forms as needed. Using the OutBuffer might give us back the unmistakeable recognition of pronoun forms, but it might also slow down the AI program.

Before we got the idea about using OutBuffer for incoming pronouns, in the OldConcept module we were having some success in testing for "seqneed" and "pos" to set the "dba" at "4=acc" for incoming direct objects. Then we rather riskily tried setting a default "dba" of one for "1=nom" in the same place, so that other tests could change the "dba" as needed. However, we may obtain greater accuracy if we use the OutBuffer.

3. Mon.30.JAN.2012 -- Removing Engram-Gaps From Verbs

Yesterday in the Russian AI we experimented rather drastically with using the "ordo" counter to cause words of input to receive levels of activation on a descending slope, so that the AI would be inclined to generate a sentence of response starting with the same subject as the input. We discovered that the original JavaScript AI in English was not properly keeping track of the "ordo" values, so we made the simple but drastic change of incrementing "ordo" only within OldConcept and NewConcept, both of which are modules where an incoming word must go through the one or the other.

Today we have sidetracked into correcting a problem in the VerbGen module. After input with a fictitious verb, VerbGen was generating a different form of the made-up verb in response, but calls to ReEntry were inserting blank aud-engrams between the verb-stem and the new inflection in the auditory channel. By using if (pho != "") ReEntry() to conditionalize the call to ReEntry for OutBuffer positions b14, b15 and b16, we made VerbGen stop inserting blank auditory engrams. However, there was still a problem, because the AI was making up a new form of the fictitious verb but not recognizing it or assigning a concept-number to it as part of the ReEntry process.


Artificial Intelligence in Russian

Thurs.26.JAN.2012 -- Insufficient Activation of Subjects

The most glaring problem in the Dushka Russian AI right now is that the AI does not fully activate the subject-pronoun when we type in a short sentence of subject, verb and object. Without a proper subject to provide parameters, the AI fails to select or generate a proper Russian verb-form.

When we type in "люди знают нас" ("People know us"), as an answer we get "ВАМ ЗНАЮТ ТЕБЯ" -- a mishmash of "to you" "they know" "you". In general, the AI seems to be taking the final object entered as input and trying to convert it into the subject for a response.

Thurs.26.JAN.2012 -- Using the "seqneed" Variable

The Russian AI is not setting a Psi "seq" flag when we enter a Russian word as the subject of a following verb. When we inspect the recent 10nov11A.F MindForth code for clues, we discover that in October of 2011 we made major improvements to the method of assigning "seq" tags. We began using the "seqneed" variable as a way of holding off on assigning a "seq" until either the desired verb or the desired noun/pronoun made itself available. However, apparently in the English JavaScript AI we wrote the "seqneed" code only for needing nouns and not yet for needing a verb. No, we did write the code, but it involved avoiding the English auxiliary verb "do", so we accidentally removed the verb-seqneed code from the RuAi. Let us put most of the code back in, and see what happens. Upshot: Once we put the code back into InStantiate, subjects of verbs once again began having a "seq" reference to the verb. The AI even skipped an adverb that we then inserted as a test.


Artificial Intelligence in Russian

Fri.30.DEC.2011 -- Russian AI Bootstrap Words

In the ru111229.html version of the Dushka Russian AI we coded the AudBuffer to load Russian characters during SpeechAct and the OutBuffer to move each Russian word into a right-justified position subject to the changing of inflectional endings based on grammatical number and case for nouns, and number and person for verbs. Next we need to determine which forms of a Russian word are ideal for storage in the RuBoot bootstrap sequence.

It seems clear that for feminine nouns like "ruka" for "hand", storage in the singular nominative should suffice, because other forms may be derived by using the OutBuffer to remove the nominative ending "-a" and to substitute oblique endings of any required length.

For regular Russian verbs in the group containing "dumat'" for "think" and "dyelat'" for "do", it should be enough to store the infinitive form in the RuBoot module, because the OutBuffer can be used to create the various forms of the present tense. If a human user inputs such a verb in a non-infinitive form, such as in "ty cheetayesh" for "you read", the OutBuffer can still manipulate the forms without reference to an infinitive. This new ability is important for the learning of new verbs. Since there is no predicting in which form a user will input a new Russian verb, the OutBuffer technique must serve the purpose of creating the verb-forms and of tagging their engrams with the proper parameters of person and number.

Since JavaScript is not a main language for artificial intelligence in robots, our Dushka Russian AI serves only as a proof-of-concept for how to construct a robot AI Mind in a more suitable language. We use JavaScript now because it can display the Russian and because a Netizen can call the AI into being simply by using Internet Explorer to click on the link of the Душка AI Mind.




62 older entries...

 

AI4U certified others as follows:

Others have certified AI4U as follows:

[ Certification disabled because you're not logged in. ]

Robot of the Day

WebWrover Beta

Built by
Keith Daniel

Recent blogs

10 Feb 2012 mwaibel (Master)
6 Feb 2012 Flanneltron (Journeyer)
6 Feb 2012 Mubot (Master)
5 Feb 2012 AI4U (Observer)
29 Jan 2012 robotsrawsome (Observer)
9 Jan 2012 The Swirling Brain (Master)
9 Jan 2012 steve (Master)
4 Jan 2012 evilrobots (Observer)
21 Dec 2011 spirit (Journeyer)
22 Nov 2011 robotvibes (Master)
16 Nov 2011 JLaplace (Observer)
8 Nov 2011 wesley.zilva (Observer)
31 Oct 2011 jmhenry (Journeyer)
16 Oct 2011 milk3dfx (Observer)
14 Oct 2011 Christophe Menant (Master)
20 Sep 2011 jcoat (Observer)
17 Sep 2011 githinkgp (Observer)
8 Aug 2011 Pi Robot (Master)

Newest Members

10 Feb 2012 Kamal Biswas (Observer)
9 Feb 2012 harvard (Observer)
7 Feb 2012 ewvliwxr (Observer)
6 Feb 2012 Gamekeeper (Observer)
5 Feb 2012 timeshift09 (Observer)
5 Feb 2012 pankaj dhawale (Observer)
5 Feb 2012 karthik14g (Observer)
3 Feb 2012 AMS1996 (Observer)
29 Jan 2012 robotsrawsome (Observer)
28 Jan 2012 ajaykumar (Observer)
28 Jan 2012 king (Observer)
27 Jan 2012 JTravis123 (Observer)
27 Jan 2012 faroukelgazzar (Observer)
24 Jan 2012 brian_manalo23 (Observer)
24 Jan 2012 m2nagaraju (Observer)

Newest Robots

7 Aug 2009 Titan EOD
13 May 2009 Spacechair
6 Feb 2009 K-bot
9 Jan 2009 3 in 1 Bot
15 Dec 2008 UMEEBOT
10 Nov 2008 Robot
10 Nov 2008 SAMM
24 Oct 2008 Romulus
30 Sep 2008 CD-Bot
26 Sep 2008 Little Johnny
X
Share this page