Information about the career pathway for the profession of AI Mind Maintainer. Privacy policy: Third parties advertising here may place and read cookies on your browser; and may use web beacons to collect information as a result of ads displayed here.

Wednesday, November 29, 2017


Implementing the Indicative Mind-Module for Generation of Thought.

The free-of-charge, open-source, concept-based artificial intelligence in Strawberry Perl Five has become a primitive Mind-in-a-Box which AI enthusiasts and Perl programmers may download and experiment with. Before this current last week of November 2017, the Perlmind AI was a proof-of-concept AI with a river of diagnostic messages flooding the human-computer-interface (HCI). Now each new release of the free AI source code has a bare-bones interface where the human user may query the lurking AI Mind with questions of "who..." or "what..." and users may respond in English or Russian to the on-screen output of the AI.

In order to let users see the genuine thinking of an artificial Mind, we are implementing the ConJoin() module in Perl, so that the AI may output two or three active ideas "conjoined" by a conjunction, such as "I know THAT you are a robot AND I think THAT you need an AI Mind. The expanded functionality of thought requires some major changes in the cognitive architecture of the AI software. Whereas previously the EnThink() mind-module called the linguistic generation modules directly, now the use of conjunctions will require a module of thinking to be called two or more times as two or three ideas are joined together by the operation of the ConJoin() module.

Therefore we must now insert a sub-module between the EnThink() module and the English generation modules. We introduce the Indicative() module for the generation of thoughts in the grammatically indicative mood, and we comment out the inclusion of future mind-modules such as Subjunctive(); Imperative(); Interrogative() and perhaps even Optative() -- if we want to cater to speakers of ancient Greek. We will introduce a $mood variable to trigger selectively the calling by EnThink() of its immediate sub-modules.

Saturday, November 25, 2017


Enabling the Ghost AI to respond to queries with "I do not know"

In we would like to endow the artificial Perlmind with the ability to answer "I do not know" when a human user enters a who-query for which the knowledge base (KB) has not a clue for an answer. It is rather jarring to see some total non-sequitur in response to a query like "Who plays dice with the universe". We sense that a simple ELSE-clause in the SpreadAct module may be enough to divert the program-flow from not finding an answer, and giving up, to not finding an answer and stating "I do not know". We may need to involve the free-will Volition module in deciding to admit ignorance, but first it seems reasonable to write the underlying code.

When we enter "Who makes robots" we get the response, "KIDS MAKE THE ROBOTS", but when we ask, "Who knows God" we get "I HELP THE KIDS" as an early element in the self-knowledge of the AI. So in the section of the SpreadAct module that deals with a "who+verb+dir.object query" and in the snippet of code for outputting a response through Speech(), we introduce a few lines of ELSE-clause:

      } else {  # 2017-11-25: if no correct answer is found...
        print "I DO NOT KNOW \n"; # 2017-11-25
      } # 2017-11-25: End of else-clause
We then obtain a series of "I DO NOT KNOW" statements while the AI is trying in vain to supply an informed answer, but we still get the non-sequitur in the displayed output.

Suddenly we realize that we were appending the ELSE-clause at the end of an obsolete code-sequence for speaking the subject-noun of the query-response. Now instead we will try putting the ELSE-clause at the end of the code that finds the necessary direct-object for the query-answer. No, that code is not always invoked as an else-test, if the verb itself is not even found. Therefore we may need to try consolidating the outer and inner test into a single test, so that there will be a basis for an else-clause.

Next we try introducing a $dunnocon flag that we set to a positive one ("1") at the start of the segment in SpreadAct() that deals with English who+verb+object queries, so that finding at least one answer may knock $dunnocon back down to a value of zero. If the value does not revert to zero, we have a "dunno" situation which we may use to persuade the AI to state "I DO NOT KNOW" as a response. Quite soon the code works to at least detect the positive dunno-flag.

In a quick-and-dirty way we get the Perlmind to respond to who+verb+object queries with either a correct answer or an admission of "I DO NOT KNOW." It was necessary to change the starting time of a backwards search in SpreadAct() by about ten time points in order to skip over the conceptual elements of the query itself.

Friday, November 24, 2017


Restoring the ability of AI to answer who-queries.

The AI is an accumulation of various problems. For instance, it has lost the ability properly to answer "Who are you" as an input-query, although it does properly answer "Who am I" with "YOU ARE THE MAGIC". Let us see which most recent version could still answer "Who are you". The last version answering properly was with "I AM THE PERSON".

We notice that the $qv1psi variable was being assigned the proper value of "701' for "I" at the end of the "Who are you" input in, but an inproper value of zero ("0") in the AI. Since the SpreadAct module does not have the correct concept ("701=I") to search for, apparently the correct response is not being found. It also seems that $qv1psi does not matter for the "Who am I" query because of the paucity of knowledge about "707=YOU" in the innate knowledge base (KB). In other words, the AI correctly responds "YOU ARE THE MAGIC" only because it knows nothing else about "707=YOU".

Towards the end of InStantiate, when we arbitrarily fill the $qv1psi variable with the $psi value, the problem with "Who are you" queries seems to be solved, rather inexplicably.