Declarative Techniques for NL Queries over Heterogeneous Data