1. A computer-implemented method for composing a query for accessing data, comprising: receiving a selection of at least one query node from a plurality of query nodes wherein each query node represents an element of the data, wherein the data comprises data stored using a data structure defined by a schema, and wherein a mapping template specifies a mapping between at least one of the plurality of query nodes and the elements of the data; upon receiving one or more query predicates designated for the at least one selected query node, validating the one or more query predicates using the mapping template; and composing, by operation of one or more computer processors, the query for accessing the data, using a base query, the validated one or more query predicates, the mapping template, and a hidden predicate specified in a query node annotation defined by the mapping template, wherein the base query identifies a data source for the composed query.