NLProlog: Reasoning with Weak Unification for Question Answering in Natural Language accepted at ACL 2019! Code and synthetic training data is available here