Hybrid architectures marrying symbolic reasoning and neural networks