The MindForth Programming Journal (MFPJ) is both a tool in developing MindForth open-source artificial intelligence (AI) and an archival record of the history of how the AI Forthmind evolved over time.
1 Thurs.26.MAY.2011 -- Conditional Inhibition
In the recent Strong AI diaspora of MindForth and the tutorial AiMind.html program, we have implemented the neural inhibition of concepts immediately after they have been included in a generated thought. Now we would like to make inhibition occur when one or more responses must be made to a query involving nouns or a query involving verbs. The question "What do bears eat?" is a query of the what-do-X-verb variety involving one or more nouns as potentially valid answers as the direct object of the verb. If the noun of each single answer is immediately inhibited, the AI can respond with a different answer to a repeat of the question. Likewise, if we ask the AI, "What do robots do?", the query is of the what-do-X-do variety where potentially multiple verbs may need to be inhibited so as to give one valid answer after another, such as "Robots make tools" and "Robots sweep floors." If we are inhibiting the verbs, we do not want the direct-object nouns to be inhibited. We might need replies with different verbs but the same direct object, such as "Robots make tools" and "Robots use tools."
Inhibition may also play a role in calling the ConJoin module when a query elicits multiple thoughts which are the same sentence except for different nouns or different verbs. The responses, "Bears eat fish" and "Bears eat honey" could become "Bears eat fish and honey" if neural inhibition suppresses the repetition of subject and verb while calling the ConJoin module to insert the conjunction "AND" between the two answer nouns.
2 Thurs.26.MAY.2011 -- Problems With Determining Number
When we try to troubleshoot the Forthmind by entering "bears eat honey", a comedy of errors occurs. The AudRecog module contains a test to detect an "S" at the end of an English word and set the "num(ber)" value to two ("2") for plural. However, that test works only for recognized words, and not for a previously unknown word of new vocabulary. So the word "bears" gets tagged as singular by default, which causes the AI to issue erroneous output with "BEARS EATS HONEY", as if a singular subject is calling for "EATS" as a third person singular verb form.
The process of determining num(ber) ought to be more closely tied with the EnParser module, so that the parsing of a word as a noun should afford the AI a chance to declare plural number if the incoming noun ends with an "S".
Now we have inserted special code into the AudInput module to check for the input of nouns ending in "S", and to set the "num(ber)" variable to a plural value if a terminating "S" is found. For singular nouns like "bus" or "gas" that end in "S", we will have to devise techniques that override the default assumption of "S" meaning plural. We may use the article "A" or the verb "IS" as cues to declare a noun ending in "S" as singular.