NewConcept module of the

English and Russian bilingual ghost.pl AI in Perl

Mens Latina in Latin -- MindForth for Robots


1. Diagram of the NewConcept Mind-Module


   /^^^^^^^^^\ Unrecognized Words Are New Concepts /^^^^^^^^^\
  /   EYE     \                        _____      /   EAR     \
 /             \ CONCEPTS             /New- \    /             \
|   _______     |   | | |    _____   (Concept)--|-------------\ |
|  /old    \    |   | | |   /Old- \   \_____/   |  Audition   | |
| / image   \---|-----+ |  (Concept)----|-------|----------\  | |
| \ recog   /   |  a| | |   \_____/-----|-------|-------\  |  | |
|  \_______/    |  b|C| |        |______|       |  c    |  |  | |
|               |  s|O|f|       /EnParser\      |   a   |  |  | |
|   visual      |  t|N|i|       \________/      |    t  |  |  | |
|   memory      |  r|C|b|   ________|______     |     s-/  |  | |
|   channel     |  a|E|e|  /               \    |  e       |  | |
|               |  c|P|r| (  Instantiate()  )   |   a      |  | |
|   _______     |  t|T|s|  \_______________/    |    t-----/  | |
|  /new    \    |   |_|_|  / _____      _____   |  f          | |
| / percept \   |  /     \/ / En  \    / En  \  |   i         | |
| \ engram  /---|--\ Psy /-/ Nouns \--/ Verbs \ |    s        | |
|  \_______/    |   \___/  \_______/  \_______/ |     h-------/ |


2. Purpose of the NewConcept Module

The purpose of the NewConcept module is to learn new words and new concepts by creating a new concept for any unrecognized new word.


3. Algorithm of the NewConcept Module

3.A. Operating when selected by the AudInput module.

The AudInput module uses an "else" clause to send a recognized word to the OldConcept module or else to the NewConcept module as an unrecognized word that must be learned as potentially a new concept -- unless the word is simply a misspelling, as if "pronounced" in an unfamiliar way. Sometimes in English and quite often in Russian, the inflectional ending on a word must not prevent the word from being recognized by AudRecog as still the same word and the same concept, only with a slight variation in the ending of the word.

3.B. Assigning the sequential value of the $nxt concept to any new concept being learned.

Although the MindBoot sequence of the AI Mind contains enough basic vocabulary and simple ideas to get the AI Mind up and running for interaction with human users or with other AI Minds, new words and new concepts must be learned in the course of robot events. Any new word is assigned the value of the $nxt variable as a concept-number.

3.C. Making an initial assessment of the likely part-of-speech $pos of a new word being learned.

3.D. Making any new word available to the SpreadAct spreading activation module as an opportunity for the artificially curious AI Mind to ask the human user what the new word means.

3.E. Integrating consistently misspelled words with the AI knowledge base as a valid concept which the human user ignorantly spells wrong but otherwise uses correctly.


4. Code of NewConcept() from ghost302.pl AI source code in Perl


# 2015may28 Requirements of NewConcept mind-module: 
# NewConcept shall create a concept in @psy for each new word encountered. 
# A flag-panel shall lodge associative tags with each new @psy concept.
sub NewConcept() {  # http://ai.neocities.org/NewConcept.html
  $psi = $nxt;           # 2016jan22: For xfer to InStantiate(). 
  $qusub = $nxt;   # 2017-09-22: for sending new concept into SpreadAct()
  $pos = $bias;  # 2017-06-30: InStantiate() stores value from Parser().
  if ($hlc == 1) {     # 2018-09-27: test for governing human-language-code 
    EnParser(); # 2017-09-13: In preparation to call InStantiate().
  }  # 2016jan22: end of test for English human-language-code 
  if ($hlc == 3) {     # 2018-09-27: test for governing human-language-code 
    RuParser(); # 2017-09-13: In preparation to call InStantiate().
  }  # 2016feb24: end of test for Russian human-language-code.
  if ($fyi > 2) {  # 2016feb08: if mode is Diagnostic 
  }  # 2016feb07: end of test for Diagnostic or Tutorial mode. 
  if ($pos == 5) { $nucon = 1; $qusub = $psi }  # 2017-09-22: send $nxt into SpreadAct()
  $audnew = 0;  # 2016feb09: Reset for sake of $rv of next input word. 
  $audpsi = 0;  # 2016feb03: reset to prevent carry-overs. 
  $finpsi = 0;  # 2018-09-16: reset to prevent carry-overs. 
  $len = 0;     # 2017-09-22: reset
}  # 2016feb10: NewConcept() returns to AudInput() or FileInput().


