1. A method comprising: generating a database that stores associations between each of a plurality of media objects and temporal, social, or topical data, wherein the database includes relationships between specific media objects and metadata sources associated with a specific media object, user profile data, social network data and interaction data; receiving a request, from a requesting device associated with a user, for media; parsing the request to identify at least two of social criteria, topical criteria, or temporal criteria included in the request, the social criteria describing one or more people or types of people associated with the requested media, the topical criteria describing one or more topics associated with the requested media, and the temporal criteria describing a past time period associated with the requested media; when the request includes social criteria, determining media associated with the one or more people or types of people defined by the social criteria based on the association; when the request includes topical criteria, identifying topics associated with the request and determining media associated with the identified topics based on the association; when the request includes temporal criteria, identifying a time associated with the request and determining media associated with the identified time based on the association; locating a plurality of media files that each match the at least two of social criteria, topical criteria, or temporal criteria included in the request based on the determined media associated with the one or more people or types of people, media associated with the identified topics, or media associated with the identified time; and transmitting the plurality of media files over the network to the requesting device.
3. The method of claim 1 wherein the request for media related to a context has a trigger condition and the request is not processed until the trigger condition occurs.