1. A non-transitory computer-readable medium storing program code, the program code executable by a processor of a computing system to cause the computing system to: receive a logical schema associated with a data store; generate an input schema based on the logical schema; receive an expression having a type of the input schema and representing the topology of a data set, the data set being an instance of the input schema; compile the expression to a data specification based on the input schema; and generate a plan to execute on the data store based on the data specification.