Cognitive Computing for Machine Thinking