8. The machine-readable storage device encoded with the computer program product of claim 7 , wherein: the search condition specifies a category of digital media represented by a first tag object; and generating the collection of data objects comprises identifying media objects associated with the first tag object.
7. A machine-readable storage device encoded with a computer program product comprising instructions operable to cause data processing apparatus to perform operations comprising: receiving a request for a plurality of data items, the request specifying a search condition; searching a data store comprising a plurality of data objects representing data items for data items satisfying the search condition, the plurality of data objects comprising one or more media objects, one or more tag objects and one or more page objects, where: a media object represents an item of digital media and is an instantiation of a media object class; a tag object represents a category of digital media and is an instantiation of a tag object class and each media object can be associated with zero or more tag objects; and a page object defines a relationship between a tag object and a media object; generating a collection of data objects representing data items that satisfy the search condition; using an iterator to sequentially access the data items represented by the data objects in the collection; and providing the data items to a user interface.