I don't know exactly how this program works but I will bet that if you were to examine the code you would find some similarities to the program "Animal" which I mentioned in my last post. That program appeared in a book which was published in 1973!
In Animal the program tried to guess an animal based on a series of yes/no questions. If it fails then it asks you for two pieces of information:
- What animal you were thinking of
- A new question which would differentiate between the animal it guessed and the animal you were thinking of
In this way it "expands its knowledge" (i.e. it constructs a binary tree containing a series of questions with an animal name as the final node at the end of each path).
Now a lot of time has passed since 1973 and the Akinator program appears to be more sophisticated in a number of ways:
- You can respond to each question with one of five options: yes, probably partially, I don't know, probably not really, and no
- If you make a mistake, it may still get the right answer (it can sometimes cope with contradictions in your answers)
- If it gets the answer wrong, you can get it try again and it will try a different path
But because its database it so extensive, it is still very impressive.