Automatically Composing Data Workflows with Relational Descriptions and Shim Services