5. Variables for the NewConcept AI Mind-Module

$audnew -- holds onset-tag while rest of word comes in.

$audpsi -- concept number of word in @ear auditory memory array.

$bias -- a variable holding the numeric value of the part of speech (POS) expected to be input next and parsed next on the basis of preceding parts of speech.

$finlen -- fin(al) len(gth) or end-of-word for AudRecog auditory recognition module.

$finpsi -- carry-over end-psi during 32-SPACE or 13-CR (carriage return).

$foom -- a proposed new variable for a proposed new Spawn() module. The foom variable shall be set arbitrarily by the AI Mind Maintainer as the number of new concepts to be learned by the spawning AGI Mind as a trigger-level for the spawning of a new copy of the AI going "FOOM" in the sense of self-modifying and gaining knowledge and intelligence so rapidly as to constitute a "FOOM!" explosion of hard-take-off AI.

$fyi -- (for your information) 1 = Normal; 2 = Transcript; 3 = Tutorial mode; 4 = Diagnostic mode.

$hlc -- human-language code; 1=en; 2=de; 3=ru. Subject to override by the $engov or $degov or $rugov flag.

$len -- length, for avoiding input non-words. The len variable increments with each additional character during AudInput, and is reset to zero at the end of InStantiate or OldConcept or NewConcept, so that the auditory engram recall vector rv may be set for the first character of a word when the word-length is a unitary one.

$nucon -- new-condition – segregates SpreadAct() code to respond to the input of an unknown word by asking the user a question about the new concept being learned by the AI Mind.

$nxt -- number incremented for each new concept.

$pos -- (part of speech) with a numeric value (1=adj 2=adv 3=conj 4=interj 5=noun 6=prep 7=pron 8=verb) to be inserted into the conceptual flag-panel of a concept during the process of instantiation of a concept-node at a particular time-point. The part-of-speech parameter allows an AI Mind to restrict operations to one particular part of speech, such as verb, or to similar parts of speech, such as nouns and pronouns to be used as subjects or objects of a verb.

$psi -- variable for an element of the @psy conceptual array, with a numeric identifier serving as an mtx tag for the same concept in another language.

$qusub -- query subject – is a transfer-vehicle of the subject-identifier from any module prompting a question into the specific module that will ask the question.


6. Troubleshooting and Robotic Psychosurgery

6.1.a. Symptom: (Something goes wrong.)
6.1.b. Solution: (AI Mind Maintainer devises solution.)


7. Future Development of the NewConcept Mind Module

In a bilingual Mind like the ghost.pl artificial intelligence in the Perl programming language, there is work to be done on the coordinated assigning of $mtx transfer tags for machine translation between the two human languages of the bilingual AI. An AI coder or mind maintainer has the challenge of devising ways in software to match any "new concept" in one human language with its closest conceptual counterpart in the other human language. One new word being learned in Russian may need to be matched over time with several synonyms in English.


8. Resources

Please see

http://github.com/kernc/mindforth/blob/master/wiki/NewConcept.wiki

http://mind.sourceforge.net/newcept.html


9. AiTree of Mind-Modules for Natural Language Understanding


Return to top; or to
Tiananmen Square IV VI
javascript subreddit for AI Mind discussion;
Forth subreddit for MindForth discussion;
Perl subreddit for ghost.pl AI Mind Maintainers.
http://old.reddit.com/r/ControlProblem -- NOT SOLVED.
http://en.wikipedia.org/wiki/Natural_language_understanding -- solved.
Iskusstvenny Intellekt Programming Journal for Artificial Intelligence in Russian Language.
Converting ancient Latin AI into modern Russian AI
http://ai.neocities.org/Dushka.html -- tutorial Russian AI;
If you have any questions about the First Working AGI, please Join the Discussion.
Joint Artificial Intelligence Center (JAIC) -- the AI Manhattan Project.
Subject to change without notice.
Many thanks to NeoCities.
http://neocities.org/blog


Website Counter