EnPronoun module of the

First Working AGI Mind in JavaScript

MindForth for robots -- ghost.pl for webservers


1. Diagram of the EnPronoun (English pronoun) mind-module


   /^^^^^^^^^\             ________________        /^^^^^^^^^\
  /   EYE     \     | | | / EnThink module \      /   EAR     \
 /             \    | | | \________________/     /  _________  \
|               |   | | |  _____|________       |  /MindBoot \  |
|   _______     |   | | | (  Indicative  )      | / English   \ |
|  /image  \    |   | | |  \____________/       | \ bootstrap / |
| / percept \---|-----+ |       |    \          |  \"vault"  /  |
| \ engram  /   |  a| | |       |     \______   |   \_______/   |
|  \_______/    |  b|c| |       |     /      \  |               |
|               |  s|o|f|       |    /EnVerb- \ |  auditory     |
|   visual      |  t|n|i|       |    \Phrase  / |  memory       |
|               |  r|c|b|       |     \______/  |  channel      |
|   memory      |  a|e|e|    ___V_____/         |               |
|               |  c|p|r|   / EnNoun- \         | "DOES ANDRU"  |
|   channel     |  t|t|s|  (  Phrase   )        | "KNOW THE"    |
|               |   | | |   \_________/         | "TRUTH"       |
|               |   | | |        |              |               |
|               |   | | |     ___V_________     |               |
|   _______     |   | | |    / EnPronoun   \    | "YES"         |
|  /fresh  \    |   |_|_|   /    I, you,    \   | "HE"          |
| / image   \   |  /     \ (  he, she, it,   )  | "KNOWS"       |
| \ engram  /---|--\ Psy /  \ we, you, they /   | "IT"          |
|  \_______/    |   \___/    \_____________/    |               |


2. Purpose of EnPronoun

EnPronoun serves various purposes of substituting an English pronoun for a noun under discussion. For instance, if a human user asks the First Working AGI or one of its derivative Minds a question like, "What do kids make?", the AI Mind needs to be able to respond in a manner like, "They make robots."


3. Algorithm of the EnPronoun mind-module

3.A. The calling module provides the parameters necessary for selecting a pronoun.

Typically the EnNounPhrase module, which deals with subjects of verbs and objects of verbs, will load the pertinent variables with the gender and number and case data necessary for selecting a pronominal form in the EnPronoun module.

3.B. As with humans, insufficient data may preclude the use of a pronoun.

If the AI Mind knows the name but not the gender of a person, the AI software may be coded to avoid calling the EnPronoun module so as to avoid a mistake.

3.C. The use of pronouns is especially important for query-responses.

If someone were to ask the AI "Where are John and Anna?", it would sound like natural human conversation if the AI were to respond, "He is in the house and she is in the car."


4. Code of EnPronoun() from ghost295.pl AI source code in Perl


sub EnPronoun() {  # http://ai.neocities.org/EnPronoun.html
  # 2019-03-02: stub only; needs full implementation.
  # print "\n EnPronoun: atcd= $atcd \n";  # 2019-03-02: TEST; REMOVE
} # 2019-03-02: EnPronoun() returns to EnNounPhrase() module.


Obsolete code of EnPronoun from 24jul14A.F version of MindForth.


