1. A method for constructing a semantic query over a corpus of data, the method comprising: using a graphical user interface to create an aggregation of graphical representations of annotations associated with a plurality of data elements contained within the corpus of data and graphical representations of search terms contained within the plurality of data elements, wherein the aggregation comprises at least one annotation and at least one search term; manipulating relative positions of the graphical representations of the annotations and the search terms within the aggregation within the graphical user interface to express relationships among the annotations and search terms, the annotations, search terms and expressed relationships defining the semantic query; and searching the corpus of data using the defined semantic query.