1. A computer-implemented method performed by one or more data processing apparatus, comprising: storing a representation of a taxonomy for components that are available for constructing content items, wherein the taxonomy includes a hierarchy of categories, and each component belongs to one or more categories each descending from a root category through respective zero or more intermediate categories in the hierarchy; receiving a set of co-occurrence constraints on component selection for constructing the content items, wherein at least a first co-occurrence constraint of the set of co-occurrence constraints specifies a permission or a prohibition of simultaneous selection of components from a first collection of components and components from a second collection of components for a single content item, and wherein the first co-occurrence constraint identifies at least the first collection of components in terms of an intermediate category in the hierarchy of categories; and determining an eligible pair of components for constructing a first content item based on the taxonomy and the set of co-occurrence constraints.