Reasoning with Heterogeneous Knowledge for Commonsense Machine Comprehension | Synapse