:  EnPronoun  \ For use with what-do-X-do queries.
  num @ 1 = IF  \ If antecedent num(ber) is singular.
    mfn @ 1 = IF  \ if masculine singular; 13apr2010
      midway @  t @  DO  \ Look backwards for 49=HE.
        I       0 en{ @  713 = IF  \ If 713=HE is found,
         713 motjuste !  \ "nen" concept #713 for "he".
          I     8 en{ @  aud !  \ Recall-vector for "he".
          LEAVE  \ Use the most recent engram of "he".
        THEN  \ End of search for 713=HE; 10-nov2012.
      -1 +LOOP  \ End of loop finding pronoun "he".
      SpeechAct \ Speak or display the pronoun "he".
    THEN  \ end of test for masculine gender-flag.
    mfn @ 2 = IF  \ if feminine singular.
      midway @  t @  DO  \ Look backwards for 80=SHE
        I       0 en{ @ 719 = IF  \ If 719=SHE is found,
         719 motjuste !  \ "nen" concept #719 for "she".
          I     8 en{ @  aud !  \ Recall-vector for "she".
          LEAVE  \ Use the most recent engram of "she".
        THEN  \ End of search for #719 "she".
      -1 +LOOP  \ End of loop finding pronoun "she"
      SpeechAct \ Speak or display the pronoun "she"
    THEN  \ end of test for feminine gender-flag.
    mfn @ 3 = IF  \ if neuter singular; 13apr2010
      midway @  t @  DO  \ Look backwards for 725=IT.
        I       0 en{ @ 725 = IF  \ If 725=IT is found,
         725 motjuste !  \ "nen" concept #725 for "it".
          I     8 en{ @  aud !  \ Recall-vector for "it".
          LEAVE  \ Use the most recent engram of "it".
        THEN  \ End of search for 725=IT; 10nov2012
      -1 +LOOP  \ End of loop finding pronoun "it".
      SpeechAct \ Speak or display the pronoun "it".
    THEN  \ end of test for neuter gender-flag.
    0 numsubj !  \ safety measure; 13apr2010
  THEN  \ End of test for singular num(ber)
  num @ 2 = IF  \ 30dec2009 If num(ber) of antecedent is plural
    ( code further conditions for "WE" or "YOU" )
    midway @  t @  DO  \ Look backwards for 743=THEY.
      I       0 en{ @ 743 = IF  \ If 743=THEY is found,
       743 motjuste !  \ "nen" concept #743 for "they".
        I     8 en{ @  aud !  \ Recall-vector for "they".
        LEAVE  \ Use the most recent engram of "they".
      THEN  \ End of search for 743=THEY; 10nov2012.
    -1 +LOOP  \ End of loop finding pronoun "they".
    SpeechAct \ Speak or display the pronoun "they".
  THEN  \ 30dec2009 End of test for plural num(ber)
; ( http://code.google.com/p/mindforth/wiki/EnPronoun )


5. Variables for the EnPronoun (English pronoun) mind-module

$atcd -- "antecedent" for EnPronoun.

$mfn -- masculine-feminine-neuter gender flag which plays an especially important role in the EnPronoun mind-module by determining whether EnPronoun will select "he", "she" or "it" to be the pronoun replacing a noun. To aid this process, every professional Mind Maintainer should consider embedding the most frequent masculine names for boys and the most frequent feminine names for girls in the MindBoot sequence, so that the mfn flag will be available as a determinant of which pronoun to use.

$num -- num(ber) flag for grammatical number, important for enabling the EnPronoun module to decide between using "he", "she", "it" as a singular pronoun or "they" as a plural pronoun.


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 EnPronoun

AI pronoun technology is already advanced enough to take things to the next level and use the EnPronoun module to introduce relative clauses into the thinking of an AI Mind. It is easy for an AI coder to combine the following separate ideas into one sentence containing a subordinate clause.

I know a man.
The man loves music.
If both of the above ideas are active simultaneously in the AI Mind, the AI software could use the $etc variable to trigger the calling of EnPronoun for the replacement of "the man" with the relative pronoun "who".
I know a man who loves music.
The English-parser EnParser module may easily be enhanced to deal with the comprehension of incoming relative clauses by trapping such relative pronouns as "who" or "which" or "that" in order to assign associative tags among the subjects, verbs and objects of subordinate clauses.


8. Resources


Please see

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


9. AiTree of First Working AGI Mind-Modules


Return to top; or to
javascript subreddit for AI Mind discussion;
Forth subreddit for MindForth discussion;
Perl subreddit for ghost.pl AI Mind Maintainers.
Joint Artificial Intelligence Center (JAIC) -- the AI Manhattan Project.