A computer-implemented method for an object and activity query language wherein an object is a data type representing a thing or a being with a visual shape in an image or video frame and said activity is a data type representing an action or an event visually shown in an image or video or video frame, the method comprising the steps of storing a plurality of items in a raw data storage, said items comprising images and/or videos, processing said items in a processor and to generate and/or segment annotated information from said items and to extract object, activity and/or metadata information from said items in said first data storage, storing said annotated information in a secondary data storage, storing said extracted object, activity, and/or metadata information and said annotated information in a primary data storage, executing on a processor an identify function, wherein given a query item said identify function identifies said query item and/or finds a list of items similar to said first item; and a said query item comprises a video, a video frame, an image, a set of images, a template extracted from a video or image or images, an object, an activity, or annotated information, and displaying results of said identify function.