• Choose some reasonable number of questions of the form "Is it ___"?. Let's say 256
• Come up with a list of objects, and for each one give it a 256-long bitvector encoding its answers to the questions
• Maintain a set (implemented as another bitvector) of the potential items. Figure out which question would divide the set in two most closely; ask that question.
I am the opposite of a hardware hacker or systems programmer, but it seems like this is algorithmically straightforward to implement with bit-twiddling.