Cyborg AI Minds are a true concept-based artificial intelligence with natural language understanding, simple at first and lacking robot embodiment, and expandable all the way to human-level intelligence and beyond. 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.

Saturday, November 25, 2017

pmpj1125

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

In ghost239.pl 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.