1. A computer-implemented method comprising: under control of one or more processors configured with executable instructions: receiving an image; obtaining context data associated with the image, wherein the context data includes spatial data and/or temporal data associated with an event shown in the image; comparing the context data to data in an event database to retrieve a first list of events; analyzing the image to determine an event type of the event shown in the image; and comparing event types of the events in the first list with the determined event type to obtain a second list of events; and ranking a first event in the second list at a position higher than a second event in the second list in response to determining that a location associated with the event shown in the image is closer to a location associated with the first event than a location associated with the second event.